Ce limbaj de programare ar trebui să utilizați pentru proiectele dvs. de microcontroler? Să explorăm cele mai bune patru opțiuni.

Plăcile de dezvoltare pentru microcontrolere au devenit un element de bază în rândul comunității producătorilor. Aceste dispozitive programabile sunt concepute special pentru a procesa semnalele de intrare și de ieșire ca o modalitate de a controla diverse module și componente, cum ar fi senzori, motoare, LED-uri și dispozitive de intrare umană (HID).

Dar înainte de asta, va trebui să înveți un limbaj de scripting pe care microcontrolerul îl poate interpreta pentru a programa aceste dispozitive. Cele mai populare limbaje de microcontroler de astăzi includ MicroPython, CircuitPython, Arduino (C++ simplificat) și C. Fiecare dintre aceste limbi are propriile sale avantaje și dezavantaje.

MicroPython

MicroPython este o implementare ușoară a limbajului de programare Python 3 conceput special pentru microcontrolere. A fost lansat în 2013 de dr. Damien George pentru o prototipare mai rapidă și pentru a permite oamenilor deja familiarizați cu Python să programeze microcontrolere cu un limbaj similar.

Caracteristici

MicroPython este un limbaj de scripting excelent pentru începătorii care doresc să programeze microcontrolere. Începătorilor fără experiență de codare le va fi ușor de citit și de înțeles, deoarece utilizează comenzi care pot fi citite de om în structuri simple. În plus, folosește un mediu de rulare REPL (read-evaluate-print-loop), permițând o experiență interactivă de codare.

Performanţă

Pentru a programa un microcontroler folosind MicroPython, firmware-ul care conține interpretul, bibliotecile și diverse alte dependențe este flash în microcontroler. Acest lucru permite codului MicroPython să fie interpretat și executat local de către microcontroler, permițând prototiparea rapidă, deoarece feedbackul live poate fi furnizat în timpul codificării.

Cu toate acestea, din cauza modul în care procesoarele execută codul, limbajele interpretate precum MicroPython vor fi semnificativ mai lente în comparație cu limbajele compilate precum C++. Deci, implicit, deși prototiparea poate fi mult mai rapidă, execuția codului în sine este mai lentă.

Compatibilitate

Deoarece MicroPython utilizează resurse locale pentru a interpreta și executa programe, un microcontroler trebuie să aibă minimum 256 kB de memorie flash și 16 kB de RAM. Din păcate, unele plăci de dezvoltare populare, cum ar fi Arduino Uno, nu îndeplinesc specificațiile necesare. Cu toate acestea, există încă o mulțime de plăci care sunt compatibile cu MicroPython.

În prezent, MicroPython acceptă oficial Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Plăci de dezvoltare STM32 și câteva plăci Arduino, cum ar fi Nano 33 BLE, Nano RP2040, Giga R1 și Portenta H7.

Comunitate și suport

De la lansarea sa în 2013, MicroPython a strâns de atunci o mulțime de urmăritori. Începătorii ar trebui să învețe ușor MicroPython cu documentația sa bine scrisă. Dacă aveți nevoie de mai mult ajutor, MicroPython are și un forum comunitar în care utilizatorii împărtășesc tutoriale, idei și răspund la tot felul de probleme pe care le puteți avea cu privire la MicroPython.

Arduino

Arduino este o platformă open-source populară, destinată în primul rând pasionaților de electronice și bricolaj. Limbajul de programare Arduino se bazează pe limbajele de programare C și C++. Limbajul Arduino a fost lansat în 2005 de un grup de ingineri, artiști și designeri din Italia.

Caracteristici

Limbajul de programare Arduino folosește o versiune redusă atât a C, cât și a C++, făcându-l ușor de învățat și dezvoltat. Execuția codului folosind Arduino este semnificativ mai rapidă decât omologii săi în limbajul interpretat datorită naturii compilate. În plus, Arduino necesită doar o cantitate mică de resurse de sistem pentru a funcționa, făcându-l compatibil cu multe plăci de dezvoltare și microcontrolere.

Performanţă

Spre deosebire de MicroPython și CircuitPython, Arduino este un limbaj de programare compilat. Aceasta înseamnă că codul este mai întâi compilat pe un compilator (inclus deja în IDE-ul Arduino) și apoi executat ca un întreg program de către microcontroler.

Acest lucru îmbunătățește semnificativ execuția codului, deoarece microcontrolerul nu trebuie să folosească resurse pentru a interpreta fiecare linie de cod. În plus, compilarea programului îl traduce și în cod de mașină pe care microcontrolerul îl poate executa în mod nativ fără a instala dependențe.

Acest lucru îmbunătățește semnificativ viteza de execuție a codului, deoarece microcontrolerul poate executa direct programul fără a aloca timp și resurse hardware pentru traducerea codului.

Placi suportate

Deoarece etapa de compilare se face prin IDE, microcontrolerele pot avea doar 32 kB de memorie flash și 2 kB de RAM pentru a funcționa. Deci, în afară de plăcile Arduino, există multe alternative de plăci Arduino puteți folosi pentru a programa cu Arduino. Multe dintre aceste plăci ar folosi microcontrolere precum ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 și STM32.

