16 tra 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 tipkalo 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.
Objašnjenje
Prvi robot pritiskom na tipkalo (wait until when on-board button pressed) šalje poruku drugome da je krenuo i vozi prema njemu (move forward at power 60%). Nakon toga čeka poruku od drugog robota (wait until IR message received = “uspori“) te kad ju dobije, nastavlja vožnju manjom brzinom (move forward at power 30%). Nakon toga slijede naredbe kojima se robot zaustavlja ispred drugoga na udaljenosti manjoj od 10 cm (repeat until ultrasonic sensor port3 distance(cm) < 10, move forward at power 30, stop moving). Nakon toga će upaliti svjetleće diode crvenom bojom (turn on all light with color red 60 green 0 blue 0) i poslati poruku da stoji (send IR message ”stojim”). Poslije toga čeka poruku od drugog robota da krene natrag (wait until IR message received = “natrag“) i kad ju dobije vozi unatrag 3 sekunde i stane (move backward at power 60% for 3 secs, stop moving).
Objašnjenje
Drugi robot čeka poruku od prvog robota da je krenuo (wait until IR message received = “krenuo“) i tada pali svjetleće diode zelenom bojom (turn on all light with color red 0 green 60 blue 0). Nakon 3 sekunde (wait 3 seconds) šalje poruku prvome robotu da uspori (send IR message uspori). Kad dobije poruku od prvog robota da se zaustavio (wait until IR message received = “stojim“), nakon 5 sekundi (wait 5 seconds) poslat će poruku prvom robotu da ide natrag (send IR message natrag).