Milyen programozási nyelvet érdemes használni a mikrokontroller projektjeihez? Vizsgáljuk meg a négy legjobb lehetőséget.

A mikrokontroller-fejlesztő kártyák a gyártói közösség alapvető részévé váltak. Ezeket a programozható eszközöket kifejezetten a bemeneti és a kimeneti jelek feldolgozására tervezték, hogy különféle modulokat és alkatrészeket, például érzékelőket, motorokat, LED-eket és emberi beviteli eszközöket (HID-k) vezéreljenek.

De előtte meg kell tanulnia egy szkriptnyelvet, amelyet a mikrokontroller képes értelmezni, hogy programozza ezeket az eszközöket. Napjaink legnépszerűbb mikrokontrollernyelvei a MicroPython, CircuitPython, Arduino (egyszerűsített C++) és C. Mindegyik nyelvnek megvannak a maga előnyei és hátrányai.

MicroPython

A MicroPython a Python 3 programozási nyelv könnyű megvalósítása, amelyet kifejezetten mikrokontrollerekhez terveztek. 2013-ban adta ki Dr. Damien George a gyorsabb prototípuskészítés érdekében, és lehetővé teszi a Python-t már ismerő emberek számára, hogy hasonló nyelvű mikrokontrollereket programozzanak.

Jellemzők

A MicroPython egy kiváló szkriptnyelv kezdőknek, akik mikrokontrollereket szeretnének programozni. A kódolási tapasztalattal nem rendelkező kezdők számára könnyen olvasható és érthető, mert ember által olvasható parancsokat használ egyszerű struktúrákban. Ezenkívül REPL (read-evaluate-print-loop) futásidejű környezetet használ, amely lehetővé teszi az interaktív kódolási élményt.

Teljesítmény

A MicroPython használatával történő mikrokontroller programozásához az interpretert, a könyvtárakat és számos egyéb függőséget tartalmazó firmware-t a mikrokontrollerbe flasheljük. Ez lehetővé teszi, hogy a MicroPython kódot a mikrokontroller lokálisan értelmezze és végrehajtsa, lehetővé téve a gyors prototípuskészítést, mivel élő visszacsatolás biztosítható kódolás közben.

Mivel azonban hogy a processzorok hogyan hajtják végre a kódot, az olyan értelmezett nyelvek, mint a MicroPython, lényegesen lassabbak lesznek az olyan fordított nyelvekhez képest, mint a C++. Tehát alapértelmezés szerint, bár a prototípuskészítés sokkal gyorsabb lehet, maga a kódvégrehajtás lassabb.

Kompatibilitás

Mivel a MicroPython helyi erőforrásokat használ a programok értelmezéséhez és végrehajtásához, a mikrokontrollernek legalább 256 kB flash memóriával és 16 kB RAM-mal kell rendelkeznie. Sajnos néhány népszerű fejlesztőlap, mint például az Arduino Uno, nem felel meg a szükséges specifikációknak. Azonban még mindig rengeteg olyan tábla van, amely kompatibilis a MicroPython-nal.

Jelenleg a MicroPython hivatalosan támogatja a Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 fejlesztő kártyák és néhány Arduino kártya, például a Nano 33 BLE, Nano RP2040, Giga R1 és Portenta H7.

Közösség és támogatás

2013-as indulása óta a MicroPython azóta jelentős követőket gyűjtött össze. A kezdőknek könnyű dolguk lesz megtanulni a MicroPythont a jól megírt dokumentációjával. Ha további segítségre van szüksége, a MicroPythonnak van egy közösségi fóruma is, ahol a felhasználók oktatóanyagokat, ötleteket osztanak meg, és megválaszolják a MicroPythonnal kapcsolatban felmerülő problémákat.

Arduino

Az Arduino egy népszerű nyílt forráskódú platform, amely elsősorban az elektronika és a barkácsolás szerelmeseit célozza meg. Az Arduino programozási nyelv a C és C++ programozási nyelveken alapul. Az Arduino nyelvet 2005-ben adta ki egy olaszországi mérnökök, művészek és tervezők csoportja.

Jellemzők

Az Arduino programozási nyelv a C és a C++ lecsupaszított verzióját használja, így könnyű megtanulni és fejleszteni. A kódvégrehajtás az Arduino használatával lényegesen gyorsabb, mint az értelmezett nyelvi társai, fordítási jellege miatt. Ezenkívül az Arduino csak kis mennyiségű rendszererőforrást igényel a működéséhez, így kompatibilis számos fejlesztőkártyával és mikrokontrollerrel.

Teljesítmény

A MicroPython-nal és a CircuitPython-nal ellentétben az Arduino egy lefordított programozási nyelv. Ez azt jelenti, hogy a kódot először egy fordítón fordítják le (amely már benne van az Arduino IDE-ben), majd a mikrokontroller teljes programként hajtja végre.

Ez jelentősen javítja a kód végrehajtását, mivel a mikrokontrollernek nem kell erőforrásokat használnia az egyes kódsorok értelmezéséhez. Ezenkívül a program fordítása gépi kódra is lefordítja, amelyet a mikrokontroller natív módon tud végrehajtani függőségek telepítése nélkül.

Ez jelentősen javítja a kód végrehajtási sebességét, mivel a mikrokontroller közvetlenül tudja végrehajtani a programot anélkül, hogy időt és hardvererőforrást fordítana a kód fordítására.

Támogatott táblák

Mivel a fordítási szakasz az IDE-n keresztül történik, a mikrokontrollerek akár 32 kB flash memóriával és 2 kB RAM-mal is működhetnek. Tehát az Arduino táblákon kívül sok Arduino tábla alternatíva létezik segítségével programozhat Arduino-val. Ezen kártyák közül sok olyan mikrokontrollert használna, mint az ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 és STM32.

