Hvilket programmeringsspråk bør du bruke for mikrokontrollerprosjektene dine? La oss utforske de fire beste alternativene.

Utviklingstavler for mikrokontroller har blitt en stift blant produsentfellesskapet. Disse programmerbare enhetene er spesielt utviklet for å behandle inngangs- og utgangssignaler som en måte å kontrollere ulike moduler og komponenter som sensorer, motorer, lysdioder og human input devices (HIDs).

Men før det må du lære et skriptspråk som mikrokontrolleren kan tolke for å programmere disse enhetene. Dagens mest populære mikrokontrollerspråk inkluderer MicroPython, CircuitPython, Arduino (forenklet C++) og C. Hvert av disse språkene har sine egne fordeler og ulemper.

MicroPython

MicroPython er en lett implementering av programmeringsspråket Python 3 designet spesielt for mikrokontrollere. Den ble utgitt i 2013 av Dr. Damien George for raskere prototyping og for å la folk som allerede er kjent med Python programmere mikrokontrollere med et lignende språk.

Egenskaper

MicroPython er et utmerket skriptspråk for nybegynnere som ønsker å programmere mikrokontrollere. Nybegynnere uten erfaring med koding vil finne det lett å lese og forstå fordi det bruker menneskelesbare kommandoer i enkle strukturer. Videre bruker den et read-evaluate-print-loop (REPL) kjøretidsmiljø, som tillater en interaktiv kodingsopplevelse.

Opptreden

For å programmere en mikrokontroller ved hjelp av MicroPython, flashes fastvare som inneholder tolken, bibliotekene og diverse andre avhengigheter inn i mikrokontrolleren. Dette gjør at MicroPython-kode kan tolkes og utføres lokalt av mikrokontrolleren, noe som muliggjør rask prototyping da live-tilbakemelding kan gis under koding.

Men pga hvordan prosessorer kjører kode, vil tolkede språk som MicroPython være betydelig tregere sammenlignet med kompilerte språk som C++. Så, som standard, selv om prototyping kan være mye raskere, er selve kodekjøringen tregere.

Kompatibilitet

Siden MicroPython bruker lokale ressurser til å tolke og kjøre programmer, må en mikrokontroller ha minimum 256 kB flashminne og 16 kB RAM. Noen populære utviklingskort som Arduino Uno oppfyller dessverre ikke spesifikasjonene som kreves. Imidlertid er det fortsatt mange brett som er kompatible med MicroPython.

For øyeblikket støtter MicroPython offisielt Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 utviklingskort, og noen få Arduino-kort som Nano 33 BLE, Nano RP2040, Giga R1 og Portenta H7.

Fellesskap og støtte

Siden lanseringen i 2013 har MicroPython siden fått en betydelig tilhengerskare. Nybegynnere skal ha lett for å lære MicroPython med sin velskrevne dokumentasjon. Hvis du trenger mer hjelp, har MicroPython også et fellesskapsforum der brukere deler veiledninger, ideer og svarer på alle slags problemer du måtte ha angående MicroPython.

Arduino

Arduino er en populær åpen kildekode-plattform som primært er rettet mot elektronikk- og gjør-det-selv-entusiaster. Arduino-programmeringsspråket er basert på programmeringsspråkene C og C++. Arduino-språket ble utgitt i 2005 av en gruppe ingeniører, kunstnere og designere fra Italia.

Egenskaper

Arduino-programmeringsspråket bruker en nedstrippet versjon av både C og C++, noe som gjør det enkelt å lære og utvikle seg med. Kodekjøring ved bruk av Arduino er betydelig raskere enn sine tolkede språkmotparter på grunn av dens kompilerte natur. Videre krever Arduino bare en liten mengde systemressurser for å fungere, noe som gjør den kompatibel med mange utviklingskort og mikrokontrollere.

Opptreden

I motsetning til MicroPython og CircuitPython, er Arduino et kompilert programmeringsspråk. Dette betyr at koden først kompileres på en kompilator (allerede inkludert i Arduino IDE) og deretter kjøres som et helt program av mikrokontrolleren.

Dette forbedrer kodeutførelsen betydelig ettersom mikrokontrolleren ikke trenger å bruke ressurser for å tolke hver kodelinje. I tillegg oversetter kompilering av programmet det til maskinkode som mikrokontrolleren kan kjøre naturlig uten å installere avhengigheter.

Dette forbedrer kodeutførelseshastigheten betydelig fordi mikrokontrolleren kan kjøre programmet direkte uten å tildele tid og maskinvareressurser til å oversette koden.

Støttede brett

Siden kompileringsfasen gjøres gjennom IDE, kan mikrokontrollere ha så lite som 32 kB flash-minne og 2 kB RAM for å fungere. Så bortsett fra Arduino-brett, det er mange Arduino-brettalternativer du kan bruke til å programmere med Arduino. Mange av disse kortene vil bruke mikrokontrollere som ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 og STM32.

