Radio igre
Kako micro:bitovi razgovaraju radio-vezom: radio grupe, broj i tekst kao poruka, kamen-papir-škare za dvoje i vrući krumpir za devet igrača.

Danas ćemo radio-vezom igrati igre. Naučit ćemo:
- što je radio-veza i kako poruka putuje zrakom;
- tko čuje poruku, a tko na nju reagira;
- kako poslati broj, a kako tekst;
- kako poslati poruku točno jednom igraču, iako je čuju svi.
Igrat ćemo dvije igre: kamen, papir, škare za dvoje i vrući krumpir za cijelu grupu.
Što je radio-veza?
Radio-veza šalje poruke kroz zrak, bez žica.
Uređaj koji šalje poruku zovemo odašiljač. On poruku pretvara u nevidljive radio valove, koji se šire na sve strane, kao krugovi na vodi kad u nju baciš kamenčić. Uređaj koji prima poruku zovemo prijemnik. On valove uhvati svojom antenom i pretvori ih natrag u poruku.

Micro:bit ima ugrađenu antenu, pa može biti i odašiljač i prijemnik. Što će raditi, odlučuje program.
Radio-vezu svakodnevno koristiš i bez micro:bita: walkie-talkie, mobitel, Wi-Fi, bežične slušalice i autić na daljinsko upravljanje šalju i primaju radio valove.
Koliko brzo titraju radio valovi micro:bita?
Micro:bit šalje radio valove na frekvenciji od 2,4 GHz, isto kao Wi-Fi i Bluetooth. To znači da val titra 2,4 milijarde puta u sekundi!
Radio valovi putuju brzinom svjetlosti, pa poruka preko učionice stigne gotovo istog trenutka.
Tko čuje poruku?
Kad micro:bit pošalje poruku, valovi stignu do svih micro:bitova u blizini. Ali na poruku reagiraju samo oni koji su u istoj radio grupi. Ostali je čuju, ali je preskoče.

