Lekce 15
Sériový monitor

Serial Monitor - ikona

Úvod

V této lekci se naučíme, jak zapnout a vypnout LED pomocí připojeného počítače a sériového monitoru. Sériový monitor se používá ke komunikaci mezi modulem Arduino a počítačem nebo jinými přístroji. Pomocí sériového portu je možné posílat data na modul Arduino, nebo naopak data načítat a tak modul Arduino ovládat – třeba pomocí klávesnice počítače. Právě možnost řízení desky Arduino pomocí počítače si ukážeme v této lekci. V dalších lekcích budeme naopak zasílat data z modulu Arduino na připojený počítač. V ovládání modulu Arduino pomocí sériového monitoru budeme ilustrovat na příkladu tří různobarevných LED (červená, zelená a žlutá), které budeme moci příkazem v sériovém monitoru rozsvěcet.

POZNÁMKA:
Jelikož prostředí mBlock neobsahuje sériový monitor, budeme muset použít externí aplikaci. Pokud ve svém počítači ještě aplikaci sériového monitoru nemáme, musíme ji doinstalovat. O instalaci a používání sériového monitoru (Serial Monitor) jsme si říkali v úvodní kapitole Sériový monitor.

Použité komponenty

  • modul Arduino
  • USB kabel
  • 3× LED (červená, zelená, žlutá)
  • 3× rezistor (220 Ω)
  • nepájivé pole
  • vodiče pro nepájivé pole

Princip

Ať již vybereme jakoukoliv aplikaci pro sériový monitor, je třeba si uvědomit, že sériový monitor slouží jako „přestupní stanice“ pro komunikaci mezi počítačem a modulem Arduino. Komunikace probíhá po sériové lince (piny 0 a 1), ale my budeme využívat případ komunikace prostřednictvím USB portu modulu Arduino. Proto je třeba si uvědomit, že pokud chceme používat sériový monitor, musí být modul Arduino s počítačem propojen USB kabelem. Zároveň je třeba si uvědomit, že pro práci sériového monitoru je třeba modul Arduino odpojit od prostředí mBlock, neboť na sériové lince může komunikovat jen jedna aplikace.

Pro odesílání dat do modulu Arduino je v sériovém monitoru určeno pole pro vepsání příkazu. Následuje tlačítko  Send  pro odeslání. Data odeslané od modulu Arduino (odpověď) se zobrazí v hlavním okně sériového portu. Asi nejlépe princip této komunikace uvidíme až při zprovoznění ukázkového programu.


Postup experimentu

Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu.

Blokové schéma

Blokove schema

Elektronické schéma

Elektronicke schema

Krok 2: V prostředí mBlock vytvoříme následující program.


ikona vysvetleni Vysvětlení kódu

Celý program lze rozdělit na dva funkční celky. Úkolem první části je načtení sériového portu. Program je pozastaven na bloku „čekej, dokud není“, kde se čeká na okamžik, kdy se objeví na sériovém portu nějaká vstupní hodnota – kupříkladu zadaná barva odeslaná z počítače. Následuje podmíněná smyčka, která načítá ze sériového portu data, dokud tam nějaké vstupní hodnoty jsou. Načtené hodnoty jsou číselného formátu, proto jsou převedeny na znaky ASCII. Po vytvoření přijatého textového řetězce následuje druhá část programu.

Z textové proměnné obsahující přijatý textový řetězec je nedříve odstraněn znak odřádkování. To se udělá nahrazením znaku, jehož ASCII kód je 10, za prázdný znak. Pak je přijatý řetězec vypsán na sériový port, aby se objevil v okně sériového monitoru. Následuje kaskáda tří podmínek, které testují, zda se přijatý text shoduje s některou z požadovaných variant (cervena, zluta nebo zelena). Dle toho jsou rozsvíceny a zhasnuty jednotlivé LED. Pokud přijatý text neodpovídá žádné z požadovaných barev, jsou všechny LED zhasnuty.


Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem tlacitko nahrat.

Krok 4: Nyní modul Arduino odpojíme od prostředí mBlock pomocí tlačítkem tlacitko odpojit. USB kabel modulu Arduino ale od počítače neodpojujeme!

Krok 5: Spustíme na počítači aplikaci Serial Monitor. V Serial Monitoru vybereme port, na které je náš modul Arduino (např. COM5) připojen a nastavíme komunikační rychlost na hodnotu 115200 baudů. Na závěr se tlačítkem  Connect  připojíme k modulu Arduino. Objeví se následující okno sériového monitoru.

seriovy monitor

Krok 6: Pomocí okénka Serial Monitoru můžeme posílat data z počítače do modulu Arduino. Modul Arduino mám ale též zasílá data – například v okně sériového monitoru vidíme výzvu „Zadej barvu LED“. Do okénka pro odeslání dat můžeme vložit barvu. Když vložíme některou z frází: „cervena“, „zelena“ nebo „zluta“ a klikneme na tlačítko  Send , jako odpověď se rozsvítí odpovídající LED. Pokud ale zadáme jinou než požadovanou barvu (např. „ruzova“), všechny LED zhasnou.

Pohled na experiment