熊おふし五郎が行く

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

Micro:bit、Micropython、転倒スイッチで転倒を検出する

デジタルチルトセンサ

デジタルチルトセンサは、転倒または傾きを検出するセンサです。このセンサの内部には、回路に接続するピンとボールがあります。センサが直立しているときは、ボールはピンと接触して、電流が流れます。センサが傾いたときは、ボールはピンから離れて、電流が流れません。

f:id:bear_9973:20201108144425p:plain:w200
デジタルチルトセンサの仕組み

  • 傾き・転倒を検出
  • 傾きまたは転倒の検出を電気に変換(スイッチ)
  • 接触センサー
  • 受動的センサ

デジタルチルトセンサモジュール

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

[f:id:bear_9973:20201108144627j:plain:w200
デジタルチルトセンサモジュール

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

インターフェース

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

MicropythonとMicro:bit

傾き・転倒を検出するサンプルソフトを以下に説明します。

フロー

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

  1. 傾きを検出したときは、LEDディスプレイがNOを表示
  2. 傾きを検出していない(倒れていない)ときは、LEDディスプレイがYES(チェックマーク)を表示

接続

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

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

f:id:bear_9973:20201108145101p: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.NO)
    else:
        display.show(Image.YES)

結果

デジタルチルトセンサモジュールを立てているときは、LEDディスプレイがYES(チェックマーク)を表示します。倒したときは、NOを表示します。

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

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