Zapamti još dvije stvari:
- Micro:bit ne čuje vlastitu poruku. Poruka je uvijek namijenjena drugima.
- Nitko ne javlja da je poruka stigla. Micro:bit pošalje poruku i ne zna je li je netko primio. Vratit ćemo se na to na kraju radionice.
Što možemo poslati?
| Poruka | Blok za slanje | Blok za primanje | Za što je koristimo |
|---|---|---|---|
| Broj | ![]() | ![]() | Izbor: koji znak |
| Tekst | ![]() | ![]() | Naredba: „nova runda” |
| Ime i broj | ![]() | ![]() | Adresa i vrijednost: komu i koliko |
Broj već poznaješ iz semafora, a tekst te ime i broj su novi. Neka tekst bude kratak: micro:bit radio-vezom šalje najviše 19 slova, a ime poruke može imati najviše 8 slova.
Oba micro:bita moraju unaprijed znati što koja poruka znači. Kao u semaforu: broj 2 sam po sebi ne znači zeleno, nego smo se tako dogovorili.
Vježba 1: Kamen, papir, škare
Tehnika: dogovorene poruke i poštena igra
Ovu igru igraju dvoje polaznika koji sjede jedno do drugoga, svatko sa svojim micro:bitom i battery packom. Ako netko ostane bez para, igra protiv voditelja.
Pravila se znaju: kamen lomi škare, škare režu papir, a papir omata kamen. Ako oba igrača odaberu isto, rezultat je neriješen.
Dogovor o porukama
| Poruka | Značenje | Na ekranu |
|---|---|---|
| 0 | kamen | mali kvadrat |
| 1 | papir | veliki kvadrat |
| 2 | škare | škare |
| NOVA | nova runda | – |
Svaki par dobiva svoju radio grupu, napisanu na naljepnici (31, 32, 33…). U programu promijeni broj grupe na broj s naljepnice.
Kako se igra
- Tipkom A mijenjaš znak: kamen ⇒ papir ⇒ škare ⇒ kamen…
- Tipkom B šalješ odabrani znak.
- Kad pošalju oboje, na ekranu se pojavi protivnikov znak. Usporedite znakove i sami recite tko je pobijedio.
- Dodir logotipa pokreće novu rundu na oba micro:bita.
Poštena igra
- Nema virenja. Susjedov znak stigne čim ga on pošalje, ali tvoj ga micro:bit samo zapamti. Prikaže ga tek kad i ti pošalješ svoj. To je uvjet unutar uvjeta, kao u igri mirne ruke.
- Nema predomišljanja. Varijabla poslano pamti jesi li već poslao/la znak (true ili false). Nakon slanja tipke A i B više ništa ne mijenjaju, sve do nove runde.
- Na početku nema protivnikova znaka. Varijabla protivnik tada ima vrijednost −1, jer takav znak ne postoji. Čim stigne pravi znak (0, 1 ili 2), protivnik postane 0 ili više.
Funkcija prikaziZnak dobiva broj znaka i prikazuje njegovu sliku, kao funkcija Svjetlo u semaforu. Funkcija novaRunda sve vraća na početak, pa je pozivamo na tri mjesta.
Za odabrani znak šaljemo broj, a za novu rundu tekst. Tako se izbor i naredba ne mogu pomiješati.
Predvidi
- Susjed je poslao znak, a ti još nisi. Što pokazuje tvoj ekran?
- Što će se dogoditi ako susjed ima drugu radio grupu?
- Ti dotakneš logo. Što se dogodi na susjedovu micro:bitu?
Isprobaj
Odigrajte nekoliko rundi. Ako se protivnikov znak ne pojavljuje, provjerite:
- jeste li oboje pritisnuli B;
- imate li oboje isti broj radio grupe;
- je li battery pack uključen.
Promijeni jednu stvar
Nacrtaj vlastite slike za kamen, papir i škare blokom show leds, na primjer šaku, otvoren dlan i dva prsta. Hoće li susjed vidjeti tvoje slike ili svoje? Zašto?
Kako bi micro:bit mogao sam suditi?
Zasad pobjednika odlučujete vi. Ali kad oboje pošaljete znak, micro:bit zna sve što treba: tvoj znak (odabir) i protivnikov (protivnik). Moramo mu samo reći četiri stvari.
1. Kada suditi. Tek kad zna oba znaka. Susjedov znak može stići prije tvojega ili poslije njega, pa micro:bit mora znati čekati.
2. Kako prikazati. Najprije tvoj znak, barem jednu sekundu, zatim protivnikov znak, a sekundu kasnije rezultat. Da sve prikaže odjednom, ne bi se vidjelo što je tko odabrao.
3. Pravila. Ako su oba broja jednaka, rezultat je neriješen. Pobjeda su ova tri slučaja:
| Tvoj znak | Protivnikov znak |
|---|---|
| kamen (0) | škare (2) |
| papir (1) | kamen (0) |
| škare (2) | papir (1) |
U svim ostalim slučajevima izgubio/la si.
4. Rezultat. Sretno lice za pobjedu, tužno za poraz, a ravnodušno za neriješeno.
U prvoj verziji blok forever stalno je pitao je li susjedov znak stigao. Sada ćemo sve napraviti redom, odmah nakon pritiska tipke B: pošalji, pokaži svoj znak, pričekaj susjedov, pokaži ga, sudi.
Vježba 2: Micro:bit sudi
Tehnika: čekanje na poruku i suđenje
Nastavljamo u istom projektu.
Kako se igra
- Tipkom A mijenjaš znak, kao i prije.
- Tipkom B šalješ odabrani znak. Tvoj znak ostaje na ekranu barem jednu sekundu.
- Micro:bit čeka susjedov znak. Ako je znak već stigao, ne čeka.
- Na ekranu se pojavi protivnikov znak, a sekundu kasnije rezultat.
- Dodir logotipa pokreće novu rundu na oba micro:bita.
Ostali dijelovi programa ostaju isti, a blok forever više ne treba.
Čekanje na protivnika
Za čekanje koristimo blok while (ponavljaj dok) iz kategorije Loops. On ponavlja blokove u sebi sve dok je uvjet ispunjen. Ovdje micro:bit svake desetinke sekunde ponovno pogleda je li susjedov znak stigao. Čim stigne, ponavljanje prestaje i program ide dalje.
Dok čeka, micro:bit i dalje prima poruke: kratka pauza u petlji daje bloku on radio received priliku da zapamti protivnikov znak.
Pauza od jedne sekunde prije čekanja brine da tvoj znak bude na ekranu barem sekundu. Ako je susjedov znak već stigao, čekanje odmah završi, ali ti si svoj znak ipak stigao/la vidjeti.
Uvjet čekanja ima dva dijela, spojena blokom and (i) iz kategorije Logic. Ponavljanje traje samo dok su oba dijela istinita:
- poslano – runda još traje;
- protivnik < 0 – susjedov znak još nije stigao.
Zašto nam treba i prvi dio? Ako netko dotakne logo dok čekaš, nova runda postavi poslano na false. Čekanje tada završi, a rezultat stare runde se ne prikaže.
Tko je pobijedio?
To odlučuje funkcija sudi. Najprije postavi varijablu pobjeda na false. Zatim za svaki od tri slučaja iz tablice pita: je li moj znak ovaj, a protivnikov onaj? To je opet uvjet unutar uvjeta. Ako je jedan od slučajeva točan, pobjeda postaje true. Na kraju funkcija pokaže lice.
Predvidi
- Ti pošalješ kamen, a susjed papir. Što će na kraju pokazati tvoj micro:bit, a što susjedov?
- Oboje pošaljete škare. Što pokazuju oba micro:bita?
- Dotakneš logo dok tvoj micro:bit čeka susjedov znak. Što se dogodi?
Isprobaj
Odigrajte nekoliko rundi. Ako micro:bit čeka i ništa se ne događa, provjerite jeste li oboje pritisnuli B. Ako rezultat ne odgovara pravilima, usporedite funkciju sudi s tablicom pobjeda.
Dodatni zadaci
- Bodovi. Svaka pobjeda donosi bod. Nakon rezultata neka micro:bit prikaže tvoje bodove. Pomoć: bod dodaj u funkciji sudi, ondje gdje se prikazuje sretno lice.
- Prvi do tri. Kad dođeš do 3 boda, neka micro:bit prikaže veliko srce i pusti melodiju, a bodovi kreću ispočetka.
Vježba 3: Vrući krumpir za devet igrača
Tehnika: poruka s adresom i vrijednošću
Sada igra cijela grupa. Krumpir je vruć i nitko ga ne želi držati!
- Svi su u istoj radio grupi, 50.
- Svaki igrač dobiva od voditelja svoj broj, od 1 do 9, na naljepnici.
- Igru pokreće voditelj svojim micro:bitom. On baci prvi krumpir nasumičnom igraču, a krumpir će eksplodirati za 15 do 30 sekundi. Koliko točno, ne zna nitko.
- Tko ima krumpir, vidi ga na ekranu. Tipkom A baca ga nasumičnom igraču. Zajedno s krumpirom šalje i koliko je sekundi ostalo do eksplozije.
- Svi ostali na ekranu vide broj igrača kod kojeg je krumpir.
- Kad vrijeme istekne, krumpir eksplodira u rukama onoga tko ga drži. Na njegovu ekranu je lubanja, a svi ostali vide BUM.

