Reaali Robootika.COM

NXT robotimaailm ja programmeerimine C-keeles

Tunnitöö: Explorer 4 – maadeavastaja robot

explorer

Ü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);}
	}
}

Add comment

Loading