Rádiózzunk micro:bit-tel!
A micro:bit központi egysége egy ARM alapú, nRF51 típusú un. alkalmazás processzor. Ez az eszköz kezeli a micro:bit hardver elemeit, a ledmátrixot, a gombokat, a szenzorokat, a GPIO csatlakozókat és végül, de nem utolsósorban a micro:bit 2,4GHz-es rádióját. A modul számos szabványos rádiótávközlési protokollt támogat, beleértve a szabadalmaztatott Nordic Gazell-t. Ez a protokoll nagyon egyszerű, kis csomagot sugárzó (small-packet broadcast) rádió interfészt biztosít más, azonos protokollt támogató eszközök közötti kommunikációhoz, mint például más mikro:bit eszközök.
Az összeköttetés fontosabb jellemzői:
A rádió modul programozása történhet a java scriptes block editorral, vagy micropython-ban. Ebben az esetben az első lépés a szükséges library meghívása, amit az alábbi módon tehetünk meg:
from microbit import * import radio
Ezt követi az eszköz bekapcsolása:
radio.on()
A következő beállítandó paraméter az un. csatorna szám, amivel megadható, hogy az egymással kommunikáló eszközök melyik csatornát használják. Értéke 0 – 100 közötti szám.
radio.config(channel=19)
Megadható tovább az adás erőssége, azaz a hatótávolság módosítható. Értéke 0 (-30dbm) és 7 között (+4dbm) lehet.
radio.config(power=7)
Üzenet küldés és fogadás:
A fenti funkciókat a radio.send, illetve a radio.receive parancsokkal tudjuk megoldani, egy egyszerű példával:
küldés:
my_message = „micro:bit radio” radio.send(my_message)
fogadás:
message_received = radio.receive()
A fentieket foglaljuk össze egy egyszerű mintaprogramban!
1. programpár
Program-1: az adó
from microbit import * import radio chnl = 10 radio.config(channel=chnl) radio.on() while True: a = button_a.is_pressed() b = button_b.is_pressed() if a: display.show(Image.ARROW_N) radio.send("N") elif b: display.show(Image.ARROW_S) radio.send("S") sleep(20)
Program-2: a vevő
from microbit import * import radio chnl = 10 radio.config(channel=chnl) radio.on() while True: s = radio.receive() if s is not None: if s=="N": display.show(Image.ARROW_N) elif s=="S": display.show(Image.ARROW_S) sleep(20)
Az első program az adó, az „A” gomb lenyomásakor egy „N” karaktert küld a rádión, illetve megjelenít egy felfelé mutató nyilat a ledkijelzőn. A „B” gomb lenyomásakor egy „S” karakter a küldött üzenet, a megjelenített szimbólum pedig egy lefelé mutató nyíl.
A második program, a vevő folyamatosan „olvassa” az érkező „adást” és „N” karakter érkezésekor felfelé, „S” karakter érkezésekor lefelé mutató nyilat jelenít meg a kijelzőn.
2. programpár
A második mintaprogram egy „gyakorlatiasabb” példát mutat be, a vevőt megvalósító micro:bit a kimenetén egy fehér LED-et kapcsol be („A”-gomb) illetve ki („B”-gomb).
Az „adó” programja:
from microbit import * import radio chnl = 10 radio.config(channel=chnl) radio.on() while True: a = button_a.is_pressed() b = button_b.is_pressed() if a: display.show(Image.ARROW_N) radio.send("N") elif b: display.show(Image.ARROW_S) radio.send("S") sleep(20)
A „vevő” programja:
from microbit import * import radio chnl = 10 radio.config(channel=chnl) radio.on() while True: s = radio.receive() if s is not None: if s=="ON": pin0.write_digital(1) display.scroll("ON") elif s=="OFF": pin0.write_digital(0) display.scroll("OFF") sleep(20)
Programunk működés közben:
A négy forráskód letölthető:
- 1. program – nyíl vezérlése – adó
- 1. program – nyíl vezérlése – vevő
- 2. program – kimeneti LED kapcsolása – adó
- 2. program – kimeneti LED kapcsolása – adó
A BBC micro:bit termékek megvásárolhatók a MálnaPC Webshopjában!