Comunitate și suport

Fiind o platformă open-source din 2005, Arduino are una dintre cele mai bune documentații disponibile. Fundația Arduino oferă în mod activ actualizări, asistență și produse noi interesante în fiecare an. Comunitatea din întreaga lume este, de asemenea, una dintre cele mai active în împărtășirea de ghiduri și idei și în răspunderea oricăror probleme de depanare pe care le puteți întâlni. Cu Arduino, vi se garantează un nivel bun de suport.

CircuitPython

CircuitPython este implementarea de către Adafruit a Python 3, construită pe MicroPython. Deși este bifurcat de la MicroPython, CircuitPython oferă câteva îmbunătățiri pentru a face învățarea microcontrolerelor ușoară și distractivă.

Caracteristici

CircuitPython a fost creat pentru a ajuta începătorii să învețe cum să programeze microcontrolere. Pentru a realiza acest lucru, CircuitPython oferă mai multe caracteristici, inclusiv o codificare interactivă mediu, biblioteci încorporate, sintaxă simplă (mai simplă decât MicroPython) și documentare excelentă și ghiduri.

Performanţă

Deoarece CircuitPython se bazează pe MicroPython, are multe dintre aceleași puncte forte și puncte slabe. Timpul de rulare a programului va fi puțin mai lent decât MicroPython, deoarece CircuitPython oferă mai multe funcții și biblioteci suplimentare. Cu toate acestea, diferența este probabil de neobservat, deoarece CircuitPython necesită microcontrolere mai capabile pentru a funcționa.

Placi suportate

Cu biblioteci integrate și o sintaxă chiar mai simplă, plăcile de dezvoltare a microcontrolerelor au nevoie de mai multe resurse pentru a utiliza CircuitPython. Cel puțin, un microcontroler trebuie să aibă un procesor de 8 biți, 256 kB de memorie flash (se recomandă 512 kB) și 32 kB de RAM (se recomandă 64 kB). În prezent, CircuitPython acceptă peste 390 de plăci de dezvoltare, enumerate pe site oficial.

Comunitate și suport

Adafruit este cunoscut pentru a face produse care sunt prietenoase pentru începători. Ca atare, puteți găsi documentație și cărți ușor de înțeles pe CircuitPython. Deși limba a fost introdusă abia în 2017, are totuși un număr mai mare de urmăritori decât MicroPython, la care puteți ajunge prin Discord și forumul oficial. La fel ca Fundația Arduino, Adafruit oferă în mod activ actualizări, asistență și produse noi, ceea ce înseamnă că asistența ar trebui să fie ușor de găsit.

C

C este un limbaj de programare de uz general dezvoltat în anii 1970 de Dennis Ritchie la Bell Labs. Este un limbaj de programare compilat pe care inginerii și alți profesioniști îl foloseau adesea pentru a programa microcontrolere cu niveluri ridicate de eficiență.

Caracteristici

Deși este un limbaj mai greu de învățat, principalul avantaj al C față de MicroPython, CircuitPython și Arduino este nivelul de viteză, eficiență, control și portabilitate pe care îl oferă. Acest lucru face ca C să fie cel mai bun limbaj pentru a programa ambele microcontrolere pentru a fi utilizate în produsele finite.

Performanţă

Pe lângă portabilitatea sa excelentă, C este cunoscut pentru performanța sa. Poate rula programe mai rapid decât Arduino, MicroPython și CircuitPython, chiar și cu un microcontroler cu resurse mai mici. Acest lucru se datorează faptului că C este un limbaj mai eficient, care necesită cele mai puține dependențe. Deși un program Arduino compilat poate fi rulat, la fel ca unul C, pe hardware bare-metal, codul său de mașină vine pre-coapt cu biblioteci și instrumente care reduc performanța.

Placi suportate

Limbajul C este atât de portabil încât poate fi folosit pentru a programa aproape orice microcontroler bazat pe Arm. În plus, poate fi folosit pe plăci bazate pe microcontrolere Atmel AVR, STM32, PIC și MSP.

Comunitate și suport

Datorită aplicației sale de programare robuste și a faptului că are deja câteva decenii vechime, limbajul de programare C are o comunitate online masivă. Puteți găsi cu ușurință ajutor prin diverse forumuri online, camere de chat și bloguri dedicate discutării și împărtășirii ideilor despre limbajul C.

Cu ce ​​limbă ar trebui să programați?

Deci, care este cel mai bun limbaj pentru programarea microcontrolerelor? Chiar depinde de persoană. Limbajul C ar fi cel mai bun pentru profesioniștii care proiectează electronice pentru producție.

Cei care nu au experiență de codare ar putea dori să înceapă cu CircuitPython, deoarece are caracteristici și documentație care fac învățarea ușoară și distractivă. Cei familiarizați cu Python le va fi ușor să programeze microcontrolere cu MicroPython.

Și pentru majoritatea comunității DIY/maker, Arduino ar fi în continuare cel mai bun limbaj de programat microcontrolere, deoarece oferă un echilibru remarcabil între performanță, portabilitate, caracteristici și comunitate.