Skip to main content

2.2 Inštalácia MicroPython a spojenie cez Thonny

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

Windows - port COM.webp

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.

2.2 flashovanie.webp

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:

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:

  1. po pripojení MCU ponuka Nástroje → Možnosti, záložka Interpreter, v dolnej časti odkaz „Inštalovať alebo aktualizovať MicroPython (esptool)“;
  2. 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;
  3. zvolíme model mikrokontroléra (family), variant vývojovej dosky (obvykle „Espressif“) a požadovanú verziu MicroPython (obvykle najnovšiu);
  4. 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);
  5. 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ý:

  1. uistíme sa, že na náš mikrokontrolér nie je pripojený žiadny iný program (ani Thonny);
  2. chytíme súbor s obrazom a položíme na skript update.cmd (prípadne install.cmd pre novú inštaláciu);
  3. 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;
  4. 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.

Prvé kroky v Thonny

Keď už máme v mikrokontroléri nahratý MicroPython, môžeme s ním začať komunikovať a overiť, že všetko funguje. Na rozdiel od klasického Arduina, kde musíme program vždy skompilovať a nahrať, nám MicroPython umožňuje „rozprávať sa“ s čipom v reálnom čase.

Nastavenie prostredia Thonny

Skôr než napíšeme prvý príkaz, musíme v Thonny nastaviť, kde náš mikrokontrolér hľadať:

  1. V ponuke Nástroje → Možnosti na záložke Interpreter zvolíme „MicroPython (ESP32)“.
  2. Nižšie je možné zvoliť konkrétny port - zvyčajne vyhovuje možnosť „Pokúsiť sa zistiť port automaticky“, hlavne ak skutočne striedame viaceré vývojové dosky.
  3. Pokiaľ máme pripojených viacej mikrokontrolérov naraz alebo náš počítač má aj iné zariadenie na nejakom sériovom porte, môže byť potrebné zvoliť konkrétny port.

Pod voľbou portov sa nachádza sekcia s ďalšími voľbami. Odporúčam mať všetky vypnuté, kým nie je dôvod niečo konkrétne zapnúť. Zaujímavé sú aj ďalšie záložky nastavení, napríklad Motív a písmo - odporúčam nastaviť písmo „Consolas“ a kto má rád tmavý režim, môže zvoliť motív „Clean Dark“ so syntaxou „Tomorrow Night“.

Interaktívna konzola (Shell)

Spodná časť okna Thonny sa nazýva Shell (alebo tiež REPL - Read-Eval-Print Loop). Je to miesto, kde mikrokontrolér čaká na naše príkazy. Ak vidíme tri šípky >>>, spojenie je nadviazané, môžeme skúsiť napísať a potvrdiť stlačením Enter:

  • 123 + 456 - Python funguje aj ako kalkulačka;
  • print("Ahoj svet") - klasický prvý program;
  • help() - dostaneme základné informácie.

Tip: Chýba dolné okno Shell alebo ľavé okno Súbory?
Pravdepodobne ich niekto (omylom) vypol. Opravíme to cez ponuku Zobraziť. Stačí mať začiarknuté len tieto dve možnosti.

Spúšťanie programu z počítača

V tejto fáze ešte nebudeme programy ukladať priamo do pamäte mikrokontroléra. Budeme ich písať do horného okna Thonny (editora) a spúšťať ich odtiaľ.

  1. Do editora napíšme:
    for i in range(5):
      print(i)
  2. Stlačme zelenú ikonku Spustiť alebo F5 na klávesnici.

Čo sa práve stalo? Thonny vzal náš kód z počítača, poslal ho cez USB do operačnej pamäte mikrokontroléra a ten ho okamžite vykonal. Ak MCU odpojíme od napájania, tento program sa stratí, čo je pri experimentovaní ideálne - nič nepokazíme.

Užitočné klávesové skratky

Pri práci s MicroPythonom si musíme zapamätať tieto dve kombinácie, ktoré nám ušetria veľa nervov:

  • Ctrl + C (Interrupt): Hoci pri práci s textom táto skratka kopíruje označený text, pokiaľ žiadny text označený nie je, tak vykoná to, čo v bežnom termináli (príkazovom riadku): preruší bežiaci program.
  • Ctrl + D (Soft Reset): Ak chceme mikrokontrolér reštartovať (vyčistiť mu operačnú pamäť) bez toho, aby sme ho odpájali od kábla, použijeme túto skratku. Je to veľmi užitočné aj pri ladení komplikovanejších programov, aby sme sa uistili, že program bude fungovať aj po reštarte.

Ak po pripojení nevidíme v konzole šípky >>>, pravdepodobne beží nejaký program. Pomôcť by malo stlačenie Ctrl + C a prípadne potom aj Ctrl + D. Pokiaľ nepomôže ani toto, tak by mala pomôcť červená ikonka Stop alebo Ctrl + F2 na klávesnici. Thonny sa pokúsi úplne reštartovať COM spojenie. Poslednou možnosťou je už len odpojenie a opätovné pripojenie mikrokontroléra. Prípadne, pokiaľ má batériu, aj jeho vypnutie a zapnutie.

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). Stačí ho nahrať do počítača, otvoriť cez Thonny a v ľavom okne Súbory na ňom cez pravé tlačidlo myšky zvoliť „Nahrať na /“.