V prvej časti seriálu sme predstavili vývojové dosky s populárnym čipom ESP32 a ukázali postup, ako do vývojovej dosky nahrať interpreter programovacieho jazyka Python, konkrétne implementáciu Micropython s knižnicou octopus od octopusLab.cz.
V druhej časti sme predstavili piny rozhrania. Len pripomíname, že obvod ESP 32 využíva 3.3 V logiku, čiže privedenie 5V na niektorý z pinov by ho s najväčšou pravdepodobnosťou zničilo. V tomto dieli ukážeme jednoduché príklady zamerané na využitie hardvéru ESP 32.
Všetky príklady sú vo videu:
Predpokladáme, že máte modul s nainštalovaným interpreterom Micropythonu. Správne nakonfigurovaný modul vypíše na emulátor terminálu prompt >>>. Python je interpreter, môžete mu priamo zadať nejaký jednoduchý matematický výraz a terminálová aplikácia by mala vypísať výsledok
>>> 1 + 1
Po úspešnej konfigurácii môžeme začať jednoduchými pokusmi s hardvérom. Pripomíname, že bez obmedzenia môžete využiť piny GPIO2 ku ktorému je však pripojená modrá LED dióda na doske, GPIO 4, GPIO5, GPIO13 a GPIO16 až GPIO33. Na pinoch GPIO 14 a 15 je počas bootovania PWM signál, inak ich tiež môžete použiť bez obmedzenia.
Ako prvá sa ponúka LED dióda, ktorá je priamo na doske a je pripojená k pinu GPIO2.
from machine import Pin from time import sleep led = Pin(2, Pin.OUT) led.value(1)
Skúsime LED diódu rozblikať v nekonečnej slučke.
from machine import Pin from time import sleep led = Pin(2, Pin.OUT) while True: led.value(1) sleep(0.3) led.value(0) sleep(0.3)
Nekonečnú slučku prerušíte príkazom Ctrl-C v aplikácii PuTTY.
Pre diódu zapojenú mimo dosku ESP32, pripojenú cez rezistor 330 ohm napríklad na pin GPIO 15 by stačí príklad mierne modifikovať.
Pre zmenu tu LED diódu nerozsvecujeme a nezhášame, ale zisťujeme jej aktuálny stav a negujeme ho. Čiže ak dióda svietila, tak ju zhasneme a opačne. Pin GPIO15 sme vybrali preto, lebo je v nami použitom module v dolnej rade ako tretí zľava, hneď vedľa napájacieho napätie 3V3 a GND.
from machine import Pin from time import sleep led = Pin(15, Pin.OUT) while True: led.value(1) sleep(0.3) led.value(0) sleep(0.3)
Reálne zapojenie. Kvôli zjednodušeniu je vývod GND pripojený priamo na LED diódu a nie na napájacie lišty v dolnej časti prepojovacej dosky
Písať rozsiahlejšie programy cez konzolovú aplikáciu typu PuTTY je trochu nepraktické, rovnako nepraktické je písanie kódu v textovom editore do súborov s príponou .py a ich následné posielanie do dosky. Preto odporúčame vhodný editor pre Python, najlepšie s farebným rozlíšením syntaxe. Odporúčame uPyCraft, ktorý je k dispozícii pre Windows, aj MacOS. Je to open source projekt a všetko potrebné vrátane zdrojoviek je na GitHube. Pre Windows stačí stiahnuť spustiť EXE súbor.
Následne v menu Tools vyberiete príslušný COM port a typ dosky, v našom prípade ESP 32. Vytvoríte si nový súbor, napríklad pokus.py, napíšete kód a súbor uložite. Po pripojená tlačidlom Connect môžete svoje programy zavádzať priamo do dosky tlačidlom Download and Run.
Vyskúšame jednoduchú aplikáciu, ktorá bude na porte GPIO4 snímať stav tlačidla a podľa toho sa rozsvieti, alebo zhasne LED dióda na porte D15.
from machine import Pin from time import sleep led = Pin(15, Pin.OUT) tlacidlo = Pin(4, Pin.IN) while True: tlacidlo_stav = tlacidlo.value() led.value(tlacidlo_stav) sleep(0.1)
Reálne zapojenie. Napájacie napätie 3.3 V aj GND sú vyvedené na lištu v spodnej časti dosky označené červenou a modrou linkou
Hardvérové komponenty však môžete prehľadnejšie a v zmysle objektovo orientovaného programovania ovládať pomocou funkcií knižnice Octopus. Možnosti tejto knižnice predstavíme v ďalšom pokračovaní.