ライントレースに入りました。黒い線をたどって走らせる回です。今回はセンサーを「色モード」で使い、白か黒かだけを見て走らせました。
ロボットは線が見えていない
ライントレースという言葉を聞くと、ロボットが線を見ながら走っているように思えます。実際にやっていることは、もっと単純です。
「いま下にあるのは白か、黒か」
これを何十回も調べているだけ。それだけで線をたどれてしまいます。
センサーには使い方(モード)がいくつかあります。今回使った色モードでは、センサーが「白」「黒」と色の名前で答えてくれます。だから明るさの数字を測る作業がいりません。
センサーは線の上に乗せない
今回いちばん大事だったのは、センサーの付け方です。2つのセンサーは、線の上ではなく、線をまたいで付けます。
【上から見たところ・うまく走れているとき】
● ● ← 左センサー 右センサー
┃
┃ ← 黒い線は、2つの「あいだ」を通る
┃
どちらのセンサーも「白」を見ている。
つまり、ちゃんと走れているときは、どちらのセンサーも白を見ています。黒が見えたら、それは「ずれた」という合図になります。
ロボットが右へずれると、線は左へはみ出します。だから左のセンサーが黒を見ます。戻るには左へ曲がればいい。覚えることは1つだけです。黒が見えたほうへ曲がる。
4つに分ける
センサーが2つあると、組み合わせは4通りになります。授業で使った表がこれです。
直線では2つのセンサーが線をはさんでいるので、どちらも白。カーブにさしかかると、内側のセンサーが先に線に乗ります。そこで曲がれば、線のまんなかに戻れます。
プログラムの形
「もし」の中に、もう一つ「もし」を入れます。これを入れ子といいます。
1段めでセンサー1を調べ、その結果ごとに2段めでセンサー2を調べています。どの場合でも必ず1つの動きに決まる、というのがこの形の大事なところです。
実際に組んだプログラムがこちらです。
白・白なら左右とも50。白・黒なら右のモーターを0にして右へ。黒・白なら左を0にして左へ。曲がる強さは、この数字を変えて調整します。
作る順番も決めました。最初から4つ全部を作ろうとすると、どこが悪いのかわからなくなります。まず「まっすぐ進む」だけ。次に「左が黒なら左へ曲がる」を足す。次に「右が黒なら右へ曲がる」を足す。最後に「黒・黒」の場所を作る。1つ足すたびに走らせます。
「黒・黒」は何もしない
4つめだけ、わざと空けてあります。
両方のセンサーが黒になるのは、交差点にさしかかったとき、線が太くなっているとき、ゴールの印、カーブが急すぎて線を乗り越えたとき。つまりひとつに決まりません。
「右へ曲がる」とも「左へ曲がる」とも決められないものに、むりやり動きを決めると、かえっておかしな走り方になります。今回はとりあえず前進のままにして、次に持ち越しました。
色モードの弱点
速さを上げていくと、うまく走らなくなります。理由は2つあります。
色モードは少し遅い。色の名前を決めるのに時間がかかるため、速く走るとセンサーが答える前に通りすぎてしまいます。
「あいだ」が苦手。線のふちは白と黒の中間です。ここを「白でも黒でもない」と答えることがあり、するとプログラムのどこにも当てはまらず、ロボットが迷います。
この2つは、同じセンサーを別のモード(反射光)で使うと、どちらもおさまります。そのかわり、白と黒の明るさを数字で測って境目を自分で決める作業が増えます。
よくあるつまずき
この課題でうまく動かないとき、原因はたいてい次のどれかです。
センサーが線の上に乗っている(またいでいない)。センサーが床から離れすぎている。左右のセンサーを逆につないでいる。曲がる向きが逆になっている。「もし」の中に入れるべきブロックが、外に出てしまっている。スピードが速すぎる。
原因はこちらからは伝えません。どこまでは合っているかを一緒に確認しながら、本人に探してもらいます。
次回
同じ「線をたどる」を、反射光でやり直します。色の名前ではなく、明るさを数字で読むやり方です。
プログラムの形(4つの分かれ道)はそのまま使います。変わるのは「白か黒かをどう判定するか」の部分だけなので、今回の作業はそのまま土台になります。
ロボサイエンスでは、ロボットの製作とプログラミングに取り組みます。初級から始めて、ロボカップジュニアなどの大会に挑戦するクラスまで進めます。プログラミングと電子工作の経験は問いません。