こんにちは、のっくんです。
今日はラズパイで焦電型赤外線センサー(人感センサー)を使ってみたいと思います。
赤外線センサーは、人が発している赤外線を受け取ることができます。受け身なのでパッシブ型とも呼ばれます。
焦電型とはどう言う意味でしょうか。
焦電体とは、赤外線のようなわずかな熱エネルギーの変化を受けて電荷を発生させる物質です。
温度変化を素早くキャッチする不思議な石ころですね。
ちなみに、焦電型赤外線センサーは村田製作所が量産化に成功したようです。
人が近くに来たらLEDを光らせるようにPythonでコードを書いていきたいと思います。
使うのは、HC-SR501と言う人感センサーです。
目次
Fritzingをインストール
配線図を綺麗に描くソフトを見つけましたので今日からこれを使って、配線図を書いていきます!
Fritzingです。ダウンロードに時間がかかりました。
回路図は.fzzと言う拡張子です。直感的ですぐに使えるようになりました。
配線図
人感センサーのアイコンが無いので、以下のサイトの配線図(.fzz)をダウンロード(右下)しコピーしました。
http://fritzing.org/projects/progetto-pir-con-accensione-led

分かりやすい図ですね!
抵抗の色は適当でして、実際はLEDの方の抵抗値は330Ω、人感センサーの方は10KΩを使っています。
コード
コードはとてもシンプルです。
要は、人感センサーの値を取得して、HIGHだったらLEDを光らす。それ以外は光らせない。
これだけです。
import RPi.GPIO as GPIO from time import sleep SENSOR_PORT = 27 LED_PORT = 21 GPIO.setmode(GPIO.BCM) GPIO.setup(SENSOR_PORT, GPIO.IN) GPIO.setup(LED_PORT, GPIO.OUT) try: while True: v = GPIO.input(SENSOR_PORT) print(v) if v == GPIO.HIGH: GPIO.output(LED_PORT, GPIO.HIGH) else: GPIO.output(LED_PORT, GPIO.LOW) sleep(0.1) except KeyboardInterrupt: pass GPIO.cleanup()
最後に
人感センサーを最初使ったみたときに、人がいないのにHIGHになったりしておかしな動きをしていました。本に書いてあるセンサー(SE-10)と私の持っているセンサー(HC-SR501)が違っており、電源やGNDのピンの位置が違っていたのが原因です。センサーの裏面にVCCやGNDと書いてあったので最初から確認すれば良かった。。