RADIO VEZA NA MIKROBIT UREĐAJU

Mikrobit uređaj omogućava komunikaciju sa drugim mikrobitima putem radio veze, koristeći ugrađenu antenu koja se nalazi na zadnjoj strani uređaja. Ova funkcionalnost može biti korisna u projektima koji zahtevaju bežičnu razmenu podataka, kao što su igre sa više igrača, razmena poruka ili prenos senzornih podataka.

Primeri upotrebe radio veze

Komande u Radio paleti

Programiranje mikrobita- Radio paleta komandi
Slika 1: Programiranje mikrobita- Radio paleta komandi
  1. radio set group – podešava grupu kojoj mikrobit pripada. Samo uređaji u istoj grupi mogu međusobno da komuniciraju.
  2. radio send number – šalje broj drugim uređajima u istoj grupi.
  3. radio send string – šalje tekstualni niz putem radio signala.
  4. radio on received – izvršava se kada mikrobit primi broj ili tekst od drugog mikrobita u grupi.
  5. radio send value – šalje vrednost u formatu "ključ: vrednost", što može biti korisno za prenos kompleksnijih podataka.
  6. on radio received[receivedNumber] - Registruje kod koji će biti pokrenut kada se primi broj
  7. on radio received[name]  [value] - Pokreće deo programa kada Micro:bit primi par-ime-vrijednost preko radija.
  8. on radio received[receivedString] - Registruje kod koji će biti pokrenut kada se primi string
  9. received packet [signal strength] - Preuzima jedno od svojstava iz poslednjeg primljenog radio paketa. 
Napredne komande (klikom na “more”) Ove komande se mogu koristiti za kreiranje kreativnih projekata koji zahtevaju bežičnu razmenu informacija, a primena se može lako proširiti na različite zadatke, kao što su kontrola uređaja na daljinu ili razmena podataka između senzora.

Kako dva mikrobita razmenjuju poruke preko radio veze

​Komunikacija između dva mikrobit uređaja pomoću radio veze omogućava da uređaji razmenjuju podatke bežično na jednostavan način. Ovo je posebno korisno za projekte koji uključuju daljinsko upravljanje, deljenje podataka, ili sinhronizaciju događaja. Evo detalja kako ovo funkcioniše i kako se može koristiti:​Ključni koraci za radio komunikaciju:
​
  1. Omogućavanje radio veze:
    • Na svakom mikrobitu potrebno je pozvati funkciju radio.setGroup(groupNumber) da bi uređaji komunicirali unutar iste grupe. Broj grupe mora biti isti za sve uređaje koji žele da komuniciraju.
    • Brojevi grupa se koriste kao "kanali" za komunikaciju i pomažu u izolaciji različitih komunikacija.
  2. Slanje podataka:
    • Koristi se komanda radio.sendString("poruka") za slanje tekstualnih poruka.
    • Alternativno, mogu se slati i brojevi pomoću radio.sendNumber(broj) ili prilagođeni podaci pomoću radio.sendValue("ime", vrednost).
  3. Prijem podataka:
    • Mikrobit koristi događaje za prijem podataka:
      • radio.onReceivedString(function (receivedString) {...}) za prijem tekstualnih poruka.
      • radio.onReceivedNumber(function (receivedNumber) {...}) za prijem brojeva.
      • radio.onReceivedValue(function (name, value) {...}) za prijem imenovanih vrednosti.
  4. Povezivanje udaljenosti:
    • Radio komunikacija mikrobita ima domet od oko 10-20 metara u zatvorenom prostoru i do 50 metara na otvorenom, u zavisnosti od prepreka.
  5. Podešavanje snage signala (opciono):
    • Komanda radio.setTransmitPower(powerLevel) (nivo snage od 0 do 7) se koristi za podešavanje snage signala.

Primeri praktične primene:

​

Projekat 1: Merenje temperature na daljinu koristeći micro:bit uređaje

