Micro:bit kao micro:Maqueen Plus upravljač

Zadatak

Upravljajte micro:Maqueen Plus robotom koristeći drugi micro:bit kao upravljač.

Rješenje – micro:bit 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.

Rješenje – robot

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.