Robotika

mBot

mBot – Neprestano izbjegavanje prepreke

Zadatak

Napišite program kojim će se robot kretati ravno i svijetliti bijelo te svaki put kad naiđe na prepreku svijetliti žuto, 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 on bord 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 smo „prostor“ kojim se mBot kreće. Slijedi repeat until naredba kojom je definirano da se mBot kreće ravno brzinom 100 (run forward at speed 100) s upaljenim bijelim svijetlom (set led on bord all 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). Kada se mBot približi prepreci na manje od 10 centimetara, počinje svijetliti žuto (set led on bord all red 255 green 255 blue 0), u sekundi se vrati unazad (run backward at speed 100) i sekundi skrene udesno (turn right at speed 100) te program kreće ispočetka. Time je omogućeno da se mBot neprestano izbjegava prepreke na koje nailazi tako da se od njih odmakne vožnjom unazad i skretanjem udesno.