Aplikace A15 Komunikace mezi micro:bity I

V dnešní lekci si řekneme něco o základech komunikace mezi micro:bity. Použijeme JavaScript Block editor, který nám umožňuje používat více druhů bloků pro komunikaci.

název: A15 Komunikace mezi micro:bity I
kategorie: A začátečníci
ref.číslo: A15
projekt: kurz micro:bit
verze: 01, 2017-07-11
autor: Ivo Obr, Lanškroun


Micro:bity mohou mezi sebou komunikovat po drátě nebo bezdrátově. Začneme tím nejjednodušším a to drátovou komunikací. Pokud mezi sebou komunikují dva lid

é, pak každý z nich má ústa, kterými mluví a druhé zařízení  – uši, kterými poslouchá. Pokud budeme používat jako přenosové médium dráty, pak po jednom drátu budeme vysílat jeden znak po znaku (sériově) na druhý micro:bit, na druhém drátu budeme naslouchat, co nám druhý micro:bit bude posílat (opět znak po znaku). Tomu se říká sériová linka, u počítačů označováno jako COM1 nebo také rychlejší USB.

Micro:bit je nastaven standardně tak, že PIN0 je ten, který vysílá znaky a je označován ve schematech jako “TX”, PIN1 je pin přijímající (naslouchá) a je označován ja

ko “RX”. Protože už není další drát, který by určoval jakým tempem se mají znaky posílat (označován obvykle jako signál “clock”), musí se oba micro:bity nastavit na stejnou rychlost komunikace. Výše uvedené vlastnosti můžeme nastavit na začátku programu, důležitá je rychlost, která musí být stejná na obou mikropočítačích, jinak si micro:bity nebudou vzájemně rozumět.

Ve sloupečku funkcí klikneme na “Advanced” a vybereme funkce “Serial”. Jedná se o bloky, které pracují se sériovým přenosem dat na pinech micro:bitu. Vybereme blok “Serial” a dáme ho kleští bloku “on start”. Tady si můžeme nastavit, který pin bude přijímající a který vysílající. Pro naše pokusy necháme nastavení pinů standardní. Rychlost komunikace budeme nastavovat dle délky vodičů, spojující micro:bity a dle velikosti možného rušení přenosu okolním elektromagnetickým polem (např. DC elektromotor a pod.). Nejnižší rychlost je 300, což odpovídá asi rychlosti přenosu 10-ti znaků za vteřinu. To je rychlost poměrně malá. Pokud máte micro:bity blízko sebe (1m), necháme nastavenou rychlost 115200.

V praxi je nejlépe maximální rychlost vyzkoušet. U zakoupených externích modulů pro Bluetooth nebo WIFI je rychlost na TX – RX standardně nastavena na 9600.

Způsob komunikace mezi dvěma zařízeními.

Dvě zařízení mohou mezi sebou komunikovat dvěma způsoby.

a) způsob Master – Slave

Je to způsob, že jedno zařízení je hlavní (nadřazené) a určuje komunikaci, druhé zařízení je podřízené, naslouchá a na dotaz odpovídá. Už z názvu to zcela vyplývá. Obvykle také programy na obou zařízeních se liší, jeden program je řídící, druhý program je pasivní.

b) způsob Peer to Peer

Zde obě zařízení jsou si rovna (můžete přeložit jako : “já pán, ty pán”). Protože je jedno zařízení stejné jako druhé, můžeme jeden napsaný program použít pro obě zařízení.

Příklady :

Master-Slave – použijeme například řídící jednotku s micro:bitem doma (Master) a venkovní teploměr měřící teplotu(Slave). Řídící jednotka se dotáže na teplotu, venkovní modul odpovídá a na řídící jednotce se zobrazí teplota.

Peer to Peer – na táboře mezi stany je natažen kablík spojující dva micro:bity ve stanech. Každý z mikropočítačů může zahájit komunikaci, na obou micro:bitech je stejný program.

Jak micro:bity propojíme:

Na propojení dvou micro:bitů budeme potřebovat tři dráty. Jeden drát bude spojovat oba micro:bity na PINech GND.

Z prvého micro:bitu, který bude vysílat na PIN0 musíme přivést signál na druhý micro:bit na PIN1 (tam se naslouchá).  Prvý micro:bit naslouchá na PIN1, ten musí být tedy propojen na druhý micro:bit na PIN0. Nejlépe je to znázorněno na obrázku:

Propojení micro:bitů, pokud nemáme originální konektory, můžeme provést dle návodu z “microla.cz”, v menu “Pro děti” -> “Připojení dalších zařízení”. Pokud už máme micro:bity spojeny, vytvoříme si velmi jednoduchý program, kterým otestujeme jednak drátové spojení a také náš algoritmus komunikace.

Prvý náš program bude typu “Peer to Peer” (jeden program nahrajeme do obou micro:bitů). Co bude program dělat :

  1. Budeme naslouchat, zda-li nedostaneme nějaká data z druhého micro:bitu. Naše naslouchání zobrazíme uchem na displeji. Pokud nějaká data dostaneme, vypíšeme jejich obsah na displeji a budeme dále naslouchat.
  2. Když na destičce stiskneme tlačítko “A”, tak odešleme konkrétní data (text: FUNGUJE TO) do druhého micro:bitu.

V kleštích bloku “on start” nastavíme komunikační parametry. V kleštích bloku “forever” nastavíme vykreslování obrázku ucha, znamená to, že micro:bit naslouchá. To naslouchání je realizováno blokem “serial on data received” s parametrem “new line”. To znamená, že se sleduje událost, když na vstupu (PIN1) se přečtou znaky nového řádku (“new line”). Pokud nám druhý micro:bit pošle jeden řádek dat, tak se tento blok vykoná. Vypíše to, co se přijalo na PIN1.

No a druhá událost – stisk tlačítka “A” odešle z PIN0 jeden řádek textu a to “FUNGUJE TO”. Vše je na přiloženém obrázku :

Nyní už stačí nahrát ten samý program do obou micro:bitů. Stiskem tlačítka “A” na jednom z nich způsobí výpis textu “FUNGUJE TO” na druhém micro:bitu a naopak. Pokud jste pracovali pozorně a rozumíte tomu, bude určitě vše pracovat na první zapojení. Pokud Vám něco není jasné, vraťte se na začátek a znovu si vše přečtěte. Teď už můžete v rámci těchto základů experimentovat s programem.

Posted in aplikace, kat A - začátečníci and tagged .