Vilket programmeringsspråk ska du använda för dina mikrokontrollerprojekt? Låt oss utforska de fyra bästa alternativen.

Utvecklingskort för mikrokontroller har blivit en häftklammer bland tillverkarna. Dessa programmerbara enheter är speciellt utformade för att behandla in- och utsignaler som ett sätt att styra olika moduler och komponenter som sensorer, motorer, lysdioder och mänskliga inmatningsenheter (HID).

Men innan dess måste du lära dig ett skriptspråk som mikrokontrollern kan tolka för att programmera dessa enheter. Dagens mest populära mikrokontrollerspråk inkluderar MicroPython, CircuitPython, Arduino (förenklad C++) och C. Vart och ett av dessa språk har sina egna för- och nackdelar.

MicroPython

MicroPython är en lätt implementering av programmeringsspråket Python 3 designat speciellt för mikrokontroller. Den släpptes 2013 av Dr. Damien George för snabbare prototyper och för att göra det möjligt för personer som redan är bekanta med Python att programmera mikrokontroller med ett liknande språk.

instagram viewer

Funktioner

MicroPython är ett utmärkt skriptspråk för nybörjare som vill programmera mikrokontroller. Nybörjare utan kodningserfarenhet kommer att tycka att det är lätt att läsa och förstå eftersom det använder mänskliga läsbara kommandon i enkla strukturer. Dessutom använder den en read-evaluate-print-loop (REPL) runtime-miljö, vilket möjliggör en interaktiv kodningsupplevelse.

Prestanda

För att programmera en mikrokontroller med MicroPython, flashas firmware som innehåller tolken, biblioteken och olika andra beroenden in i mikrokontrollern. Detta gör att MicroPython-kod kan tolkas och exekveras lokalt av mikrokontrollern, vilket möjliggör snabb prototypframställning eftersom livefeedback kan tillhandahållas under kodning.

Dock pga hur processorer exekverar kodtolkade språk som MicroPython kommer att vara betydligt långsammare jämfört med kompilerade språk som C++. Så, som standard, även om prototyper kan vara mycket snabbare, är själva kodexekveringen långsammare.

Kompatibilitet

Eftersom MicroPython använder lokala resurser för att tolka och köra program måste en mikrokontroller ha minst 256 kB flashminne och 16 kB RAM. Tyvärr uppfyller vissa populära utvecklingskort som Arduino Uno inte de krav som krävs. Det finns dock fortfarande gott om kort som är kompatibla med MicroPython.

För närvarande stöder MicroPython officiellt Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32-utvecklingskort och några Arduino-kort som Nano 33 BLE, Nano RP2040, Giga R1 och Portenta H7.

Gemenskap och stöd

Sedan lanseringen 2013 har MicroPython sedan dess fått ett stort antal följare. Nybörjare ska ha lätt för att lära sig MicroPython med dess välskrivna dokumentation. Om du behöver mer hjälp har MicroPython också ett communityforum där användare delar handledning, idéer och svarar på alla typer av problem du kan ha angående MicroPython.

Arduino

Arduino är en populär plattform med öppen källkod som främst riktar sig till elektronik- och gör-det-själv-entusiaster. Arduinos programmeringsspråk är baserat på programmeringsspråken C och C++. Arduino-språket släpptes 2005 av en grupp ingenjörer, konstnärer och designers från Italien.

Funktioner

Programmeringsspråket Arduino använder en avskalad version av både C och C++, vilket gör det enkelt att lära sig och utvecklas med. Kodexekvering med Arduino är betydligt snabbare än dess tolkade språkmotsvarigheter på grund av dess kompilerade karaktär. Dessutom kräver Arduino bara en liten mängd systemresurser för att fungera, vilket gör den kompatibel med många utvecklingskort och mikrokontroller.

Prestanda

Till skillnad från MicroPython och CircuitPython är Arduino ett kompilerat programmeringsspråk. Detta innebär att kod först kompileras på en kompilator (som redan ingår i Arduino IDE) och sedan körs som ett helt program av mikrokontrollern.

Detta förbättrar kodexekveringen avsevärt eftersom mikrokontrollern inte behöver använda resurser för att tolka varje kodrad. Dessutom översätter kompilering av programmet det till maskinkod som mikrokontrollern kan köra utan att installera beroenden.

Detta förbättrar avsevärt kodexekveringshastigheten eftersom mikrokontrollern direkt kan exekvera programmet utan att allokera tid och hårdvaruresurser för att översätta koden.

Styrelser som stöds

Eftersom kompileringssteget görs via IDE, kan mikrokontroller ha så lite som 32 kB flashminne och 2 kB RAM för att fungera. Så bortsett från Arduino-bräden, det finns många Arduino-kortalternativ du kan använda för att programmera med Arduino. Många av dessa kort skulle använda mikrokontroller som ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 och STM32.

