![見出し画像](https://assets.st-note.com/production/uploads/images/26229227/rectangle_large_type_2_4b4ea07c6ea5eea13eaea208b42f86f4.jpg?width=1200)
Raspberry PiでLEDを点滅させよう
この記事ではRaspberry Pi 2 model b を用いたLEDの点滅について説明しています。
Pythonでプログラムを書く
ある程度pythonの文法を理解していることを体に話します。
PythonでRaspberry PiのGPIOを制御するには「RPi.GPIO」というパッケージを使用します。これでラズパイのGPIOから入出力を行うことができます。import RPi.GPIOだけでもOKですが、毎回このコードを書くのはめんどくさいのでas GPIOとすることで略記できるようにします。
import RPi.GPIO as GPIO
またLEDを~秒間点灯させるかの指示を送るため、時間を制御するパッケージも読み込みます。
import time
次にGPIOピンの入出力をどのように制御するかの方法を指定します。
Raspberry Pi 2 のGPIOピンの配置は上のようになっていますが、ピン番号には特に規則性もなく配置されていることがわかります。これを左下を1、左上を2、右下を39、右上を40としたときの配置で制御する方法と上の画像に割り当てられたピン番号で制御する方法があります。
前者の場合は以下のコードです。
GPIO.setmode(GPIO.BOARD)
後者の場合は以下のコードです。
GPIO.setmode(GPIO.BCM)
今回は後者のピン番号で制御していきます。
ここまでのコードは次のようになります。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
では次にどのピンを使用するか指定していきます。setup関数を用いて特定のピンを出力モードに変更します。
GPIO.setup(14,GPIO.OUT)
今回は14番ピンを使うので14を代入、出力をするためOUTとしています。
次にoutput関数を用いて実際に出力させます。2つ目の引数に1を代入することで点灯、0を代入することで消灯させることができます。
GPIO.output(14,1)
この状態を1秒間継続させるため、sleep関数を使います。
time.sleep(1.0)
そして消灯させます。
GPIO.output(14.0)
最後にこれまでの設定をリセットします。GPIOの設定をリセットしないと次のプログラムに影響を与える可能性があるのでコードの一番最後に書いておきましょう。
GPIO.cleanup()
これで14番ピンから出力を送って一秒間待機、そして消灯させるプログラムが完成しました。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(14,GPIO.OUT)
GPIO.output(14,1)
GPIO.output(14.0)
GPIO.cleanup()
このコードをled.pyという名前で保存します。
ブレッドボード上で回路を作る
回路は前回とほぼ同様のものを使用します。
黄色のジャンプワイヤから出力を送ります。
Raspberry PiのGPIOをセットする
白色のジャンプワイヤをラズパイのGNDに、黄色のジャンプワイヤを14番ピンにセットします。
これで回路がつながりました。
プログラムを実行する
GPIOのプログラムは管理者権限でしか実行できません。なのでLXterminal上で次のように入力します。
pi@raspberry:~$ sudo python led.py
これでLEDの点滅を確認できました。
まとめ
今回はpythonを用いてコードを書きましたがScratchなどの他のプログラムでもLEDの点滅ができそうです。
また、このようなプログラミング言語を用いることでLEDを複数個別の方法で操作できたり、繰り返し処理や条件分岐などもできそうです。今後もっと複雑な処理をさせてみたいと思います。