micro:Maqueen V3.0【衝突回避編】
micro:Maqueen V3.0に搭載されているSR04/SR04P超音波センサーインタフェースと超音波センサーHC-SR04で距離を測定するプログラムを3種類紹介します。
この記事は、DFROBOTの「micro:Maqueen V3.0」を使ったプログラミングです。micro:Maqueenは「付録3-12.micro:Maqueen V3.0」で詳しく紹介しています。また、組み立て方法は「5-2.micro:Maqueen V3.0【組み立て編】」で解説しています。
5-4-1.超音波センサーHC-SR04とは
micro:Maqueen V3.0は、シャーシ(基板)の上部にSR04/SR04P超音波センサーインタフェースを搭載しています。ここに、同梱されている超音波センサーHC-SR04を取り付けることができます。micro:Maqueen V3.0をキュートな表情にしているぱっちり目玉ですが、実は超音波センサーだったのです。このセンサーで物体までの距離を測ります。
超音波センサーとは
超音波センサーは「超音波を発信してから、物体に反射して戻ってきた超音波を受信するまでの時間」を測定することで物体までの距離を求めます。超音波は、1秒間におよそ340メートル進むので、340[m/s]×時間[s]の半分(往復の時間のため)が物体までの距離[m]となります。
HC-SR04とは
micro:Maqueen V3.0に同梱されているHC-SR04は、電子工作などでよく使われる超音波センサーのひとつです。目のように見える円筒状のものが超音波を受発信する部分で、向かって左側から発信され、右側で受信します。背面には制御回路があります。
HC-SR04で測定できる距離は2cm~400cmで、分解能は3mmとなっています。また、測定角度は15度以内です。
5-4-2.このプログラムの動作に必要なもの
このプログラムの動作には次のものが必要です。
- micro:bit本体(micro:Maqueen V3.0用)
- micro:Maqueen V3.0(別途、単四型乾電池×3本を用意する)
- パソコン(*1)
- USBケーブル(*1)
(*1):パソコン・USBケーブルは、プログラミングに必要なものです。
5-4-3.距離を測定するプログラム
最初に、超音波センサーHC-SR04で測定した距離を、micro:bitのLED画面に表示してみましょう。なお、このプログラムには、拡張機能「maqueen」の追加が必要です。
距離を測定するプログラム
「超音波センサーの値」というブロックを使って、超音波センサーHC-SR04から距離を取得します。
プログラムをmicro:bitに転送して、micro:Maqueen V3.0のスイッチをONにすると、LED画面に距離が表示されます。超音波センサーHC-SR04に手をかざして、距離が表示されることを確認しましょう。
5-4-4.障害物があると停止するプログラム
次に、micro:Maqueen V3.0が、前進している途中で障害物を発見すると停止するプログラムを作ります。micro:Maqueen V3.0の走行中、超音波センサーHC-SR04を使うと、前方にある障害物までの距離を測ることができます。
障害物があると停止するプログラム
超音波センサーHC-SR04で測定した距離が20cm未満になると、モーターを停止します。
プログラムをmicro:bitに転送して、micro:Maqueen V3.0のスイッチをONにしましょう。micro:Maqueen V3.0が前進して、壁などの手前で停止します。
このプログラムでは、モーターを停止する条件として、距離20cm未満を指定しています。実際に、micro:Maqueen V3.0が、壁の手前で停止したときの距離をものさしなどで測ってみましょう。実際の距離のほうが短くなります。どうしてそうなるのでしょうか。
5-4-5.障害物を回避するプログラム
最後に、障害物を発見したときに停止するのでは無く、回避して、走り続けるプログラムを作ります。回避する方法はいくつか考えられますが、ここでは、右方向への回転動作とします。
障害物を回避するプログラム
超音波センサーHC-SR04で測定した距離が20cm未満になると、右側のモーター(M2)を逆回転(CCW)します。
プログラムをmicro:bitに転送して、micro:Maqueen V3.0のスイッチをONにしましょう。micro:Maqueen V3.0が、障害物を右回りで回避しながら走行するようすが観察できます。