Millist programmeerimiskeelt peaksite oma mikrokontrolleriprojektide jaoks kasutama? Uurime nelja parimat võimalust.

Mikrokontrollerite arendusplaadid on saanud tootjate seas laialt levinud. Need programmeeritavad seadmed on spetsiaalselt loodud sisend- ja väljundsignaalide töötlemiseks, et juhtida erinevaid mooduleid ja komponente, nagu andurid, mootorid, LED-id ja inimese sisendseadmed (HID).

Kuid enne seda peate õppima skriptikeelt, mida mikrokontroller saab nende seadmete programmeerimiseks tõlgendada. Tänapäeva populaarseimad mikrokontrollerite keeled on MicroPython, CircuitPython, Arduino (lihtsustatud C++) ja C. Igal neist keeltest on oma plussid ja miinused.

MicroPython

MicroPython on Python 3 programmeerimiskeele kerge teostus, mis on loodud spetsiaalselt mikrokontrolleritele. Selle andis 2013. aastal välja dr Damien George kiiremaks prototüüpimiseks ja selleks, et Pythoniga juba tuttavad inimesed saaksid programmeerida sarnase keelega mikrokontrollereid.

Funktsioonid

MicroPython on suurepärane skriptikeel algajatele, kes soovivad programmeerida mikrokontrollereid. Kodeerimiskogemuseta algajatel on seda lihtne lugeda ja mõista, kuna see kasutab lihtsates struktuurides inimloetavaid käske. Lisaks kasutab see REPL (read-valuate-print-loop) käituskeskkonda, mis võimaldab interaktiivset kodeerimiskogemust.

instagram viewer

Esitus

Mikrokontrolleri programmeerimiseks MicroPythoni abil sisestatakse mikrokontrollerisse püsivara, mis sisaldab tõlki, teeke ja mitmesuguseid muid sõltuvusi. See võimaldab mikrokontrolleril MicroPythoni koodi tõlgendada ja kohapeal käivitada, võimaldades kiiret prototüüpimist, kuna kodeerimise ajal saab anda reaalajas tagasisidet.

Kuid tänu kuidas protsessorid koodi täidavad, on tõlgendatavad keeled, nagu MicroPython, oluliselt aeglasemad, võrreldes kompileeritud keeltega, nagu C++. Ehkki prototüüpimine võib vaikimisi olla palju kiirem, on koodi täitmine ise aeglasem.

Ühilduvus

Kuna MicroPython kasutab programmide tõlgendamiseks ja täitmiseks kohalikke ressursse, peab mikrokontrolleril olema vähemalt 256 kB välkmälu ja 16 kB muutmälu. Kahjuks ei vasta mõned populaarsed arendusplaadid, nagu Arduino Uno, nõutavatele spetsifikatsioonidele. Siiski on endiselt palju plaate, mis ühilduvad MicroPythoniga.

Praegu toetab MicroPython ametlikult Pyboardi, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 arendusplaadid ja mõned Arduino plaadid, nagu Nano 33 BLE, Nano RP2040, Giga R1 ja Portenta H7.

Kogukond ja tugi

Alates selle käivitamisest 2013. aastal on MicroPython kogunud märkimisväärset jälgijaskonda. Algajatel peaks olema MicroPythoni hästi kirjutatud dokumentatsiooniga lihtne õppida. Kui vajate rohkem abi, on MicroPythonil ka kogukonna foorum, kus kasutajad jagavad õpetusi, ideid ja vastavad kõikvõimalikele probleemidele, mis teil seoses MicroPythoniga võivad tekkida.

Arduino

Arduino on populaarne avatud lähtekoodiga platvorm, mis on peamiselt suunatud elektroonika- ja DIY-entusiastidele. Arduino programmeerimiskeel põhineb C ja C++ programmeerimiskeeltel. Arduino keele andis 2005. aastal välja Itaalia inseneride, kunstnike ja disainerite rühm.

Funktsioonid

Arduino programmeerimiskeel kasutab nii C kui ka C++ vähendatud versiooni, mis muudab selle õppimise ja arendamise lihtsaks. Koodi täitmine Arduino abil on selle koostatud olemuse tõttu oluliselt kiirem kui selle tõlgendatud keele kolleegid. Lisaks vajab Arduino töötamiseks vaid väikest kogust süsteemiressursse, mistõttu on see ühilduv paljude arendusplaatide ja mikrokontrolleritega.

Esitus

Erinevalt MicroPythonist ja CircuitPythonist on Arduino kompileeritud programmeerimiskeel. See tähendab, et kood kompileeritakse esmalt kompilaatoris (mis on juba Arduino IDE-s) ja seejärel käivitatakse mikrokontrolleri poolt terve programmina.

See parandab oluliselt koodi täitmist, kuna mikrokontroller ei pea iga koodirea tõlgendamiseks ressursse kasutama. Lisaks tõlgib programmi kompileerimine selle ka masinkoodiks, mida mikrokontroller saab natiivselt käivitada ilma sõltuvusi installimata.

See parandab oluliselt koodi täitmise kiirust, sest mikrokontroller saab programmi otse käivitada ilma koodi tõlkimiseks aega ja riistvararessursse eraldamata.

Toetatud tahvlid

Kuna kompileerimisetapp toimub IDE kaudu, võib mikrokontrolleritel olla töötamiseks kuni 32 kB välkmälu ja 2 kB muutmälu. Nii et kui Arduino tahvlid kõrvale jätta, Arduino plaadi alternatiive on palju saate kasutada Arduinoga programmeerimiseks. Paljud neist plaatidest kasutaksid mikrokontrollereid nagu ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 ja STM32.

