前提・実現したいこと
2つのOFF/ONセンサー(光検知)を使って、1方向に通過したことを判断しアクションを起こしたい。
◆ここに質問の内容を詳しく書いてください。
2つの同じ赤外線検知式センサーがあり、信号はOFF(1)、ON(0)を出します。
これをうまく判断して、順方向へ通過した人は〇、逆から入ろうとした人には×をだします。
駅の自動改札では、入り口側から入ると通過できますが、出口側から入ろうとすると検知されてバタンとドアが閉まります。このイメージです。
X地点からY地点に行こうとすると”〇”マークがでるけれど、Y地点からX地点に行こうとすると”×”マークが出るようにしてみました。
下記を考えました。
・センサー1(P0)が先にONになったあと、センサー2(P1)がONになったら 〇マークを出す
・センサー2(P1)が先にONになったら、逆から進入と考えて、×マークを出す。
ただしく検知できるプログラムの組み方、またはコード順番等お分かりの方がいらっしゃればお教えください!
発生している問題・エラーメッセージ
◇順方向への通過とする条件1
時系列 | センサ1=P0 | センサ2=P1 |
---|---|---|
最初 | ON | OFF |
Z秒後 | OFF | ON |
→いまは×マークがでる。 (〇が出てほしい★)
◇順方向への通過とする条件2(長いものが通ったと判断)
時系列 | センサ1=P0 | センサ2=P1 |
---|---|---|
最初 | ON | OFF |
Z秒後 | ON | ON |
→なにもでない (〇が出てほしい★)
◇順方向への進入だが立ち止まっていると考える条件
時系列 | センサ1=P0 | センサ2=P1 |
---|---|---|
最初 | ON | OFF |
Z秒後 | ON | OFF |
→何もでない。(想定通り)
◇逆方向への通過とする条件
時系列 | センサ1=P0 | センサ2=P1 |
---|---|---|
最初 | OFF | ON |
Z秒後 | すべての状態 | すべての状態 |
→×がでる。(想定通り)
該当のソースコード
つくったプログラムはこちら
https://makecode.microbit.org/_YggMftKoCczw
補足情報(FW/ツールのバージョンなど)
Microbitバージョン1です。
ブロックを使っています。センサはIRディスタンスというOFF/ONを検知します。ONが0でOFFが1です。
回答2件
あなたの回答
tips
プレビュー