以前Raspberry PiでNode.jsのJohnny-Fiveを使ったLチカのサンプルを書きました。今回はPythonのRPi.GPIOパッケージをインストールしてLチカしてみます。
RPi.GPIO
RPi.GPIOパッケージはRaspberry PiのGPIOを操作するときに使います。pipやapt-getからインストールできます。
pipの場合
$ sudo pip install rpi.gpio |
apt-getの場合
$ sudo apt-get install python-rpi.gpio |
GPIO.BOARDとGPIO.BCM
RPi.GPIOのサンプルを見ているとGPIOのピン番号を指定する方法が2種類あります。何が違うのか調べているとWhat is the difference between BOARD and BCM for GPIO pin numbering?に説明がありました。
- GPIO.BOARD: PIN番号
- GPIO.BCM: GPIO番号
今回LEDのアノードを配線するPIN 11
は、Raspberry Pi Model Bの場合GPIO 17
になります。GPIO番号はモデルごと違う場合があるので、PIN番号で指定するGPIO.BOARDを使った方がよいみたいです。
This channel is already in use
RPi.GPIOのプログラムを実行するとThis channel is already in use
の警告がでる場合があります。これは以前GPIO.setup()
を実行してポートのセットアップをした後、クリアしていないときに発生します。
$ sudo python led-blink.py |
プログラムの最後にポートのクリアを行います。
GPIO.cleanup() |
ブレッドボード配線
抵抗器は1K(茶黒赤金)を用意しました。LEDを配線します。
サンプルプログラム
#!/usr/bin/python |
GPIOを操作する場合はroot権限が必要になります。プログラムを実行すると3回、1秒間隔でLチカします。
$ chmod +x led-blink.py |