Ultrazvučni senzor

1. Zadatak

micro:Maqueen ima ultrazvučni senzor HC-SR04 kojim može detektirati predmet ispred sebe na udaljenosti od 2 do 400 cm.

Izradite program kojim će robot pratiti liniju, a kada naiđe na prepreku na udaljenosti manjoj od 5 cm, neka se okrene i nastavi pratiti liniju u drugom smjeru. Praćenje linije neka bude tako da se robot vozi ravno onda kada je samo s desnim senzorom na crnoj liniji. Stazu možete preuzeti ovdje, a za prepreku možete iskoristiti neki predmet koji ćete postaviti na ravan dio linije na stazi.

Rješenje

Objašnjenje

Iz kategorije Logic odaberite naredbu if then else kako biste regulirali rad robota s obzirom na njegovu udaljenost od prepreke i postavite je unutar forever petlje. U if dio naredbe postavite provjeru je li udaljenost robota od prepreke manja od 5 cm. Za to upotrijebite operator usporedbe manje od (<) iz kategorije Logic. S lijeve strane operatora postavite naredbu read ultrasonic cm, a s desne strane upišite 5. Ako je taj uvjet zadovoljen, neka se robot zakrene udesno naredbama motor right move Backward at speed 50 i motor left move Forward at speed 50.

Ako uvjet nije istinit, odnosno udaljenost od prepreke je veća od 5 cm, robot neka prati liniju. Stvorite funkciju Pracenje linije koja će sadržavati naredbe za praćenje crne linije tako da robot vozi ravno onda kada je lijevi senzor na bijeloj podlozi, a desni senzor na crnoj podlozi. U else dio unutar forever petlje smjestite naredbu call Pracenje linije. Njome se poziva funkcija Pracenje linije te robot prati liniju sve dok ne naiđe na prepreku.

2. Zadatak

Izmijenite prethodni program tako da se robot zaustavi kada naiđe na prepreku na udaljenosti manjoj od 10 cm.

Rješenje

Objašnjenje

U argumentu if dijela if then else naredbe unutar forever bloka, umjesto broja 5 upišite broj 10. Kada ultrazvučni senzor detektira vrijednost manju od 10, robot se mora zaustaviti. U if dio stavite samo naredbu motor all stop iz Maqueen kategorije naredbi.