最新ページ情報

このページは、ビジュアルプログラミングソフト「mBlock3」で解説しています。以下に、最新版の「mBlock5」での解説ページも、合わせてご覧ください。
■ mBlock5対応!mBotのライントレースセンサーの基本と使い方をマスター
https://j-tinkering.com/mblock5-mbot6/

mBotが黒い線の上を走行するのは、ライントレースセンサーのおかげ

mBotが線の上を走っている動画を見たことがある人も多いと思います。これは、mBotのラインフォロワーセンサー(ライントレースセンサー)のおかげなんです。ラインフォロワーセンサーはこちらです。ラインフォロワセンサーモジュールには、光りを発する赤外線ライトと、光りを検出するLEDフォトダイオードのセットのセンサーが2つついています。

mBotラインフォロワーセンサーの拡大図

センサーは、発光された赤外線が跳ね返ってくる量によって、白か黒かを見分けます。赤外線が多く跳ね返るのは、白いライン、跳ね返りが少ない場合は黒と判定します。

 

mBotラインフォロワーセンサー原理

※Makeblock社HPより引用

下の画像のようにこのセンサーが2つ(sensor1/sensor2)ついています。

ラインフォロワーセンサー拡大図画像

それぞれのラインフォロワーセンサーが、黒か白かを判定すると、下の図のように、全部で4種類のデータ(数値)出来るので、それをmBlockに、0~3で表示します。

センサー値 数値の意味
両方のセンサーが黒と判定
1 左のセンサーが黒、右のセンサーが白
2 左のセンサーが白、右のセンサーが黒
3 両方のセンサーが白

白い紙の上にmBotを載せると、両方のラインフォロワーセンサーが「白」と検知して、「3」数字をPCに伝えて、↑のようにパンダが「3」と言うようなことができます。

ラインフォロワーセンサーを使って、mBotが黒線上を走行するプログラム

mBotを黒線上に走行させるには、

両方のセンサーが黒→前向き
左が黒、右が白→左向き
左が白、右が黒→右向き
両方のセンサーが白→後向き

のように、走行させればよいですね、単純にそのプログラムは、こちらです。

ラインフォロワーセンサーmBlockプログラム1

ただ、ちょっと、プログラムがごちゃごちゃしていますね。
なので、やっぱり、変数ブロックを作って整理しましょう。
そのプログラムがこちらです。

ラインフォロワーセンサーmBlockプログラム2

さて、このプログラムで、mBlock(PC)から、Bluetooth無線でコントロールしてみましょう!

 そうすると、mBotは想定していたような動きはせず、黒い線からすぐに外れたり、動かなかったりしてはいませんか?

 これは、このプログラムがmBlock(PC)から実行されているためです(=mBot内にはプログラムが入っていません)。 ラインフォロワーセンサーのデータが、mBotから、一旦、PC(mBlock)に送信され、そのデータをもとに、mBotに前・左・右・後へ進むという事をプログラムが判断して、再度、mBotに送信されるという仕組みなのですが、そのプロセスには時間がかかり、その遅れ(タイムラグ)によって、超音波センサーの距離判定→mBotの制御、が間に合わないのです。

 このタイムラグの影響をなくさないと、黒線上を動くmBotは出来ません。その為に、いちいちPCとmBot間で通信しないように、mBlockで実行していたプログラムを、mCoreボードにアップロードする必要があります。

 その為には、これまで、緑の旗をクリックしたとき、キーが押された時のようなPCからのイベントブロックを使う代わりに、ロボットパレットにある、「mBot プログラム」ブロックを使います。

ラインフォロワーセンサーmBlockプログラム3

 

上のようにmBotのプログラムを書いた後、mBotプログラムのハットブロックを右クリックしましょう。

mBotプログラムをArduinoにアップロード

Arduinoにアップロードをクリックすると、こんな画面になります。

Arduinoのアップロードする

右のArduinoのコードの画面の上に「Arduinoにアップロードする」のボタンがあるので、そこをクリックすると、アップロードが開始されます。

ここで注意は、アップロードする場合は、無線ではなく、USBケーブルでmBotをPCに繋げる点です。これで、mBotは、上手く、黒線上を走行するようになったと思います。

※2019年2月7日追記:別売りの「makeblock専用送受信ドングル」を購入すると、USBケーブルなしで、Bluetooth無線でプログラムをアップロードすることが可能になります。
Bluetooth送受信ドングルの詳細はこちらでレビューています。

ちなみに、↑のプログラムですと、アップロードした瞬間から、mBotが動いてしまいますよね。

そこで、mCoreのボード上のボタンが押されたら、3秒後に走り始めるというプログラムにしてみましょう!

これで、↓の動画のような動きになります。

 

mBotのラインフォロワーセンサーは、この動画のように、ラインの上を沿って走らせるために使われることが多いですが、その他にも応用した使い方をすることが可能です。そちらの解説ページも合わせてご参考頂けたらと思います↓

mBotのラインフォロワーセンサーでラインカウントする