片方の光センサをプラス成分、もう片方の光センサをマイナス成分として、線の位置を数値で求めます。光センサは線をはさんだ状態で置き、センサが線から外れると、反射量のバランスが崩れて、値がプラスまたマイナスに傾くわけです。
これなら、周りが明るくなっても暗くなっても、光センサの差は変わりません。
光センサを2個使うと、測定範囲が広がるというメリットもあります。
図の左側が「センサを1個だけ使った場合」、右側が「センサを2個使った場合」です。センサを2個使ったほうが黒線を検出できる範囲(青い点線の範囲)が広いことが分かります。
2つの光センサの中心に黒線を合わせてから、プログラムを実行します。
検出範囲が広がったことにより、黒線を追いかける性能が大幅にアップしました。
モータのパワー(変数power)を50%ほど大きくしても問題なく走行できました。
「明るさのムラ」にも対応できるようになりました。
ためしにスタンド型の電灯を持って、ロボットに近づけたり遠ざけたりしてみたのですが、まったく問題なく走行します。
ロボット競技の世界でもライントレースは定番なので、今回のプログラムは大いに役立つと思います。