Kogukond ja tugi

Kuna Arduino on avatud lähtekoodiga platvorm alates 2005. aastast, on sellel üks parimaid saadaolevaid dokumente. Arduino fond pakub igal aastal aktiivselt värskendusi, tuge ja uusi põnevaid tooteid. Ülemaailmne kogukond on ka üks aktiivsemaid juhendite ja ideede jagamisel ning võimalikele tõrkeotsingu probleemidele vastamisel. Arduinoga on teile tagatud hea tugi.

CircuitPython

CircuitPython on Adafruiti Python 3 juurutus, mis põhineb MicroPythonil. Kuigi CircuitPython on MicroPythonist pärit, pakub see mitmeid täiustusi, et muuta mikrokontrollerite õppimine lihtsaks ja lõbusaks.

Funktsioonid

CircuitPython loodi selleks, et aidata algajatel õppida mikrokontrollereid programmeerima. Selle saavutamiseks pakub CircuitPython mitmeid funktsioone, sealhulgas interaktiivset kodeerimist keskkond, sisseehitatud teegid, lihtne süntaks (lihtsam kui MicroPython) ja suurepärane dokumentatsioon ja juhendid.

Esitus

Kuna CircuitPython põhineb MicroPythonil, on sellel palju samu tugevusi ja nõrkusi. Programmi tööaeg on veidi aeglasem kui MicroPython, kuna CircuitPython pakub rohkem funktsioone ja lisateeke. Erinevus on aga tõenäoliselt märkamatu, kuna CircuitPython vajab töötamiseks võimekamaid mikrokontrollereid.

Toetatud tahvlid

Integreeritud teekide ja veelgi lihtsama süntaksiga vajavad mikrokontrollerite arendusplaadid CircuitPythoni kasutamiseks rohkem ressursse. Mikrokontrolleril peab olema vähemalt 8-bitine protsessor, 256 kB välkmälu (soovitatav 512 kB) ja 32 kB muutmälu (soovitatav 64 kB). Praegu toetab CircuitPython enam kui 390 arendusplaati, mis on loetletud ametlik koduleht.

Kogukond ja tugi

Teadaolevalt valmistab Adafruit tooteid, mis on algajasõbralikud. Sellisena leiate CircuitPythonist hõlpsasti arusaadavat dokumentatsiooni ja raamatuid. Kuigi keelt tutvustati alles 2017. aastal, on sellel siiski suurem jälgijaskond kui MicroPythonil, kuhu pääseb Discordi ja ametliku foorumi kaudu. Nagu Arduino sihtasutus, pakub Adafruit aktiivselt värskendusi, tuge ja uusi tooteid, mis tähendab, et tuge peaks olema lihtne leida.

C

C on üldotstarbeline programmeerimiskeel, mille töötas välja 1970. aastatel Dennis Ritchie ettevõttes Bell Labs. See on kompileeritud programmeerimiskeel, mida insenerid ja teised spetsialistid kasutasid sageli kõrge efektiivsusega mikrokontrollerite programmeerimiseks.

Funktsioonid

Kuigi keelt on raskem õppida, on C peamine eelis MicroPythoni, CircuitPythoni ja Arduino ees selle pakutav kiirus, tõhusus, juhtimine ja kaasaskantavus. See teeb C-st parima keele mõlema mikrokontrolleri programmeerimiseks valmistoodetes kasutamiseks.

Esitus

Lisaks suurepärasele teisaldatavusele on C tuntud oma jõudluse poolest. See võib käivitada programme kiiremini kui Arduino, MicroPython ja CircuitPython, isegi väiksema ressursiga mikrokontrolleriga. Seda seetõttu, et C on tõhusam keel, mis nõuab kõige vähem sõltuvusi. Kuigi koostatud Arduino programmi saab sarnaselt C-ga käivitada metallist riistvaraga, on selle masinkoodiga eelküpsetatud teegid ja jõudlust vähendavad tööriistad.

Toetatud tahvlid

C-keel on nii kaasaskantav, et seda saab kasutada peaaegu kõigi Arm-põhise mikrokontrolleri programmeerimiseks. Lisaks saab seda kasutada plaatidel, mis põhinevad Atmel AVR, STM32, PIC ja MSP mikrokontrolleritel.

Kogukond ja tugi

Tänu oma tugevale programmeerimisrakendusele ja asjaolule, et see on juba mitu aastakümmet vana, on C-programmeerimiskeelel tohutu võrgukogukond. Saate hõlpsasti abi leida mitmesugustest veebifoorumitest, jututubadest ja ajaveebidest, mis on pühendatud C-keele arutelule ja ideede jagamisele.

Mis keeles peaksite programmeerima?

Niisiis, milline on parim keel mikrokontrollerite programmeerimiseks? See oleneb tõesti inimesest. C-keel oleks parim tootmiseks mõeldud elektroonikat disainivatele professionaalidele.

Need, kellel pole kodeerimiskogemust, võivad soovida alustada CircuitPythoniga, kuna sellel on funktsioonid ja dokumentatsioon, mis muudavad õppimise lihtsaks ja lõbusaks. Pythoniga tuttavatel on MicroPythoniga mikrokontrollerite programmeerimine lihtne.

Ja enamiku DIY/tegijate kogukonna jaoks oleks Arduino endiselt parim programmeerimiskeel mikrokontrollereid, kuna see pakub suurepärast tasakaalu jõudluse, kaasaskantavuse, funktsioonide ja kogukond.