Kuru programmēšanas valodu vajadzētu izmantot saviem mikrokontrolleru projektiem? Izpētīsim četras labākās iespējas.

Mikrokontrolleru izstrādes plates ir kļuvušas par galveno ražotāju kopienas sastāvdaļu. Šīs programmējamās ierīces ir īpaši izstrādātas, lai apstrādātu ievades un izejas signālus, lai kontrolētu dažādus moduļus un komponentus, piemēram, sensorus, motorus, gaismas diodes un cilvēka ievades ierīces (HID).

Bet pirms tam jums būs jāapgūst skriptu valoda, kuru mikrokontrolleris var interpretēt, lai programmētu šīs ierīces. Mūsdienu populārākās mikrokontrolleru valodas ir MicroPython, CircuitPython, Arduino (vienkāršotā C++) un C. Katrai no šīm valodām ir savi plusi un mīnusi.

MicroPython

MicroPython ir viegla Python 3 programmēšanas valodas ieviešana, kas īpaši izstrādāta mikrokontrolleriem. To 2013. gadā izlaida doktors Demjens Džordžs, lai ātrāk izstrādātu prototipus un ļautu cilvēkiem, kas jau pārzina Python, programmēt mikrokontrollerus ar līdzīgu valodu.

Iespējas

MicroPython ir lieliska skriptu valoda iesācējiem, kuri vēlas programmēt mikrokontrollerus. Iesācējiem bez kodēšanas pieredzes būs viegli lasīt un saprast, jo tas izmanto cilvēkiem lasāmas komandas vienkāršās struktūrās. Turklāt tas izmanto lasīšanas-novērtēšanas-drukāšanas cilpas (REPL) izpildlaika vidi, kas nodrošina interaktīvu kodēšanas pieredzi.

instagram viewer

Performance

Lai programmētu mikrokontrolleri, izmantojot MicroPython, mikrokontrollerī tiek ievietota programmaparatūra, kas satur tulku, bibliotēkas un dažādas citas atkarības. Tas ļauj mikrokontrollerim lokāli interpretēt un izpildīt MicroPython kodu, ļaujot ātri izveidot prototipu, jo kodēšanas laikā var nodrošināt reāllaika atgriezenisko saiti.

Tomēr sakarā ar kā procesori izpilda kodu, tulkotās valodas, piemēram, MicroPython, būs ievērojami lēnākas, salīdzinot ar kompilētām valodām, piemēram, C++. Tātad pēc noklusējuma, lai gan prototipēšana var būt daudz ātrāka, pati koda izpilde ir lēnāka.

Saderība

Tā kā MicroPython izmanto vietējos resursus, lai interpretētu un izpildītu programmas, mikrokontrolleram ir jābūt vismaz 256 kB zibatmiņas un 16 kB RAM. Diemžēl dažas populāras izstrādes plates, piemēram, Arduino Uno, neatbilst nepieciešamajām specifikācijām. Tomēr joprojām ir daudz dēļu, kas ir saderīgi ar MicroPython.

Pašlaik MicroPython oficiāli atbalsta Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 izstrādes plates un dažas Arduino plates, piemēram, Nano 33 BLE, Nano RP2040, Giga R1 un Portenta H7.

Kopiena un atbalsts

Kopš tā palaišanas 2013. gadā, MicroPython ir ieguvis ievērojamu sekotāju skaitu. Iesācējiem vajadzētu viegli apgūt MicroPython ar tā labi uzrakstīto dokumentāciju. Ja jums nepieciešama papildu palīdzība, MicroPython ir arī kopienas forums, kurā lietotāji dalās pamācībās, idejās un atbild uz visu veidu problēmām, kas jums var rasties saistībā ar MicroPython.

Arduino

Arduino ir populāra atvērtā pirmkoda platforma, kas galvenokārt paredzēta elektronikas un DIY entuziastiem. Arduino programmēšanas valoda ir balstīta uz C un C++ programmēšanas valodām. Arduino valodu 2005. gadā izlaida inženieru, mākslinieku un dizaineru grupa no Itālijas.

Iespējas

Arduino programmēšanas valoda izmanto gan C, gan C++ samazinātu versiju, padarot to viegli apgūstamu un attīstāmu. Koda izpilde, izmantojot Arduino, ir ievērojami ātrāka nekā tā tulkotās valodas ekvivalenti, jo tā ir apkopota. Turklāt Arduino darbībai ir nepieciešams tikai neliels sistēmas resursu daudzums, padarot to saderīgu ar daudzām izstrādes platēm un mikrokontrolleriem.

Performance

Atšķirībā no MicroPython un CircuitPython, Arduino ir apkopota programmēšanas valoda. Tas nozīmē, ka kods vispirms tiek apkopots kompilatorā (jau iekļauts Arduino IDE), un pēc tam mikrokontrolleris to izpilda kā visu programmu.

Tas ievērojami uzlabo koda izpildi, jo mikrokontrolleram nav jāizmanto resursi, lai interpretētu katru koda rindiņu. Turklāt programmas kompilēšana arī pārvērš to mašīnkodā, kuru mikrokontrolleris var izpildīt sākotnēji, neinstalējot atkarības.

Tas ievērojami uzlabo koda izpildes ātrumu, jo mikrokontrolleris var tieši izpildīt programmu, nepiešķirot laiku un aparatūras resursus koda tulkošanai.

Atbalstītie dēļi

Tā kā kompilēšanas posms tiek veikts, izmantojot IDE, mikrokontrolleriem var būt tikai 32 kB zibatmiņas un 2 kB RAM. Tātad, izņemot Arduino dēļus, ir daudz Arduino dēļu alternatīvu varat izmantot, lai programmētu ar Arduino. Daudzas no šīm platēm izmantotu tādus mikrokontrollerus kā ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 un STM32.

