Bežično pokretanje micro:Maqueena drugim micro:bitom

Zadatak

Izradite program kojim ćete upravljati micro:Maqueen robotom pomoću drugog micro:bita. Drugi micro:bit neka bude kao daljinski upravljač koji će pokretati robota pritiskom na tipkala. Pritiskom na tipkala A i B zajedno robot neka vozi ravno. Pritiskom na tipkalo A neka skrene lijevo, a pritiskom na tipkalo B desno. Micro:bit neka šalje poruke u obliku brojeva: 1 je poruka za kretanje ravno, 2 za zakretanje ulijevo te 3 za udesno.

Rješenje – micro:bit upravljač

Objašnjenje

Iz kategorije Radio odaberite naredbu radio set group 1 te ju postavite unutar on start naredbe. U forever naredbu postavite naredbu if then iz kategorije Logic. U argument naredbe if then postavite naredbu on button A+B is pressed. Podsjetite se logike koju koristite za upravljanje robota:

  • Poruka 1 označava da robot ide ravno.
  • Poruka 2 označava da robot ide lijevo.
  • Poruka 3 označava da robot ide desno.

Iz kategorije Radio odaberite naredbu radio send number te ju postavite unutar if then naredbe. Kada istovremeno pritisnete tipkalo A i B, micro:bit će poslati broj 1 drugome te će robot voziti ravno. Ostatak programa izradite prema sljedećim smjernicama:

  • Tipkalo A šalje broj 2 te se tada robot zakreće u lijevo.
  • Tipkalo B šalje broj 3 te se tada robot zakreće u desno.

Rješenje – micro:Maqueen

Objašnjenje

 

U programu za robot, odnosno micro:bit koji upravlja njime, radio grupa mora biti ista kao i kod micro:bita koji šalje poruke. Iz Radio kategorije zato odaberite naredbu radio set group 1 te ju postavite unutar on start naredbe. Iz iste kategorije odaberite blok on radio received receivedNumber te ga postavite u prostor za programiranje.

Unutar bloka on radio received receivedNumber postavite naredbu if then iz kategorije Logic jer njome provjeravate koju poruku je micro:bit primio. U argument if then naredbe postavite operator jednakosti. U lijevi dio operatora postavite varijablu receivedNumber na način da kliknete i prenesete varijablu receivedNumber iz bloka on radio received receivedNumber. Upišite vrijednost 1 u desni dio operatora jednakosti te unutar then dijela naredbe postavite naredbu motor all move Forward at speed 100 iz kategorije Maqueen. Zatim dodajte pauzu od 10 milisekundi te naredbu motor all move Forward at speed 0 kako bi zaustavili robota. U slučaju da ne dodate dvije prethodne naredbe, robot bi se cijelo vrijeme kretao prema naprijed, a na ovaj način smo to ograničili na 10 milisekundi. Time ste definirali kako se robot mora kretati ako dobije poruku 1.

Za ostale poruke koje robot može primiti kopirajte prethodni if then blok 2 puta i u svakom učinite potrebne izmijene (vrijednost primljene poruke i način kretanja robota).