Terminál pro Arduino
Desky založené na Arduinu se programují pomocí USB kabelu, a také je možné přes USB kabel komunikovat s Arduinem: v Arduino IDE je k dispozici Sériová konzole. Ale konzole, který je v Arduino IDE je nedokonalá, neumí ANSI sekvence ani pořádně návrat řádku. Pro lepší práci je možné použít jiné programy.
Obsah
Windows - PuTTy
Kdysi dávno obsahovaly Windows modemový a sériový program Hyperterminál, jenže ten už ve Windows 7 a Windows 10 nenajdeme. Asi nejlepší náhrada za něj je víceúčelový terminál PuTTy. Jedná se o volný program, bez nutnosti platit licenční poplatky. Stáhnout s dá například ze Slunečnice. Archív obsahuje jediný spustitelný soubor, nejedná se o instalátor, ale přímo terminálový program. Doporučuji umístit jej někam do C:\Program Files a na plochu či do menu pořídit zástupce.
Nalezení USB COM portu
Windows si USB komunikační port vyloží jako port COM. Ale jeho číslo se bude lišit podle USB portu, do kterého kabel z Arduina zapíchnete. K nalezení správného čísla USB portu můžeme použít Správce zařízení.
Po spuštění se zobrazí konfigurační okno:
Linux - minicom
Na OS Linux je k dispozici komunikační program minicom. Na Debianu či Ubuntu se nainstaluje pomocí
apt install minicom
Arduino po připojení USB vytváří znaková zařízení /dev/ttyUSBx (x je číslo 0 - 9). Terminálový program se spustí pomocí
minicom -b 115200 -D /dev/ttyUSB0
- důležité: terminál opustíte pomoci dvojklávesové zkratky CTRL-A Q
- je možné, že váš účet nemá právo zápisu. Musí být ve skupině dialout. Pro přidání použijte sudo addgroup user dialout, poté se musíte znovu zalogovat, aby měl shell správné id skupin.
- při odpojení Arduina a znovu připojení se může vytvořit nové zařízení /dev/ttyUSBx - děje se tak tehdy, když je při připojení znakové zařízení stále ještě otevřené - typicky vyškubnete Arduino s ještě spuštěným terminálem
Nastavení parametrů sériového portu
Různé Arduino aplikace mohou používat různé komunikační rychlosti. Nejpoužívanější rychlosti jsou:
- 9600 - kompatibilni s megapomalými zařízeníni jako XpressNet
- 19200
- 38400 (rychlost starého telefonního modemu)
- 57600 (novější telefonní modem)
- 115200 - nejvyšší rychlost co Arduino zvládne
Dále se sice používá různý počet datových a stop bitů, ale pokud je program v Arduinu "normální", používá vždy 8 datových a 1 stop bit, nemusíme to Minicomu zvlášť vysvětlovat. Postačí pomocí parametru -b zvolit rychlost:
minicom -b 115200 -D /dev/ttyUSB0
Nastavení lze provést i pomocí CTRL-A P (= comm parameters):
OPTIONS: I18n +---------[Comm Parameters]----------+ Compiled on May 3 201| | Port /dev/ttyUSB0, 23:| Current: 115200 8N1 | | Speed Parity Data | Press CTRL-A Z for hel| A: <next> L: None S: 5 | | B: <prev> M: Even T: 6 | AS88 connection lost | C: 9600 N: Odd U: 7 | S88 connection lost | D: 38400 O: Mark V: 8 | S88 connection lost | E: 115200 P: Space | S88 connection lost | | S88 connection lost | Stopbits | S88 connection lost | W: 1 Q: 8-N-1 | 88 connection lost | X: 2 R: 7-E-1 | | | | | | Choice, or <Enter> to exit? | +------------------------------------+
Jendotlivými klávesami "A", "B", ... "R" se mění jednotlivé parametry. Pomocí CTRL-A O se dostaneme do menu, kde je možné nastavení uložit jako výchozí ("Save setup as dfl"):
AS88 connect+-----[configuration]------+ S88 connecti| Filenames and paths | S88 connecti| File transfer protocols | S88 connecti| Serial port setup | S88 connecti| Modem and dialing | S88 connecti| Screen and keyboard | 88 connectio| Save setup as dfl | 88 connectio| Save setup as.. | S88 connecti| Exit | S88 connecti+--------------------------+
Konflikty mezi terminálovým programem a Arduino IDE
Budete-li používat zároveň Arduino IDE - například pro nahrávání SW do Arduina a třeba k úpravám SW, a zároveň terminálový program jiný než ten co je v Arduino IDE, potlučou se. Před nahráním sketche do Arduina je nutné terminálové programy zavřít, jinak Arduino IDE nebude schopné sketch přenést. Arduino IDE je schopné na dobu co přenáší sketch interní terminál vypnout, na externí programy je ale krátké.