Terminál pro Arduino

Z ModelWiki
Skočit na navigaci Skočit na vyhledávání

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 - 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í.

Nalezení COM portu ve Správci 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é.