Komuniciraj s drugim micro:bitovima

Micro:bitovi mogu međusobno komunicirati putem bežične komunikacije te tako možete izraditi razne projekte koristeći više od jednog micro:bita. U kategoriji Radio nalaze se naredbe za slanje i primanje brojeva ili teksta.

U projektima komunikacije svaki micro:bit može biti i pošiljatelj i primatelj poruke, ali može imati i samo jednu od tih uloga.

Kako bi se ostvarila komunikacija između dva ili više micro:bitova, svi moraju biti u istoj komunikacijskoj grupi. Unutar bloka on start potrebno je postaviti naredbu radio set group te u argument naredbe upisati isti broj. To može biti bilo koji broj u rasponu od 1 do 255.
Ako u istom prostoru imate više micro:bitova (primjerice 4) za koje želite da odvojeno komuniciraju, postavite im različite radio grupe tako da primjerice dva micro:bita komuniciraju unutar grupe 1, a druga dva unutar grupe 2. To omogućuje da se komunikacija odvija samo između micro:bitova s istom radio grupom te da ne dođe do ometanja komunikacije.

Uvod

Ovdje je radio grupa postavljena na vrijednost 1 (radio set group 1). Svi micro:bitovi za koje želite da komuniciraju moraju u on start bloku u
programu imati istu radio grupu.

U ovome primjeru prikazano je kako poslati broj 1 svakih 5 sekundi. Da biste poslali broj drugom micro:bitu koristite naredbu radio send number te u argument naredbe napišete željeni broj.

Na micro:bitu koji prima poruku u obliku broja potrebno je postaviti naredbu on radio received receivedNumber. U ovome primjeru primljeni broj se prikazuje na 2 sekunde.

Zadatak

Ostvarite komunikaciju između dva micro:bita tako da pritiskom na tipkalo A na prvom micro:bitu šaljete upit o trenutnoj temperaturi na drugom micro:bitu. Dakle, drugi micro:bit mora uzvratiti prvom micro:bitu vrijednost temperature koju je očitao. Prvi micro:bit mora prikazati primljenu temperaturu na svom zaslonu. Dodatno, pritiskom na tipkalo B prvi micro:bit mora saznati i ispisati količinu svjetlosti koju očitava drugi micro:bit.

Upute za izradu programa - prvi micro:bit

1. korak

Najprije izradite program za prvi micro:bit preko kojeg ćete pritiskom na tipkala A i B slati upite drugom micro:bitu o vrijednostima koje očitavaju njegov temperaturni i svjetlosni senzor.

Da bi dva micro:bita mogla uspješno komunicirati, na početku odredite radio grupu u kojoj će se odvijati komunikacija. Iz kategorije Radio odaberite naredbu radio set group te je smjestite unutar bloka on start. U argument naredbe upišite željenu komunikacijsku grupu, u ovome slučaju to je jedan.

2. korak

Pritiskom na tipkalo A želite poslati tekst drugom micro:bitu pa zato odaberite naredbu on button A pressed iz kategorije Input. Da biste mogli poslati tekst, iz kategorije Radio odaberite naredbu radio send string te u argument te naredbe upišite željeni tekst, a to je u ovom slučaju “Temperatura?”.

3. korak

Nakon što se pritisne tipkalo A drugi micro:bit mora izmjeriti i poslati vrijednost temperature što prvi micro:bit mora prikazati na svom zaslonu. Prvi micro:bit dakle prima poruku u obliku broja. Za to je potrebno upotrijebiti naredbu on radio received receivedNumber iz kategorije Radio. Unutar te naredbe postavite naredbu show number te kao njezin argument postavite varijablu receivedNumber koju ćete postaviti klikom i povlačenjem iz bloka iznad, odnosno on radio received receivedNumber bloka.

4. korak

Pritiskom na tipkalo B micro:bit šalje upit o vrijednosti intenziteta svjetlosti na drugom micro:bitu, stoga dodajte naredbe za slanje teksta Svjetlost? i postavite ih u blok on button B pressed.

Program za prvi micro:bit

Uputa za izradu programa - drugi micro:bit

1. korak

Ponovno iz kategorije Radio odaberite naredbu radio set group te je smjestite unutar bloka on start. U argument naredbe upišite komunikacijsku grupu kao i na prvom micro:bitu kako bi među njima komunikacija bila moguća.

2. korak

Drugi micro:bit čeka upite od prvog micro:bita, dakle pri- mit će poruke u obliku teksta. Odaberite zato, iz kategorije Radio, blok on radio received receivedString. Taj blok će izvršavati naredbe koje smjestite u njega kad micro:bit primi poruku u obliku teksta.

Drugi micro:bit može primiti dvije tekstualne poruke (upit o temperaturi ili upit o svjetlosti). Zato u naredbu on radio received receivedString treba postaviti if then naredbe kojima će se provjeravati koji upit je micro:bit primio.

3. korak

Napravite najprije provjeru za poruku ˝Temperatura?˝. U if dijelu postavite naredbu usporedbe (˝ ˝ = ˝ ˝). Kao prvi argument te naredbe postavite varijablu receivedString koju ćete dovući iz naredbe on radio received receivedString te kao drugi argument upišite tekst ˝Temperatura?˝. Sve naredbe koje ćete postaviti unutar naredbe if then će se izvršavati tek onda kada je primljen tekst jednak tekstu ˝Temperatura?˝. Pazite da je tekst koji provjeravate identičan onome koji ste poslali u programu prvog micro:bita.

4. korak

Ako je uvjet zadovoljen micro:bit mora poslati vrijednost temperature koju u tom trenutku očita. Da bi se to dogodilo, unutar if then naredbe postavite naredbu radio send number te kao njezin argument postavite naredbu temperature (°C) koja se nalazi u kategoriji Input.

5. korak

Potrebno je istu provjeru napraviti i za slučaj primanja poruke ˝Svjetlost?˝. Zato dodajte još jednu if then naredbu kojom ćete provjeravati je li primljeni tekst jednak Svjetlost?. Ako je, micro:bit će izmjeriti intenzitet svjetlosti i poslati ga kao odgovor prvom micro:bitu.

Program za drugi micro:bit