Aký programovací jazyk by ste mali použiť pre svoje projekty mikrokontrolérov? Poďme preskúmať štyri najlepšie možnosti.
Vývojové dosky mikrokontrolérov sa stali základom komunity výrobcov. Tieto programovateľné zariadenia sú špeciálne navrhnuté na spracovanie vstupných a výstupných signálov ako spôsob ovládania rôznych modulov a komponentov, ako sú senzory, motory, LED a ľudské vstupné zariadenia (HID).
Predtým sa však budete musieť naučiť skriptovací jazyk, ktorý dokáže mikrokontrolér interpretovať na programovanie týchto zariadení. Dnešné najpopulárnejšie jazyky mikrokontrolérov zahŕňajú MicroPython, CircuitPython, Arduino (zjednodušené C++) a C. Každý z týchto jazykov má svoje klady a zápory.
MicroPython
MicroPython je odľahčená implementácia programovacieho jazyka Python 3 navrhnutá špeciálne pre mikrokontroléry. V roku 2013 ho vydal Dr. Damien George pre rýchlejšie prototypovanie a pre ľudí, ktorí už poznajú Python, programovať mikrokontroléry s podobným jazykom.
Vlastnosti
MicroPython je vynikajúci skriptovací jazyk pre začiatočníkov, ktorí chcú programovať mikrokontroléry. Začiatočníci, ktorí nemajú skúsenosti s kódovaním, ho budú ľahko čítať a porozumieť, pretože používa príkazy čitateľné pre človeka v jednoduchých štruktúrach. Okrem toho používa runtime prostredie na čítanie-vyhodnocovanie-tlač-slučku (REPL), ktoré umožňuje interaktívne kódovanie.
Výkon
Na naprogramovanie mikrokontroléra pomocou MicroPythonu sa do mikrokontroléra načíta firmvér obsahujúci interpret, knižnice a rôzne ďalšie závislosti. To umožňuje, aby bol kód MicroPython interpretovaný a vykonávaný lokálne mikrokontrolérom, čo umožňuje rýchle prototypovanie, pretože počas kódovania je možné poskytnúť živú spätnú väzbu.
Avšak vzhľadom na ako procesory vykonávajú kód, interpretované jazyky ako MicroPython budú výrazne pomalšie v porovnaní s kompilovanými jazykmi ako C++. Takže štandardne, hoci prototypovanie môže byť oveľa rýchlejšie, samotné vykonávanie kódu je pomalšie.
Kompatibilita
Keďže MicroPython využíva lokálne zdroje na interpretáciu a vykonávanie programov, mikrokontrolér musí mať minimálne 256 kB flash pamäte a 16 kB RAM. Bohužiaľ, niektoré populárne vývojové dosky ako Arduino Uno nespĺňajú požadované špecifikácie. Stále však existuje množstvo dosiek, ktoré sú kompatibilné s MicroPythonom.
V súčasnosti MicroPython oficiálne podporuje Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Vývojové dosky STM32 a niekoľko dosiek Arduino, ako sú Nano 33 BLE, Nano RP2040, Giga R1 a Portenta H7.
komunita a podpora
Od svojho spustenia v roku 2013 si MicroPython odvtedy získal značné množstvo fanúšikov. Začiatočníci by sa mali ľahko naučiť MicroPython s jeho dobre napísanou dokumentáciou. Ak potrebujete ďalšiu pomoc, MicroPython má tiež komunitné fórum, kde používatelia zdieľajú návody, nápady a odpovedajú na všetky druhy problémov, ktoré môžete mať v súvislosti s MicroPython.
Arduino
Arduino je populárna platforma s otvoreným zdrojovým kódom primárne zameraná na nadšencov elektroniky a domácich majstrov. Programovací jazyk Arduino je založený na programovacích jazykoch C a C++. Jazyk Arduino bol vydaný v roku 2005 skupinou inžinierov, umelcov a dizajnérov z Talianska.
Vlastnosti
Programovací jazyk Arduino používa skrátenú verziu C aj C++, čo uľahčuje učenie a vývoj. Vykonávanie kódu pomocou Arduina je výrazne rýchlejšie ako jeho náprotivky v interpretovanom jazyku vďaka jeho kompilovanej povahe. Okrem toho, Arduino vyžaduje len malé množstvo systémových prostriedkov, aby fungovalo, vďaka čomu je kompatibilné s mnohými vývojovými doskami a mikrokontrolérmi.
Výkon
Na rozdiel od MicroPythonu a CircuitPythonu je Arduino kompilovaný programovací jazyk. To znamená, že kód sa najskôr skompiluje na kompilátore (už je súčasťou Arduino IDE) a potom sa mikrokontrolérom spustí ako celý program.
To výrazne zlepšuje vykonávanie kódu, pretože mikrokontrolér nemusí používať prostriedky na interpretáciu každého riadku kódu. Navyše, kompilácia programu ho tiež preloží do strojového kódu, ktorý môže mikrokontrolér natívne spustiť bez inštalácie závislostí.
To výrazne zvyšuje rýchlosť vykonávania kódu, pretože mikrokontrolér môže priamo vykonávať program bez prideľovania času a hardvérových zdrojov na preklad kódu.
Podporované dosky
Keďže fáza kompilácie prebieha cez IDE, mikrokontroléry môžu mať na prácu len 32 kB flash pamäte a 2 kB RAM. Takže okrem dosiek Arduino, existuje veľa alternatív dosiek Arduino môžete použiť na programovanie s Arduino. Mnohé z týchto dosiek by používali mikrokontroléry ako ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 a STM32.
komunita a podpora
Ako platforma s otvoreným zdrojovým kódom od roku 2005 má Arduino jednu z najlepších dostupných dokumentácií. Arduino Foundation aktívne poskytuje aktualizácie, podporu a nové vzrušujúce produkty každý rok. Celosvetová komunita je tiež jednou z najaktívnejších pri zdieľaní návodov a nápadov a odpovedaní na akékoľvek problémy s riešením problémov, s ktorými sa môžete stretnúť. S Arduino máte zaručenú dobrú úroveň podpory.
CircuitPython
CircuitPython je implementácia Pythonu 3 od Adafruitu, postavená na MicroPythone. Hoci je CircuitPython rozvetvený z MicroPythonu, ponúka niekoľko vylepšení, vďaka ktorým je učenie mikrokontrolérov jednoduché a zábavné.
Vlastnosti
CircuitPython bol vytvorený, aby pomohol začiatočníkom naučiť sa programovať mikrokontroléry. Na dosiahnutie tohto cieľa poskytuje CircuitPython niekoľko funkcií vrátane interaktívneho kódovania prostredie, vstavané knižnice, jednoduchá syntax (jednoduchšia ako MicroPython) a vynikajúca dokumentácia a sprievodcov.
Výkon
Keďže CircuitPython je založený na MicroPythone, má veľa rovnakých silných a slabých stránok. Čas behu programu bude o niečo pomalší ako MicroPython, pretože CircuitPython poskytuje viac funkcií a knižníc navyše. Rozdiel je však pravdepodobne nepostrehnuteľný, pretože CircuitPython vyžaduje na fungovanie schopnejšie mikrokontroléry.
Podporované dosky
Vďaka integrovaným knižniciam a ešte jednoduchšej syntaxi potrebujú vývojové dosky mikrokontrolérov viac zdrojov na používanie CircuitPythonu. Mikrokontrolér musí mať minimálne 8-bitový procesor, 256 kB flash pamäte (odporúča sa 512 kB) a 32 kB RAM (odporúča sa 64 kB). V súčasnosti CircuitPython podporuje viac ako 390 vývojových dosiek uvedených na oficiálna web stránka.
komunita a podpora
Adafruit je známy tým, že vyrába produkty, ktoré sú vhodné pre začiatočníkov. Preto môžete na CircuitPythone nájsť ľahko zrozumiteľnú dokumentáciu a knihy. Hoci bol tento jazyk predstavený iba v roku 2017, stále má väčšiu sledovanosť ako MicroPython, ku ktorému sa môžete dostať cez Discord a oficiálne fórum. Rovnako ako Arduino Foundation, Adafruit aktívne poskytuje aktualizácie, podporu a nové produkty, čo znamená, že podpora by sa mala dať ľahko nájsť.
C
C je univerzálny programovací jazyk vyvinutý v sedemdesiatych rokoch minulého storočia Dennisom Ritchiem v Bell Labs. Ide o kompilovaný programovací jazyk, ktorý inžinieri a iní odborníci často používajú na programovanie mikrokontrolérov s vysokou úrovňou účinnosti.
Vlastnosti
Hoci je jazyk ťažšie na učenie, hlavnou výhodou jazyka C oproti MicroPythonu, CircuitPythonu a Arduinu je úroveň rýchlosti, efektivity, ovládania a prenosnosti, ktorú poskytuje. Vďaka tomu je jazyk C najlepším jazykom na programovanie oboch mikrokontrolérov, ktoré sa majú použiť v hotových výrobkoch.
Výkon
Okrem svojej skvelej prenosnosti je C známy aj svojim výkonom. Dokáže spúšťať programy rýchlejšie ako Arduino, MicroPython a CircuitPython, dokonca aj s mikrokontrolérom s nižšími zdrojmi. Je to preto, že C je efektívnejší jazyk, ktorý vyžaduje najmenšie závislosti. Hoci skompilovaný program Arduino môže byť, podobne ako program v jazyku C, spustený na holom hardvéri, jeho strojový kód je dodávaný s knižnicami a nástrojmi, ktoré znižujú výkon.
Podporované dosky
Jazyk C je taký prenosný, že ho možno použiť na programovanie takmer akéhokoľvek mikrokontroléra na báze Arm. Okrem toho ho možno použiť na doskách založených na mikrokontroléroch Atmel AVR, STM32, PIC a MSP.
komunita a podpora
Vďaka svojej robustnej programovacej aplikácii a skutočnosti, že je už niekoľko desaťročí starý, má programovací jazyk C obrovskú online komunitu. Pomoc môžete ľahko nájsť prostredníctvom rôznych online fór, diskusných miestností a blogov venovaných diskusii a zdieľaniu nápadov o jazyku C.
S akým jazykom by ste mali programovať?
Aký je teda najlepší jazyk na programovanie mikrokontrolérov? Naozaj to závisí od človeka. Jazyk C by bol najlepší pre profesionálov navrhujúcich elektroniku pre výrobu.
Tí, ktorí nemajú skúsenosti s kódovaním, možno budú chcieť začať s CircuitPython, pretože má funkcie a dokumentáciu, vďaka ktorým je učenie jednoduché a zábavné. Pre tých, ktorí poznajú Python, je ľahké programovať mikrokontroléry pomocou MicroPythonu.
A pre väčšinu komunity DIY/maker by bol Arduino stále najlepším jazykom na programovanie mikrokontrolérov, pretože ponúka vynikajúcu rovnováhu medzi výkonom, prenosnosťou, funkciami a komunity.