†ベースはそのまま使用し、前方の光センサーを少しタイヤ近づけました。†ロボットの後ろタイヤを外し、カーブを曲がりやすくしました。カーブを曲がりやすくしたことで短い区間でも機体の姿勢を戻すことが出来る様になりました。機体が左右に細かく動くためタイヤが外れやすくなりました。交差点をカーブとして認識することが多いことなど安定性があまりないため上の機体の状態に戻しました。線の左側境界部分をトレースするプログラムです。センサーの値:38未満とする。光センサーが黒部分の判定をしている時にカウントをして、0.3秒以上続いたら交差点として判別する。黒部分以外の時はClearTimer(0)でFastTimer(0)を初期化する。ここで、指定秒数を変数としてl_timeをグローバル変数として定義する。ライントレース開始時にClearTimer(1)でFastTimer(1)を初期化する。上記のライントレース用プログラム内の交差点判別部分について詳しく説明する。}交差点は黒部分が長く続いた時に交差点として判別するようにした。そこでタイマーを使い黒部分以外の時は以下の関数でタイマーを初期化するようにした。交差点と判別したことが分かるように、判別したら音を鳴らすようにした。ClearTimer(0);タイマーが0.3秒より長い時間が経過した時に交差点として判別する。if(FastTimer(0)>30)しかし、上記のプログラムではカーブを交差点として誤判別してしまう事があるので、それを防ぐためにタイマーをもう一つ追加して次の指定秒数をカウントしなければ交差点と判別しないようにした。if(FastTimer(0)>30&&FastTimer(1)>l_time)l_timeを上記の指定秒数として、メインプログラムで指定する。角度を戻してそのまま直進する。角度を戻してそのままライントレースさせる。角度を右寄りにして外側の線に機体を移動する。上の様な交差点判別するにはロボットの姿勢をすぐに戻さなければいけないが、機体の性能上判別が困難なため以下のプログラムを追加した。}これによってひとつ前の交差点から線の左側をトレースしていたものを右側をトレースさせるようにした。†ゴール地点の四角の中に入るために、最後の交差点を判別したら以下の処理を実行する。C地点からA地点までのタイムは1分10秒でした。†C地点からA地点までのタイムは1分10秒で到達タイムが1分切れなかったことが残念でした。到達率がほぼ10割で、安定性のあるプログラムが書けたことはよかったです。今回の課題から光センサーを使い始めたので一つ一つの動作を時間指定しなくてよくなった部分があり電池の残量などによる動作の不安定さがなくなった分、プログラムが複雑になったと感じました。機体の都合で増やした処理もあったのでロボット本体にもう少し工夫した方が良かったと思いました。次回の課題ではプログラムだけではなくロボットにも工夫したいです。