[[2006b/MemberOnly/進行状況A]] *課題 光を追いかけるロボット [#h8afbc59] #contents *ロボット本体 [#tc595f3f] *苦労した点とその解決策・工夫した点 [#o8ce333e] +センサーの着ける位置 *プログラム [#me83035d] task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); #define Turn_Time 400 ロボットを回転させる時間です。 int light_M=0,int time_M; 変数を二つ定義します ClearTimer(0); タイマー0をクリアします while(FastTimer(0)<Turn_Time) 回転させている間・・・↓ { OnFwd(OUT_A); OnRev(OUT_C); if(light_M<SENSOR_1) 現時点での光センサーが最大値(変数light_M)より大きかった場合・・・ { light_M=SENSOR_1; 最大値を更新します ClearTimer(1); タイマー1をクリアします } } タイマー1はこの時点で最大値をとる位置からの回転した時間がはいっています time_M=FastTimer(1); すぐにもう一つの変数にタイマー1の値をいれます OnFwd(OUT_C); OnRev(OUT_A); Wait(time_M); 逆回転させて最大値のところまで戻します while(true) { OnFwd(OUT_A+OUT_C); if(SENSOR_1<SENSOR_3) 右のセンサーのほうが明るい場合・・・ { Off(OUT_C); 左のタイヤを止めます Wait(5); } if(SENSOR_1>SENSOR_3) 左のセンサーのほうが明るい場合・・・ { Off(OUT_A); 右のタイヤを止めます Wait(5); } } } *考察 [#ca30b024] *コメント [#x46d73d5] -意見や感想があったらお願いします。 #comment