Komunikacija Micro:bita i Mblock 5

24.02.2020. - Reading time: 10 minutes

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.

Usporedba blokova Mblock 5 i MakeCode

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. 

Priprema

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.

Aktivnost „Ping“

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.

Protokol:

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)

Mjerenje vremena

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.

Rad sa stringovima

Pomoću blokova za rad sa stringovima:

Možemo sastavljati poruku koju ćemo slati, odnosno ispitivati sadržaj primljene poruke.

Zadatak 1.

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.

Rješenje:

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.

Analiza programa za server:

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.

Zadatak 2.

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:

Rješenje:

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.

Moguće nadogradnje ove aktivnosti

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 ()