LoginSignup
13
34

More than 5 years have passed since last update.

Raspberry Pi3 でカメラと赤外線センサーであそぶ

Last updated at Posted at 2016-12-23

購入したもの

ラズパイはあるので、カメラ、ジャンパワイヤ、赤外線センサーを購入します。

カメラのとりつけ

そんなに難しくはないですが、カメラモジュール取り付けが初めてだったので、上に押し上げることにしばらく気づかず四苦八苦しました。
上に押し上げて(取り外しまではしない)、シールをとります。
そしてそこに隙間があるのでカメラモジュールの端子部分を USB モジュール側にむけてさしこみます。

_2016-12-23_21-24-04_658.png

カメラのチェック

ラズパイの sudo raspi-config でカメラを有効にして再起動をかけます。

そのあと、次のコマンドで画像が出力されていれば OK です。

raspistill -o /tmp/image.jpg

Raspberry Pi と赤外線センサーの接続

GPIO 18 ピンを使います。
赤外線センサーに、VCC、OUT、GND とあります。

2016-12-23_21-39-05_293.jpeg

それぞれ次の通りに接続します。

VCC → Raspberry Pi 4番ピン の 5V
OUT → Raspberry Pi  12番ピンの PWMO(18)
GND → Raspberry Pi 6番ピンの GND

_68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f33343032322f30663331316435642d636331392d623163362d323637302d6361346333363166636636352e706e67.png

※ピンについてはドキュメント参照してください。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でやってみた

13
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
34