Bezdrôtová komunikácia a micro:bit: Rozdiel medzi revíziami
Z SensorWiki
(Vytvorená stránka „'''Spoločné zadanie pre celý kružok:''' <html> <style type="text/css"> @font-face { font-family: "MyMatrix"; src: url(http://senzor.robotika.sk/zp/led_count…“) |
|||
Riadok 1: | Riadok 1: | ||
+ | == 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. | ||
+ | |||
+ | |||
+ | [[Súbor:microbitRadio01.png|800px]] | ||
+ | |||
+ | 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: Schôdzka naslepo. '''<BR> | ||
+ | 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!!!''' | ||
+ | |||
+ | <!-- | ||
+ | |||
+ | Príloha: Konfiguračný súbor pre program SerialPlotter | ||
+ | |||
+ | <source lang="ini"> | ||
+ | [MainWindow] | ||
+ | size=@Size(927 689) | ||
+ | pos=@Point(218 102) | ||
+ | activePanel=Port | ||
+ | hidePanels=false | ||
+ | maximized=false | ||
+ | state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x3\x9f\0\0\x2n\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\f\0t\0\x62\0P\0l\0o\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x1a\0t\0\x62\0P\0o\0r\0t\0\x43\0o\0n\0t\0r\0o\0l\x1\0\0\0\xb0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x10\0t\0\x62\0R\0\x65\0\x63\0o\0r\0\x64\x1\0\0\x1\xcf\xff\xff\xff\xff\0\0\0\0\0\0\0\0) | ||
+ | |||
+ | [Port] | ||
+ | selectedPort=COM8 | ||
+ | baudRate=115200 | ||
+ | parity=none | ||
+ | dataBits=8 | ||
+ | stopBits=1 | ||
+ | flowControl=none | ||
+ | |||
+ | [DataFormat] | ||
+ | format=ascii | ||
+ | |||
+ | [DataFormat_Binary] | ||
+ | numOfChannels=4 | ||
+ | numberFormat=uint8 | ||
+ | endianness=little | ||
+ | |||
+ | [DataFormat_ASCII] | ||
+ | numOfChannels=3 | ||
+ | |||
+ | [DataFormat_CustomFrame] | ||
+ | numOfChannels=1 | ||
+ | numberFormat=uint8 | ||
+ | endianness=little | ||
+ | frameStart=AA BB | ||
+ | fixedSize=false | ||
+ | frameSize=1 | ||
+ | checksum=false | ||
+ | debugMode=false | ||
+ | |||
+ | [Channels] | ||
+ | channel\1\name=Zrychlenie X | ||
+ | channel\1\color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0VV\0\0) | ||
+ | channel\1\visible=true | ||
+ | channel\2\name=Zrychlenie Y | ||
+ | channel\2\color=@Variant(\0\0\0\x43\x2\xff\xff-o\xc7\xf5\xff\xff\0\0) | ||
+ | channel\2\visible=true | ||
+ | channel\3\name=Zrychlenie Z | ||
+ | channel\3\color=@Variant(\0\0\0\x43\x2\xff\xff\x19\xed\xfa\xb4\xf0s\0\0) | ||
+ | channel\3\visible=true | ||
+ | channel\4\name=Channel 4 | ||
+ | channel\4\color=@Variant(\0\0\0\x43\x1\xff\xff\xfe\xfe\x89\x89\0\0\0\0) | ||
+ | channel\4\visible=true | ||
+ | channel\size=4 | ||
+ | |||
+ | [Plot] | ||
+ | numOfSamples=1000 | ||
+ | indexAsX=true | ||
+ | xMax=1000 | ||
+ | xMin=0 | ||
+ | autoScale=false | ||
+ | yMax=1023 | ||
+ | yMin=-1023 | ||
+ | darkBackground=true | ||
+ | grid=true | ||
+ | minorGrid=true | ||
+ | legend=true | ||
+ | multiPlot=false | ||
+ | symbols=auto | ||
+ | |||
+ | [Commands] | ||
+ | command\1\name=Command 1 | ||
+ | command\1\type=ascii | ||
+ | command\1\data=ok | ||
+ | command\2\name=Zastav meranie | ||
+ | command\2\type=ascii | ||
+ | command\2\data=stop | ||
+ | command\size=2 | ||
+ | |||
+ | [Record] | ||
+ | autoIncrement=true | ||
+ | recordPaused=true | ||
+ | stopOnClose=true | ||
+ | header=true | ||
+ | disableBuffering=false | ||
+ | separator="," | ||
+ | |||
+ | </source> | ||
+ | --> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Ďalšie informácie: | ||
+ | * o programovaní a prístupu k sériovej linke v C++ programoch pre Windows: http://senzor.robotika.sk/ap/blok3.php | ||
+ | |||
+ | |||
+ | [[Category:Základy počítačov]][[Category:micro:bit]] | ||
+ | |||
+ | |||
'''Spoločné zadanie pre celý kružok:''' | '''Spoločné zadanie pre celý kružok:''' | ||
Verzia zo dňa a času 16:47, 8. december 2022
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.
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: 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:
- o programovaní a prístupu k sériovej linke v C++ programoch pre Windows: http://senzor.robotika.sk/ap/blok3.php
Spoločné zadanie pre celý kružok:
Poskladajte všetky micro:bity do radu a naprogramujte ich tak, aby zobrazili bežiaci text, ktorý vysiela master na kanáli c. 1
Najprv sa dohodnite ako bude všetko fungovať, rozdeľte si úlohy, naprogramujte najprv po menších skupinách (dvojiciach) a potom všetci spoločne.
Skúmajte sami!
Ak máte úlohu splnenú, môžete vyskúšať komunikáciu s vašim telefónom cez Bluetooth.
- Stiahnite si aplikáciu pre telefóny Android alebo iOS:
micro:bit Oficiálna Samsung aplikácia pre micro:bit |
- Zariadenia treba spárovať: http://microbit.org/guide/mobile/
- Teraz môžete vyskúšať niektorý z predinštalovaných príkladov
Skúmajte sami 2!
Ak máte úlohu splnenú, môžete vyskúšať ďalšiu aplikáciu na komunikáciu s vašim telefónom cez Bluetooth.
- Stiahnite si aplikáciu pre telefóny Android alebo iOS:
Bitty Blue Demo aplikácia pre micro:bit |
- Do micro:bita treba nahrať príslušný program: http://www.bittysoftware.com/downloads.html#bitty_blue
- Zariadenia nebude treba spárovať.
- Teraz môžete vyskúšať niektorý z predinštalovaných príkladov