Programovanie Arduino (a derivátov) bez Arduino IDE #6
Dnes si povieme, ako nahradiť "Serial monitor" a "Serial plotter".
Serial monitor
Serial monitor je nástroj, ktorý je priamo v Arduino IDE. Umožňuje užívateľovi komunikáciu s mikrokontrolérom cez sériovú linku - posielať príkazy do mikrokontroléra, byte za bytom, a zobrazovať informácie, ktoré odošle mikrokontrolér späť.
Na nasledovnej snímke obrazovky je pripojené ESP8266, ktoré je cez WiFi pripojené k NTP serveru a dopytuje sa na presný čas. Na obrázku vidíme, že základom je správne nastavenie prenosovej rýchlosti.
Obr. 0: "Klasický" sériový |
Komunikácia v konzole
Jednoducho a spoľahlivo funguje program cu. Celým názvom: Conventional UART, alebo aj Calls Up. Je bežne dostupný v repozitároch a používa sa napríklad takto:cu -l <zariadenie> -s <rýchlosť>
, napríklad:cu -l /dev/ttyACM0 -s 9600
Pôvodné určenie programu bolo na spojenie pomocou vytáčaného pripojenia.
Obr. 1: Príkaz cu v konzole |
Samozrejme, Emacs má opäť niečo vstavané
… a tým je zabudované rozšírenie serial-term.
Po spustení rovnomenného príkazu a zadaní/potvrdení zariadenia a rýchlosti sa vytvorí nový buffer s výstupom sériovej komunikácie. Klikaním na modeline môžeme dodatočne upraviť napríklad paritu, počet bitov, stop-bity, riadenie toku a pod.
Obr. 2 - 4: Serial-term v GNU Emacs |
Alternatíva s grafickým rozhraním
Tých je viac, ale najjednoduchším a súčasne efektívnym programom je CuteCOM. Opäť - je (asi vždy) v repozitároch.
Aktuálna verzia je poriadne stará (z roku 2015), ale to je aj spôsob sériovej komunikácie!
A má krásnych 70800 kB.
Hlavnými pozitívami programu sú:
- jednoduché používanie grafického rozhrania,
- žiadne záhadné klávesové skratky,
- riadkovo orientované rozhranie namiesto znakovo orientovaného (to ale má i Emacs, samozrejme - v princípe ide o to, že zadáme reťazec a on odošle sústavu bytov, zakončených CR, LF resp. LFCR,
- história vstupov,
- hexadecimálny vstup a výstup,
konfigurovateľné oneskorenie medzi znakmi,
Obr. 5: CuteCOM
Serial plotter
…je nástroj, ktorý umožňuje vizuálne zobraziť dáta, ktoré sú posielané po sériovej linke z mikrokontroléra do počítača. Hádam od verzie 1.6 je súčasťou Arduino IDE.
Relevantná ukážka kódu:
int noiseAI1 = 0 ; int noiseAI2 = 0 ; void setup() { Serial.begin(9600); pinMode(A1, INPUT); pinMode(A2, INPUT); } void loop() { noiseAI1 = analogRead(A1); noiseAI2 = analogRead(A2); Serial.print("Šum1:"); Serial.print(noiseAI1); Serial.print(","); Serial.print("Šum2:"); Serial.println(noiseAI2); delay(100); }
Ako je zrejmé z tohto príkladu, tak v premenných noiseA1
resp. noiseA2
máme šum na nezapojených analógových pinoch mikrokontroléra.
Serial plotter má dve osi: os X je časová, v ms, pričom časový bod je definovaný po sebe idúcimi príkazmi Serial.println()
; os Y reprezentuje číselné údaje, ktoré sú poslané pomocou Serial.print()
. Mierka osi sa nastavuje automaticky.
Obr. 6: Serial plotter |
Serial Analyzer
Tento program umožňuje jednoducho prezerať spektrum údajov vypočítaných v reálnom čase. Je to však Serial Plotter na steroidoch.
Program sa dá stiahnuť na https://www.curiores.com/serialanalyzer, je napísaný v electron-e a teda multiplatformný.
Zásadným rozdielom v kóde je to, že časť s prenosom po sériovej linke musí byť:
Serial.print(noiseAI1); Serial.print(" "); Serial.print(noiseAI2); Serial.println();
Jednotlivé údaje sa oddeľujú znakom medzera.
Na nasledujúcom obrázku vidíme, že:
- nemusíme mať striktne pevnú časovú os, danú
Serial.println()
, ale že táto X-ová súradnica môže byť prvým stĺpcom prenášaných dát (zaškrtávacie políčko First column is time (in ms)), - môžeme pozerať i údaje mimo zobrazeného poľa (Buffer size),
- ľubovoľne si meniť mierku osí (pod možnosťami Time series),
- zobrazovať spektrum (hoci aj v log mierke,…),
mať súčasne zobrazené všetky priebehy včítanie monitora, alebo len jeden, dva,…
Obr. 7: Serial plotter
Záver celej série
Nakoniec sme sa úspešne dopracovali na koniec. Je len na láskavom čitateľovi, či ostatne verný originálnemu Arduino IDE, alebo či siahne po niečom inom, hádam lepšom.
Alebo - a to je asi najdôležitejšie - ak má pozitívny návyk na prácu v konkrétnom IDE, nech je to aj spomínaný Geany, Vim, Visual Studio Code, Eclipse, Atom, Kate,… , tak pre prácu na mikrokontroléroch nemusí opúšťať zaužívané prostredie s obľúbenými klávesovými skratkami alebo pluginmi.
Pretože o tomto je softvérová sloboda. A filozofia, že človek by sa nemal prispôsobovať softvéru, ale malo by to byť naopak (myslené samozrejme s nadhľadom).
Happy hacking!
Pre pridávanie komentárov sa musíte prihlásiť.
Rišo, vďaka za námahu pri tvorbe seriálu, snahu podeliť sa a za skvelú úpravu. Vecne to posúdiť neviem, páč sa tomu nevenujem.