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 pi-shop.hu és MálnaPC Webshopjában!
