ここからが本題です。ラインの真上にカラーセンサーがくる位置でロボットを停止させます。
プログラムを考えてみました(color2.ev3)。 本来はカラーセンサーの最大値と最小値を求めてから、中間のしきい値を求めて、線の位置と幅を求めます。ロボットは一度ラインを通過してからバックして戻る必要があります。
ただし、この方法だとプログラムがすごい量になってしまいます。そこで、ここではセンサーの最低値だけを求めます。
最低値が発生した場合、その瞬間のモーターの角度を変数に格納しておきます。これで、指定の位置に戻ることができるようになります。
プログラムを実行してみましょう。
ロボットが100mmほど前進します。途中でロボットはラインを一度通過します。それからバックで戻ってラインの真上で止まりました。成功です。センサーの最低値=黒線の中心であることが確認できました。