Poruka s adresom
Svi su u istoj radio grupi, pa svaki bačeni krumpir čuju svi igrači. Kako onda krumpir stigne samo jednom?
Rješenje je adresa, kao na pismu. Bacač ne šalje „evo krumpira”, nego broj igrača kojem ga baca. Svaki micro:bit kad primi poruku provjeri: je li to moj broj? Ako jest, krumpir je njegov. Ako nije, samo prikaže taj broj, pa svi znaju kod koga je krumpir.
Ali krumpir mora nositi i preostalo vrijeme. Zato šaljemo poruku od dva dijela, blokom radio send value:
- ime poruke je adresa: broj igrača kojem bacamo, pretvoren u tekst blokom convert to text;
- vrijednost je broj sekundi do eksplozije.
Na slici igrač 3 baca krumpir igraču 6, a do eksplozije je ostalo 12 sekundi. Poruku prima blok on radio received name value.
Isti blok javlja i eksploziju. Tada je ime poruke BUM, pa svi ostali na ekranu vide BUM. Vrijednost je broj igrača kod kojeg je krumpir eksplodirao, ali je ne trebamo prikazati: svi su već vidjeli kod koga je krumpir.
Kada krumpir eksplodira?
Sjeti se štoperice iz igre mirne ruke: blok running time (ms) kaže koliko je milisekundi prošlo otkad je program počeo. Kad krumpir stigne, micro:bit izračuna rok, trenutak eksplozije na svojem satu: rok = running time + sekunde × 1000. Zatim stalno provjerava je li sat prešao rok.
Na primjer, krumpir stigne s 12 sekundi, kad tvoj sat pokazuje 40000 ms. Rok je 40000 + 12 × 1000 = 52000 ms.
- Ako ga ne baciš do 52000 ms: BUM!
- Ako ga baciš kad sat pokazuje 45000 ms, ostalo je (52000 − 45000) / 1000 = 7 sekundi. Tih 7 sekundi šalješ dalje.
Zašto ne pošaljemo sam rok? Zato što svaki micro:bit ima svoj sat, koji je krenuo kad je taj micro:bit uključen. 52000 ms na tvojem satu nije isti trenutak kao 52000 ms na susjedovu. Preostale sekunde znače isto na svim micro:bitovima.
Brojevi igrača
U programu su dvije varijable koje moraš postaviti:
- mojBroj – tvoj broj s naljepnice;
- brojIgraca – koliko igrača danas igra. Krumpir se baca nekome od 1 do brojIgraca.
Brojevi bez rupa!
Ako danas igra sedmero, voditelj podijeli brojeve od 1 do 7, a svi postave brojIgraca na 7.
Zašto? Kad bi brojIgraca bio 9, krumpir bi ponekad poletio igraču 8 ili 9, kojeg danas nema. Nitko ga ne bi uhvatio i krumpir bi nestao.
Krumpir nema gotovu sliku, pa smo ga nacrtali blokom show leds. Varijabla imamKrumpir je true ili false, kao igraTraje u igri mirne ruke, a cilj je broj igrača kojem bacaš.
Krumpir ne leti tebi. Kad nasumični broj ispadne baš tvoj, micro:bit pokaže iznenađeno lice, krumpir ostaje kod tebe, a ti ponovno pritisneš A. Da ga pošalje, krumpir bi nestao, jer micro:bit ne čuje vlastitu poruku.
Kako voditelj pokreće igru?
Voditeljev micro:bit je u istoj radio grupi, 50. Kad voditelj pritisne A+B, pošalje istu vrstu poruke kao igrač koji baca krumpir: ime je nasumični broj igrača od 1 do brojIgraca, a vrijednost nasumični broj sekundi od 15 do 30. Za tvoj micro:bit to je obično bacanje krumpira, pa u tvojem programu za početak igre ne treba ništa posebno.

