Operácie

Komunikácia a micro:bit 2023

Z SensorWiki

Verzia z 19:07, 26. november 2023, ktorú vytvoril Balogh (diskusia | príspevky)

Ovládač pre Windows


Terminály v browseri, fungujú len v Chrome alebo Edge s využitím WebSerial API (https://github.com/svendahlstrand/web-serial-api):

Sériová linka

Teória a podrobnejšie informácie o sériovej linke: RS-232.


Programovanie komunikácie v micro:bite je pomerne jednoduché pomocou blokov z knižnice Serial. Vyskúšajte:

MicroBitSerial01.png


Dáta vieme posielať cez USB rozhranie, ktorým je micro:bit pripojený k počítaču. Okrem toho, že micro:bit sa tvári ako USB disk pripojený k počítaču a je cez toto rozhranie aj napájaný, vieme vytvoriť virtuálny sériový port, ktorý sa potom objaví aj v Správcovi zariadení - budeme ho potrebovať, aby sme zistili, aké číslo portu priradil operačný systém:

WindowsDeviceManagerForSerial.png

Programovanie micro:bitu potom spočíva vo volaní blokov z knižnice Serial.



Úloha 1: Obojstranná sériová komunikácia
Zobrazte v programe Web Serial Plotter všetky tri osi akcelerometra a pridajte aj reakciu na aspo+n jeden príkaz odvysielaný z PC (napríklad po prijatí textu 'Ahoj' sa na displeji na 3 sekundy objaví nejaký obrázok). Počas vysielania by malo byť na displeji tiež niečo aktívne zobrazené, aby sme videli, že vysielanie prebieha.

Postup:

  • vytvorte program v prostredí makecode:
    • program má pomocou príkazov Serial_Write_Line poslať do PC tri reťazec v nasledovnom tvare: "accX:217,accY:1023,accz:-25\n" na konci má byť nový riadok (musíme použiť príkaz Serial_Write_Line a nie Serial_Write_String).
  • program preneste do micro:bitu
  • spustite Web Serial Plotter, nastavte komunikačné parametre 9600,n,8,1 a stlačte Connect - v terminálovom okne by ste mali vidieť

grafy prijímaných dát.






= Bezdrôtový prenos

Bezdrôtový prenos medzi dvoma micro:bitmi je realizovaný pomocou špeciálneho firemného protokolu, ktorý sa však pomocou blokov v knižnici Radio realizuje veľmi jednoducho. Najprv treba nastaviť číslo skupiny v ktorej bude modul komunikovať, číslo 1 je na cvičení vyhradené pre učiteľa, ostatní použijú pridelené číslo.

Potom používame dve funkcie: radio_send_number, ktorá na danom kanáli odvysiela príslušné číslo z argumentu a on_radio_received, ktorá vyvolá príslušnú akciu vždy, keď je prijatý rádiový paket. Výsledok príjmu máte k dispozícii v premennej.


MicrobitRadio01.png

Pri použití komunikácie v simulátore sa objaví druhý modul, ktorý je však naprogramovaný rovnako ako prvý. Vyskúšajte vyššie uvedený program. Jeho funkcia spočíva vo výmene hodôt zrýchlenia v osi x medzi dvoma microbitmi, pričom pohyb prvého sa zobrazuje ako stĺpcový graf na druhom a naopak. Zároveň sa údaje zobrazujú aj graficky v simulátore.

Úloha 2: Skúška komunikácie
Spoločne so susedom si vyskúšajte vyššie uvedený program a potom ho modifikujte nasledovne: po stlačení tlačidla A sa u suseda objaví na displeji veselý smajlík, pri stlačení B smutný smajlík.


Úloha 3: Schôdzka naslepo.
Zistite, ktorý spolužiak má rovnaké číslo ako vy. Naprogramujte micro:bit, aby na pridelenom kanáli vysielal vaše meno (alebo nick), a zároveň na tom istom kanáli počúvajte, či niekto nevysiela svoje meno. Zobrazte si prijatý reťazec a vyplňte správne dvojicu vysielač / prijímač. Za správne spárovanie získate 2 body. Ak si myslíte, že váš program je správny a chyba je len v protistrane, potom môžete využiť služby verejného majáku na kanáli č. 1. Ten vysiela nepretržite a tak zistíte, či vám program funguje.

Namiesto funkcie radio_send_number použite blok radio_send_string.

Neoprávnené vysielanie na cudzom kanáli, obzvlášť na č. 1, bude potrestané odpočítaním 10 bodov!!!


Ďalšie informácie: