Kokią programavimo kalbą turėtumėte naudoti savo mikrovaldiklio projektams? Išnagrinėkime keturis geriausius variantus.

Mikrovaldiklių kūrimo plokštės tapo pagrindine gamintojų bendruomenės dalimi. Šie programuojami įrenginiai yra specialiai sukurti įvesties ir išvesties signalams apdoroti, kad būtų galima valdyti įvairius modulius ir komponentus, tokius kaip jutikliai, varikliai, šviesos diodai ir žmogaus įvesties įrenginiai (HID).

Tačiau prieš tai turėsite išmokti scenarijų kalbą, kurią mikrovaldiklis gali interpretuoti, kad programuotų šiuos įrenginius. Šiandien populiariausios mikrovaldiklių kalbos yra MicroPython, CircuitPython, Arduino (supaprastintas C++) ir C. Kiekviena iš šių kalbų turi savų privalumų ir trūkumų.

MicroPython

MicroPython yra lengvas Python 3 programavimo kalbos įgyvendinimas, sukurtas specialiai mikrovaldikliams. Jį 2013 m. išleido daktaras Damienas George'as, siekdamas greitesnio prototipų kūrimo ir leisti žmonėms, jau susipažinusiems su Python, programuoti mikrovaldiklius panašia kalba.

funkcijos

MicroPython yra puiki scenarijų kalba pradedantiesiems, norintiems programuoti mikrovaldiklius. Naujokams, neturintiems kodavimo patirties, bus lengva skaityti ir suprasti, nes jis naudoja žmogaus skaitomas komandas paprastose struktūrose. Be to, ji naudoja skaitymo-įvertinimo-spausdinimo ciklo (REPL) vykdymo aplinką, leidžiančią interaktyviai koduoti.

Spektaklis

Norint programuoti mikrovaldiklį naudojant MicroPython, į mikrovaldiklį perkeliama programinė įranga, kurioje yra interpretatorius, bibliotekos ir įvairios kitos priklausomybės. Tai leidžia mikrovaldikliui interpretuoti ir lokaliai vykdyti MicroPython kodą, o tai leidžia greitai sukurti prototipą, nes koduojant galima pateikti tiesioginį grįžtamąjį ryšį.

Tačiau dėl kaip procesoriai vykdo kodą, interpretuojamos kalbos, tokios kaip MicroPython, bus žymiai lėtesnės, palyginti su kompiliuotomis kalbomis, tokiomis kaip C++. Taigi, pagal numatytuosius nustatymus, nors prototipų kūrimas gali būti daug greitesnis, pats kodo vykdymas yra lėtesnis.

Suderinamumas

Kadangi „MicroPython“ naudoja vietinius išteklius programoms interpretuoti ir vykdyti, mikrovaldiklis turi turėti mažiausiai 256 kB „flash“ atminties ir 16 kB RAM. Deja, kai kurios populiarios kūrimo plokštės, tokios kaip „Arduino Uno“, neatitinka reikalaujamų specifikacijų. Tačiau vis dar yra daugybė plokščių, suderinamų su „MicroPython“.

Šiuo metu MicroPython oficialiai palaiko Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32 kūrimo plokštės ir kelios Arduino plokštės, tokios kaip Nano 33 BLE, Nano RP2040, Giga R1 ir Portenta H7.

Bendruomenė ir palaikymas

Nuo 2013 m., kai pasirodė, „MicroPython“ sulaukė nemažo sekėjų. Pradedantiesiems turėtų būti lengva išmokti „MicroPython“ su gerai parašyta dokumentacija. Jei jums reikia daugiau pagalbos, „MicroPython“ taip pat turi bendruomenės forumą, kuriame vartotojai dalijasi vadovėliais, idėjomis ir atsako į visas su „MicroPython“ susijusias problemas.

Arduino

