Reaali Robootika.COM

NXT robotimaailm ja programmeerimine C-keeles

Tunnitöö: Explorer 3 – maadeavastaja robot

image

Ülesanne 3 (Exploreri sarjast)

Ehita BOT, millel on peal mootoriga Ultrasonic andur.

Kirjuta programm, mille käigus robot sõidab otse kuni näeb ees seina 20 cm kaugusel. Seina nägemisel robot peatub, vaatab Ultrasonic anduriga paremale / vasakule ning see kummal pool on rohkem ruumi (ehk US andur näeb kaugemale), sinna sõidab.

 

Lahendus

Ultrasonic anduriga paremalt-vasakult kaugust mõõtes peab selle salvestama muutujatesse ning siis neid omavahel võrdlema. Selle põhjal otsustab robot kuhu keerata.

 

task main(){
SetSensorLowspeed(S1);

int Kaugus;
int ParemPool;
int VasakPool;
Kaugus = 20;

while(TRUE){
	if(SensorUS(S1) < Kaugus){
		Off(OUT_BC);
		RotateMotor(OUT_A, 25, 90);
		ParemPool = SensorUS(S1); //mõõdab paremal kaugust
		RotateMotor(OUT_A, 25, -180);
		VasakPool = SensorUS(S1); //mõõdab vasakult poolt kaugust
		RotateMotor(OUT_A, 25, 90);
		if(ParemPool > VasakPool){
			RotateMotorEx(OUT_BC, 50, 217, 100, TRUE, TRUE); //keerab paremale
			}
		else{
			RotateMotorEx(OUT_BC, 50, 217, -100, TRUE, TRUE); //keerab vasakule
			}
		}
	
	else{
		OnFwdSync(OUT_BC, 100, 0);
		}
	}
}

Add comment

Loading