[[2012a/Member]] *課題2 ライントレース [#re0618f5] *ロボット本体 [#w1998edb] #ref(2012a/A4/SanChan/M2/201206151616091.jpg,100%,ロボット) #ref(2012a/A4/SanChan/M2/20120615161647.jpg,100%,ロボット) #ref(2012a/A4/SanChan/M2/20120615161709.jpg,100%,ロボット) *プログラミング [#u2f2daa1] #define THRESHOLD 52 #define THRESHOLD_K 32 #define THRESHOLD_W 65 task main() { SetSensorLight(IN_1); long t0,time; t0=CurrentTick(); int mode=1 while(1){ switch(mode) //ラインをトレースするプログラミング { case 1: time=CurrentTick()-t0; if(THRESHOLD+5>SENSOR_1&&SENSOR_1>THRESHOLD-5) { Float(OUT_AC); OnFwd(OUT_A,40); OnFwd(OUT_C,40); Wait(5); } if(THRESHOLD_K<SENSOR_1&&SENSOR_1<THRESHOLD_K+10) { Float(OUT_AC); OnFwd(OUT_A,40); OnFwd(OUT_C,10); Wait(5); } if(THRESHOLD_W-10<SENSOR_1&&SENSOR_1<THRESHOLD_W) { Float(OUT_AC); OnFwd(OUT_A,10); OnFwd(OUT_C,40); Wait(5); } if(SENSOR_1<THRESHOLD_K) { Float(OUT_AC); OnFwd(OUT_A,40); OnFwd(OUT_C,40); Wait(5); } if(SENSOR_1>THRESHOLD_W) { Float(OUT_AC); OnRev(OUT_A,40); OnFwd(OUT_C,40); Wait(5); } } if(time>21000) { mode=2; } break; case 2://交差点を通過するプログラミング { time=CurrentTick()-t0; if(THRESHOLD+5>SENSOR_1&&SENSOR_1>THRESHOLD-5) { Float(OUT_AC); OnFwd(OUT_A,40); OnFwd(OUT_C,40); Wait(5); } if(THRESHOLD_K<SENSOR_1&&SENSOR_1<THRESHOLD_K+10) { Float(OUT_AC); OnFwd(OUT_A,40); OnFwd(OUT_C,10); Wait(5); } if(THRESHOLD_W-10<SENSOR_1&&SENSOR_1<THRESHOLD_W) { Float(OUT_AC); OnFwd(OUT_A,10); OnFwd(OUT_C,40); Wait(5); } if(SENSOR_1<THRESHOLD_K) { Float(OUT_AC); OnFwd(OUT_A,40); OnRev(OUT_C,40); Wait(5); } if(SENSOR_1>THRESHOLD_W) { Float(OUT_AC); OnFwd(OUT_A,40); OnRev(OUT_C,30); Wait(5); } } while(21000<time&&time<23000); Off(OUT_AC); } }