きっかけ
僕「人が近くを通ったら何か動く仕掛けがあると面白いな」
僕「人感センサ結構安く売ってるやん」
用意したもの
・RaspberryPi
・人感センサー
・ジャンパワイヤ
・ブレッドボード
・LED
人感センサはこんな感じ
カバーが取れるみたい(あんまり取らないほうがいいと思うけど)
秋葉原の千石電商で800円ぐらいで売っていた
(Amazonだともっと安いかも)
製造元のサイトを見るとセンサーが反応する範囲は
・3~7m
・センサーを起点に120°
(https://www.seeedstudio.com/PIR-Motion-Sensor-Large-Lens-version.html)
裏側はこんな感じ
何か動きを感知するとOUT端子の電圧がHighになる
ラズパイのGPIO等で信号を入力させて何かのトリガーにすると面白いかも
手順
接続
LEDと接続してセンサーが作動するかテストする
今回は適当に抵抗とかは接続せずに直接やった(気にする人は抵抗入れると良いかも)
端子 | 色 | 接続先 |
---|---|---|
Vcc | 赤 | 5 V電圧源 |
OUT | 黄 | LEDのアノード |
GND | 黒 | GND |
実際にセンサー信号でLEDを光らせるとこんな感じ(ごちゃごちゃしててすみません)
結構反応が良い
次にラズパイのGPIOにつなげる
今回はこんな感じで接続
端子 | 色 | 接続先 |
---|---|---|
Vcc | 赤 | 5 V電圧源 |
OUT | 黄 | GPIO 16 |
GND | 黒 | GND |
GPIOで入力した信号を検知するプログラム
ただのGPIOの入力状態を検知するプログラムをpythonで書く
# -*- coding:utf-8 -*-
import time
import RPi.GPIO as GPIO
sensor_pin = 16
GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor_pin, GPIO.IN)
while True:
if( GPIO.input(sensor_pin) == 0 ):
print ("OFF")
else:
print("ON")
time.sleep(1)
プログラムを走らせると...
root@raspberrypi:/home/pi# python3 human-sensor.py
ON
ON
OFF
OFF
OFF
OFF
OFF
ON
ON
OFF
ON
ON
ON
OFF
ON
ON
OFF
ON
ON
人感センサの感知に合わせてGPIOの入力値を取得することができた
今後は何かと組み合わせて面白いものを作りたいと思います
参考にしたサイト
・センサーの製造元のサイト
https://www.seeedstudio.com/PIR-Motion-Sensor-Large-Lens-version.html
ありがとうございました