Neprestano izbjegavanje prepreke

Zadatak

Napišite program kojim će se robot kretati ravno i svijetliti bijelom bojom, a svaki put kad naiđe na prepreku svijetliti žutom bojom, od nje se udaljiti, skrenuti desno i nastaviti se kretati dok ponovno ne naiđe na prepreku od koje će se na isti način udaljiti i nastaviti s kretanjem. Neka se program počne izvršavati kad na robotu pritisnete tipkalo.

Rješenje

Objašnjenje

Ovaj program pokreće se nakon pritiska na tipkalo (wait until when on-board button pressed) i izvršava se neprestano (jer je cijeli kôd smješten unutar forever petlje). Najprije se varijabla udaljenost postavlja na vrijednost 100. Tom varijablom stvorili ste „prostor“ kojim se mBot kreće. Slijedi repeat until naredba kojom je definirano da se mBot kreće ravno (move forward at power 80%) s upaljenim bijelim svijetlom (turn on all light with color red 150 green 150 blue 150) sve dok ne bude od prepreke udaljen manje od 10 centimetara (repeat until udaljenost < 10). Provjera koliko je mBot udaljen od prepreke vrši se svakih 0.1 sekundu, a vrijednost varijable udaljenost mijenja se s obzirom na udaljenost od prepreke (set udaljenost to ultrasonic sensor Port3 distance(cm)). Kada se mBot približi prepreci na manje od 10 centimetara, počinje svijetliti žuto (turn on all light with color red 255 green 255 blue 0), 1 sekundu se vraća unazad (move backward at power 50) i 1 sekundu skreće udesno (turn rught at power 80) te program kreće ispočetka. Time je omogućeno da mBot neprestano izbjegava prepreke na koje nailazi tako da se od njih odmakne vožnjom unazad i skretanjem udesno.