Opis problema:
Napraviti sistem koji koristi dva micro:bit uređaja za merenje spoljašnje temperature na udaljenosti. Jedan uređaj meri temperaturu pomoću ugrađenog senzora i šalje podatke putem radio veze, dok drugi uređaj prima te podatke i prikazuje ih na svom LED ekranu. Ovaj princip se može proširiti i za kreiranje kompletne meteorološke stanice.Opis projekta:
  1. Cilj:
    • Demonstracija upotrebe radio veze na microbit uređajima za razmenu podataka.
    • Kreiranje jednostavnog sistema za merenje i prikaz temperature na daljinu.
  2. Potreban hardver:
    • Dva microbit uređaja (jedan za merenje temperature, drugi za prikaz podataka).


Koraci u realizaciji

Kod za uređaj za merenje temperature ("Sender") Projekat
Slika 2: Projekat "Merenje temperature pomoću dva mikrobita na daljinu"-Sender
Kod za uređaj za prikaz temperature ("Receiver")  Projekat
Slika 3: Projekat "Merenje temperature pomoću dva mikrobita na daljinu"-Receiver

Proširenje projekta:

Kako ovo može postati meteorološka stanica?

Projekat: "Pazi, lopov!"

Opis projekta:
​
Cilj ovog projekta je da se napravi alarmni sistem koristeći dva micro:bit uređaja koji komuniciraju preko radio veze. Sistem funkcioniše tako da jedan micro:bit("Senzor") prati pokret kutije ili predmeta u kojoj se nalazi dragocenost, dok drugi micro("Alarm") obaveštava o mogućem pokušaju krađe. Kada akcelerometar na senzoru detektuje pokret, na njegovom ekranu se prikazuje ljuto lice, a poruka "Lopov!" se šalje alarmu, koji potom emituje zvuk sirene i upozorava na pomeranje.

Uputstvo za realizaciju:

Potreban hardver: Kod za microbit "Senzor":

Zadaci:
​Glavne komande:

Kod za micro:bit "Alarm":

Zadaci:

Objašnjenje funkcionalnosti: radio.sendString("lopovi") šalje poruku kroz radio vezu. Na prijemu poruke preko radio.onReceivedString(function              (receivedString) { ... }), drugi uređaj aktivira alarm.
             Funkcija alarm() prikazuje ikonu tužnog lica i reprodukuje melodiju koristeći ugrađene funkcije micro.
 Projekat:
Slika 4: Projekat: "Pazi, lopov!" - rešenje

Proširenje projekta:

Zaključak

​Ovaj projekat pruža odličan primer kako se microbit uređaji mogu koristiti za bežičnu komunikaciju i praktične sisteme upozorenja. Pomoću dodatnih senzora ili modula, ovaj sistem se lako može proširiti i prilagoditi različitim potrebama.

Dodatni složeniji zadaci za vežbu

  1. Implementacija više kanala za komunikaciju:
    • Zadatak: Neka dva mikrobita komuniciraju koristeći različite kanale za različite poruke (npr. kanal 1 za tekstualne poruke, kanal 2 za komande).
    • Instrukcije: Definišite uslove za prebacivanje kanala i koristite različite brojeve kanala u funkcijama radio.setGroup(). Omogućite korisnicima da pritiskom na dugme biraju kanal.
  2. Šifrovanje poruka:
    • Zadatak: Implementirajte jednostavno šifrovanje poruka pre slanja (npr. pomeranjem karaktera za određeni broj mesta u ASCII tabeli) i njihovo dešifrovanje pri prijemu.
    • Instrukcije: Koristite funkcije za obradu stringova kako biste menjali tekst pre slanja, a na prijemnoj strani implementirajte obrnutu operaciju.
  3. Grupna komunikacija sa potvrdom:
    • Zadatak: Kreirajte sistem gde više mikrobita šalje poruke, a primalac šalje potvrdu prijema (ACK).
    • Instrukcije: Implementirajte mehanizam gde primalac automatski odgovara porukom "primljeno", a pošiljalac proverava odgovor.
  4. Igra "telefonski razgovor":
    • Zadatak: Dva mikrobita komuniciraju naizmenično, simulirajući telefonski razgovor, gde svaki šalje poruku i čeka odgovor pre nego što pošalje sledeću.
    • Instrukcije: Koristite zastavice ili promenljive za praćenje ko je na redu za slanje.
  5. Daljinsko upravljanje uređajem:
    • Zadatak: Jedan mikrobit šalje komande za upravljanje LED diodama na drugom mikrobitu putem radio veze.
    • Instrukcije: Definišite različite komande (npr. "ON", "OFF", "BLINK") i koristite uslovne naredbe za njihovu interpretaciju na prijemnoj strani.
  6. Merenje udaljenosti poruke:
    • Zadatak: Istražite kako se jačina signala (radio.receivedPacket(RSSI)) može koristiti za procenu udaljenosti između mikrobita.
    • Instrukcije: Prikazujte jačinu signala na LED ekranu, a učenici mogu istražiti promenu jačine signala u zavisnosti od udaljenosti i prepreka.