Kopiena un atbalsts

Tā kā Arduino ir atvērtā pirmkoda platforma kopš 2005. gada, tam ir viena no labākajām pieejamajām dokumentācijām. Arduino fonds katru gadu aktīvi nodrošina atjauninājumus, atbalstu un jaunus aizraujošus produktus. Vispasaules kopiena ir arī viena no aktīvākajām ceļvežu un ideju koplietošanā un atbildē uz visām iespējamām problēmu novēršanas problēmām. Izmantojot Arduino, jums tiek garantēts labs atbalsta līmenis.

CircuitPython

CircuitPython ir Adafruit Python 3 ieviešana, kas balstās uz MicroPython. Lai gan CircuitPython ir atdalīts no MicroPython, tas piedāvā vairākus uzlabojumus, lai padarītu mikrokontrolleru apguvi vieglu un jautru.

Iespējas

CircuitPython tika izveidots, lai palīdzētu iesācējiem iemācīties programmēt mikrokontrollerus. Lai to panāktu, CircuitPython nodrošina vairākas funkcijas, tostarp interaktīvu kodēšanu vide, iebūvētas bibliotēkas, vienkārša sintakse (vienkāršāka nekā MicroPython) un lieliska dokumentācija un ceļveži.

Performance

Tā kā CircuitPython pamatā ir MicroPython, tam ir daudzas tādas pašas stiprās un vājās puses. Programmas izpildes laiks būs nedaudz lēnāks nekā MicroPython, jo CircuitPython nodrošina vairāk funkciju un papildu bibliotēku. Tomēr atšķirība, visticamāk, nav pamanāma, jo CircuitPython darbam ir nepieciešami spējīgāki mikrokontrolleri.

Atbalstītie dēļi

Izmantojot integrētās bibliotēkas un vēl vienkāršāku sintaksi, mikrokontrolleru izstrādes platēm ir nepieciešams vairāk resursu, lai izmantotu CircuitPython. Mikrokontrolleram ir jābūt vismaz 8 bitu procesoram, 256 kB zibatmiņai (ieteicams 512 kB) un 32 kB RAM (ieteicams 64 kB). Pašlaik CircuitPython atbalsta vairāk nekā 390 izstrādes paneļus, kas ir uzskaitīti oficiālā mājas lapa.

Kopiena un atbalsts

Ir zināms, ka Adafruit ražo produktus, kas ir piemēroti iesācējiem. Tādējādi vietnē CircuitPython varat atrast viegli saprotamu dokumentāciju un grāmatas. Lai gan valoda tika ieviesta tikai 2017. gadā, tai joprojām ir vairāk sekotāju nekā MicroPython, kuru varat sasniegt, izmantojot Discord un oficiālo forumu. Tāpat kā Arduino fonds, Adafruit aktīvi nodrošina atjauninājumus, atbalstu un jaunus produktus, kas nozīmē, ka atbalstam jābūt viegli atrodamam.

C

C ir vispārējas nozīmes programmēšanas valoda, ko 1970. gados izstrādāja Deniss Ričijs uzņēmumā Bell Labs. Tā ir apkopota programmēšanas valoda, ko inženieri un citi profesionāļi bieži izmantoja, lai programmētu mikrokontrollerus ar augstu efektivitātes līmeni.

Iespējas

Lai gan valodu ir grūtāk apgūt, C galvenā priekšrocība salīdzinājumā ar MicroPython, CircuitPython un Arduino ir tā nodrošinātais ātrums, efektivitāte, vadība un pārnesamība. Tas padara C par labāko valodu abu mikrokontrolleru programmēšanai lietošanai gatavajos produktos.

Performance

Papildus lieliskajai pārnesamībai C ir pazīstama ar savu veiktspēju. Tas var palaist programmas ātrāk nekā Arduino, MicroPython un CircuitPython, pat ar mazāku resursu mikrokontrolleri. Tas ir tāpēc, ka C ir efektīvāka valoda, kurai nepieciešama vismazākā atkarība. Lai gan kompilētu Arduino programmu, tāpat kā C programmu, var palaist uz tukša metāla aparatūras, tās mašīnkodā ir iepriekš sagatavotas bibliotēkas un rīki, kas samazina veiktspēju.

Atbalstītie dēļi

C valoda ir tik pārnēsājama, ka to var izmantot gandrīz jebkura uz Arm balstīta mikrokontrolleri programmēšanai. Turklāt to var izmantot plates, kuru pamatā ir Atmel AVR, STM32, PIC un MSP mikrokontrolleri.

Kopiena un atbalsts

Pateicoties spēcīgajai programmēšanas lietojumprogrammai un tam, ka tā ir jau vairākus gadu desmitus veca, C programmēšanas valodai ir milzīga tiešsaistes kopiena. Varat viegli atrast palīdzību dažādos tiešsaistes forumos, tērzētavās un emuāros, kas veltīti diskusijām un ideju apmaiņai par C valodu.

Ar kādu valodu jums vajadzētu programmēt?

Tātad, kāda ir labākā valoda mikrokontrolleru programmēšanai? Tas tiešām ir atkarīgs no cilvēka. C valoda būtu vislabākā profesionāļiem, kas projektē elektroniku ražošanai.

Tie, kuriem nav kodēšanas pieredzes, varētu vēlēties sākt ar CircuitPython, jo tam ir funkcijas un dokumentācija, kas padara mācīšanos vieglu un jautru. Tiem, kas pārzina Python, būs viegli programmēt mikrokontrollerus ar MicroPython.

Un lielākajai daļai DIY/veidotāju kopienas Arduino joprojām būtu labākā programmēšanas valoda mikrokontrolleri, jo tas piedāvā izcilu veiktspējas, pārnesamības, funkciju un kopienai.