このページでは、「mlock3」で解説しています。最新のビジュアルプログラミングソフト「mBlock5」での、より詳細な解説ページもありますので、そちらも合わせてご参照下さい。
■超音波センサーの基本と使い方をマスターする ーmBlock5対応版ー
https://j-tinkering.com/mblock5-mbot8/
mBotの「目」は超音波センサー
mBotの見た目の特徴は何といっても、笑っている表情ですよね。

この「目」ですが、実は、超音波センサーなんです。この超音波センサーはロボットプログラミング教材なんかでは、よく使われるポピュラーなセンサーです。LegoのMindstormsにもついてます。
超音波センサーの仕組みは、簡単に言うと、右目から超音波を飛ばし、何かの障害物にあたって跳ね返ってくる音波を、左目で受信します。送信してから受信するまでの時間を計る事で、距離を測定するという仕組みです。

mBotの超音波センサーは、3㎝~400㎝の距離を測ることが出来るという仕様ですが、誤差が大きいので、正確な距離測定には向いていないのと、タイムラグが大きいので、リアルタイムに距離を測定したいとか、高速で走るものに搭載して、障害物を検知させるというような用途には向いてません。
こんな感じで、壁に向けて、プログラムを実行すると・・・

パンダが、こんな感じで距離を言ってくれますね。mBotの説明書通りに組み立てると、超音波センサーは、「ポート3」に繋げるので、ロボットブロックを「超音波センサー(ポート3)の距離」に設定しています。
ちなみに、障害物を検知していない時は、パンダは、「400」という数値を言います。
障害物までの距離が10㎝以下になったらmBotを止める
さて、この超音波センサーを使えば、何cm前方に障害物があるかどうかが検知できますね。この仕組みを使えば、例えば、こんなプログラムでmBotを壁との衝突から回避させる事が出来ます。

このプログラムは、「超音波センサーで検知する距離」が10㎝以上なら、前向きに100のスピードで走り、そうでなければ、とまるというプログラムです。
尚、変数ブロックで、距離を作成して、このようなプログラムを組んでも同じ動きになります。

変数は、今後も複雑な計算式が必要になるプログラムでは、必須ですが、言葉で言うと、「値を入れる箱」というような説明になったりして、初心者、特にお子さんでは、直感的には分かりにくいでしょう。
なので、初めの簡単なプログラムの段階から、変数に慣れておけば、自然とイメージが身につくんじゃないでしょうか?(プログラムやプログラミング教育の専門家じゃないので、あくまで、個人的な意見としてです)
さて、ここからは、さらに応用ですが、「乱数」ブロックを用いて、障害物があったら、右か左どちらか、ランダムに方向転換するというプログラムを作ってみます。
.png)
こうすると、mBotが、障害物に囲まれた中で、うろうろする動きをさせる事が出来ます。
プログラムだけじゃなくて、機能拡張パック「サーボパック」を使うと、更に、超音波センサーを動かしながら障害物を検知させるような、応用プログラムを作ることもできます。
サーボパックのレビューも良かったらご覧ください。
mBot 機能拡張パックレビュー サーボパック編
mBotを活用したロボコンである「MakeX」の競技の中でも、超音波センサーを活用する場面は頻繁にありますので、ぜひ、使いこなせるようにしたいですね。
※参考記事:MakeXとは→