documents:os:linux:debian:bbb-doc002
002.本体LEDでLチカ
2026-08-13
本体の4つ並んだLEDを制御できた
概要
Lチカの為のパーツ類が届くまでの間、BeagleBone Black(BBB)の本体でLチカをやってみる。
本体LED
デモなんかを見るとここを制御できる模様。
ソフトウエア
今回はGPIOではなくお手軽に仮想ファイルシステムで行くよ!
下調べ
Linuxには仮想ファイルシステムなるものがあり、ハードウエアもファイルとして扱う事が出来たりする。
debian@BeagleBone:~$ ls -l /sys/class/leds 合計 0 lrwxrwxrwx 1 root root 0 8月 13 03:52 beaglebone:green:usr0 -> ../../devices/platform/leds/leds/beaglebone:green:usr0 lrwxrwxrwx 1 root root 0 8月 13 03:52 beaglebone:green:usr1 -> ../../devices/platform/leds/leds/beaglebone:green:usr1 lrwxrwxrwx 1 root root 0 8月 13 03:52 beaglebone:green:usr2 -> ../../devices/platform/leds/leds/beaglebone:green:usr2 lrwxrwxrwx 1 root root 0 8月 13 03:52 beaglebone:green:usr3 -> ../../devices/platform/leds/leds/beaglebone:green:usr3 lrwxrwxrwx 1 root root 0 8月 13 03:52 mmc0:: -> ../../devices/platform/ocp/48000000.interconnect/48000000.interconnect:segment@0/480602fc.target-module/48060000.mmc/leds/mmc0:: lrwxrwxrwx 1 root root 0 8月 13 03:52 mmc1:: -> ../../devices/platform/ocp/48000000.interconnect/48000000.interconnect:segment@100000/481d82fc.target-module/481d8000.mmc/leds/mmc1:: debian@BeagleBone:~$
BBBの場合、“beaglebone:green:usr0”~“beaglebone:green:usr3”が本体LEDのディレクトリになる。
試しに beaglebone:green:usr0へ移動してみる。
debian@BeagleBone:~$ cd /sys/class/leds/beaglebone:green:usr0 debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ ls -l 合計 0 -rw-rw-r-- 1 root gpio 4096 8月 12 16:58 brightness lrwxrwxrwx 1 root gpio 0 8月 12 13:09 device -> ../../../leds -r--r--r-- 1 root gpio 4096 8月 12 13:09 max_brightness drwxrwxr-x 2 root gpio 0 8月 12 13:09 power lrwxrwxrwx 1 root gpio 0 8月 12 13:09 subsystem -> ../../../../../class/leds -rw-rw-r-- 1 root gpio 0 8月 12 16:58 trigger -rw-rw-r-- 1 root gpio 4096 8月 12 13:09 uevent debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ cat trigger none usb-gadget usb-host rfkill-any rfkill-none 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 disk-activity disk-read disk-write ide-disk mtd nand-disk [heartbeat] backlight gpio cpu cpu0 activity default-on panic netdev mmc1 mmc0 4a101000.mdio:00:link 4a101000.mdio:00:100Mbps 4a101000.mdio:00:10Mbps debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$
triggerは特定のカーネルイベントや動作に連動させるための機能でこの場合はLEDの点灯/消灯の操作。heartbeatが選択されているのでシステム稼働状態を示す事になる。
※ゴメン具体的に何に同期しての点滅か分からない
noneを指定するとイベントでの操作が解除になるのでこれを指定して手動でのON/OFFを試す。
debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ echo none | sudo tee trigger none debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ cat trigger [none] usb-gadget usb-host rfkill-any rfkill-none 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 disk-activity disk-read disk-write ide-disk mtd nand-disk heartbeat backlight gpio cpu cpu0 activity default-on panic netdev mmc1 mmc0 4a101000.mdio:00:link 4a101000.mdio:00:100Mbps 4a101000.mdio:00:10Mbps debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ cat brightness 0 debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$
消灯している。
debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ echo 1 | sudo tee brightness 1 debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$ cat brightness 1 debian@BeagleBone:/sys/class/leds/beaglebone:green:usr0$
点灯している。
user1~user3も同様に扱えるので、事前に各LEDのtriggerをバックアップしておいてLチカをさせたら元に戻せば良さそうだ。
デモ
LEDを順に点灯点滅するデモ。
- BChika.sh
#!/bin/bash orguser0=`sed 's/.*\[\([^]]*\)\].*/\1/' /sys/class/leds/beaglebone:green:usr0/trigger` orguser1=`sed 's/.*\[\([^]]*\)\].*/\1/' /sys/class/leds/beaglebone:green:usr1/trigger` orguser2=`sed 's/.*\[\([^]]*\)\].*/\1/' /sys/class/leds/beaglebone:green:usr2/trigger` orguser3=`sed 's/.*\[\([^]]*\)\].*/\1/' /sys/class/leds/beaglebone:green:usr3/trigger` echo none | sudo tee /sys/class/leds/beaglebone:green:usr0/trigger >/dev/null echo none | sudo tee /sys/class/leds/beaglebone:green:usr1/trigger >/dev/null echo none | sudo tee /sys/class/leds/beaglebone:green:usr2/trigger >/dev/null echo none | sudo tee /sys/class/leds/beaglebone:green:usr3/trigger >/dev/null count=0 while [ $count -lt 5 ] do echo 1 | sudo tee /sys/class/leds/beaglebone:green:usr0/brightness >/dev/null sleep 0.4 echo 0 | sudo tee /sys/class/leds/beaglebone:green:usr0/brightness >/dev/null echo 1 | sudo tee /sys/class/leds/beaglebone:green:usr1/brightness >/dev/null sleep 0.4 echo 0 | sudo tee /sys/class/leds/beaglebone:green:usr1/brightness >/dev/null echo 1 | sudo tee /sys/class/leds/beaglebone:green:usr2/brightness >/dev/null sleep 0.4 echo 0 | sudo tee /sys/class/leds/beaglebone:green:usr2/brightness >/dev/null echo 1 | sudo tee /sys/class/leds/beaglebone:green:usr3/brightness >/dev/null sleep 0.4 echo 0 | sudo tee /sys/class/leds/beaglebone:green:usr3/brightness >/dev/null count=$((count + 1)) done echo ${orguser0} | sudo tee /sys/class/leds/beaglebone:green:usr0/trigger >/dev/null echo ${orguser1} | sudo tee /sys/class/leds/beaglebone:green:usr1/trigger >/dev/null echo ${orguser2} | sudo tee /sys/class/leds/beaglebone:green:usr2/trigger >/dev/null echo ${orguser3} | sudo tee /sys/class/leds/beaglebone:green:usr3/trigger >/dev/null
結果
こんな感じ。
documents/os/linux/debian/bbb-doc002.txt · 最終更新: by k896951

