購入したもの
ラズパイはあるので、カメラ、ジャンパワイヤ、赤外線センサーを購入します。
- Amazon.co.jp: Raspberry Pi Raspberry Pi Camera V2: 産業・研究開発用品
- PIRセンサーモジュール - aitendo
- ジャンパワイヤ(S-S)5本入り - aitendo
カメラのとりつけ
そんなに難しくはないですが、カメラモジュール取り付けが初めてだったので、上に押し上げることにしばらく気づかず四苦八苦しました。
上に押し上げて(取り外しまではしない)、シールをとります。
そしてそこに隙間があるのでカメラモジュールの端子部分を USB モジュール側にむけてさしこみます。
カメラのチェック
ラズパイの sudo raspi-config
でカメラを有効にして再起動をかけます。
そのあと、次のコマンドで画像が出力されていれば OK です。
raspistill -o /tmp/image.jpg
Raspberry Pi と赤外線センサーの接続
GPIO 18 ピンを使います。
赤外線センサーに、VCC、OUT、GND とあります。
それぞれ次の通りに接続します。
VCC → Raspberry Pi 4番ピン の 5V
OUT → Raspberry Pi 12番ピンの PWMO(18)
GND → Raspberry Pi 6番ピンの GND
※ピンについてはドキュメント参照してください。GPIO: Raspberry Pi Models A and B - Raspberry Pi Documentation
※配線は、VCC を 5V、OUT を GPIO、GND を GND に接続できたらなんでも大丈夫です。GPIO ピン変えたときはそのピン番号を適宜スクリプトに反映して下さい。
これで接続完了です!
実装前準備
pip install
でもいけると思いますが、apt-get
でインストールします。
sudo apt-get install python-picamera
Python の REPL で次がコケなければ OK です。
import pycamera
実装
GPIO のどのピンにさしたかにもよりますが、18番にさしたとして次のコードにしました。
もう少しイベント的に取る方法があったはずですが、ひとまず。
# -*- coding: utf-8 -*-
# 2016/12/20 0:51
import traceback
from functools import wraps
import time
import RPi.GPIO as GPIO
import picamera
__author__ = 'isann'
def wrapper(func):
@wraps(func)
def _func(*args, **keywords):
try:
func(*args, **keywords)
except Exception:
traceback.print_exc()
return _func
@wrapper
def main():
sensor_pin = 18
sleeptime = 5
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor_pin, GPIO.IN)
cam = picamera.PiCamera()
cam.resolution = (384, 288)
try:
print "App Start"
print "ctrl+c : if you want to stop app"
while True:
if (GPIO.input(sensor_pin) == GPIO.HIGH):
print('shot!!!!')
filename = time.strftime('%Y%m%d%H%M%S') + '.jpg'
save_file = '/tmp' + '/' + filename
cam.capture(save_file)
time.sleep(sleeptime)
print('wait...')
else:
time.sleep(1)
except KeyboardInterrupt:
print "Quit"
finally:
print "clean up"
GPIO.cleanup()
if __name__ in '__main__':
main()
これで人感カメラができましたー!
人の動作などに反応してカメラがショットされます!
あとは WEB にアップして表示する普通の仕組みを作ってやるだけです。
おわり。
参考
人感センサーとカメラをRaspberryPiにつないでみた - ついてる工房
人感センサ A500BP (DSUN-PIR, SB00412A-1も) が安いだけでなく Raspberry Pi との相性もバッチリだったので、人感カメラが10分で出来てしまった話。 - Qiita
Raspberry Piに赤外線センサーを付けて、動きを検知してみた: Raspberry Piでやってみた