先日、「マイクロビットロボカー」をつくりました(記事は こちら)。
ふたつのモーターで動く車です。マイクロビットでモーターを制御することで、前進、後進、右折、左折など、自由に動かすことができます。
今回は、「マイクロビットロボカー」に「超音波距離センサ」を取り付け、障害物に近づいたら自動で向きを変えるようにしてみたいと思います。
使用する超音波距離センサは、共立エレショップで購入した、Adafruitの「HC-SR04互換超音波距離センサ(ID-4007)」です。
HC-SR04互換の超音波距離センサで、電源電圧3V、5Vのどちらでも使用可能なものです。
超音波距離センサをブレッドボードに取り付け、4つの端子「Vcc」「Trig」「Echo」「Gnd」を、それぞれマイクロビット(ブレイクアウトボード)の「3V」「8」「12」「GND」につなぎます。
ブレッドボードは、センサが前を向くように、ロボカーの全面に貼り付けておきます。
プログラムはこちらです。
MakeCodeエディタにて、「高度なブロック」>「拡張機能」で「sonar」を選択し、その中にある「ping」というブロックで距離を調べます。
通常は直進しますが、障害物との距離が20センチ以下になると、一旦停止し、右折もしくは左折します。右折か左折かはランダムに決まります。
プログラムをマイクロビットに書き込み、電池ボックスのスイッチをONにすると、ロボカーが動きます。
通常は直進し、壁に近づくと右または左に向きを変えます。
なお、私の持っている超音波距離センサは、電源電圧が低めでは安定して動作しませんでした。
今回は、単三型Ni-MH電池を使ったのですが、電池2本(電源電圧1.2V × 2 = 2.4V)では安定して動作しなかったため、電池3本(電源電圧1.2V × 3 = 3.6V)で動かしています。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。