走れmicro:Maqueen 黒線を見つけろ!!

5.ライントレースプログラム

まず、黒線に沿って走る方法を考えましょう。
どのようなコース取りがあるのかを探り出すと、自然と必要なプログラム(処理)が見えてきます。

 下図のAのように、直進の場合はラインセンサーの左右が黒線「0」の上にあれば、うまく動きそうです。

 BとCは、カーブが始まったところです。
このまま直進では、Maqueenがコースから外れてしまいますので、動きを直さなければなりません。
例えば、Bの左カーブではラインセンサー右が白「1」に変わったときに、Maqueenを左に曲げれば良さそうです。
この修正は、Aで直線を走行していて、左右にはみ出ても同じことが言えます。

これで黒線に沿って走れそうです。
必要な処理をまとめると、次のようになります。

A.もし、ラインセンサー左が かつ ラインセンサー右が黒 なら
 左右のモータを前に回す ・・・ 直進する
 (音も鳴らす)

B.もし、ラインセンサー左が かつ ラインセンサー右が なら
 右のモータを前に回す
 左のモータを止める ・・・ 左にカーブする
 (低い音も鳴らす)

C.もし、ラインセンサー左が かつ ラインセンサー右が なら
 右のモータを止める
 左のモータを前に回す ・・・ 右にカーブする
 (高い音も鳴らす)

これらの3つの状態に対処できるプログラムは、次のようになります。

さっそく、サーキットコースで走らせてみましょう。

モータを回す値を、100以外でも試してみてください。

プログラムの作り方は複数ありますが、今回は「ずっと」のブロックを3つ使った例です。

このようなプログラミング方法を、「並列処理」と呼んでいます。
通常プログラムは上から下へ順番に実行されていくので、下にある命令は優先順位が低く後回しになります
「並列処理」では、それぞれ同時に処理されていくので、優先順位が平等になります。
なお、厳密には並列処理は同時ではなく、それぞれの処理が少しづつ高速に切り替わって実行されます。

今回は、並列処理の利点よりも、3つの状態を解りやすくするために使用しました。