Fellesskap og støtte

Arduino har vært en åpen kildekode-plattform siden 2005, og har noe av den beste dokumentasjonen som er tilgjengelig. Arduino Foundation gir aktivt oppdateringer, støtte og nye spennende produkter hvert år. Det verdensomspennende fellesskapet er også en av de mest aktive når det gjelder å dele guider og ideer og svare på eventuelle feilsøkingsproblemer du kan støte på. Med Arduino er du garantert et godt nivå av støtte.

CircuitPython

CircuitPython er Adafruits implementering av Python 3, bygget på toppen av MicroPython. Selv om det er gitt fra MicroPython, tilbyr CircuitPython flere forbedringer for å gjøre læring av mikrokontrollere enkelt og morsomt.

Egenskaper

CircuitPython ble opprettet for å hjelpe nybegynnere med å lære å programmere mikrokontrollere. For å oppnå dette tilbyr CircuitPython flere funksjoner, inkludert en interaktiv koding miljø, innebygde biblioteker, enkel syntaks (enklere enn MicroPython), og utmerket dokumentasjon og guider.

Opptreden

Siden CircuitPython er basert på MicroPython, har den mange av de samme styrkene og svakhetene. Programkjøringstiden vil være litt tregere enn MicroPython siden CircuitPython gir flere funksjoner og ekstra biblioteker. Imidlertid er forskjellen sannsynligvis umerkelig siden CircuitPython krever mer kapable mikrokontrollere for å fungere.

Støttede brett

Med integrerte biblioteker og enda enklere syntaks trenger mikrokontrollerutviklingskort flere ressurser for å bruke CircuitPython. Som et minimum må en mikrokontroller ha en 8-bits prosessor, 256 kB flashminne (512 kB anbefales) og 32 kB RAM (64 kB anbefales). For øyeblikket støtter CircuitPython over 390 utviklingskort, oppført på offesiell nettside.

Fellesskap og støtte

Adafruit er kjent for å lage produkter som er nybegynnervennlige. Som sådan kan du finne lettfattelig dokumentasjon og bøker på CircuitPython. Selv om språket først ble introdusert i 2017, har det fortsatt en større tilhengerskare enn MicroPython, som du kan nå gjennom Discord og det offisielle forumet. I likhet med Arduino Foundation, tilbyr Adafruit aktivt oppdateringer, støtte og nye produkter, noe som betyr at støtte skal være lett å finne.

C

C er et programmeringsspråk for generell bruk utviklet på 1970-tallet av Dennis Ritchie ved Bell Labs. Det er et kompilert programmeringsspråk som ingeniører og andre fagfolk ofte brukte til å programmere mikrokontrollere med høy effektivitet.

Egenskaper

Selv om et språk er vanskeligere å lære, er hovedfordelen med C fremfor MicroPython, CircuitPython og Arduino nivået av hastighet, effektivitet, kontroll og portabilitet det gir. Dette gjør C til det beste språket for å programmere begge mikrokontrollerne til å brukes i ferdige produkter.

Opptreden

Bortsett fra sin store portabilitet, er C kjent for ytelsen. Den kan kjøre programmer raskere enn Arduino, MicroPython og CircuitPython, selv med en mikrokontroller med lavere ressurser. Dette er fordi C er et mer effektivt språk, som krever minst mulig avhengighet. Selv om et kompilert Arduino-program, som et C-program, kan kjøres på barmetall-maskinvare, leveres maskinkoden forhåndsbakt med biblioteker og verktøy som reduserer ytelsen.

Støttede brett

C-språket er så bærbart at det kan brukes til å programmere omtrent hvilken som helst Arm-basert mikrokontroller. I tillegg kan den brukes på kort basert på Atmel AVR, STM32, PIC og MSP mikrokontrollere.

Fellesskap og støtte

På grunn av sin robuste programmeringsapplikasjon og det faktum at den allerede er flere tiår gammel, har C-programmeringsspråket et enormt nettsamfunn. Du kan enkelt finne hjelp gjennom ulike nettfora, chatterom og blogger dedikert til å diskutere og dele ideer om C-språket.

Hvilket språk bør du programmere med?

Så, hva er det beste språket for å programmere mikrokontrollere? Det kommer virkelig an på personen. C-språket ville være det beste for fagfolk som designer elektronikk for produksjon.

De som ikke har erfaring med koding vil kanskje begynne med CircuitPython siden den har funksjoner og dokumentasjon som gjør læring enkelt og morsomt. De som er kjent med Python vil finne det enkelt å programmere mikrokontrollere med MicroPython.

Og for flertallet av gjør-det-selv/maker-samfunnet vil Arduino fortsatt være det beste språket å programmere mikrokontrollere, siden den tilbyr en enestående balanse mellom ytelse, portabilitet, funksjoner og samfunnet.