Ülesanne 4
Ehita BOT, millel on peal mootoriga Ultrasonic ning allpool asuvate objektide jaoks lülitiandur.
Kirjuta programm, mille käigus robot sõidab otse kuni näeb ees seina 20 cm kaugusel või põrkab lülitiga mõne väiksema takistuse vastu. Takistuse avastamisel robot peatub, vaatab Ultrasonic anduriga paremale / vasakule ning see kummal pool on rohkem ruumi (ehk US andur näeb kaugemale), sinna sõidab.
Lahendus
Käesolev explorer kasutab kahte andurit, seega lisandub veidi keerukust roboti programmeerimisele.
task main(){
SetSensorLowspeed(S1);
SetSensorTouch(S2);
int Kaugus;
int ParemPool;
int VasakPool;
Kaugus = 20;
while (TRUE){
if(SensorUS(S1) < Kaugus || Sensor(S2)){
Off(OUT_BC);
if(Sensor(S2))
{
RotateMotor(OUT_BC, -50, 360);
}
RotateMotor(OUT_A, 50, 90);
ParemPool = SensorUS(S1);
RotateMotor(OUT_A, -50, 180);
VasakPool = SensorUS(S2);
RotateMotor(OUT_A, 50, 90);
if(ParemPool > VasakPool)
RotateMotorEx(OUT_BC, 50, 217, -100, TRUE, TRUE);
else
RotateMotorEx(OUT_BC, 50, 217, 100, TRUE, TRUE);
}
else{OnFwd(OUT_BC, 100);}
}
}