- 追加された行はこの色です。
- 削除された行はこの色です。
[[2019a/Member]]
#define t_r OnFwd(OUT_A);OnRev(OUT_C);Wait(60);Off(OUT_AC);ClearTimer(0);
int s;
sub follow_line_left()
{
while(FastTimer(0)<s)
{
if(SENSOR_2>42){OnFwd(OUT_A);OnRev(OUT_C);ClearTimer(0);}
else if(SENSOR_2>40){OnFwd(OUT_A);ClearTimer(0);}
else if(SENSOR_2>36){OnFwd(OUT_AC);ClearTimer(0);}
else if(SENSOR_2>34){OnFwd(OUT_C);ClearTimer(0);}
else{OnFwd(OUT_C);OnRev(OUT_A);}
}
}
sub follow_line_right()
{
while(FastTimer(0)<s)
{
if(SENSOR_2>42){OnFwd(OUT_C);OnRev(OUT_A);ClearTimer(0);}
else if(SENSOR_2>40){OnFwd(OUT_C);ClearTimer(0);}
else if(SENSOR_2>36){OnFwd(OUT_AC);ClearTimer(0);}
else if(SENSOR_2>34){OnFwd(OUT_A);ClearTimer(0);}
else{OnFwd(OUT_A);OnRev(OUT_C);}
}
}
sub cross_line()
{
Off(OUT_AC);Wait(100);
OnFwd(OUT_AC);Wait(20);
ClearTimer(0);
}
task main()
{
s=22;
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
follow_line_left();
Off(OUT_AC);Wait(100);
OnFwd(OUT_A);OnRev(OUT_C);Wait(40);
OnFwd(OUT_AC);Wait(20);
ClearTimer(0);
s=24;
follow_line_right();
Off(OUT_AC);Wait(50);
OnFwd(OUT_AC);Wait(30);
t_r
follow_line_right();
Off(OUT_AC);Wait(50);
OnFwd(OUT_AC);Wait(30);
t_r
OnRev(OUT_AC);Wait(30);Off(OUT_AC);
s=20;
follow_line_right();
Off(OUT_AC);
Wait(100);
t_r
s=18;
follow_line_right();
cross_line();
follow_line_right();
cross_line();
follow_line_right();
Off(OUT_AC);
OnFwd(OUT_A);OnRev(OUT_C);Wait(50);
OnRev(OUT_AC);Wait(20);
follow_line_right();
Off(OUT_AC);
OnFwd(OUT_A);OnRev(OUT_C);Wait(50);Off(OUT_AC);
OnRev(OUT_AC);Wait(100);Off(OUT_AC);
OnRev(OUT_B);Wait(10);Off(OUT_B);
s=23;
ClearTimer(0);
follow_line_right();
cross_line();
follow_line_right();
cross_line();
follow_line_left();
Off(OUT_AC);
OnFwd(OUT_A);OnRev(OUT_C);Wait(110);
Off(OUT_AC);Wait(80);
OnFwd(OUT_B);Wait(10);
Off(OUT_ABC);
}