„Arduino“ yra populiari atvirojo kodo platforma, pirmiausia skirta elektronikos ir „pasidaryk pats“ entuziastams. Arduino programavimo kalba yra pagrįsta C ir C++ programavimo kalbomis. Arduino kalbą 2005 m. išleido grupė inžinierių, menininkų ir dizainerių iš Italijos.

funkcijos

„Arduino“ programavimo kalba naudoja sumažintą C ir C++ versiją, todėl ją lengva išmokti ir kurti. Kodo vykdymas naudojant „Arduino“ yra žymiai greitesnis nei jo interpretuojamos kalbos atitikmenys dėl jo sudarymo pobūdžio. Be to, „Arduino“ darbui reikia tik nedidelio kiekio sistemos išteklių, todėl jis yra suderinamas su daugeliu kūrimo plokščių ir mikrovaldiklių.

Spektaklis

Skirtingai nuo MicroPython ir CircuitPython, Arduino yra kompiliuota programavimo kalba. Tai reiškia, kad kodas pirmiausia sukompiliuojamas kompiliatoriuje (jau įtrauktas į Arduino IDE), o tada mikrovaldiklis jį paleidžia kaip visą programą.

Tai žymiai pagerina kodo vykdymą, nes mikrovaldikliui nereikia naudoti išteklių, kad interpretuotų kiekvieną kodo eilutę. Be to, sukūrus programą, ji taip pat paverčiama mašininiu kodu, kurį mikrovaldiklis gali vykdyti savaime neįdiegdamas priklausomybių.

Tai žymiai pagerina kodo vykdymo greitį, nes mikrovaldiklis gali tiesiogiai vykdyti programą, neskiriant laiko ir aparatinės įrangos išteklių kodui išversti.

Palaikomos lentos

Kadangi kompiliavimo etapas atliekamas per IDE, mikrovaldikliai gali turėti tik 32 kB „flash“ atminties ir 2 kB RAM, kad veiktų. Be Arduino plokščių, Yra daug Arduino plokštės alternatyvų Galite naudoti programuodami su Arduino. Daugelis šių plokščių naudoja tokius mikrovaldiklius kaip ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 ir STM32.

Bendruomenė ir palaikymas

Būdama atvirojo kodo platforma nuo 2005 m., „Arduino“ turi geriausius turimus dokumentus. Arduino fondas kiekvienais metais aktyviai teikia atnaujinimus, paramą ir naujus įdomius produktus. Pasaulinė bendruomenė taip pat yra viena iš aktyviausių, besidalijančių vadovais ir idėjomis bei atsakančių į visas iškilusias trikčių šalinimo problemas. Su Arduino jums garantuojamas geras palaikymo lygis.

CircuitPython

„CircuitPython“ yra „Adafruit“ „Python 3“ diegimas, pagrįstas „MicroPython“. Nors „CircuitPython“ sukurtas iš „MicroPython“, jis siūlo keletą patobulinimų, kad mikrovaldiklių mokymasis būtų lengvas ir įdomus.

funkcijos

CircuitPython buvo sukurtas siekiant padėti pradedantiesiems išmokti programuoti mikrovaldiklius. Norėdami tai pasiekti, „CircuitPython“ suteikia keletą funkcijų, įskaitant interaktyvų kodavimą aplinka, integruotos bibliotekos, paprasta sintaksė (paprastesnė nei MicroPython) ir puiki dokumentacija ir gidai.

Spektaklis

Kadangi „CircuitPython“ yra pagrįstas „MicroPython“, jis turi daug tų pačių stipriųjų ir silpnųjų pusių. Programos vykdymo laikas bus šiek tiek lėtesnis nei „MicroPython“, nes „CircuitPython“ suteikia daugiau funkcijų ir papildomų bibliotekų. Tačiau skirtumas greičiausiai nepastebimas, nes „CircuitPython“ darbui reikalingi galingesni mikrovaldikliai.

Palaikomos lentos

