Hvilket programmeringssprog skal du bruge til dine mikrocontroller-projekter? Lad os undersøge de fire bedste muligheder.
Mikrocontroller-udviklingstavler er blevet en fast bestanddel blandt producentsamfundet. Disse programmerbare enheder er specifikt designet til at behandle input- og outputsignaler som en måde at styre forskellige moduler og komponenter som sensorer, motorer, LED'er og human input-enheder (HID'er).
Men før det skal du lære et scriptsprog, som mikrocontrolleren kan fortolke for at programmere disse enheder. Dagens mest populære mikrocontrollersprog inkluderer MicroPython, CircuitPython, Arduino (forenklet C++) og C. Hvert af disse sprog har sine egne fordele og ulemper.
MicroPython
MicroPython er en letvægtsimplementering af Python 3-programmeringssproget designet specielt til mikrocontrollere. Den blev udgivet i 2013 af Dr. Damien George for hurtigere prototyping og for at give folk, der allerede er bekendt med Python, mulighed for at programmere mikrocontrollere med et lignende sprog.
Funktioner
MicroPython er et fremragende scriptsprog for begyndere, der ønsker at programmere mikrocontrollere. Nybegyndere uden kodningserfaring vil finde det nemt at læse og forstå, fordi det bruger menneskelæselige kommandoer i enkle strukturer. Desuden bruger den et read-evaluate-print-loop (REPL) runtime-miljø, hvilket tillader en interaktiv kodningsoplevelse.
Ydeevne
For at programmere en mikrocontroller ved hjælp af MicroPython flashes firmware, der indeholder fortolkeren, biblioteker og forskellige andre afhængigheder ind i mikrocontrolleren. Dette gør det muligt for MicroPython-kode at blive fortolket og eksekveret lokalt af mikrocontrolleren, hvilket muliggør hurtig prototyping, da live-feedback kan leveres under kodning.
Dog pga hvordan processorer udfører kode, vil fortolkede sprog som MicroPython være betydeligt langsommere sammenlignet med kompilerede sprog som C++. Så som standard, selvom prototyping kan være meget hurtigere, er selve kodeudførelsen langsommere.
Kompatibilitet
Da MicroPython bruger lokale ressourcer til at fortolke og udføre programmer, skal en mikrocontroller have minimum 256 kB flash-hukommelse og 16 kB RAM. Desværre opfylder nogle populære udviklingstavler som Arduino Uno ikke de krævede specifikationer. Der er dog stadig masser af boards, der er kompatible med MicroPython.
I øjeblikket understøtter MicroPython officielt Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32-udviklingskort og et par Arduino-kort såsom Nano 33 BLE, Nano RP2040, Giga R1 og Portenta H7.
Fællesskab og støtte
Siden lanceringen i 2013 har MicroPython siden høstet et betydeligt antal følgere. Begyndere skal have let ved at lære MicroPython med dens velskrevne dokumentation. Hvis du har brug for mere hjælp, har MicroPython også et fællesskabsforum, hvor brugere deler tutorials, ideer og besvarer alle slags problemer, du måtte have vedrørende MicroPython.
Arduino
Arduino er en populær open source-platform, der primært er rettet mod elektronik- og gør-det-selv-entusiaster. Arduino-programmeringssproget er baseret på programmeringssprogene C og C++. Arduino-sproget blev udgivet i 2005 af en gruppe ingeniører, kunstnere og designere fra Italien.
Funktioner
Arduino-programmeringssproget bruger en strippet version af både C og C++, hvilket gør det nemt at lære og udvikle med. Kode eksekvering ved hjælp af Arduino er betydeligt hurtigere end dets fortolkede sproglige modstykker på grund af dens kompilerede karakter. Desuden kræver Arduino kun en lille mængde systemressourcer for at fungere, hvilket gør den kompatibel med mange udviklingskort og mikrocontrollere.
Ydeevne
I modsætning til MicroPython og CircuitPython er Arduino et kompileret programmeringssprog. Dette betyder, at kode først kompileres på en compiler (allerede inkluderet i Arduino IDE) og derefter udføres som et helt program af mikrocontrolleren.
Dette forbedrer kodeudførelsen markant, da mikrocontrolleren ikke skal bruge ressourcer til at fortolke hver kodelinje. Derudover oversætter kompilering af programmet det også til maskinkode, som mikrocontrolleren kan udføre naturligt uden at installere afhængigheder.
Dette forbedrer kodeudførelseshastigheden markant, fordi mikrocontrolleren direkte kan udføre programmet uden at allokere tid og hardwareressourcer til at oversætte koden.
Understøttede bestyrelser
Da kompileringsfasen udføres gennem IDE, kan mikrocontrollere have så lidt som 32 kB flashhukommelse og 2 kB RAM for at fungere. Så bortset fra Arduino boards, der er mange Arduino board-alternativer du kan bruge til at programmere med Arduino. Mange af disse kort ville bruge mikrocontrollere som ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 og STM32.
Fællesskab og støtte
Arduino har været en open source-platform siden 2005 og har noget af den bedste tilgængelige dokumentation. Arduino Foundation leverer aktivt opdateringer, support og nye spændende produkter hvert år. Det verdensomspændende fællesskab er også et af de mest aktive i at dele vejledninger og ideer og besvare eventuelle fejlfindingsproblemer, du måtte støde på. Med Arduino er du garanteret et godt niveau af support.
CircuitPython
CircuitPython er Adafruits implementering af Python 3, der bygger oven på MicroPython. Selvom det er splittet fra MicroPython, tilbyder CircuitPython adskillige forbedringer for at gøre det nemt og sjovt at lære mikrocontrollere.
Funktioner
CircuitPython blev skabt for at hjælpe begyndere med at lære at programmere mikrocontrollere. For at opnå dette giver CircuitPython flere funktioner, herunder en interaktiv kodning miljø, indbyggede biblioteker, simpel syntaks (enklere end MicroPython) og fremragende dokumentation og guider.
Ydeevne
Da CircuitPython er baseret på MicroPython, har det mange af de samme styrker og svagheder. Programkørselstiden vil være lidt langsommere end MicroPython, da CircuitPython giver flere funktioner og ekstra biblioteker. Forskellen er dog sandsynligvis umærkelig, da CircuitPython kræver mere dygtige mikrocontrollere for at fungere.
Understøttede bestyrelser
Med integrerede biblioteker og endnu enklere syntaks har mikrocontroller-udviklingstavler brug for flere ressourcer for at bruge CircuitPython. En mikrocontroller skal som minimum have en 8-bit processor, 256 kB flashhukommelse (512 kB anbefales) og 32 kB RAM (64 kB anbefales). I øjeblikket understøtter CircuitPython over 390 udviklingstavler, der er opført på officiel hjemmeside.
Fællesskab og støtte
Adafruit er kendt for at lave produkter, der er begyndervenlige. Som sådan kan du finde letforståelig dokumentation og bøger på CircuitPython. Selvom sproget først blev introduceret i 2017, har det stadig en større tilhængerskare end MicroPython, som du kan nå gennem Discord og det officielle forum. Ligesom Arduino Foundation leverer Adafruit aktivt opdateringer, support og nye produkter, hvilket betyder, at support skal være let at finde.
C
C er et alment programmeringssprog udviklet i 1970'erne af Dennis Ritchie ved Bell Labs. Det er et kompileret programmeringssprog, som ingeniører og andre fagfolk ofte brugte til at programmere mikrocontrollere med høj effektivitet.
Funktioner
Selvom det er et sværere sprog at lære, er den største fordel ved C i forhold til MicroPython, CircuitPython og Arduino niveauet af hastighed, effektivitet, kontrol og portabilitet, det giver. Dette gør C til det bedste sprog til at programmere begge mikrocontrollere til at blive brugt i færdige produkter.
Ydeevne
Bortset fra sin store bærbarhed, er C kendt for sin ydeevne. Det kan køre programmer hurtigere end Arduino, MicroPython og CircuitPython, selv med en mikrocontroller med lavere ressourcer. Dette skyldes, at C er et mere effektivt sprog, der kræver de mindste afhængigheder. Selvom et kompileret Arduino-program, ligesom et C, kan køres på bar-metal hardware, leveres dets maskinkode færdigbagt med biblioteker og værktøjer, der reducerer ydeevnen.
Understøttede bestyrelser
C-sproget er så bærbart, at det kan bruges til at programmere stort set enhver arm-baseret mikrocontroller. Derudover kan den bruges på boards baseret på Atmel AVR, STM32, PIC og MSP mikrocontrollere.
Fællesskab og støtte
På grund af dets robuste programmeringsapplikation og det faktum, at det allerede er flere årtier gammelt, har programmeringssproget C et massivt onlinefællesskab. Du kan nemt finde hjælp gennem forskellige onlinefora, chatrum og blogs dedikeret til at diskutere og dele ideer om C-sproget.
Hvilket sprog skal du programmere med?
Så hvad er det bedste sprog til at programmere mikrocontrollere? Det afhænger virkelig af personen. C-sproget ville være det bedste for fagfolk, der designer elektronik til produktion.
Dem uden kodningserfaring vil måske gerne starte med CircuitPython, da det har funktioner og dokumentation, der gør læring let og sjovt. De, der er fortrolige med Python, vil finde det nemt at programmere mikrocontrollere med MicroPython.
Og for størstedelen af gør-det-selv/maker-samfundet ville Arduino stadig være det bedste sprog at programmere mikrocontrollere, da det tilbyder en enestående balance mellem ydeevne, bærbarhed, funktioner og fællesskab.