Közösség és támogatás

Mivel 2005 óta nyílt forráskódú platform, az Arduino a legjobb elérhető dokumentációval rendelkezik. Az Arduino Alapítvány minden évben aktívan nyújt frissítéseket, támogatást és új, izgalmas termékeket. A világméretű közösség az egyik legaktívabb az útmutatók és ötletek megosztásában, valamint az esetlegesen felmerülő hibaelhárítási problémák megválaszolásában. Az Arduino-val garantált a megfelelő szintű támogatás.

CircuitPython

A CircuitPython a Python 3 Adafruit implementációja, amely a MicroPython tetejére épül. Bár a MicroPythonból származik, a CircuitPython számos fejlesztést kínál, hogy a mikrokontrollerek tanulását egyszerűvé és szórakoztatóvá tegye.

Jellemzők

A CircuitPython azért jött létre, hogy segítsen a kezdőknek megtanulni a mikrokontrollerek programozását. Ennek eléréséhez a CircuitPython számos funkciót biztosít, beleértve az interaktív kódolást környezet, beépített könyvtárak, egyszerű szintaxis (egyszerűbb, mint a MicroPython) és kiváló dokumentáció és útmutatók.

Teljesítmény

Mivel a CircuitPython a MicroPython-on alapul, számos erőssége és gyengesége van. A program futási ideje valamivel lassabb lesz, mint a MicroPython, mivel a CircuitPython több funkciót és extra könyvtárakat biztosít. A különbség azonban valószínűleg észrevehetetlen, mivel a CircuitPython működéséhez több képességű mikrokontrollerre van szükség.

Támogatott táblák

Az integrált könyvtáraknak és még egyszerűbb szintaxisnak köszönhetően a mikrokontroller-fejlesztő kártyáknak több erőforrásra van szükségük a CircuitPython használatához. Egy mikrokontrollernek legalább 8 bites processzorral, 256 kB flash memóriával (512 kB ajánlott) és 32 kB RAM-mal (ajánlott 64 kB) kell rendelkeznie. Jelenleg a CircuitPython több mint 390 fejlesztői kártyát támogat, amelyek a listán szerepelnek hivatalos honlapján.

Közösség és támogatás

Az Adafruitról ismert, hogy kezdőbarát termékeket készít. Mint ilyen, könnyen érthető dokumentációt és könyveket találhat a CircuitPythonon. Bár a nyelvet csak 2017-ben vezették be, még mindig nagyobb követői vannak, mint a MicroPythonnak, amelyet a Discordon és a hivatalos fórumon keresztül érhet el. Az Arduino Alapítványhoz hasonlóan az Adafruit is aktívan kínál frissítéseket, támogatást és új termékeket, ami azt jelenti, hogy a támogatást könnyen megtalálni kell.

C

A C egy általános célú programozási nyelv, amelyet az 1970-es években Dennis Ritchie fejlesztett ki a Bell Labs-tól. Ez egy összeállított programozási nyelv, amelyet a mérnökök és más szakemberek gyakran használtak a mikrokontrollerek nagy hatékonyságú programozására.

Jellemzők

Bár nehezebb nyelvet tanulni, a C fő előnye a MicroPython-nal, CircuitPython-nal és Arduinóval szemben a sebesség, a hatékonyság, a vezérlés és a hordozhatóság szintje. Ez teszi a C-t a legjobb nyelvvé mindkét mikrokontroller programozására a késztermékekben való használatra.

Teljesítmény

A nagyszerű hordozhatóság mellett a C teljesítményéről is ismert. A programokat gyorsabban tudja futtatni, mint az Arduino, a MicroPython és a CircuitPython, még alacsonyabb erőforrásigényű mikrokontrollerrel is. Ennek az az oka, hogy a C hatékonyabb nyelv, amely a legkevesebb függőséget igényli. Bár egy lefordított Arduino program, akárcsak a C, futtatható csupasz fém hardveren, gépi kódja elősütve van olyan könyvtárakkal és eszközökkel, amelyek csökkentik a teljesítményt.

Támogatott táblák

A C nyelv annyira hordozható, hogy szinte bármilyen Arm-alapú mikrokontroller programozására használható. Emellett az Atmel AVR, STM32, PIC és MSP mikrokontrollereken alapuló kártyákon is használható.

Közösség és támogatás

Robusztus programozási alkalmazásának és már több évtizedes múltjának köszönhetően a C programozási nyelv hatalmas online közösséggel rendelkezik. Könnyedén találhat segítséget különféle online fórumokon, csevegőszobákon és blogokon, amelyek célja a C nyelv megvitatása és megosztása.

Milyen nyelven programozzon?

Tehát melyik nyelv a legjobb a mikrokontrollerek programozásához? Valóban az embertől függ. A C nyelv lenne a legjobb a gyártási elektronikát tervező szakemberek számára.

Azok, akik nem rendelkeznek kódolási tapasztalattal, érdemes a CircuitPython-nal kezdeni, mivel olyan funkciókkal és dokumentációkkal rendelkezik, amelyek egyszerűvé és szórakoztatóvá teszik a tanulást. Azok, akik ismerik a Pythont, könnyen tudják programozni a mikrokontrollereket a MicroPython segítségével.

És a barkács/készítő közösség többsége számára továbbra is az Arduino lenne a legjobb programozási nyelv mikrokontrollerek, mivel kiemelkedő egyensúlyt kínál a teljesítmény, a hordozhatóság, a funkciók és a közösség.