私は、小学生に電子工作やマイクロビットプログラミングを教えるボランティアグループのメンバーになっています。
このグループのメンバーの方が、マイクロビットとフォトリフレクタを使って「10秒ゲーム」というものをつくりましたので紹介します。
フォトリフレクタの前で指などを早く動かし、10秒間に何回動かせたか競争するゲームです。
使用するフォトリフレクタは、秋月電子で販売されている「フォトリフレクタ(反射型フォトセンサ)LBR-127HLD(P-04500)」です。
このように接続します。
ユニバーサル基板を使います。
子供が少々手荒に扱っても大丈夫なように、カバーをつけておきます。
ワニ口クリップ付きコードを使って、マイクロビットと繋ぎます。
まずは動作確認のため、フォトリフレクタで読み取った値をシリアル通信で書き出してみます。
スケッチは以下のとおりです。
Aボタンを押すと、フォトリフレクタが有効に、Bボタンで無効になります。
MakeCodeエディタで「Show data デバイス」をクリックすると、シリアル通信で書き出された値がグラフ表示されます。
フォトリフレクタの前に何もないときには数値は900程度になっていますが、フォトリフレクタのすぐ前に手をかざすと50程度になります。
また、フォトリフレクタのすぐ前で指を早く動かすと、波形が細かく変動します。
フォトリフレクタの動作が確認できたので、ゲームをつくります。
スケッチは以下のとおりです。
Aボタンを押すとゲーム開始です。
「端子P2に負パルスが入力されたとき」で、指を動かした回数(得点)をカウントします。
カウントするのはゲーム開始から10秒間です。
ゲーム開始時にフォトリフレクタを有効(P1をHigh)にし、ゲーム終了時に無効(P1をLow)にします。
ゲームが終了したら得点を表示します。
実際に子供たちに遊んでもらったところ、結構盛り上がりました。
ただ、指をフォトリフレクタのすぐ前で動かさないとカウントされないようで、指をかなり早く動かしていたのに得点が一桁なんてこともありました。