Terminál pro Arduino: Porovnání verzí
(Není zobrazeno 6 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
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. | 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. | ||
+ | |||
+ | == Windows, Linux, MacOS - Arduino IDE == | ||
+ | Arduino IDE je "nejjednodušší" na použití, protože ''skoro každý, kdo používá Arduino'' jej má - minimálně kvůli samotnému nahrání programu/sketche do Arduina. Jeho terminálová podpora je ale '''velmi omezená''': | ||
+ | * neumí [https://cs.wikipedia.org/wiki/ANSI_escape_k%C3%B3d ANSI řídící sekvence] - změna barev, pozice kurzoru, ... | ||
+ | * neumí pořádně ani [https://cs.wikipedia.org/wiki/%C5%98%C3%ADdic%C3%AD_znak#Sada_%C5%99%C3%ADdic%C3%ADch_k%C3%B3d%C5%AF_C0 standardní řídící kódy] (CR, LF, BEL) | ||
+ | díky tomu vypadají i celkem použitelné terminálové aplikace špatně, a některé se nedají použít vůbec. | ||
+ | |||
+ | Na druhou stranu má Arduino IDE oddělený řádek pro vstup, a tak se nepletou (např.) probíhající výpisy do toho, co se snaží uživatel napsat a posléze odeslat do aplikace. | ||
+ | |||
+ | Sériový terminál se jmenuje "Sériový Monitor" a rychlost připojení se nastavuje až v něm. | ||
+ | [[Soubor:Sériový monitor - staré IDE.jpg|náhled|žádné|Spuštění terminálu ve starém IDE]] | ||
+ | [[Soubor:Sériový monitor - nové IDE.jpg|náhled|žádné|Spuštění terminálu ve vývojové verzi IDE]] | ||
+ | == 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á [https://www.slunecnice.cz/sw/putty-cz/ 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í'''. | ||
+ | |||
+ | [[Soubor:Windows - COM port.jpg|500px|rám|střed|Nalezení COM portu ve Správci zařízení]] | ||
+ | |||
+ | === Konfigurace PuTTy === | ||
+ | Po spuštění PuTTy se zobrazí konfigurační okno. Je univerzální pro spojení s jinými počítači (protokoly Rlogin, SSH, telnet) a také (což je zajímavé pro nás) pro spojení sériovým kabelem (ať již starým sériovým portem nebo USB). | ||
+ | [[Soubor:Konfigurace PuTTy.jpg|400px|rám|center|Konfigurace PuTTy]] | ||
+ | * Nastavíme protokol "Serial" - pozor, obsah konfiguračního okna se změní; nastavovat jako první. | ||
+ | * Do pole "Serial" vepíšeme '''název sériového portu''' - COMx (x je číslo 1-99) | ||
+ | * V poli "Speed" musíme zapsat komunikační rychlost, ta může být u různých Arduino sketchů různá. Nejvyšší možná je '''115200''' | ||
+ | |||
+ | Tím je PuTTy v zásadě nastavené. Ale je lepší si hodnoty pojmenovat a uložit jako "spojení" | ||
+ | * Do editačního pole "Uložená spojení" si konfiguraci pojmenujeme - třeba Arduino, nebo podle sketche, se kterým se bude komunikovat (např. "ReflexShield") | ||
+ | * Stisknout tlačítko "Uložit" - v seznamu uložených spojení se objeví nová položka | ||
+ | Nyní bude spojení vidět v seznamu při startu PuTTy, a jde vybrat a otevřít dvojklikem do seznamu. | ||
== Linux - minicom == | == Linux - minicom == | ||
Řádek 10: | Řádek 41: | ||
Arduino po připojení USB vytváří znaková zařízení '''/dev/ttyUSBx''' (x je číslo 0 - 9). Terminálový program se spustí pomocí | Arduino po připojení USB vytváří znaková zařízení '''/dev/ttyUSBx''' (x je číslo 0 - 9). Terminálový program se spustí pomocí | ||
<blockquote><pre> | <blockquote><pre> | ||
− | minicom -D /dev/ttyUSB0 | + | minicom -b 115200 -D /dev/ttyUSB0 |
</pre></blockquote> | </pre></blockquote> | ||
+ | * '''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. | * 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í - 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 | + | * 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: | ||
+ | <blockquote><pre> | ||
+ | minicom -b 115200 -D /dev/ttyUSB0 | ||
+ | </pre></blockquote> | ||
+ | |||
+ | Nastavení lze provést i pomocí '''CTRL-A P''' (= comm parameters): | ||
+ | <blockquote><pre> | ||
+ | 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? | | ||
+ | +------------------------------------+ | ||
+ | </pre></blockquote> | ||
+ | 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"): | ||
+ | <blockquote><pre> | ||
+ | |||
+ | 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+--------------------------+ | ||
+ | |||
+ | </pre></blockquote> | ||
+ | |||
+ | == 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é. |
Aktuální verze z 26. 9. 2021, 10:58
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, Linux, MacOS - Arduino IDE
Arduino IDE je "nejjednodušší" na použití, protože skoro každý, kdo používá Arduino jej má - minimálně kvůli samotnému nahrání programu/sketche do Arduina. Jeho terminálová podpora je ale velmi omezená:
- neumí ANSI řídící sekvence - změna barev, pozice kurzoru, ...
- neumí pořádně ani standardní řídící kódy (CR, LF, BEL)
díky tomu vypadají i celkem použitelné terminálové aplikace špatně, a některé se nedají použít vůbec.
Na druhou stranu má Arduino IDE oddělený řádek pro vstup, a tak se nepletou (např.) probíhající výpisy do toho, co se snaží uživatel napsat a posléze odeslat do aplikace.
Sériový terminál se jmenuje "Sériový Monitor" a rychlost připojení se nastavuje až v něm.
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í.
Konfigurace PuTTy
Po spuštění PuTTy se zobrazí konfigurační okno. Je univerzální pro spojení s jinými počítači (protokoly Rlogin, SSH, telnet) a také (což je zajímavé pro nás) pro spojení sériovým kabelem (ať již starým sériovým portem nebo USB).
- Nastavíme protokol "Serial" - pozor, obsah konfiguračního okna se změní; nastavovat jako první.
- Do pole "Serial" vepíšeme název sériového portu - COMx (x je číslo 1-99)
- V poli "Speed" musíme zapsat komunikační rychlost, ta může být u různých Arduino sketchů různá. Nejvyšší možná je 115200
Tím je PuTTy v zásadě nastavené. Ale je lepší si hodnoty pojmenovat a uložit jako "spojení"
- Do editačního pole "Uložená spojení" si konfiguraci pojmenujeme - třeba Arduino, nebo podle sketche, se kterým se bude komunikovat (např. "ReflexShield")
- Stisknout tlačítko "Uložit" - v seznamu uložených spojení se objeví nová položka
Nyní bude spojení vidět v seznamu při startu PuTTy, a jde vybrat a otevřít dvojklikem do seznamu.
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é.