Usporavanje i zaustavljanje ispred prepreke

Zadatak

Izradite program kojim će robot voziti određenom brzinom sve dok ne detektira prepreku na udaljenosti manjoj od 50 cm. U tom slučaju neka robot uspori, a kad se skroz približi prepreci (na udaljenosti manjoj od 10 cm), neka se zaustavi. Kad nema prepreku u blizini neka robot svijetli zelenom bojom, prilikom usporavanja žutom, a kad se zaustavi crvenom bojom.

Rješenje

Objašnjenje

Robot se pokreće pritiskom na tipkalo (wait until when on-board button pressed).

Slijedi repeat until petlja kojom je definirano kako će se robot kretati sve dok vrijednost očitanja ultrazvučnog senzora ne bude manja od 10 (repeat until ultrasonic sensor port3 distance (cm) < 10), a kad se taj uvjet ispuni, robot će uključiti crvena svjetla i zaustaviti se (stop moving).

Unutar repeat until naredbe, stoji if then blok kojim se  timer resetira svakih 0.1 sekundu (if timer > 0.1 then reset timer), robot svjetli zeleno i vozi ravno većom brzinom (move forward at power 80%).

Slijedi novi if then blok koji  provjerava je li udaljenost robota od prepreke između 10 i 50 cm. U tom slučaju robot svijetli žuto i smanjuje brzinu kretanja (move forward at power 40%).