2009a/A8/課題2右
交差点を曲がるプログラム†
#define L 44
#define turn_right OnFwd(OUT_A+OUT_C);Wait(40);OnFwd(OUT_A);OnRev(OUT_C); //右に曲がるプログラム
Wait(85);OnFwd(OUT_A+OUT_C);Wait(30);
#define turn_left OnFwd(OUT_A+OUT_C);Wait(40);OnFwd(OUT_C);OnRev(OUT_A); //左に曲がるプログラム
Wait(90);OnFwd(OUT_A+OUT_C);Wait(30);
#define line_trace if (SENSOR_1>L){ //ラインをトレースする
if(SENSOR_3>L){OnFwd(OUT_A+OUT_C);}
else{OnFwd(OUT_A);OnRev(OUT_C);}
}
else{
if(SENSOR_3>L){OnRev(OUT_A);OnFwd(OUT_C);}
}
int a; //変数aを定義
task main ()
{
a=0;
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while (a<19) {
if((SENSOR_1<L)&&(SENSOR_3<L)){ //光センサーがどちらも黒
if((a==0)||(a==2)||(a==4)||(a==6)||(a==8)||(a==10)||(a==12)||(a==14)||(a==16)||(a==18)) //偶数回のとき
{turn_right;}
else //奇数回のとき
{turn_left;}
a=a+1;
}
line_trace
}
Off(OUT_A+OUT_C);
}