05 tra Micro:bit kao micro:Maqueen Plus upravljač
Zadatak
Upravljajte micro:Maqueen Plus robotom koristeći drugi micro:bit kao upravljač.
Objašnjenje – micro:bit upravljač
Sve naredbe smjestite unutar bloka micro:bit starts iz micro:bit kategorije. Prvo postavite broj kanala za bežičnu komunikaciju na 7 naredbom set wireless channel to 7. Zatim stavite jedan forever blok iz Control kategorije. U forever blok smjestite 4 if then petlje. Svaka if then naredba provjerava je li pritisnuta tipka A, B, A+B ili niti jedna tipka na micro:bit upravljaču te ovisno o tome šalje robotu određenu poruku.
Kada je pritisnuta tipka A+B, robot se treba kretati ravno pa micro:bit upravljač šalje poruku ravno naredbom send string ravno via wireless.
Istom naredbom se šalje poruka lijevo kada je pritisnuta tipka A kako bi robot skrenuo ulijevo te poruka desno kada je pritisnuta tipka B kako bi robot skrenuo udesno.
U zadnjem uvjetu se kombinacijom and i not operatora iz kategorije Control provjerava slučaj kada nisu pritisnute tipke A+B (not A+B button pressed?), tipka A (not A button pressed?) i tipka B (not B button pressed). U tom slučaju se šalje poruka stop kako bi se robot prestao kretati.
Objašnjenje – robot
Prvo je potrebno odrediti radio kanal za bežičnu komunikaciju između micro:bitova. Smjestite naredbu set wireless channel to 7 u blok micro:bit starts kako bi se odmah na početku kanal postavio na broj 7. Broj kanala za komunikaciju mora biti isti kao onaj u programu za upravljač.
Robot se mora kretati ravno, lijevo, desno ili mirovati ovisno o poruci koju mu pošalje micro:bit upravljač. Iz micro:bit kategorije uzmite blok when received wireless data kojom se provjerava je li robot primio neku poruku. U nastavku na taj blok smjestit ćete naredbe za kretanje. Uzmite 4 if then petlje iz Control kategorije gdje svaka provjerava jednu poruku.
Unutar svake kao uvjet stavite naredbu usporedbe – jednakost(=) iz Operators kategorije. Iz bloka when received wireless data uzmite varijablu wireless data i smjestite je u lijevo polje svake jednakosti. Ona sadrži vrijednost poruke koju šalje micro:bit upravljač te ju je potrebno usporediti s porukama ravno, lijevo, desno i stop.
Prvi uvjet provjerava je li primljena poruka (wireless data) jednaka ravno. Ako je uvjet zadovoljen, robot se kreće ravno (set all motor direction rotate forward speed 100). U slučaju drugog uvjeta (wireless data = lijevo) pokreće se desni motor robota (set right motor direction rotate forward speed 100) i robot se zakreće ulijevo. Kod trećeg uvjeta (wireless data = desno) pokreće se lijevi motor robota (set right motor direction rotate forward speed 100) i robot se zakreće udesno. Kod zadnjeg uvjeta (wireless data = stop) robot se zaustavlja naredbom set all motor stop.
Prebacite programe na micro:bitove i upravljajte kretanjem robota drugim micro:bitom.