はじめに
ev3devを使ってmindstorm-EV3インテリジェントブロックのLEDを制御する方法を紹介します。
この記事は、EV3にev3devをインストールし、SSH接続できている状態であることを前提にしています。環境構築ができていない方はこちらの記事を参考にしてください。
mindstorm-EV3をLinuxで制御しよう! ev3dev OSのインストールととSSH接続
デバイスファイル
LEDを制御するためのデバイスファイルフォルダは/sys/class/leds/
以下にあります。
robot@ev3dev:~$ ls /sys/class/leds
ev3:left:green:ev3dev ev3:left:red:ev3dev ev3:right:green:ev3dev ev3:right:red:ev3dev rt2800usb-phy0::assoc rt2800usb-phy0::quality rt2800usb-phy0::radio
点灯させてみよう
それぞれのデバイスファイルフォルダのbrightnessファイルに0~255の値を書き込むことで、LEDの明るさの強弱を制御できます。下図の赤く点灯している左側LEDと緑に点灯している右側LEDが制御できます。
#EV3インテリジェントブロックの左側のLEDを緑色に点灯
robot@ev3dev:~$ echo 255 > /sys/class/leds/ev3\:left\:green\:ev3dev/brightness
#EV3インテリジェントブロックの左側のLEDの緑色を消灯
robot@ev3dev:~$ echo 0 > /sys/class/leds/ev3\:left\:green\:ev3dev/brightness
#EV3インテリジェントブロックの左側のLEDを赤色に点灯
robot@ev3dev:~$ echo 255 > /sys/class/leds/ev3\:left\:red\:ev3dev/brightness
#EV3インテリジェントブロックの左側のLEDの赤色を消灯
robot@ev3dev:~$ echo 0 > /sys/class/leds/ev3\:left\:red\:ev3dev/brightness
#EV3インテリジェントブロックの右側のLEDを緑色に点灯
robot@ev3dev:~$ echo 255 > /sys/class/leds/ev3\:right\:green\:ev3dev/brightness
#EV3インテリジェントブロックの右側のLEDの緑色を消灯
robot@ev3dev:~$ echo 0 > /sys/class/leds/ev3\:right\:green\:ev3dev/brightness
#EV3インテリジェントブロックの右側のLEDを赤色に点灯
robot@ev3dev:~$ echo 255 > /sys/class/leds/ev3\:right\:red\:ev3dev/brightness
#EV3インテリジェントブロックの右側のLEDの赤色を消灯
robot@ev3dev:~$ echo 0 > /sys/class/leds/ev3\:right\:red\:ev3dev/brightness
Triggerを設定してLEDの点滅を制御する
それぞれのデバイスファイルフォルダのtriggerファイルを編集することで、LEDの点灯モードを変更することができます。具体的には通常の点灯か、点滅かを切り替えることができます。
none
通常モード
デフォルトの設定です。LEDは点灯しているか消灯しているかの状態です。
timer
点滅モード
LEDが点滅します。
また、delay_on,delay_offファイルを編集することで、点滅の周期を制御することができます
#点灯時間を1000msに設定する
robot@ev3dev:~$ echo 1000 > /sys/class/leds/ev3\:left\:red\:ev3dev/delay_on
#消灯時間を3000msに設定する
robot@ev3dev:~$ echo 3000 > /sys/class/leds/ev3\:left\:red\:ev3dev/delay_off
緑と赤を使って黄色やオレンジを作る
LEDの色を重ね合わせることで黄色やオレンジといった色を表現することも可能です。
# オレンジ色
robot@ev3dev:~$ echo 180 > /sys/class/leds/ev3\:green\:left/brightness; echo 255 > /sys/class/leds/ev3\:red\:left/brightness
# 黄色
robot@ev3dev:~$ echo 255 > /sys/class/leds/ev3\:green\:left/brightness; echo 25 > /sys/class/leds/ev3\:red\:left/brightness