Raspberry Piで始めるPythonでLチカ制御
スタートラボでは、Python入門からIoTまで様々なコースを扱っています。
この記事では、PythonによるIoT開発の第一歩として、Raspberry Piを使用した制御の入門編、PythonでLEDを点滅(チカチカさせる)「Lチカ」を説明します。この内容はIoTコースの中でも実際に行う内容です。この内容をマスターすれば、LEDを点灯させてクリスマスツリーを彩るなんてこともできます。自由なパターンで点灯できたら面白いですよね。では、始めていきましょう!
配線
まず、ラズベリーパイに以下のように配線します。

接続する場所は決まった意味があるのですが、ここでは割愛して、プログラム部分だけ見ていきます。
プログラム
ここからPythonのプログラムを書いていきます。RPi.GPIOはRaspberryPiに初期インストールされているGPIOを制御するためのクラスです。GPIOについては別の記事を参考にしてください。
import RPi.GPIO as GPIO
from time import sleep
PIN = 3
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN, GPIO.OUT)
try:
while True:
GPIO.output(PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(PIN, GPIO.LOW)
sleep(0.5)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
スタートラボは、Pythonを基礎から勉強してみたいという方向けのコースも実施中!
では、細かく分解してみていきましょう。
PIN = 3
ピン番号は3を指定しています。
GPIO.setmode
GPIOのモードはGPIO.BOARDを指定しています。日本国内の様々なレクチャーでGPIO.BCMを指定していますが、BCMの番号はRaspberryPiのモデルによって異なります。PINの違いによって基盤や接続機器にダメージを与えかねないので、モデルの差異を吸収しやすいBOARDの番号を指定しています。ここで指定している3は、別の記事の番号と同じものです。
GPIO.setup(PIN, GPIO.OUT)
このコードで出力モードにしています。出力モードにするとプログラムから電圧の出力をON/OFFすることができます。
while True:
GPIO.output(PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(PIN, GPIO.LOW)
sleep(0.5)
無限ループを作っています。GPIOに対して、電圧をH/Lで切り替えています。HIGHでON、LOWでOFFです。これを0.5間隔で繰り返しています。
電圧がON/OFFで繰り返されるので、LEDはチカチカとついたり消えたりします。
except KeyboardInterrupt:
例外処理でキー入力(Ctrl+C)をつかまえて終了させます。
finally:
GPIO.cleanup()
で設定をクリーンにして終了です。これを忘れると次回実行時に “This channel is already in use”という警告が出ます。一回限りの警告のため、他にGPIOを使用していなければ問題は起きないのですが、今後違うものを動かすと思いますのでクリーンにしておいたほうがいいでしょう。
まとめ
いかがでしたか?PythonとRaspberry Piを組み合わせれば簡単にLチカ制御が完成しました。もっと学んでみたい、という方は是非スタートラボのIoTコースに参加してみてください!