Robotika

mBot

mBot – komunikacija između robota – uspori i vrati se unatrag

Zadatak

Izradite program kojim dva robota komuniciraju o načinu kretanja i svjetlosnoj signalizaciji. Postavite robote jedan nasuprot drugog. Neka prvi krene pritiskom na gumb prema drugome ravno i pri kretanju neka pošalje poruku da je krenuo. Kad drugi robot dobije poruku, pali svjetleće diode zelenom bojom i nakon tri sekunde pošalje poruku prvom robotu da uspori, što prvi robot učini. Nakon toga se prvi robot zaustavlja kad dođe do drugoga uz pomoć ultrazvučnog senzora te pali crvena svjetla. Nakon 5 sekundi, drugi robot šalje poruku prvome da se vrati natrag, što prvi učini vožnjom unatrag.

Rješenje

Program za prvog robota

Prvi robot pritiskom na gumb (wait until on board button pressed) šalje poruku drugome da je krenuo i vozi prema njemu brzinom 150 (run forward at speed 150). Nakon toga čeka poruku od drugog robota (wait until mbot’s message received = “uspori“) te kad ju dobije, nastavlja vožnju manjom brzinom (run forward at speed 70). Nakon toga slijede naredbe kojima se robot zaustavlja ispred drugoga na udaljenosti manjoj od 10 cm (repeat until ultrasonic sensor Port3 distance < 10, run forward at speed 70, run forward at speed 0). Nakon toga će upaliti svjetleće diode crvenom bojom (set led on board all red 60 green 0 blue 0) i poslati poruku da stoji (send mBot’s message stojim). Poslije toga čeka poruku od drugog robota da krene natrag (wait until mBot’s message received = “natrag“) i kad ju dobije vozi unatrag 3 sekunde i stane (run backward at speed 150, 3 secs, run forward at speed 0).

Program za drugog robota

Drugi robot čeka poruku od drugog robota da je krenuo (wait until mBot’s message received = “krenuo“) i tada pali svjetleće diode zelenom bojom (set led on board all red 0 green 60 blue 0). Nakon 3 sekunde (wait 3 secs) šalje poruku prvome robotu da uspori (send mBot’s message uspori). Kad dobije poruku od prvog robota da se zaustavio (wait until mBot’s message received = “stojim“), nakon 5 sekundi (wait 5 secs) poslat će poruku prvom robotu da ide natrag (send mBot’s message natrag).