「反射型フォトセンサーで白色と黒色を判定してみよう。」では、シールド経由でmicro:bitに接続した反射型フォトセンサー(フォトリフレクター)に白色または黒色の紙を近づけると、 LEDマトリックスに0または1が表示されるプログラムを、MakeCodeを使って作成します。
はじめに
「micro:bitとキットでマイコン制御」では、micro:bit V2(以下 micro:bit)と市販のセンサーキットの「KEYESTUDIO 37センサースターターキット micro:bit V2付」(以下 キット)を使ってマイコン制御の基本を実習します。
実習はkeyestudio.comが投稿しているwiki(KS0361(KS0365) keyestudio 37 in 1 Starter Kit for BBC micro:bit)を二次利用して行います。
ライセンス
図やソースコード(ブロック)等、すべての内容はCC BY-SA 4.0ライセンスに従います。
実習準備
実習に必要な機器とキットの部品を準備します。
機器
「micro:bitとキットでマイコン制御:micro:bitをMakeCodeで使ってみよう。」記事で書きましたmicro:bitと、MakeCodeをインストールしたWindows11搭載のパソコンを準備します。
部品
反射型フォトセンサーを、Micro bit Sensor Shield V2(以下 シールド)にワイヤーで接続して使います。
▶️反射型フォトセンサー(フォトリフレクター)
反射型フォトセンサーは色に対する赤外線の反射率の違いを利用し、反射信号の強さを電流信号に変換します。
センサーが黒い色を検出すると、赤外線が放射されていないか、放射された光線の強度が十分でないため、センサーの信号端子はHighレベルを出力し、それ以外の場合はLowレベルを出力します。
このように、センサーの信号端子のHighレベルかLowレベルによって、検出された色を判断することができるため、マイコンカーの位置検出(ライントレース)等に利用されています。
注:モジュール上のポテンショメータにより、感度を調整します。

▶️ジャンパーワイヤー(メスーメス) 20cm
40本が一束になっていますので、接続する本数だけ分けて使います。

配線
配線のためのジャンパーワイヤーは、必要な本数を分けてください。
配線するときは、micro;bitのUSBケーブルを取り外して行ってください。
配線図
反射型フォトセンサーとシールドをジャンパーワイヤーで接続します。

配線リスト
反射型フォトセンサー | シールド | 備 考 |
Gまたは-ピン | G-2ピン | |
Vまたは+ピン | V1-1ピン | |
Sピン | S-0ピン |
外付けバッテリー
反射型フォトセンサーに使われている「TCRT5000」は5Vの電源供給が必要なため、マイクロビットから供給される3Vでは正常に動作しません。
キットに付属されている、バッテリーケース(Premium Battery Case 6-cell AA)に単三電池を6本装着して、シールドに接続し5Vの電圧を反射型フォトセンサーに供給します。


シールドの電圧選択ジャンパーで、供給電圧を5Vに設定します。

プロジェクト
「反射型フォトセンサーで白色と黒色を判定してみよう。」は、シールドに接続した反射型フォトセンサー(フォトリフレクター)に白色または黒色の紙を近づけると、 LEDマトリックスに白色ならば0、黒色ならば1が表示されるプロジェクトです。
プロジェクトの作成
配線したmicro:bitにUSBケーブルを取り付け、MakeCodeを起動します。
「新しいプロジェクト」をクリックして、プロジェクト(mb014-FollowBlackLine)を作成します。
プロジェクトはダウンロードしたKEYESTUDIO 37のマニュアルの「2.Makecode Tutorial - Makecode - Project 25_Follow Black Line」を参考にしています。
プロジェクトの作成手順やブロックの配置方法については、こちらを参考にしてください。

プロジェクトをmicro:bitへ転送
作成したプロジェクトをmicro:bitに転送して、実行できるようにします。
転送方法はこちらを参考にしてください。
コピーが完了すると、プログラムが起動し、反射型フォトセンサー(フォトリフレクター)に白色または黒色の紙を近づけると、 LEDマトリックスに白色ならば0、黒色ならば1が表示されます。
まとめ
シールドに接続した反射型フォトセンサー(フォトリフレクター)に白色または黒色の紙を近づけると、 LEDマトリックスに白色ならば0、黒色ならば1が表示されるプロジェクトをMakeCodeで作成しました。