この記事は SLP KBIT Advent Calendar 2018 の10日目の記事です。
はじめに
ラズパイ3の基板上にあるLEDは、設定を変えるとGPIOと連動させることができるらしいので
それを使ってLチカをしたいと思います。
つまりLEDを買わなくてもできるLチカをします。
使ったもの
- Raspberry Pi 3 Model B
LEDの設定を変更する
現在の設定を確認する
Raspberry Pi 3 の基板上にはLEDが2つ存在します。
それらが、どのような設定で動いているか確認します。
cat /sys/class/leds/led0/trigger
none rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 default-on input panic mmc1 [mmc0] rfkill-any rfkill0 rfkill1
led0(緑)は、"mmc0"(SDカードへのアクセス)
cat /sys/class/leds/led1/trigger
none rc-feedback kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 default-on [input] panic mmc1 mmc0 rfkill-any rfkill0 rfkill1
led1(赤)は、"input"(電源)となっています。
この設定をGPIOに変更します。
GPIOと連動するように変更する
今回は、GPIO20とGPIO22を使用します。
sudo su
echo gpio > /sys/class/leds/led0/trigger
echo 20 > /sys/class/leds/led0/gpio
echo gpio > /sys/class/leds/led1/trigger
echo 22 > /sys/class/leds/led1/gpio
exit
Lチカのプログラム
普通のLチカと同様にプログラムを作成します。
LEDを0.5秒ごとに交互に点滅させる処理を10回繰り返すようにします。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(20,GPIO.OUT)
GPIO.setup(22,GPIO.OUT)
for x in range(10):
GPIO.output(20,0)
GPIO.output(22,1)
time.sleep(0.5)
GPIO.output(20,1)
GPIO.output(22,0)
time.sleep(0.5)
GPIO.cleanup()
実行する
sudo python3 lchika.py
LEDが点滅したら成功です。
LEDの設定を元に戻す
以下のコマンドで設定を元に戻せますが、
ラズパイを再起動、シャットダウンさせても元に戻るようです。
sudo su
echo input > /sys/class/leds/led1/trigger
echo mmc0 > /sys/class/leds/led0/trigger
exit
感想
自分が思っていたよりも、簡単にLチカができた。
基板上のLEDは、GPIO以外にも設定を変更できるということが分かったので
いろいろ試してみたい。
参考
[【 第27回 】Raspberry PiでもLED不要のLチカ!]
(https://www.fabshop.jp/%E3%80%90-%E7%AC%AC27%E5%9B%9E-%E3%80%91raspberry-pi%E3%81%A7%E3%82%82led%E4%B8%8D%E8%A6%81%E3%81%AEl%E3%83%81%E3%82%AB%EF%BC%81/)
RaspberryPi3でPythonを使ってLチカさせる
[コラム] Raspberry Pi 2のオンボードLEDを自由に光らせよう