Operácie

Komunikácia a micro:bit: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
Bez shrnutí editace
 
(13 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
== Ovládač pre Windows ==
* https://os.mbed.com/handbook/Windows-serial-configuration
Terminály v browseri, fungujú len v Chrome alebo Edge s využitím WebSerial API (https://github.com/svendahlstrand/web-serial-api):
* https://serial.capuf.in/
* https://googlechromelabs.github.io/serial-terminal/
* https://bipes.net.br/aroca/web-serial-terminal/
* https://webserial.io/?vid=0d28&pid=0204
* https://www.anticyclone-systems.co.uk/aslwebterm.php
* https://www.serialterminal.com/
* https://labs.vaadin.com/plotser/


== Sériová linka ==
== Sériová linka ==
Riadok 26: Riadok 42:
[[Súbor:IconTerminal.png|left]] Na testovanie a prvé pokusy so sériovým rozhraním sa vám určite zíde aj nejaký terminálový program, masochisti môžu použiť aj Hyperterminál z Windows. Terminál je jednoduchý program, v ktorom sa zobrazujú všetky prijaté znaky a naopak, je možné nejaké iné znaky odvysielať. Dajú sa samozrejme aj nastaviť základné komunikačné parametre.
[[Súbor:IconTerminal.png|left]] Na testovanie a prvé pokusy so sériovým rozhraním sa vám určite zíde aj nejaký terminálový program, masochisti môžu použiť aj Hyperterminál z Windows. Terminál je jednoduchý program, v ktorom sa zobrazujú všetky prijaté znaky a naopak, je možné nejaké iné znaky odvysielať. Dajú sa samozrejme aj nastaviť základné komunikačné parametre.


* [http://braypp.googlepages.com/terminal Terminal by Bray++], neinštaluje sa, len spustí.
* [https://sites.google.com/site/terminalbpp/ Terminal by Bray++], neinštaluje sa, len spustí.
* [http://senzor.robotika.sk/ap/sources/Terminal.exe Terminal] -- lokálna kópia
* [http://senzor.robotika.sk/zp/Terminal.exe Terminal] -- lokálna kópia




Riadok 36: Riadok 52:
=== Serial Plotter ===
=== Serial Plotter ===


[[Súbor:IconSerialPlotter.png|left]] Serial Plotter je trocha sofistikovanejší program ako Terminal, jeho úlohou je zakresliť graficky všetky prijaté informácie. Najjednoduchšie je posielať mu čísla, pričom  
[[Súbor:IconSerialPlotter.png|left]] Serial Plotter je trocha sofistikovanejší program ako Terminal, jeho úlohou je zakresliť graficky všetky prijaté informácie. Najjednoduchšie je posielať mu čísla, pričom ich môže byť aj viac, oddelených čiarkami. Každá jedna n-tica hodnôt musí končíť znakom pre nový riadok. V knižnici Serial použite bloky Serial Write Number pre čísla, Serial Write String pre čiarky a Serial Write Line pre ukončenie riadka. Neposielajte hodnoty príliš často, aby sa nepreplnil vstupný buffer.
* [https://hackaday.io/project/5334-serialplot-realtime-plotting-software Domovská stránka programu]
* [http://senzor.robotika.sk/zp/serialplot.zip Lokálna kópia]


<BR><BR>


[[Súbor:SerialPlotter01.png]]


<BR>
<BR>
Riadok 46: Riadok 66:


Postup:<BR>
Postup:<BR>
* vytvorte program v prostredí makecode
* vytvorte program v prostredí makecode:
** program má pomocou príkazov Serial_Write_Number poslať do PC tri čísla -- zrýchlenie v osi x-, y- a z-. Čísla majú byť oddelené čiarkou (Serial_Write_String) a na konci má byť nový riadok (Serial_Write_Line).
* program preneste do micro:bitu
* program preneste do micro:bitu
* skontrolujte v správcovi zariadení, aké číslo portu mu pridelil OS Windows<BR>
* skontrolujte v správcovi zariadení, aké číslo portu mu pridelil OS Windows (v prípade, že žiaden nevidíte, môže pomôcť vytiahnutie a opätovné pripojenie micro:bitu)
v prípade, že žiaden nevidíte, môže pomôcť vytiahnutie a opätovné pripojenie micro:bitu
* spustite program Terminal, nastavte komunikačné parametre 115200,n,8,1 a stlačte Connect - v terminálovom okne by ste mali vidieť prijaté znaky. Ak je formát vyhovujúci, odpojte port (Disconnect) a pokračujte ďalej
* spustite program Terminal, nastavte komunikačné parametre 115200,n,8,1 a stlačte Connect - v terminálovom okne by ste mali vidieť prijaté znaky. Ak je formát vyhovujúci, pokračujte ďalej
* Nastavte parametre pre grafický program SerialPlot. Po spustení programu SerialPlot by ste mali vidieť grafické priebehy.
* Nastavte parametre pre grafický program SerialPlot. Zapisujú sa do textového súboru .ini, musíte ho editovať v Notepade alebo podobnom editore. Po spustení programu SerialPlot by ste mali vidieť grafické priebehy
 
 
 
 


Ď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
<BR>
<BR>


== Bezdrôtový prenos ==
== Bezdrôtový prenos ==
Riadok 79: Riadok 104:


'''Neoprávnené vysielanie na cudzom kanáli, obzvlášť na č. 1, bude potrestané odpočítaním 10 bodov!!!'''
'''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]]
[[Category:Základy počítačov]][[Category:micro:bit]]

Aktuálna revízia z 17:18, 26. november 2023

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:


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:

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

Na strane PC však nevieme prijímať dáta priamo v prostredí simulátora, preto potrebujeme špeciálny program. Je ich mnoho, ale len niektoré z nich umožňujú spustenie pod Windows bez administrátorského oprávnenia. My budeme používať tieto dva:


Serial Terminal by Bray

Na testovanie a prvé pokusy so sériovým rozhraním sa vám určite zíde aj nejaký terminálový program, masochisti môžu použiť aj Hyperterminál z Windows. Terminál je jednoduchý program, v ktorom sa zobrazujú všetky prijaté znaky a naopak, je možné nejaké iné znaky odvysielať. Dajú sa samozrejme aj nastaviť základné komunikačné parametre.


Ukážka práce s Terminalom vrátane správneho nastavenia parametrov

Serial Plotter

Serial Plotter je trocha sofistikovanejší program ako Terminal, jeho úlohou je zakresliť graficky všetky prijaté informácie. Najjednoduchšie je posielať mu čísla, pričom ich môže byť aj viac, oddelených čiarkami. Každá jedna n-tica hodnôt musí končíť znakom pre nový riadok. V knižnici Serial použite bloky Serial Write Number pre čísla, Serial Write String pre čiarky a Serial Write Line pre ukončenie riadka. Neposielajte hodnoty príliš často, aby sa nepreplnil vstupný buffer.





Úloha:
Zobrazte v programe SerialPlot všetky tri osi akcelerometra a predveďte, že meria skutočne aj gravitačné zrýchlenie.

Postup:

  • vytvorte program v prostredí makecode:
    • program má pomocou príkazov Serial_Write_Number poslať do PC tri čísla -- zrýchlenie v osi x-, y- a z-. Čísla majú byť oddelené čiarkou (Serial_Write_String) a na konci má byť nový riadok (Serial_Write_Line).
  • program preneste do micro:bitu
  • skontrolujte v správcovi zariadení, aké číslo portu mu pridelil OS Windows (v prípade, že žiaden nevidíte, môže pomôcť vytiahnutie a opätovné pripojenie micro:bitu)
  • spustite program Terminal, nastavte komunikačné parametre 115200,n,8,1 a stlačte Connect - v terminálovom okne by ste mali vidieť prijaté znaky. Ak je formát vyhovujúci, odpojte port (Disconnect) a pokračujte ďalej
  • Nastavte parametre pre grafický program SerialPlot. Po spustení programu SerialPlot by ste mali vidieť grafické priebehy.






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: