Raspberry PiでLチカ(Python編)
LEDのオンオフをプログラムで制御してみます。
(こういうのを電子工作のHelloWorld的な言葉でLチカというらしい)
Pythonは書いたことがありませんが、参考情報が多く、GPIOのモジュールもあるので採用してみました。
import RPi.GPIO as GPIO
import time
import signal
import sys
channel = 4 #GPIOの4番を利用
GPIO.setmode(GPIO.BCM) # GPIOで指定するならBCM, ピン番号で指定するならBOARD
GPIO.setup(channel, GPIO.OUT)
is_running = True
def sigint_handler(signo, frame):
is_running = False
GPIO.output(channel, False)
GPIO.cleanup()
print "\nBye!!"
sys.exit(0)
signal.signal(signal.SIGINT, sigint_handler)
while is_running == True:
GPIO.output(channel, True)
time.sleep(0.05)
GPIO.output(channel, False)
time.sleep(0.05)
lchika.pyという名前で保存しました。
rootで実行します。
sudo python sample.py
無事にLチカできました!
謎の警告
GPIO 2(3番PIN) or GPIO 3(5番PIN)を使うと以下の警告がでました。 そういえばオフ状態でもうっすらLEDがついてる気もします。
sample1.py:7: RuntimeWarning: A physical pull up resistor is fitted on this channel! GPIO.setup(channel, GPIO.OUT)

Raspberry Pi 2付属のGPIOカードにもGPIO 2(I2C_SDA1)と書いてあるし、 どうやらこのピンは普通のGPIOではない特殊な力を持っているようです。
↓
GPIO2/3はI2C通信というものをするのに使うらしいです。
I2C通信については近いうちにまた調べて見ようかと思います。
参考
RPi.GPIOの基本的な使い方
RPi.GPIO.setupメソッドについてもう少し
How do I capture SIGINT in Python?
[Raspberry Pi]I2Cを使う(設定編)