Jaký programovací jazyk byste měli používat pro své projekty mikrokontrolérů? Pojďme prozkoumat čtyři nejlepší možnosti.

Desky pro vývoj mikrokontrolérů se staly běžnou součástí komunity výrobců. Tato programovatelná zařízení jsou speciálně navržena pro zpracování vstupních a výstupních signálů jako způsob ovládání různých modulů a komponent, jako jsou senzory, motory, LED a lidská vstupní zařízení (HID).

Předtím se ale budete muset naučit skriptovací jazyk, který mikrokontrolér dokáže interpretovat pro programování těchto zařízení. Mezi dnešní nejoblíbenější jazyky mikrokontrolérů patří MicroPython, CircuitPython, Arduino (zjednodušený C++) a C. Každý z těchto jazyků má svá pro a proti.

MicroPython

MicroPython je odlehčená implementace programovacího jazyka Python 3 určená speciálně pro mikrokontroléry. Byl vydán v roce 2013 Dr. Damienem Georgem kvůli rychlejšímu prototypování a umožnit lidem, kteří již Python znají, programovat mikrokontroléry s podobným jazykem.

Funkce

MicroPython je vynikající skriptovací jazyk pro začátečníky, kteří chtějí programovat mikrokontroléry. Nováčci bez zkušeností s kódováním jej budou snadno číst a pochopit, protože používá příkazy čitelné pro člověka v jednoduchých strukturách. Kromě toho používá běhové prostředí REPL (read-evaluate-print-loop), které umožňuje interaktivní kódování.

Výkon

Pro programování mikrokontroléru pomocí MicroPythonu se do mikrokontroléru nahraje firmware obsahující interpret, knihovny a různé další závislosti. To umožňuje, aby byl kód MicroPythonu interpretován a spouštěn lokálně mikrokontrolérem, což umožňuje rychlé prototypování, protože při kódování lze poskytovat živou zpětnou vazbu.

Nicméně, vzhledem k jak procesory provádějí kód, budou interpretované jazyky jako MicroPython výrazně pomalejší ve srovnání s kompilovanými jazyky jako C++. Takže ve výchozím nastavení, ačkoli prototypování může být mnohem rychlejší, samotné provádění kódu je pomalejší.

Kompatibilita

Protože MicroPython používá k interpretaci a spouštění programů místní zdroje, musí mít mikrokontrolér minimálně 256 kB flash paměti a 16 kB RAM. Bohužel některé populární vývojové desky jako Arduino Uno nesplňují požadované specifikace. Stále však existuje spousta desek, které jsou kompatibilní s MicroPythonem.

V současné době MicroPython oficiálně podporuje Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Vývojové desky STM32 a několik desek Arduino, jako je Nano 33 BLE, Nano RP2040, Giga R1 a Portenta H7.

Komunita a podpora

Od svého spuštění v roce 2013 si MicroPython od té doby získal značné množství fanoušků. Začátečníci by se měli snadno naučit MicroPython díky jeho dobře napsané dokumentaci. Pokud potřebujete další pomoc, MicroPython má také komunitní fórum, kde uživatelé sdílejí tutoriály, nápady a odpovídají na všechny druhy problémů, které můžete mít ohledně MicroPythonu.

Arduino

Arduino je populární platforma s otevřeným zdrojovým kódem primárně zaměřená na elektroniku a kutily. Programovací jazyk Arduino je založen na programovacích jazycích C a C++. Jazyk Arduino byl vydán v roce 2005 skupinou inženýrů, umělců a designérů z Itálie.

Funkce

Programovací jazyk Arduino používá zkrácenou verzi C i C++, takže je snadné se s ním učit a vyvíjet. Spouštění kódu pomocí Arduina je výrazně rychlejší než jeho protějšky v interpretovaném jazyce díky jeho kompilované povaze. Kromě toho Arduino vyžaduje pouze malé množství systémových prostředků, aby fungovalo, takže je kompatibilní s mnoha vývojovými deskami a mikrokontroléry.

Výkon

Na rozdíl od MicroPythonu a CircuitPythonu je Arduino kompilovaný programovací jazyk. To znamená, že kód je nejprve zkompilován na kompilátoru (již součástí Arduino IDE) a poté mikrokontrolérem spuštěn jako celý program.

To výrazně zlepšuje provádění kódu, protože mikrokontrolér nemusí používat prostředky k interpretaci každého řádku kódu. Kromě toho se při kompilaci programu také převede do strojového kódu, který může mikrokontrolér nativně spustit bez instalace závislostí.

To výrazně zvyšuje rychlost provádění kódu, protože mikrokontrolér může přímo spouštět program, aniž by přiděloval čas a hardwarové prostředky na překlad kódu.

Podporované desky

Vzhledem k tomu, že fáze kompilace probíhá prostřednictvím IDE, mikrokontroléry mohou mít k práci pouhých 32 kB flash paměti a 2 kB RAM. Takže kromě desek Arduino, existuje mnoho alternativ desek Arduino můžete použít k programování s Arduino. Mnoho z těchto desek by používalo mikrokontroléry jako ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 a STM32.

