int L2,L1,R1,R2;
int RefL2=512,RefL1=512,RefR1=512,RefR2=512;
void ReadAnalog()
{
L2=analog(0);
L1=analog(1);
R1=analog(2);
R2=analog(3);
}
void MotorStop()
{
ao();
sleep(20);
}
void Forward(int MotorSpeed,int Time)
{
fd2(MotorSpeed-0,MotorSpeed-0);
sleep(Time);
}
void Backward(int MotorSpeed,int Time)
{
bk2(MotorSpeed-0,MotorSpeed-0);
sleep(Time);
}
void Left (int MotorSpeed,int Time)
{
MotorStop();
sl(MotorSpeed);
sleep(Time);
MotorStop();
}
void Right (int MotorSpeed,int Time)
{
MotorStop();
sr(MotorSpeed);
sleep(Time);
MotorStop();
}
void keepup()
{
keep_up();
}
void Tracline(int MotorSpeed,int Time)
{
int Status=0;
while(Status==0)
{
ReadAnalog();
if(L2<RefL2&&L1<RefL1)Status=1;
else if(R2<RefR2&&R1<RefR1)Status=1;
else if(L1<RefL1)tl(60);
else if(L2<RefL2)sl(60);
else if(R1<RefR1)tr(60);
else if(R2<RefR2)sr(60);
else Forward(MotorSpeed,1);
}
Forward(MotorSpeed,Time);
}
void setup()
{
a1();
}
void loop()
{
}
void a1()
{
Forward(50,1000);
Tracline(70,500);
Right(50,1300);
Tracline(70,500);
ao();
}