最新ページ情報

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

mBotの「目」は超音波センサー

mBotの見た目の特徴は何といっても、笑っている表情ですよね。

mBot 超音波センサー 正面画像

この「目」ですが、実は、超音波センサーなんです。この超音波センサーはロボットプログラミング教材なんかでは、よく使われるポピュラーなセンサーです。LegoのMindstormsにもついてます。

超音波センサーの仕組みは、簡単に言うと、右目から超音波を飛ばし、何かの障害物にあたって跳ね返ってくる音波を、左目で受信します。送信してから受信するまでの時間を計る事で、距離を測定するという仕組みです。

mBot超音波センサー原理の説明画像

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

こんな感じで、壁に向けて、プログラムを実行すると・・・

mBotの超音波センサーのデータをmBlockのスプライト(パンダ)が言う画像

パンダが、こんな感じで距離を言ってくれますね。mBotの説明書通りに組み立てると、超音波センサーは、「ポート3」に繋げるので、ロボットブロックを「超音波センサー(ポート3)の距離」に設定しています。

ちなみに、障害物を検知していない時は、パンダは、「400」という数値を言います。

障害物までの距離が10㎝以下になったらmBotを止める

さて、この超音波センサーを使えば、何cm前方に障害物があるかどうかが検知できますね。この仕組みを使えば、例えば、こんなプログラムでmBotを壁との衝突から回避させる事が出来ます。

mBotの超音波センサーを使って壁衝突回避

このプログラムは、「超音波センサーで検知する距離」が10㎝以上なら、前向きに100のスピードで走り、そうでなければ、とまるというプログラムです。

 

尚、変数ブロックで、距離を作成して、このようなプログラムを組んでも同じ動きになります。

mBotの超音波センサーを使って障害物を回避するプログラム(変数利用)画像

変数は、今後も複雑な計算式が必要になるプログラムでは、必須ですが、言葉で言うと、「値を入れる箱」というような説明になったりして、初心者、特にお子さんでは、直感的には分かりにくいでしょう。

なので、初めの簡単なプログラムの段階から、変数に慣れておけば、自然とイメージが身につくんじゃないでしょうか?(プログラムやプログラミング教育の専門家じゃないので、あくまで、個人的な意見としてです)

さて、ここからは、さらに応用ですが、「乱数」ブロックを用いて、障害物があったら、右か左どちらか、ランダムに方向転換するというプログラムを作ってみます。

mBotの超音波センサーを使って壁の衝突回避(乱数利用)

こうすると、mBotが、障害物に囲まれた中で、うろうろする動きをさせる事が出来ます。

プログラムだけじゃなくて、機能拡張パック「サーボパック」を使うと、更に、超音波センサーを動かしながら障害物を検知させるような、応用プログラムを作ることもできます。

サーボパックのレビューも良かったらご覧ください。

mBot 機能拡張パックレビュー サーボパック編

 mBotを活用したロボコンである「MakeX」の競技の中でも、超音波センサーを活用する場面は頻繁にありますので、ぜひ、使いこなせるようにしたいですね。
※参考記事:MakeXとは→