2.2 Inštalácia MicroPython
Ovládač pre sériovú komunikáciu
Aby bolo možné z počítača komunikovať s mikrokontrolérom (MCU), vývojové dosky a zariadenia bývajú vybavené komunikačným čipom, ktorý cez USB rozhranie počítača vytvorí virtuálny sériový (COM) port (VCP). Vďaka tomu sa po pripojení mikrokontroléra cez USB kábel objaví v počítači sériový port (COM).
Virtuálny sériový port nie je potrebný len pre MicroPython, ale aj pre akékoľvek iné programovanie MCU cez USB kábel - používa ho teda aj ESPHome, Arduino IDE, micro:bit MakeCode a podobne.
OS Windows by mal potrebný ovládač nájsť automaticky (prípadne po spustení aktualizácií cez Windows Update).
Screenshot: správne fungujúci ovládač sériového portu vo Windows
Pokiaľ sa ovládač nenainštaloval automaticky alebo niekto uprednostňuje najnovšiu verziu priamo od výrobcu, je možné ovládač nainštalovať manuálne:
- zariadenie M5StickC Plus používa pre USB rozhranie čip FTDI VCP: ftdichip.com - variant Windows (Universal);
- klasická vývojová doska s ESP32 používa zväčša čip Silicon Labs CP2104: silabs.com - variant Universal Windows;
- novšie vývojové dosky majú častejšie čip WCH CH340: wch-ic.com - CH340;
- najnovšie vývojové dosky mávajú čip WCH CH9102: wch-ic.com - CH343.
Pokiaľ do PC s Windows postupne pripájame veľa mikrokontrolérov, pre každý z nich sa vytvorí COM port s ďalším číslom. Práve nepripojené (ale rezervované) porty je možné zobraziť v Správcovi zariadení cez voľbu Zobraziť → Zobraziť skryté zariadenia a prípadne ich aj zmazať. Mazanie mnohých desiatok portov však môže zabrať veľa času, na prečistenie môže prísť vhod nástroj COM Name Arbiter Tool.
Príprava MicroPython
Ak chceme s ESP32 alebo iným MCU používať MicroPython, musíme doň najskôr nahrať prekladač jazyka MicroPython. Jedná sa o skompilovaný program (binárny súbor), ktorý bol napísaný v jazyku C a jeho úlohou je interpretovať MicroPython. Aktuálnu oficiálnu verziu MicroPython v podobe binárneho obrazu nájdeme na webe micropython.org - potrebujeme súbory .bin, vhodnejšie sú verzie latest (nie preview).
Pozor, pre každý typ MCU je iný obraz a je treba tiež zohľadniť prítomnosť prídavnej pamäte (SPIRAM / PSRAM)!
V prípade používania displeja je vhodné zvážiť neoficiálny obraz MicroPython s integrovanou knižnicou pre prácu s displejom. Pre vývojové dosky, s ktorými sa môžete stretnúť v tomto kurze, odporúčam tieto obrazy MicroPython:
- klasický ESP32 (napr. D1 Mini, DevKit v1): micropython.org - ESP32_GENERIC;
- TTGO/LilyGO T-Display (klasický ESP32 s displejom ST7789): github.com/russhughes - T-DISPLAY-ESP32;
- ESP32-C3 (napr. ESP32-C3 Super Mini / Zero / 01Space, LilyGO T-OI Plus, LilyGO T-PicoC3): micropython.org - ESP32_GENERIC_C3;
- RP2040 na LilyGO T-PicoC3 (s displejom ST7789): github.com/russhughes - T-DISPLAY-RP2040 - UF2, nahráva sa priamo.
Pre zariadenie M5StickC Plus v našom kurze je potrebné použiť upravený kompletný binárny obraz (v Classroom prílohe), ktorý obsahuje neoficiálny MicroPython s integrovanou podporou displeja (objekt lcd), špeciálne knižnice pre ovládanie napájania (objekt pmu), pre prácu s hodinami (objekt rtc) a akcelerometrom (objekt imu) a tiež upravený štartovací skript, ktorý signalizuje zapnutie zariadenia rozsvietením LED a vypne ho po hodine prevádzky.
Flashovanie MCU
Binárny obraz MicroPython musíme do nášho mikrokontroléra nejako dostať. Využiť môžeme aj vývojový softvér Thonny:
- po pripojení MCU ponuka Nástroje → Možnosti, záložka Interpreter, v dolnej časti odkaz „Inštalovať alebo aktualizovať MicroPython (esptool)“;
- zvážime úplné vymazanie (voľba „Erase all flash“ - vymaže aj naše uložené programy) - pokiaľ robíme len aktualizáciu MicroPython na novšiu verziu, túto voľbu vypneme, no pri novom zariadení ju zapneme;
- zvolíme model mikrokontroléra (family), variant vývojovej dosky (obvykle „Espressif“) a požadovanú verziu MicroPython (obvykle najnovšiu);
- ak sa ponáhľame alebo nahrávame viac MCU, môžeme cez tlačidlo s ďalšími možnosťami zvoliť „Show install options“ a nastaviť najvyššiu rýchlosť (Install speed);
- spustíme nahrávanie tlačidlom Inštalovať.
Druhou možnosťou je program esptool, ktorý nájdete v prílohe aj s inštalačnými skriptami (v prílohe ESP flash.7z, heslo: IoT):
- info.cmd: len vypíše informácie o pripojenom MCU (model, MAC adresa, ale aj číslo COM portu);
- update.cmd: nahrá MicroPython, ponechá naše programy (pozor, neplatí pre kompletný obraz!) - vhodné na aktualizáciu MicroPython;
- install.cmd: kompletne vymaže a nahrá MicroPython - nutné pre prvotné nahratie MicroPython.
Postup flashovania je nasledovný:
- uistíme sa, že na náš mikrokontrolér nie je pripojený žiadny iný program (ani Thonny);
- chytíme súbor s obrazom a položíme na skript update.cmd (prípadne install.cmd pre novú inštaláciu);
- ak treba, zmeníme komunikačnú rýchlosť: predvolená je najvyššia 1500 kb/s, ktorá funguje na väčšine MCU, no v prípade problémov je možné zvoliť nižšiu;
- ak treba, zmeníme pamäťovú adresu na flashovanie, ktorá bola uvedená pri zdroji obrazu: predvoliť by sa mala automaticky správna podľa MCU a obrazu.
Pokiaľ sa (či cez Thonny alebo cez esptool) neporadilo pripojiť na ESP32, pravdepodobne je potrebné manuálne vyvolať režim flashovania - niektoré vývojové dosky to vyžadujú: treba pred spustením flashovania stlačiť tlačidlo BOOT, držať ho stlačené a krátko stlačiť RESET, prípadne držať tlačidlo BOOT počas pokusu o pripojenie.
Bez ohľadu na spôsob flashovania by nás po pripojení na COM port (napríklad cez PuTTy) už mal čakať prekladač jazyka MicroPython, no značne pohodlnejšie je použiť vývojové prostredie, používať budeme Thonny.
V Classroom prílohe nájdete aj štartovací skript boot.py, ktorý odporúčam nahrať do mikrokontroléra - vždy po reštarte zistí a vypíše parametre (typ procesora, veľkosť flash i voľnej operačnej pamäte, MAC adresu a verziu softvéru).
