熊おふし五郎が行く

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

Micro:bit、Micropython、フォトインタラプタで遮りを検知する

フォトインタラプタ

フォトインタラプタは、光を遮ることで物体の通過を検出するセンサです。発光部のLEDと受光部のフォトトランジスタで構成されています。発光部に赤外線を使うのは、可視光による外乱を防ぐためです。

f:id:bear_9973:20201108133421p:plain:w400
フォトインタラプタの仕組み

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

フォトインタラプタモジュール

ここでは、KEYESTUDIO製BBC Micro: bitのスターターキットにあるフォトインタラプタモジュールを使用します。

[f:id:bear_9973:20201108133949j:plain:w200
フォトインタラプタモジュール

他メーカーのフォトインタラプタモジュールを購入するときは、 周辺回路にご留意してください。

インターフェース

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

MicropythonとMicro:bit

遮りを検知するサンプルソフトを以下に説明します。

フロー

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

  1. 通常(遮る物がない)は、LEDディスプレイにYESを表示
  2. 遮る物を検出したときは、LEDディスプレイにNOを表示

接続

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

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

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

コード

from microbit import *

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

while True:
    if pin0.read_digital():
        # 何か遮ったとき
        display.show(Image.YES)
    else:
        # 何も遮っていないとき
        display.show(Image.NO)
    sleep(100)

結果

ゲオカードをフォトインタラプタにとおすと、LEDディスプレイがYES(チェックマーク)を表示しました。

f:id:bear_9973:20201108135009j:plain:w400
動作状況

他メーカーのフォトインタラプタモジュールを購入するときは、 周辺回路にご留意してください。