Dodatak za naprednije korisnike: Zadaci za samostalno rešavanje

Zadatak 1: Merenje jačine signala

Tekst zadatka: Napravite program koji meri jačinu signala primljenog radio paketom i prikazuje rezultat na ekranu. Ako je signal slabiji od -80, prikazuje tužan izraz lica, u suprotnom prikazuje srećan.
​
Instrukcije za rešavanje pomoću blokova:
  1. Uključite radio set group blok i postavite grupu (npr. 1).
  2. Koristite blok on radio received iz Radio sekcije.
  3. Iz bloka received packet odaberite signal strength i sačuvajte rezultat u promenljivu, koristeći set variable blok.
  4. Dodajte uslov pomoću if...then bloka:
    • Ako je signal slabiji od -80, koristite show icon za prikaz tužnog izraza.
    • U suprotnom prikažite srećan izraz.
  5. Testirajte program pomoću dva micro:bit uređaja.

Zadatak 2: Podešavanje snage signala

​Tekst zadatka: Napravite program koji smanjuje snagu prenosa signala na pritisak dugmeta B, a povećava na dugme A. Snaga signala se prikazuje na LED ekranu.
Instrukcije za rešavanje pomoću blokova:
  1. Postavite radio set transmit power na početnu vrednost 3.
  2. Napravite promenljivu power i postavite je na 3.
  3. Koristite on button A pressed:
    • Povećajte power za 1, ali ograničite maksimalnu vrednost na 7 (koristite if uslov).
    • Ažurirajte radio set transmit power na vrednost promenljive.
  4. Dodajte blok on button B pressed za smanjivanje power (ograničite minimalnu vrednost na 0).
  5. Koristite show number da prikažete trenutnu vrednost power.

Zadatak 3: Identifikacija uređaja serijskim brojem

Tekst zadatka: Napravite program koji šalje jedinstvenu poruku sadržeći serijski broj uređaja. Kada drugi uređaj primi poruku, prikazuje serijski broj na ekranu.
Instrukcije za rešavanje pomoću blokova:
  1. Omogućite slanje serijskog broja koristeći radio set transmit serial number.
  2. Postavite on button A pressed za slanje poruke pomoću radio send string (npr. "Hello").
  3. Na prijemnoj strani koristite on radio received:
    • Prikažite received packet serial number pomoću show number.

Zadatak 4: Promena radio kanala

​Tekst zadatka: Napravite program koji omogućava promenu radio kanala pritiskom na dugme. Trenutni kanal se prikazuje na LED ekranu.
Instrukcije za rešavanje pomoću blokova:
  1. Napravite promenljivu channel i postavite je na početni kanal (npr. 7).
  2. Na dugme A postavite da povećava channel za 1 (ograničite maksimalnu vrednost na 13).
  3. Na dugme B postavite smanjivanje channel (minimalna vrednost 0).
  4. Koristite radio set group da ažurirate grupu prema vrednosti channel.
  5. Prikazujte trenutni channel pomoću show number.

Zadatak 5: Podizanje događaja preko radija

​Tekst zadatka: Napravite program koji podiže događaj kada primi specifičnu poruku. Drugi uređaj detektuje događaj i prikazuje odgovarajuću poruku.
Instrukcije za rešavanje pomoću blokova:
  1. Na uređaju pošiljaocu postavite radio send string (npr. "Event1") na pritisak dugmeta A.
  2. Na uređaju primaocu koristite on radio received:
    • Ako je received string jednak "Event1", koristite radio raise event from source with value (npr. source=100, value=1).
  3. Koristite on event za detekciju događaja i prikaz poruke na ekranu.