Raspberry Pi カメラ用フラッシュの作製(3)
続きです
Raspberry PiのGPIOを制御する
RPI.GPIOをインストールします。
$ pip install rpi.gpio
次のようなコードを書いて動かすと、GPIO18から3.3Vをかけることができるようになります。
LEDを5秒おきに点灯-消灯を繰り替えすようにしています。
#!/home/pi/.pyenv/shims/python #coding=utf-8 import RPi.GPIO as GPIO #GPIOにアクセスするライブラリをimportします。 import time GPIO.setmode(GPIO.BCM) #GPIOへアクセスする番号をBCMの番号で指定することを宣言します。 GPIO.setup(18,GPIO.OUT) #BCMの18番ピン、物理的12番ピンを出力に設定します。 while True: GPIO.output(18,GPIO.HIGH) time.sleep(5) GPIO.output(18,GPIO.LOW) time.sleep(5)
Raspberry PiでパワーLEDを制御 - YouTube
(2)で作ったフラッシュを機能させる
以前作った、温湿度や写真を取得するプログラムを少し変えます。
#!/home/pi/.pyenv/shims/python # -*- coding: utf-8 -*- import os import Adafruit_DHT import datetime import RPi.GPIO as GPIO #GPIOにアクセスするライブラリをimportします。 import time now = datetime.datetime.now() # 現在の日時を取得 sensor = Adafruit_DHT.DHT22 pin = 4 degC = '℃' GPIO.setmode(GPIO.BCM) #GPIOへアクセスする番号をBCMの番号で指定することを宣言します。 GPIO.setup(18,GPIO.OUT) #BCMの18番ピン、物理的12番ピンを出力に設定します。 def condition(): humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) discomfort = 0.81*temperature + 0.01*humidity*(0.99*temperature - 14.3) + 46.3 return humidity, temperature, discomfort def takepic(): cmd = 'raspistill -n -o /home/pi/log_condition/log_pic/{0:%Y%m%d%H}.png -t 500 -q 15 -e'.format(now) GPIO.output(18,GPIO.HIGH) time.sleep(1) cmdact = os.popen(cmd) time.sleep(1) GPIO.output(18,GPIO.LOW) def main(): # log current condition file = open('/home/pi/log_condition/log_TH/{0:%Y%m%d}.txt'.format(now), 'a+') #書き込みモードでオープン humidity, temperature, discomfort = condition() # Markdown記法(半角スペース2個で改行) file.write('時刻:{0:%Y/%m/%d %H:%M:%S} \n'.format(now)) file.write('湿度:{0:3.1f}% \n'.format(humidity)) file.write('温度:{0:3.1f} {1} \n'.format(temperature,degC)) file.write('不快指数:{0:3.1f} \n\n'.format(discomfort)) # take a picture takepic() if __name__ == '__main__': main() GPIO.cleanup()
これでフラッシュが使えるようになりました。
(9/2くらいから動かしています)
その他
今回は最大1000 mAまで印加できるパワーLED使いましたが、本当は3000 mAまで印加できるもの(XM-L2 U31A)を用意していました。
ですが、1Wまでしか耐えられない抵抗を買ってしまっていたので、とりあえず安かったのでついでに買っていたXP-E R2WCを使いました。
でも実際に使ってみて、ぶっちゃけもっとIfの小さいLEDで良かったんじゃないかと思うくらい明るかったです。