マイクロビット(e_29)HC-SR501 人体センサー
焦電型赤外線センサーモジュール
HC-SR501は焦電型赤外線センサ(パイロセンサ)です。動きのある人体を検知します。
静止していると検知しません。
外観
HC-SR501の外観です。ドームはフレネルレンズらしいです。<100°の範囲で検知するそうです。
ドームは簡単に外せました。中央に焦電センサがあります。窓材はシリコンでしょうか?人体検知の感度と検出後の出力保持時間を可変抵抗で調整できます。感度は検知する距離で3m~7m、保持時間は3秒~5分だそうです。
また、単発出力、検知毎に出力のモードをジャンパーで切替出来ます。
HT7133-1は電源ICでLDO 3.3Vです。HC-SR501のOUT信号は3.3Vです。
BISS0001はPIR Motion Detector ICだそうです。
実体図
HC-SR501を駆動するのに外部の5V電源を接続、HC-SR501のOUT端子とmicro:bitのpin16に接続、HC-SR501のGNDとmicro:bitのGNDも接続するだけなので接続図は省略しました。以下は実体図です。
スクリプト
HC-SR501の動作を確認します。
人体検知したらmicro:bitのディスプレイにイメージのHAPPYを表示させます。
スクリプトは以下のようにしました。※microbit-micropythonを使っています。
hcsr501_test_01.py
from microbit import *
#HC-SR501 PIR motion on > display HAPPY
dpin=pin16 # HC-SR501 out を micro:bitのpin16に接続
dpin.set_pull(dpin.PULL_DOWN) # pinの予約
display.clear()
pir=0 # HC-SR501の出力'0,1'
cnt=0 # ‘1’の連続回数
for i in range(200):
pir=dpin.read_digital()
if pir==1:
cnt=cnt+1
if cnt==1:
display.show(Image.HAPPY)
else:
cnt=0
display.clear()
print('%3d'%i, '%2d'%pir, '%2d'%cnt) #55 1 20 =>4sec
sleep(200)
display.clear()
実行結果
人体動作を検知すると実体図のようにImage.HAPPYが表示されます。
hcsr501_test_01.py
>>> %Run -c $EDITOR_CONTENT
0 0 0
1 0 0
2 0 0
3 1 1 # 検出(繰返し数 OUT値 '1'連続数)
4 1 2
5 1 3
6 1 4
省略
19 1 17
20 1 18
21 1 19
22 1 20 # 約200msecx20 4秒間出力を保持
23 0 0
24 0 0
25 0 0
省略
保持時間を最小にしてみると1.5secでした。(説明書きでは3秒)長い方は調べてません。
まとめ
HC-SR501の動きのある人体検知動作を確認しました。検知出力をmicro:bitに読み込んでディスプレイ表示をしました。