前回の工作と前々回の成果、それから(開催を目指している)ロボコンのルール(草案)を踏まえ、ライントレースのプログラムを改造してみました。
50行目からがライントレースのコードです。OUT2とOUT5で左右のモーターを制御しながら白線に沿って進みます。終端(左右ともに白いエリア)に着いたら、少しだけ前に進んで、右手を下ろして(PWM3,50)一時停止します。その後、180度反転(OUT1,0:OUT2,1:OUT5,0:OUT6,1)して隣のコースを再びトレースしながら帰ってきます。
1 @ARUN
10 OUT1,0:OUT2,0:PWM3,50
20 PWM4,240:OUT5,0:OUT6,0
30 PWM3,150
40 LED1:WAIT60:LED0
50 R=ANA(0):L=ANA(2)
60 IF R<500 AND L<500 GOTO110
70 IF L>500 OUT2,1 ELSE OUT2,0
80 IF R>500 OUT5,1 ELSE OUT5,0
90 WAIT10
100 GOTO50
110 OUT2,1:OUT5,1
120 WAIT120
130 OUT2,0:OUT5,0:PWM3,50
140 WAIT120
150 OUT1,0:OUT2,1:OUT5,0:OUT6,1
160 WAIT110
170 OUT1,0:OUT2,1:OUT5,1:OUT6,0
180 WAIT120
190 PWM3,150:PWM4,140
200 GOTO50
※ Hailege製のセンサー(黒いほど値が大きくなります)に合わせた閾値設定になっています。使用するセンサーの仕様に合わせて、60-80行目の条件を変更してください。また、150-160行目のUターンに要する時間もマシンによって異なります。適宜調整が必要です。
シートの黒い部分をつや消しスプレーで再塗装したおかげでセンサーの反応は良好ですが、マスキングが下手すぎて、ちょっと汚くなってしまいました。大会では使い捨てのつもりで大型のマット紙に印刷するなどの対応が必要かもしれません。