Predvidi
- Krumpir stigne s 20 sekundi, a ti ga baciš nakon 5 sekundi. Koliko sekundi pošalješ?
- Igrač 3 baci krumpir igraču 6. Što se dogodi na micro:bitu igrača 5?
- Što bi se dogodilo kad bi dva igrača imala isti broj?
Isprobaj
Upiši svoj broj i broj igrača, prenesi program i pričekaj da voditelj pokrene igru. Odigrajte nekoliko rundi.
Ako ti krumpir nikad ne stiže, provjeri:
- je li tvoja radio grupa 50;
- je li mojBroj tvoj broj s naljepnice;
- je li brojIgraca jednak kao kod svih ostalih.
Promijeni jednu stvar
- Nacrtaj svoj krumpir ili ga pretvori u nešto drugo što nitko ne želi držati.
- Promijeni ton koji se čuje kad krumpir stigne.
- Promijeni vrijeme do eksplozije, na primjer od 10 do 20 sekundi. Kakva je igra sada?
Dodatni zadaci
- Opekline. Napravi varijablu opekline koja broji koliko ti je puta krumpir eksplodirao u rukama. Tipka B neka prikaže broj opeklina.
- Tik-tak. Dok držiš krumpir, neka micro:bit svakih pola sekunde kratko zapišti. Pomoć: u novom bloku forever pitaj imam li krumpir?
Što ako se poruka izgubi?
Na početku smo rekli: nitko ne javlja da je poruka stigla. Ponekad se poruka izgubi, na primjer kad je micro:bit predaleko ili kad se dvije poruke pošalju u istom trenutku.
Razmislite zajedno:
- Što se dogodi u vrućem krumpiru ako se izgubi bačeni krumpir? (Nitko ga nema, pa ne eksplodira ni kod koga. Igra stane, a voditelj pokrene novu rundu.)
- Što se dogodi u igri kamen, papir, škare ako se izgubi tvoj znak? (Susjed čeka zauvijek. Dodir logotipa pokreće novu rundu.)
- Kako bismo mogli smanjiti opasnost da se poruka izgubi? (Možemo je poslati nekoliko puta zaredom.)
Kad budemo upravljali robotima, to će biti važno: robot mora znati što napraviti ako ne čuje poruku.
Što smo naučili?
- Radio-veza šalje poruke kroz zrak, bez žica. Odašiljač šalje radio valove, a prijemnik ih hvata antenom.
- Micro:bit može biti i odašiljač i prijemnik. Radi na 2,4 GHz, kao Wi-Fi i Bluetooth.
- Poruku čuju svi micro:bitovi u blizini, ali reagiraju samo oni u istoj radio grupi.
- Micro:bit ne čuje vlastitu poruku.
- Radio-vezom možemo poslati broj, kratak tekst ili ime i broj zajedno. Broj koristimo za izbor, a tekst za naredbu.
- Oba micro:bita moraju unaprijed znati što koja poruka znači.
- Kad poruku čuju svi, ime poruke može biti adresa: krumpir uzme samo onaj čiji je to broj, a ostali vide kome je bačen. Broj u istoj poruci nosi vrijednost, na primjer preostale sekunde.
- Svaki micro:bit ima svoj sat. Zato šaljemo koliko je vremena ostalo, a ne trenutak na svojem satu.
- Program može zapamtiti poruku i prikazati je tek kad za to dođe vrijeme.
- Blok while ponavlja blokove sve dok je uvjet ispunjen. Njime micro:bit čeka poruku.
- Blok and spaja dva uvjeta: cijeli uvjet je ispunjen samo ako su ispunjena oba.
- Nitko ne javlja da je poruka stigla, pa se poruka može izgubiti.









