Raspberry Piで始めるPythonでLチカ制御

Raspberry Piを使用した制御の入門編、PythonでLEDを点滅(チカチカさせる)「Lチカ」を説明します。この内容はIoTコースの中でも実際に行う内容です。この内容をマスターすれば、LEDを点灯させてクリスマスツリーを彩るなんてこともできます。自由なパターンで点灯できたら面白いですよね。では、始めていきましょう!

配線

まず、ラズベリーパイに以下のように配線します。

Raspberry Piの配線イメージ


接続する場所は決まった意味があるのですが、ここでは割愛して、プログラム部分だけ見ていきます。

プログラム

ここから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()

細かく分解してみていきましょう。

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コースに参加してみてください!