NodeMCU V2
Vývojový kit vybavený 32-bitovým IoT WiFi mikrokontrólerom ESP8266-12E, alebo ESP8266-12F. Na vývojovom kite je osadený USB-UART prevodník CP2102 od Silicon Labs, LDO regulátor. Kity NodeMCU a Wemos majú aj napäťový delič 3V3 na 1V analógový vstup (A0). Označenie NodeMCU V2 býva aj Amica. Verzia 2 NodeMCU dosky je menšia ako verzia 3 (Lolin), ktorá má isté hardvérové vylepšenia.
Motor shield L293D
Rozšírujúca doska pre vývojový kit NodeMCU V2 (Amica). Doska umožňuje ovládať DC motory (2 kanály --> A, B) cez H mostík L293D. Táto rozširujúca doska má vyvedené aj iné vývody NodeMCU dosky, je tak možné používať s touto doskou aj ďalšie senzory cez dostupné zbernice (I2C vývody nie je možné použiť so senzormi, nakoľko sa využívajú pre riadenie motorov). Doska má oddelené napájanie motorov a mikrokontroléra. Maximálne napájacie napätie pre motory, ktoré je možné použiť je 36V DC. Maximálny napájací prúd pre senzory je 1,2A.
Vývody NodeMCU slúžia pre ovládanie smeru a rýchlosti motorov. POZOR na fyzické označenie vývodov, nakoľko číslo vývodu na doske nezodpovedá GPIO číslu vývodu, t.j. D1 nie je GPIO 1... Použité vývody nie je možné zmeniť, nakoľko sú namapované priamo na riadiacej doske Motor shieldu prepojené s NodeMCU. Motor shield má terminály so skrutkami pre pripojenie napájania motorov, externého napájania NodeMCU a taktiež aj motorových kanálov. Na motor shielde je aj pripravená prepojka, ktorú je možné využiť pre zlúčené napájanie motorov a NodeMCU (max 10V). Na jeden kanál je možné paralélne pripojiť aj viac motorov súčasne.
Vývody ovládania smeru motorov:
- D3 (GPIO0) - smer motora A
- D4 (GPIO2) - smer motora B
Vývody ovládania rýchlosti motorov:
- D1 (GPIO5) - PWM pre motor A
- D2 (GPIO4) - PWM pre motor B
Smerové ovládanie motorov využíva digitálnu hodnotu riadiacich vývodov. Hodnota HIGH (3V3) definuje smer pohybu motora vpred, hodnota LOW (GND) smer vzad. Ovládanie rýchlosti sa realizuje cez vývody s podporou PWM modulácie. ESP8266 má 10-bitové rozlíšenie PWM, teda rýchlosť motora sa definuje v rozmedzí 0 až 1023 (1024 hodnôt). Duty cycle predstavuje u ESP8266 1 ms, nakoľko vykoná 1000 cyklov za sekundu. Hodnota PWM definuje, koľko času z duty cycle bude na vývode nastavená log 1. Tým sa regulujú otáčky motora.
Využitie kombinácie v projektochNodeMCU V2 v spojitosti s motor shieldom L293D nájde využitie v rôznych projektoch autíčok, tankov so vzdialeným / autonómnym ovládaním. Shield je dostatočne dimenzovaný aj pre vyššie prúdy štandardne používaných modelárskych motorčekov. ESP8266 je možné pripojiť na internet a ovládať autíčko aj vzdialene cez rôzne typy rozhraní, napr. cez aplikáciu, webové rozhranie, či UART monitor. Veľmi populárna je aplikácia Blynk, kde je možné vytvoriť si dashboard ovládania namieru s definovaním vývodov ESP8266, ktoré chce používateľ ovládať. Ovládanie môže byť realizované aj lokálne cez WiFi sieť. ESP8266 je možné prepnúť aj do režimu AP, kedy dokáže vysielať vlastnú SSID WiFi siete s WPA/WPA2-PSK šifrovaním.
Ovládanie motor shieldu je možné realizovať priamo príkazmi digitalWrite() pre smerové vývody a analogWrite() pre PWM vývody, alebo je možné využiť rôzne knižniže, ktoré majú predpripravené príkazy pre pohyb, napr. otáčanie na mieste so zastavením jednej strany, alebo opačným pohonom druhej strany pre rýchlejšie otočenie vozidla, zatáčanie plynule do oblúka s dynamickou reguláciou rýchlosti motorov a iné...
Príklad použitej knižnice:
https://github.com/filipeflop/NodeMotorDriver/blob/master/NodeMotorDriver.cpp