マイクロビットで赤外線反射センターを使ってみます。
赤外線反射センサーは赤外線を飛ばして対象物に反射して戻ってきた時の値を使ってセンサーと対象物の距離を測定するパーツになります。
今回使用する赤外線反射センサーは


TCRT5000というセンサーがはんだ付けされてすぐに使えるようになっているモジュールを使っています。
TCRT5000 赤外線 障害物回避モジュール IR反射センサモジュール トラッキングセンサー 赤外線反射型光電 - Amazon
TCRT5000は端子がVCC、GND、DOとAOがあり、マイクロビットと下記のように繋ぎます。
| TCRT5000 | microbit |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DO | GPIO 0 |
か
| TCRT5000 | microbit |
|---|---|
| VCC | 3.3V |
| GND | GND |
| AO | GPIO 0 |
になります。
DOはDigital Outputの略になりまして、AOはAnalog Outputの略になります。
DOは「反射があるか、ないか(白か黒かの判定も有り)」を 0 か 1 の2値だけで判断するモードになりまして、対象物がセンサーから一定以内の距離にある時は 0 (Low)の値になり、対象物が一定以上離れていた時には 1(High) になります。
AOは「反射した赤外線の量を電圧の強さ」になりまして、対象物からの距離を0 〜 1023の範囲(マイクロビットの場合)で測定します。
今回はDOに繋いでみます。
DOは反射がある(対象物が近い)時は 0 (Low)になり、反射がない場合は 1 (High)になり、ジャンパー線を繋いだ後に特に気にせずコードを書くと動作しません。
コードを書く時はマイクロビットとタクトスイッチでプルアップ抵抗について触れてみるで触れましたプルアップ抵抗を設定する必要があります。

最初にブロック内で端子P0をプルアップするを入れる事が重要です。
フラッシング後の動作確認で、対象物が近い時は

矢印の箇所のLED(AOの近く)が緑色に点灯し、マイクロビットには 0 (Low)の値が送信されています。
対象物が遠い時はLEDの緑色が消灯し、マイクロビットには 1 (High)の値が送信されています。
DOで繋いだ時のセンサーと対象物の距離は

裏側にあります半固定抵抗(トリマポテンショメータ)で調整できます。
センサーと対象物の距離をより狭くにする時は精密ドライバーで①の方にまわして調整します。
センサーと対象物の距離をより広くにする時は②の方向に回して調整します。
MicroPythonへの書き換え
from microbit import *
# GPIO 0 でプルアップに設定する
pin0.set_pull(pin0.PULL_UP)
while True:
if pin0.read_digital() == 0:
display.show(Image.YES)
else:
display.show(Image.NO)