Naudojant integruotas bibliotekas ir dar paprastesnę sintaksę, mikrovaldiklių kūrimo plokštėms reikia daugiau išteklių, kad galėtų naudoti „CircuitPython“. Mažiausiai mikrovaldiklis turi turėti 8 bitų procesorių, 256 kB „flash“ atmintį (rekomenduojama 512 kB) ir 32 kB RAM (rekomenduojama 64 kB). Šiuo metu „CircuitPython“ palaiko daugiau nei 390 kūrimo plokščių, išvardytų sąraše Oficiali svetainė.

Bendruomenė ir palaikymas

Žinoma, kad Adafruit gamina produktus, kurie yra tinkami pradedantiesiems. Tokiu būdu galite rasti lengvai suprantamą dokumentaciją ir knygas „CircuitPython“. Nors kalba buvo pristatyta tik 2017 m., ji vis dar turi daugiau gerbėjų nei „MicroPython“, kurią galite pasiekti per „Discord“ ir oficialų forumą. Kaip ir Arduino fondas, Adafruit aktyviai teikia atnaujinimus, palaikymą ir naujus produktus, o tai reiškia, kad palaikymą turėtų būti lengva rasti.

C

C yra bendrosios paskirties programavimo kalba, kurią 1970-aisiais sukūrė Dennisas Ritchie iš Bell Labs. Tai yra sudaryta programavimo kalba, kurią inžinieriai ir kiti specialistai dažnai naudojo programuodami didelio efektyvumo mikrovaldiklius.

funkcijos

Nors kalbos išmokti sunkiau, pagrindinis C pranašumas prieš MicroPython, CircuitPython ir Arduino yra greitis, efektyvumas, valdymas ir perkeliamumas. Dėl to C yra geriausia kalba programuoti abu mikrovaldiklius, kurie bus naudojami galutiniuose gaminiuose.

Spektaklis

Be puikaus nešiojamumo, C yra žinomas dėl savo našumo. Jis gali paleisti programas greičiau nei „Arduino“, „MicroPython“ ir „CircuitPython“, net ir naudojant mažesnių išteklių mikrovaldiklį. Taip yra todėl, kad C yra efektyvesnė kalba, kuriai reikia mažiausiai priklausomybių. Nors sukompiliuota Arduino programa, kaip ir C, gali būti paleista naudojant metalinę aparatinę įrangą, jos mašininis kodas yra iš anksto paruoštas su bibliotekomis ir įrankiais, kurie sumažina našumą.

Palaikomos lentos

C kalba yra tokia nešiojama, kad ją galima naudoti beveik bet kokiam „Arm“ pagrindu veikiančiam mikrovaldikliui programuoti. Be to, jis gali būti naudojamas plokštėse, pagrįstose Atmel AVR, STM32, PIC ir MSP mikrovaldikliais.

Bendruomenė ir palaikymas

Dėl savo tvirtos programavimo programos ir jau kelių dešimtmečių senumo C programavimo kalba turi didžiulę internetinę bendruomenę. Galite lengvai rasti pagalbos įvairiuose internetiniuose forumuose, pokalbių kambariuose ir tinklaraščiuose, skirtuose aptarti ir dalytis idėjomis apie C kalbą.

Kokia kalba turėtumėte programuoti?

Taigi, kokia kalba geriausia programuoti mikrovaldiklius? Tai tikrai priklauso nuo žmogaus. C kalba būtų pati geriausia profesionalams, projektuojantiems elektroniką gamybai.

Tie, kurie neturi kodavimo patirties, gali norėti pradėti nuo CircuitPython, nes jame yra funkcijų ir dokumentacijos, dėl kurių mokymasis yra lengvas ir įdomus. Tie, kurie yra susipažinę su Python, galės lengvai programuoti mikrovaldiklius su MicroPython.

Ir daugumai „pasidaryk pats“ / kūrėjų bendruomenės „Arduino“ vis tiek būtų geriausia programavimo kalba mikrovaldiklius, nes siūlo puikų našumo, perkeliamumo, funkcijų ir bendruomenė.