[[2018a/Member]] *ライトレース [#b1a6efbd] #contents *プログラム [#b0e40d01] #define llt OnRev(OUT_A,50); OnFwd(OUT_C,30); Wait(1);//大きく左に回る #define lrt OnFwd(OUT_A,30); OnRev(OUT_C,50); Wait(1);//大きく右に回る #define ternleft OnRev(OUT_A,50); OnFwd(OUT_C,10);//左に回る #define ternright OnFwd(OUT_A,10); OnRev(OUT_C,50);//右に回る #define go OnRev(OUT_A,50); OnRev(OUT_C,50);//直進する #define back OnFwd(OUT_A,50); OnFwd(OUT_C,50);//後退する #define close RotateMotor(OUT_B,50,90); #define open RotateMotor(OUT_B,50,-90); task main() { SetSensorLight(S3); int n=0; while(n<=250) //bまで { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(1000); RotateMotor(OUT_A,50,-130); n=0; while(n<=300) //cまで { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(1000); RotateMotor(OUT_A,50,-300); //C turn n=0; while(n<=200) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); Wait(2000); //D直前の角で止まる n=0; while(n<=200) //D { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); Wait(1000); //D到着 close; Off(OUT_ABC); RotateMotor(OUT_A,50,-180); Wait(1000); //hasamu n=0; while(n<=200) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } OnRev(OUT_AC,50); Wait(500); Off(OUT_AC); //E turn n=0; while(n<=400) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); Wait(1000); n=0; while(n<=400) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); go; Wait(500); //s1 n=0; while(n<=400) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); go; Wait(500); //s2 n=0; while(n<=230) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); Wait(1000); RotateMotor(OUT_C,50,-310); //H turn n=0; while(n<=200) { if(SENSOR_3<45) //B { llt; n++; } else if(SENSOR_3<51) //G { go; n=0; } else { ternright; n=0; // W } } Off(OUT_AC); Wait(1000); //I stop RotateMotor(OUT_C,50,-350); n=0; while(n<=250) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(500); //L RotateMotor(OUT_A,50,-90); Off(OUT_A); n=0; while(n<=230) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(500); //k RotateMotor(OUT_A,50,-90); Off(OUT_A); n=0; while(n<=230) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(1000); RotateMotor(OUT_C,50,360); open; Off(OUT_B); back; //帰還準備 Wait(250); RotateMotor(OUT_C,50,-60); Off(OUT_C); go; until(SENSOR_3 <= 45); n=0; while(n<=250) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(1000); RotateMotor(OUT_A,50,-180); n=0; while(n<=250) { if(SENSOR_3<45) //B { lrt; n++; } else if(SENSOR_3<52) //G { go; n=0; } else { llt; n=0; // W } } Off(OUT_AC); Wait(1000); }