Koji biste programski jezik trebali koristiti za svoje projekte mikrokontrolera? Istražimo četiri najbolje opcije.
Razvojne ploče mikrokontrolera postale su glavni proizvod u zajednici proizvođača. Ovi programibilni uređaji posebno su dizajnirani za obradu ulaznih i izlaznih signala kao način upravljanja različitim modulima i komponentama kao što su senzori, motori, LED diode i ljudski ulazni uređaji (HID).
Ali prije toga, morat ćete naučiti skriptni jezik koji mikrokontroler može interpretirati za programiranje ovih uređaja. Današnji najpopularniji jezici mikrokontrolera uključuju MicroPython, CircuitPython, Arduino (pojednostavljeni C++) i C. Svaki od ovih jezika ima svoje prednosti i nedostatke.
MicroPython
MicroPython je lagana implementacija programskog jezika Python 3 dizajnirana posebno za mikrokontrolere. Izdao ga je 2013. dr. Damien George za bržu izradu prototipova i kako bi se ljudima koji već poznaju Python omogućilo programiranje mikrokontrolera sličnim jezikom.
Značajke
MicroPython je izvrstan skriptni jezik za početnike koji žele programirati mikrokontrolere. Početnici bez iskustva u kodiranju lako će ga čitati i razumjeti jer koristi čovjeku čitljive naredbe u jednostavnim strukturama. Nadalje, koristi runtime okruženje read-evaluate-print-loop (REPL), što omogućuje interaktivno iskustvo kodiranja.
Izvođenje
Za programiranje mikrokontrolera pomoću MicroPythona, firmware koji sadrži interpreter, biblioteke i razne druge ovisnosti učitava se u mikrokontroler. To omogućuje mikrokontroleru da interpretira i lokalno izvršava MicroPython kod, omogućujući brzu izradu prototipa jer se tijekom kodiranja može pružiti povratna informacija uživo.
Međutim, zbog kako procesori izvršavaju kod, interpretirani jezici poput MicroPythona bit će znatno sporiji u usporedbi s kompiliranim jezicima poput C++. Dakle, prema zadanim postavkama, iako izrada prototipova može biti puno brža, samo je izvršenje koda sporije.
Kompatibilnost
Budući da MicroPython koristi lokalne resurse za tumačenje i izvođenje programa, mikrokontroler mora imati minimalno 256 kB flash memorije i 16 kB RAM-a. Nažalost, neke popularne razvojne ploče poput Arduino Uno ne zadovoljavaju tražene specifikacije. Međutim, još uvijek postoji mnogo ploča koje su kompatibilne s MicroPythonom.
Trenutačno MicroPython službeno podržava Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 razvojne ploče i nekoliko Arduino ploča kao što su Nano 33 BLE, Nano RP2040, Giga R1 i Portenta H7.
Zajednica i podrška
Od svog lansiranja 2013., MicroPython je prikupio znatan broj sljedbenika. Početnicima bi trebalo biti lako naučiti MicroPython uz njegovu dobro napisanu dokumentaciju. Ako trebate dodatnu pomoć, MicroPython također ima forum zajednice na kojem korisnici dijele upute, ideje i odgovore na sve vrste problema koje možete imati u vezi s MicroPythonom.
Arduino
Arduino je popularna platforma otvorenog koda prvenstveno namijenjena ljubiteljima elektronike i DIY entuzijasta. Programski jezik Arduino temelji se na programskim jezicima C i C++. Arduino jezik je 2005. objavila grupa inženjera, umjetnika i dizajnera iz Italije.
Značajke
Arduino programski jezik koristi skraćenu verziju C i C++, što ga čini lakim za učenje i razvoj. Izvršenje koda pomoću Arduina znatno je brže od njegovih protumačenih jezičnih kolega zbog njegove kompilirane prirode. Nadalje, Arduino zahtijeva samo malu količinu sistemskih resursa za rad, što ga čini kompatibilnim s mnogim razvojnim pločama i mikrokontrolerima.
Izvođenje
Za razliku od MicroPythona i CircuitPythona, Arduino je kompajlirani programski jezik. To znači da se kod prvo kompajlira na kompajleru (koji je već uključen u Arduino IDE), a zatim ga mikrokontroler izvršava kao cijeli program.
Ovo značajno poboljšava izvođenje koda budući da mikrokontroler ne mora koristiti resurse za interpretaciju svake linije koda. Osim toga, kompajliranje programa također ga prevodi u strojni kod koji mikrokontroler može izvorno izvršiti bez instaliranja ovisnosti.
Ovo značajno poboljšava brzinu izvršavanja koda jer mikrokontroler može izravno izvršiti program bez izdvajanja vremena i hardverskih resursa za prevođenje koda.
Podržane ploče
Budući da se faza kompajliranja odvija kroz IDE, mikrokontroleri mogu imati samo 32 kB flash memorije i 2 kB RAM-a za rad. Osim Arduino ploča, postoje mnoge alternative za Arduino ploče možete koristiti za programiranje s Arduinom. Mnoge od ovih ploča koristile bi mikrokontrolere poput ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 i STM32.
Zajednica i podrška
Budući da je platforma otvorenog koda od 2005., Arduino ima neke od najboljih dostupnih dokumenata. Zaklada Arduino svake godine aktivno osigurava ažuriranja, podršku i nove uzbudljive proizvode. Svjetska zajednica također je jedna od najaktivnijih u dijeljenju vodiča i ideja i odgovaranju na sve probleme s kojima se možete susresti. S Arduinom vam je zajamčena dobra razina podrške.
CircuitPython
CircuitPython je Adafruitova implementacija Pythona 3, koja se temelji na MicroPythonu. Iako je račvan od MicroPythona, CircuitPython nudi nekoliko poboljšanja kako bi učenje mikrokontrolera bilo jednostavno i zabavno.
Značajke
CircuitPython je stvoren kako bi pomogao početnicima da nauče kako programirati mikrokontrolere. Da bi se to postiglo, CircuitPython nudi nekoliko značajki, uključujući interaktivno kodiranje okruženje, ugrađene biblioteke, jednostavna sintaksa (jednostavnija od MicroPythona) i izvrsna dokumentacija i vodiči.
Izvođenje
Budući da se CircuitPython temelji na MicroPythonu, ima mnogo istih prednosti i slabosti. Vrijeme izvođenja programa bit će nešto sporije od MicroPythona budući da CircuitPython pruža više značajki i dodatnih biblioteka. Međutim, razlika je vjerojatno neprimjetna jer CircuitPython zahtijeva sposobnije mikrokontrolere za rad.
Podržane ploče
S integriranim bibliotekama i još jednostavnijom sintaksom, razvojne ploče mikrokontrolera trebaju više resursa za korištenje CircuitPythona. Minimalno, mikrokontroler mora imati 8-bitni procesor, 256 kB flash memorije (preporučuje se 512 kB) i 32 kB RAM-a (preporučuje se 64 kB). Trenutno CircuitPython podržava više od 390 razvojnih ploča navedenih na službena stranica.
Zajednica i podrška
Poznato je da Adafruit proizvodi proizvode prilagođene početnicima. Kao takvi, možete pronaći dokumentaciju i knjige koje je lako razumjeti na CircuitPython. Iako je jezik predstavljen tek 2017., još uvijek ima više sljedbenika od MicroPythona, do kojeg možete doći putem Discorda i službenog foruma. Kao i Arduino Foundation, Adafruit aktivno pruža ažuriranja, podršku i nove proizvode, što znači da bi podršku trebalo lako pronaći.
C
C je programski jezik opće namjene koji je 1970-ih razvio Dennis Ritchie iz Bell Labsa. To je kompajlirani programski jezik koji su inženjeri i drugi stručnjaci često koristili za programiranje mikrokontrolera s visokom razinom učinkovitosti.
Značajke
Iako je jezik teži za naučiti, glavna prednost C-a u odnosu na MicroPython, CircuitPython i Arduino je razina brzine, učinkovitosti, kontrole i prenosivosti koju pruža. To čini C najboljim jezikom za programiranje oba mikrokontrolera koji će se koristiti u gotovim proizvodima.
Izvođenje
Osim velike prenosivosti, C je poznat po svojim performansama. Može pokretati programe brže od Arduina, MicroPythona i CircuitPythona, čak i s mikrokontrolerom s manjim resursima. To je zato što je C učinkovitiji jezik, koji zahtijeva najmanje ovisnosti. Iako se kompajlirani Arduino program može, kao i C program, izvoditi na golom hardveru, njegov strojni kod dolazi unaprijed pripremljen s bibliotekama i alatima koji smanjuju performanse.
Podržane ploče
Jezik C je toliko prenosiv da se može koristiti za programiranje bilo kojeg Arm-baziranog mikrokontrolera. Osim toga, može se koristiti na pločama temeljenim na mikrokontrolerima Atmel AVR, STM32, PIC i MSP.
Zajednica i podrška
Zbog svoje robusne aplikacije za programiranje i činjenice da je star već nekoliko desetljeća, programski jezik C ima ogromnu internetsku zajednicu. Možete lako pronaći pomoć putem raznih internetskih foruma, soba za razgovor i blogova posvećenih raspravi i razmjeni ideja o jeziku C.
Na kojem jeziku trebate programirati?
Dakle, koji je najbolji jezik za programiranje mikrokontrolera? To stvarno ovisi o osobi. Jezik C bio bi najbolji za profesionalce koji dizajniraju elektroniku za proizvodnju.
Oni koji nemaju iskustva u kodiranju možda će htjeti započeti s CircuitPythonom jer ima značajke i dokumentaciju koja učenje čini lakim i zabavnim. Oni koji poznaju Python lako će programirati mikrokontrolere s MicroPythonom.
A za većinu zajednice DIY/makera, Arduino bi i dalje bio najbolji jezik za programiranje mikrokontrolera, jer nudi izvanrednu ravnotežu performansi, prenosivosti, značajki i zajednica.