熊おふし五郎が行く

主にマイコンボードを動かした記録を書いています

Micro:bit、Micropython、赤外線モーションセンサ(PIR AM312)で人体を検出する

PIRモーションセンサ

PIRモーションセンサは、人体を検出するセンサです。このセンサは焦電型赤外線センサともいいます。温度をもつ人体から放射されている赤外線を含む光を焦電効果によって検出します。また、フレネルレンズを装着することがあります。フレネルレンズは、レンズ表面に同心円状の切れ込みを入れて、レンズの大きさや厚みを抑えています。

f:id:bear_9973:20201108163245p:plain:w400
PIRモーションセンサの仕組み

  • 光を検出
  • 光を電気に変換(スイッチ)
  • 接触センサー
  • 受動的センサ

PIRモーションセンサモジュール

ここでは、KEYESTUDIO製BBC Micro: bitのスターターキットにあるPIRモーションセンサモジュールを使用します。

f:id:bear_9973:20201108163522j:plain:w200
PIRモーションセンサモジュール

他メーカーのPIRモーションセンサモジュールを購入するときは、 周辺回路にご留意してください。

インターフェース

本モジュールからMicro: bitへデジタル信号を入力します。

MicropythonとMicro:bit

人体を検出するサンプルソフトを以下に説明します。

フロー

サンプルプログラムのフローを以下に示します。

  1. 通常は、LEDディスプレイがNOを表示
  2. 人が来たとき、YES(チェックマーク)を表示

接続

接続表と接続図(写真)を示します。

Micro:bit モジュール
P0 S
3V +
GND -

f:id:bear_9973:20201108164035p:plain:w400
構成図

コード

from microbit import *

# Micro:bitを初期化
display.clear()  # LEDディスプレイを初期化
pin0.set_pull(pin0.NO_PULL)  # ピンの状態

sleep(10000)  # Warm-up time, 10 sec

while True:
    if pin0.read_digital():
        display.show(Image.YES)
    else:
        display.show(Image.NO)
    sleep(100)

結果

手を検出するとLEDディスプレイがYESを表示します。

f:id:bear_9973:20201108164341j:plain:w500
動作状況

他メーカーのPIRモーションセンサモジュールを購入するときは、 周辺回路にご留意してください。