Komunita a podpora

Jako platforma s otevřeným zdrojovým kódem od roku 2005 má Arduino jedny z nejlepších dostupných dokumentů. Arduino Foundation každý rok aktivně poskytuje aktualizace, podporu a nové vzrušující produkty. Celosvětová komunita je také jednou z nejaktivnějších ve sdílení příruček a nápadů a zodpovídání jakýchkoliv problémů, se kterými se můžete setkat. S Arduinem máte zaručenou dobrou úroveň podpory.

CircuitPython

CircuitPython je implementace Pythonu 3 od Adafruitu, postavená na MicroPythonu. Ačkoli je CircuitPython rozvětvený z MicroPythonu, nabízí několik vylepšení, díky nimž je učení mikrokontrolérů snadné a zábavné.

Funkce

CircuitPython byl vytvořen, aby pomohl začátečníkům naučit se programovat mikrokontroléry. K dosažení tohoto cíle poskytuje CircuitPython několik funkcí, včetně interaktivního kódování prostředí, vestavěné knihovny, jednoduchá syntaxe (jednodušší než MicroPython) a vynikající dokumentace a průvodci.

Výkon

Protože CircuitPython je založen na MicroPythonu, má mnoho stejných silných a slabých stránek. Doba běhu programu bude o něco pomalejší než u MicroPythonu, protože CircuitPython poskytuje více funkcí a extra knihoven. Rozdíl je však pravděpodobně nepostřehnutelný, protože CircuitPython vyžaduje k práci schopnější mikrokontroléry.

Podporované desky

Díky integrovaným knihovnám a ještě jednodušší syntaxi potřebují vývojové desky mikrokontrolérů více zdrojů pro použití CircuitPythonu. Mikrokontrolér musí mít minimálně 8bitový procesor, 256 kB flash paměti (doporučeno 512 kB) a 32 kB RAM (doporučeno 64 kB). V současné době CircuitPython podporuje více než 390 vývojových desek uvedených na oficiální webové stránky.

Komunita a podpora

Adafruit je známý tím, že vyrábí produkty, které jsou vhodné pro začátečníky. Jako takové můžete na CircuitPythonu najít snadno srozumitelnou dokumentaci a knihy. Přestože byl jazyk představen teprve v roce 2017, stále má větší sledovanost než MicroPython, ke kterému se můžete dostat přes Discord a oficiální fórum. Stejně jako Arduino Foundation, Adafruit aktivně poskytuje aktualizace, podporu a nové produkty, což znamená, že podpora by měla být snadno dostupná.

C

C je univerzální programovací jazyk vyvinutý v 70. letech 20. století Dennisem Ritchiem v Bell Labs. Jedná se o kompilovaný programovací jazyk, který inženýři a další odborníci často používají k programování mikrokontrolérů s vysokou úrovní účinnosti.

Funkce

Přestože je jazyk obtížnější se naučit, hlavní výhodou C oproti MicroPythonu, CircuitPythonu a Arduinu je úroveň rychlosti, efektivity, ovládání a přenositelnosti, kterou poskytuje. Díky tomu je jazyk C nejlepším jazykem pro programování obou mikrokontrolérů pro použití v hotových výrobcích.

Výkon

Kromě skvělé přenosnosti je C známý svým výkonem. Dokáže spouštět programy rychleji než Arduino, MicroPython a CircuitPython, a to i s mikrokontrolérem s nižšími zdroji. Je to proto, že C je efektivnější jazyk, který vyžaduje nejmenší závislosti. Přestože zkompilovaný program pro Arduino může být stejně jako program v jazyce C spuštěn na holém hardwaru, jeho strojový kód je dodáván s předpečenými knihovnami a nástroji, které snižují výkon.

Podporované desky

Jazyk C je natolik přenosný, že jej lze použít k programování téměř jakéhokoli mikrokontroléru na bázi Arm. Kromě toho jej lze použít na deskách založených na mikrokontrolérech Atmel AVR, STM32, PIC a MSP.

Komunita a podpora

Díky své robustní programovací aplikaci a skutečnosti, že je již několik desítek let starý, má programovací jazyk C obrovskou online komunitu. Pomoc můžete snadno najít prostřednictvím různých online fór, chatovacích místností a blogů věnovaných diskuzi a sdílení nápadů o jazyce C.

S jakým jazykem byste měli programovat?

Jaký je tedy nejlepší jazyk pro programování mikrokontrolérů? Opravdu záleží na člověku. Jazyk C by byl nejlepší pro profesionály navrhující elektroniku pro výrobu.

Ti, kteří nemají žádné zkušenosti s kódováním, možná budou chtít začít s CircuitPython, protože má funkce a dokumentaci, díky kterým je učení snadné a zábavné. Pro ty, kdo znají Python, je snadné programovat mikrokontroléry pomocí MicroPythonu.

A pro většinu komunity kutilů/tvůrců by Arduino byl stále tím nejlepším jazykem pro programování mikrokontroléry, protože nabízí vynikající rovnováhu mezi výkonem, přenositelností, funkcemi a společenství.