Gemenskap och stöd

Eftersom Arduino är en öppen källkodsplattform sedan 2005, har Arduino några av de bästa tillgängliga dokumentationerna. Arduino Foundation tillhandahåller aktivt uppdateringar, support och nya spännande produkter varje år. Den världsomspännande gemenskapen är också en av de mest aktiva när det gäller att dela guider och idéer och svara på eventuella felsökningsproblem du kan stöta på. Med Arduino är du garanterad en bra nivå av support.

CircuitPython

CircuitPython är Adafruits implementering av Python 3, som bygger på MicroPython. Även om de är splittrade från MicroPython, erbjuder CircuitPython flera förbättringar för att göra det enkelt och roligt att lära sig mikrokontroller.

Funktioner

CircuitPython skapades för att hjälpa nybörjare att lära sig hur man programmerar mikrokontroller. För att uppnå detta tillhandahåller CircuitPython flera funktioner, inklusive en interaktiv kodning miljö, inbyggda bibliotek, enkel syntax (enklare än MicroPython) och utmärkt dokumentation och guider.

Prestanda

Eftersom CircuitPython är baserat på MicroPython har det många av samma styrkor och svagheter. Programkörningstiden kommer att vara något långsammare än MicroPython eftersom CircuitPython ger fler funktioner och extra bibliotek. Men skillnaden är troligen omärkbar eftersom CircuitPython kräver mer kapabla mikrokontroller för att fungera.

Styrelser som stöds

Med integrerade bibliotek och ännu enklare syntax behöver utvecklingskort för mikrokontroller mer resurser för att använda CircuitPython. Som ett minimum måste en mikrokontroller ha en 8-bitars processor, 256 kB flashminne (512 kB rekommenderas) och 32 kB RAM (64 kB rekommenderas). För närvarande stöder CircuitPython över 390 utvecklingskort, listade på officiell hemsida.

Gemenskap och stöd

Adafruit är känt för att göra produkter som är nybörjarvänliga. Som sådan kan du hitta lättförståelig dokumentation och böcker på CircuitPython. Även om språket introducerades först 2017, har det fortfarande en större anhängare än MicroPython, som du kan nå genom Discord och det officiella forumet. Liksom Arduino Foundation tillhandahåller Adafruit aktivt uppdateringar, support och nya produkter, vilket innebär att support bör vara lätt att hitta.

C

C är ett allmänt programmeringsspråk utvecklat på 1970-talet av Dennis Ritchie på Bell Labs. Det är ett kompilerat programmeringsspråk som ingenjörer och andra proffs ofta använde för att programmera mikrokontroller med hög effektivitet.

Funktioner

Även om ett språk är svårare att lära sig, är den största fördelen med C framför MicroPython, CircuitPython och Arduino nivån på hastighet, effektivitet, kontroll och portabilitet det ger. Detta gör C till det bästa språket för att programmera båda mikrokontrollerna för att användas i färdiga produkter.

Prestanda

Bortsett från sin stora portabilitet är C känd för sin prestanda. Den kan köra program snabbare än Arduino, MicroPython och CircuitPython, även med en mikrokontroller med lägre resurser. Detta beror på att C är ett mer effektivt språk som kräver minsta möjliga beroenden. Även om ett kompilerat Arduino-program, som ett C-program, kan köras på barmetallhårdvara, kommer dess maskinkod färdigbakad med bibliotek och verktyg som minskar prestandan.

Styrelser som stöds

C-språket är så portabelt att det kan användas för att programmera nästan vilken armbaserad mikrokontroller som helst. Dessutom kan den användas på kort baserade på Atmel AVR, STM32, PIC och MSP mikrokontroller.

Gemenskap och stöd

På grund av sin robusta programmeringsapplikation och det faktum att det redan är flera decennier gammalt, har programmeringsspråket C en enorm onlinegemenskap. Du kan enkelt hitta hjälp genom olika onlineforum, chattrum och bloggar dedikerade till att diskutera och dela idéer om C-språket.

Vilket språk ska du programmera med?

Så, vilket är det bästa språket för att programmera mikrokontroller? Det beror verkligen på personen. C-språket skulle vara det bästa för proffs som designar elektronik för produktion.

De utan kodningserfarenhet kan mycket väl vilja börja med CircuitPython eftersom det har funktioner och dokumentation som gör lärandet enkelt och roligt. De som är bekanta med Python kommer att finna det lätt att programmera mikrokontroller med MicroPython.

Och för majoriteten av gör-det-själv/maker-gemenskapen skulle Arduino fortfarande vara det bästa språket att programmera mikrokontroller, eftersom den erbjuder en enastående balans mellan prestanda, portabilitet, funktioner och gemenskap.