Micro:bit ima mogućnost bežične komunikacije s drugim Micro:bitovima. Ta mogućnost podržana je i u Mblocku 5. U ovome članku dat ću primjer jedne naprednije aktivnosti vezane uz bežićnu komunikaciju.
Aktivnost je zamišljena za učenike 7. razreda osnovne škole u sklopu nastavnog sadržaja „Mrežna komunikacija“ (Ishod A.7.1 ). Aktivnost može poslužiti za uvođenje ili utvrđivanje novih pojmova (Mrežno povezivanje, IP adrese, protokoli, …).
Aktivnost uključuje i rad s jednostavnim tipovima podataka (Ishod B.7.1).
Za ovu aktivnost potrebna su minimalno 2 Micro:bita (aktivnost ima smisla za 3 i više) te instaliran mBlock 5 (v5.1.0 ili novija).
Za osnovne aktivnosti vezane uz ovu temu pogledati članak Micro:bit i Mblock 5.
Prije nego krenemo na aktivnost nekoliko napomena.
Postoje bitne razlike u načinu na koji je bežična komunikacija implementirana u Mblocku 5 i MakeCodu.
U Mblocku 5 varijabla "receive wireless message" je tipa string kada poruka postoji i tipa none kada nije primljena poruka. To može uzrokovati grešku kada tip none pokušamo tretirati kao string. Što se može dogoditi jer Mblock 5 nema blok "on radio received" te ne postoji jednostavan način za njegovo rekreiranje.
1. Spojimo Micro:bit s računalom pomoću microUSB kabela.
2. Pokrenemo mBlock 5 (u ovom članku je korištena verzija v5.1.0).
3. Dodamo novi uređaj i odaberemo Micro:bit.
U ovoj aktivnosti nastavnikov Micro:bit ima ulogu servera, te se na njemu nalazi unaprijed pripremljeni program. Zadatak učenika je poslati i primiti poruku od servera te izmjeriti vrijeme koje je prošlo između slanja poruke i primanja odgovora.
Budući da će u ovoj aktivnosti svi učenici imati mogućnost komunikacije sa serverom na istom kanalu prije početka aktivnosti trebamo dogovoriti protokol za slanje i primanje poruka.
1. Komuniciramo na kanalu 22.
2. Svaki od učenika treba odabrati svoju adresu. Adresa se sastoji od jednog slova engleske abecede. (A - Z) Sve adrese trebaju biti međusobno različite. Adresa servera je slovo S, dakle nitko drugi ne može odabrati slovo S kao svoju adresu.
3. Poruka (Paket) koji šaljemo treba biti sljedećeg oblika:
Možemo usporediti s shemom stvarnog paketa.
4. Kada server na adresi S primi poruku „micro“ on će na nju odgovoriti porukom „bit“. (s odgovarajućim formatom zaglavlja)
Micro:bit mjeri vrijeme koje je proteklo od njegovog uključivanja u milisekundama. Tom podatku možemo pristupiti pomoću bloka:
Ako neposredno prije slanja poruke spremimo vrijeme koje je prošlo od uključivanja u varijablu. Te isto napravimo neposredno nakon primanja poruke. Oduzimanjem druge varijable od prve dobivamo proteklo vrijeme u milisekundama.
Pomoću blokova za rad sa stringovima:
Možemo sastavljati poruku koju ćemo slati, odnosno ispitivati sadržaj primljene poruke.
Pošalji poruku serveru (pritiskom na tipku A) na adresi S prema gore dogovorenom protokolu. Izmjerite vrijeme proteklo između slanja poruke i primanja odgovora te ga prikažite pomoću mreže LED lampica. Na poruku „micro“ s odgovarajućim zaglavljem server će odgovoriti s „bit“. Ako odgovor ne primimo unutar 5 sekundi od slanja poruke smatramo da je poruka izgubljena.
Odaberemo svoju adresu. Uvjerimo se da je naša adresa jedinstvena. Svoju adresu možemo pohraniti u posebnoj varijabli. Pretpostavimo da smo odabrali adresu „A“.
Pritiskom na tipku A otvorimo bežičnu komunikaciju, odaberemo kanal 22, zapamtimo vrijeme slanja i pošaljemo poruku oblika „SAmicro“.
Čekamo dok ne primimo odgovor odgovarajućeg formata („ASbit“) ili dok ne prođe 5 sekundi od slanja. Zapamtimo vrijeme primanja.
Izračunamo i prikažemo izmjereno vrijeme.
Nakon što učenici uspiju izmjeriti vrijeme između slanja i primanja poruke (latency), zajedno s učenicima proanaliziramo program koji se nalazio na serveru.
Server prima poruke u beskonačnoj petlji sve dok ne primi poruku koja sadržava „micro“ te ima adresu servera na prvom mjestu. Nakon toga prikazuje adresu pošiljatelja te generira i šalje odgovarajući odgovor.
Pokušajte poslati poruku jedni drugima prema dogovorenom protokolu. Za to vaš Micro:bit treba biti u mogućnosti slati i primati poruke. Proučite primjer servera iz prethodnog zadatka.
Savjet je koristiti ovaj blok za slanje poruke:
Možemo kreirati posebne varijable za adresu primatelja i pošiljatelja. Otvaramo bežičnu komunikaciju, postavljamo kanal 22, i u beskonačnoj petlji primamo poruke. Budući da kada nema poruka primamo poruku tipa None što može uzrokovati probleme pri radu sa stringovima možemo se poslužiti sljedećim trikom:
Provjerimo je li primljena poruka poslana nama. Ako je prikažemo poruku.
Isto tako na pritisak tipke A šaljemo poruku na adresu primatelja u odgovarajućem formatu.
Dodati mehanizam za provjeru primanja poruke i ponovno slanje poruke u slučaju izgubljene poruke.
Napraviti blok za enkripciju poruke, na primjer, Cezarovom šifrom. Pokušati presresti šifriranu poruku koja se šalje između dva Micro:bita te napraviti dešifriranje.
Osmisliti sustav komunikacije Morseovom abecedom i tipkama A za slanje točke i B za slanje crtice.
Citiraj
Novak, Siniša (24.02.2020.). Komunikacija Micro:bita i Mblock 5. Sustav. Preuzeto s https://sustav.sino.com.hr/komunikacija-micro-bita-i-mblock-5 ()