Blink-LEDチカチカ
注意:当サイトに掲載されている手順は動作を保証するものではないもの、また、当サイトに掲載されている情報をもとに電子回路を作成した結果によって生じたことについて、一切の責任を負えないことをご了承ください。
【Article】「GPIOページに掲載する記事について」 - 非公式Rock研究所
https://informal-r-labo.net/posts/article005
ここではmraaライブラリを使ってLEDを点滅させてみる。
Arduino Built-in
この記事の元ネタである、ArduinoのBuilt-inのページリンク
Blink | Arduino Documentation
https://docs.arduino.cc/built-in-examples/basics/Blink/
回路図
Rock4c+でLEDチカチカを実現させるための回路図は以下のようになる。
- GPIOのPin8をLEDの+極(足が長い方)と接続
- LEDの-極(足が短い方)と抵抗(200Ω)を接続
- 抵抗のもう一方をGPIOのPin14(グランド)と接続
図は電子部品を接続するためにブレッドボードを使用している。電気部品の端子を接続するため、接続を中継する線(黄色)を使用している。
ディレクトリ作成
rockディレクトリにPythonコードを格納するpyディレクトリを作成する。
$ mkdir ~/py
pyディレクトリに移動後、ファイル名"Blink.py"でviを起動する。
$ cd py
$ vi Blink.py
Pythonコード
viが起動すれば、編集モードで以下のコードを入力する。
(Rock4c+には日本語が入力できないため、カッコ書きのコメント行は入力不要。)
# (ライブラリのimport)
import mraa
import time
# (Pin8を操作対象にして、mr.DIR_OUTで"出力"に設定)
gpio_led = mraa.Gpio(8)
gpio_led.dir(mraa.DIR_OUT)
# (LEDの1秒間隔での点滅を10回実行する)
for i in range(10):
# (LEDを点灯させて1秒待機)
gpio_led.write(1)
time.sleep(1)
# (LEDを消灯させて1秒待機)
gpio_led.write(0)
time.sleep(1)
コーディングが完了すれば保存する。
"gpio_led.write"の後ろに続く引数に、「1」を指定すると"ON"、「0」を指定すると"OFF"の状態になる。
"gpio_led.dir"の後ろに続く引数に、「mraa.DIR_OUT」を指定すると、"出力"を指示できる。
(「mraa.DIR_IN」を指定すると"入力"になるようだ。)
紹介したPythonコードについて参考にしたサイトのリンクを貼っておく。
Example — mraa v2.0.0-4-gd320776 documentation
https://iotdk.intel.com/docs/master/mraa/python/example.html
コードの実行
電子部品の結線が間違っていないか確認し、問題なければ先程のコードを管理者権限で実行する。
(GPIOを操作するには管理者権限が必要。)
$ sudo python3 ~/py/Blink.py
コーディングしたとおりに、LEDを10回点滅させることができた。 ここでは、Pin8を操作したが、"mraa.Gpio"で別のPin番号を指定する(例えばPin10)ことで別のPinでLEDを点滅させることができる。
”LEDの点滅”の実演については多くの方が紹介記事を出していて、二番煎じ感は否めないが、思ったとおりに動くとやっぱりうれしい。