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

7.ライントレースを極める

「5.ライントレースプログラム」にて、黒線に沿って走ることができるようになりました。
これは、「A.黒線を直進する」、「B.黒線から右に脱輪(左へ修正)」、「C.黒線から左に脱輪(右へ修正)」の3つの走行状態を処理するようにしたからです。

 さらに、もうひとつの走行状態である「D.白紙上を走行する」場合を考えてみましょう。

7-1.ラインセンサーが両方とも白を見たときは?

D. もし、ラインセンサー左が白 かつ ラインセンサー右が白 なら ・・・ ?

え、白紙上を走ることはないし、黒線からはみ出たら曲がるから、考える必要はないかもしれないって???

では、まずBの左カーブの場合で、もう少し詳しく走行状態を説明していきましょう。

Maqueenが左へ曲がるときの様子を、ラインセンサーの左側が青色、右側が赤色の軌跡で図にしてみました。

左側の図は、軌跡を実線で書いていますが、実は人間の見え方です。
しかし、Maqueen(プログラム)には右側の図のように、点でしか見えいません。
 Maqueenは「ラインセンサーの値」ブロックを実行した瞬間にしか、白か黒を判断することができません。しかも、Maqueenがプログラムを処理するのには時間が少しかかりますので、その間にどんどん進んでしまい、次に「ラインセンサーの値」を処理したときには、少し離れたところで瞬間に見るため、点線のような見方になるのです。

この点の間隔は、動きが速ければ早いほど長くなります。すると、つぎような状態が発生するのです。

上図の左側のMaqueenのように、右センサ(赤点)が外れてから左センサ(青点)が外れれば、「左に曲がっているのにコースから外れた」とプログラムでも判断できます。
しかし右図のMaqueenのように、左右センサとも同時に外れてしまうと、「直進していたのに、突然道がなくなった」と判断されてしまうのです。

この図はコースは違いますが、左右センサが同時に外れたときと同じ状態を表しています。
また、急カーブをまがり損ねたときも、左右センサーは両方とも白を見ることになります。
特にスピードが速いと、このような状態は簡単に起きてしまうのです。

7-2.コースアウトへの対応

今回のプログラムには、コースアウトした(左右センサ―が両方とも白だった)ときは、コースへ戻るための処理を入れることにします。
さらに、直前の走行状態(直進していたのか、左右にカーブしていたのか)を変数に記憶し、その状態によってコース復帰方法をプログラムすることにします。

必要な条件と処理を書きだします。

AA.直進中だった(突然

時間差による状態の違いを知る

つづきを作成中