13:18:31)追加された行はこの色です。削除された行はこの色です。黒部分がCROSS_TIMEより続いたら交差点として判別する。境界部分がBALANCE_TIMEより続いたら機体がまっすぐとして判別する。[#ca9f59fc]基本動作のマクロです。top:前進#ref(2016a/Member/kurokouchi/Mission2/08.png,100%,01)角度を戻してそのまま直進する。left:左折#ref(2016a/Member/kurokouchi/Mission2/07.png,100%,01)角度を戻してそのままライントレースさせる。right:右折#ref(2016a/Member/kurokouchi/Mission2/09.png,100%,01)角度を右寄りにして外側の線に機体を移動する。[#y54b4306]今回の課題ではライントレースでの移動をスムーズにするために、左右の境界部分のライントレースプログラムを作成した。光センサーが黒部分の判定をしている時にカウントをして、0.4秒以上続いたら交差点として判別する。黒部分以外の時はClearTimer(0)でFastTimer(0)を初期化する。ここで、指定秒数を変数としてl_timeをグローバル変数として定義する。ライントレース開始時にClearTimer(1)でFastTimer(1)を初期化する。[#s1bbda60]上記のライントレース用プログラム内の交差点判別部分について詳しく説明する。}交差点は黒部分が長く続いた時に交差点として判別するようにした。そこでタイマーを使い黒部分以外の時は以下の関数でタイマーを初期化するようにした。交差点と判別したことが分かるように、判別したら音を鳴らすようにした。ClearTimer(0);タイマーがCROSS_TIMEより長い時間が経過した時に交差点として判別する。CROSS_TIMEは40とする。if(FastTimer(0)>CROSS_TIME)しかし、上記のプログラムではカーブを交差点として誤判別してしまう事があるので、それを防ぐためにタイマーをもう一つ追加して次の指定秒数をカウントしなければ交差点と判別しないようにした。if(FastTimer(0)>CROSS_TIME&&FastTimer(1)>l_time)l_timeを上記の指定秒数として、メインプログラムで指定する。[#a7ef2032]C,Dに置いたコップを正確に取るために、ラインを使い機体の姿勢をまっすぐにするプログラムを作成しました。光センサーが境界部分の判定をしている時にカウントをして、タイマーがBALANCE_TIME以上になったら機体の姿勢をまっすぐとして判別する。境界部分以外の時はClearTimer(0)でFastTimer(0)を初期化する。ライントレースをする時間を指定しなければ、姿勢がまっすぐにならない場合ライントレースをし続けてしまい、C,Dに置いてあるコップをとることが出来なくなってしまうので追加しました。姿勢制御プログラム開始時にClearTimer(1)でFastTimer(1)を初期化する。[#g5f4ea3c]姿勢制御プログラムは、交差点判別プログラムを応用して作成しました。交差点判別プログラムとの違いは、黒部分の判定ではなく境界部分の判定であることです。#ref(2016a/Member/kurokouchi/Mission3/01.gif,nolink,left,around);姿勢制御プログラムは、交差点判別プログラムを応用して作成しました。交差点判別プログラムとの違いは、黒部分の判定ではなく境界部分の判定であることです。ラインの長さは限られているので、一定時間が経過しても姿勢がまっすぐにならなければ、一度処理を止めて後退してからまた姿勢制御プログラムを開始するようにしました。[#o0a89cab]今回の課題で最も重要であるコップの取得プログラムです。//光センサーがコップを感知するまで前進する。[#v23d196e]ゴール地点の四角の中に入るために、最後の交差点を判別したら以下の処理を実行する。#ref(2016a/Member/kurokouchi/Mission2/05.png,100%,01)C地点からA地点までのタイムは1分10秒でした。[#af5aefdb]C地点からA地点までのタイムは1分10秒で到達タイムが1分切れなかったことが残念でした。到達率がほぼ10割で、安定性のあるプログラムが書けたことはよかったです。今回の課題から光センサーを使い始めたので一つ一つの動作を時間指定しなくてよくなった部分があり電池の残量などによる動作の不安定さがなくなった分、プログラムが複雑になったと感じました。機体の都合で増やした処理もあったのでロボット本体にもう少し工夫した方が良かったと思いました。次回の課題ではプログラムだけではなくロボットにも工夫したいです。