Кой език за програмиране трябва да използвате за вашите проекти за микроконтролери? Нека разгледаме четирите най-добри варианта.

Платките за разработка на микроконтролери се превърнаха в основна част от общността на производителите. Тези програмируеми устройства са специално проектирани да обработват входни и изходни сигнали като начин за управление на различни модули и компоненти като сензори, двигатели, светодиоди и човешки входни устройства (HID).

Но преди това ще трябва да научите скриптов език, който микроконтролерът може да интерпретира, за да програмира тези устройства. Днешните най-популярни езици за микроконтролери включват MicroPython, CircuitPython, Arduino (опростен C++) и C. Всеки от тези езици има своите плюсове и минуси.

MicroPython

MicroPython е лека реализация на езика за програмиране Python 3, създаден специално за микроконтролери. Пуснат е през 2013 г. от д-р Деймиън Джордж за по-бързо създаване на прототипи и за да позволи на хора, които вече са запознати с Python, да програмират микроконтролери с подобен език.

instagram viewer

Характеристика

MicroPython е отличен скриптов език за начинаещи, които искат да програмират микроконтролери. Начинаещите без опит в кодирането ще го намерят лесно за четене и разбиране, защото използва четими от човека команди в прости структури. Освен това, той използва среда за изпълнение на цикъл за четене-оценка-печат (REPL), което позволява интерактивно изживяване при кодиране.

производителност

За да програмирате микроконтролер с помощта на MicroPython, фърмуерът, съдържащ интерпретатора, библиотеките и различни други зависимости, се флашва в микроконтролера. Това позволява кодът на MicroPython да се интерпретира и изпълнява локално от микроконтролера, позволявайки бързо създаване на прототипи, тъй като може да се осигури обратна връзка на живо по време на кодиране.

Въпреки това, поради как процесорите изпълняват код, интерпретираните езици като MicroPython ще бъдат значително по-бавни в сравнение с компилираните езици като C++. Така че, по подразбиране, въпреки че прототипирането може да бъде много по-бързо, самото изпълнение на кода е по-бавно.

Съвместимост

Тъй като MicroPython използва локални ресурси за интерпретиране и изпълнение на програми, микроконтролерът трябва да има минимум 256kB флаш памет и 16kB RAM. За съжаление някои популярни платки за разработка като Arduino Uno не отговарят на изискваните спецификации. Въпреки това все още има много дъски, които са съвместими с MicroPython.

В момента MicroPython официално поддържа Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Платки за разработка STM32 и няколко платки Arduino като Nano 33 BLE, Nano RP2040, Giga R1 и Portenta H7.

Общност и поддръжка

От стартирането си през 2013 г. MicroPython събра значителни последователи. Начинаещите трябва лесно да научат MicroPython с неговата добре написана документация. Ако имате нужда от повече помощ, MicroPython също има форум на общността, където потребителите споделят уроци, идеи и отговарят на всякакви проблеми, които може да имате по отношение на MicroPython.

Ардуино

Arduino е популярна платформа с отворен код, насочена предимно към електрониката и ентусиастите „направи си сам“. Езикът за програмиране Arduino е базиран на езиците за програмиране C и C++. Езикът Arduino беше пуснат през 2005 г. от група инженери, художници и дизайнери от Италия.

Характеристика

Езикът за програмиране Arduino използва съкратена версия както на C, така и на C++, което го прави лесен за изучаване и разработване. Изпълнението на код с помощта на Arduino е значително по-бързо от аналоговете на интерпретирания език поради компилираното му естество. Освен това Arduino изисква само малко количество системни ресурси, за да работи, което го прави съвместим с много платки за разработка и микроконтролери.

производителност

За разлика от MicroPython и CircuitPython, Arduino е компилиран език за програмиране. Това означава, че кодът първо се компилира на компилатор (вече включен в Arduino IDE) и след това се изпълнява като цялостна програма от микроконтролера.

Това значително подобрява изпълнението на кода, тъй като микроконтролерът не трябва да използва ресурси, за да интерпретира всеки кодов ред. В допълнение, компилирането на програмата също я превежда в машинен код, който микроконтролерът може да изпълни естествено без инсталиране на зависимости.

Това значително подобрява скоростта на изпълнение на кода, тъй като микроконтролерът може директно да изпълни програмата, без да отделя време и хардуерни ресурси за превод на кода.

Поддържани табла

Тъй като етапът на компилиране се извършва чрез IDE, микроконтролерите могат да имат само 32kB флаш памет и 2kB RAM за работа. Така че освен платките Arduino, има много алтернативи на дъска Arduino можете да използвате за програмиране с Arduino. Много от тези платки биха използвали микроконтролери като ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 и STM32.

Общност и поддръжка

Тъй като е платформа с отворен код от 2005 г., Arduino разполага с едни от най-добрите налични документи. Фондацията Arduino активно предоставя актуализации, поддръжка и нови вълнуващи продукти всяка година. Световната общност също е една от най-активните в споделянето на ръководства и идеи и отговарянето на всякакви проблеми при отстраняване на проблеми, които може да срещнете. С Arduino ви е гарантирано добро ниво на поддръжка.

CircuitPython

CircuitPython е реализация на Python 3 от Adafruit, надграждаща върху MicroPython. Въпреки че е разклонен от MicroPython, CircuitPython предлага няколко подобрения, за да направи ученето на микроконтролери лесно и забавно.

Характеристика

CircuitPython е създаден, за да помогне на начинаещите да научат как да програмират микроконтролери. За да постигне това, CircuitPython предоставя няколко функции, включително интерактивно кодиране среда, вградени библиотеки, прост синтаксис (по-прост от MicroPython) и отлична документация и водачи.

производителност

Тъй като CircuitPython е базиран на MicroPython, той има много от същите силни и слаби страни. Времето за изпълнение на програмата ще бъде малко по-бавно от MicroPython, тъй като CircuitPython предоставя повече функции и допълнителни библиотеки. Разликата обаче вероятно е незабележима, тъй като CircuitPython изисква по-способни микроконтролери за работа.

Поддържани табла

С интегрирани библиотеки и дори по-прост синтаксис, платките за разработка на микроконтролери се нуждаят от повече ресурси, за да използват CircuitPython. Най-малко микроконтролерът трябва да има 8-битов процесор, 256kB флаш памет (512kB препоръчително) и 32kB RAM (64kB препоръчително). В момента CircuitPython поддържа над 390 платки за разработка, изброени в официален сайт.

Общност и поддръжка

Известно е, че Adafruit произвежда продукти, които са удобни за начинаещи. Като такъв можете да намерите лесна за разбиране документация и книги за CircuitPython. Въпреки че езикът беше представен едва през 2017 г., той все още има повече последователи от MicroPython, до който можете да достигнете чрез Discord и официалния форум. Подобно на Arduino Foundation, Adafruit активно предоставя актуализации, поддръжка и нови продукти, което означава, че поддръжката трябва да бъде лесна за намиране.

° С

C е език за програмиране с общо предназначение, разработен през 1970 г. от Денис Ричи в Bell Labs. Това е компилиран език за програмиране, който инженерите и други професионалисти често използват за програмиране на микроконтролери с високи нива на ефективност.

Характеристика

Въпреки че е по-труден за научаване език, основното предимство на C пред MicroPython, CircuitPython и Arduino е нивото на скорост, ефективност, контрол и преносимост, които предоставя. Това прави C най-добрият език за програмиране на двата микроконтролера, които да се използват в готови продукти.

производителност

Освен страхотната си преносимост, C е известен със своята производителност. Може да изпълнява програми по-бързо от Arduino, MicroPython и CircuitPython, дори и с микроконтролер с по-нисък ресурс. Това е така, защото C е по-ефективен език, изискващ най-малко зависимости. Въпреки че компилираната програма на Arduino може, подобно на C, да се изпълнява на чист метален хардуер, нейният машинен код идва предварително снабден с библиотеки и инструменти, които намаляват производителността.

Поддържани табла

Езикът C е толкова преносим, ​​че може да се използва за програмиране на почти всеки базиран на Arm микроконтролер. Освен това може да се използва на платки, базирани на микроконтролерите Atmel AVR, STM32, PIC и MSP.

Общност и поддръжка

Поради стабилното си приложение за програмиране и факта, че вече е на няколко десетилетия, езикът за програмиране C има огромна онлайн общност. Можете лесно да намерите помощ чрез различни онлайн форуми, чат стаи и блогове, посветени на обсъждане и споделяне на идеи за езика C.

На какъв език трябва да програмирате?

И така, кой е най-добрият език за програмиране на микроконтролери? Наистина зависи от човека. Езикът C би бил най-добрият за професионалисти, проектиращи електроника за производство.

Тези, които нямат опит в кодирането, може да искат да започнат с CircuitPython, тъй като той има функции и документация, които правят ученето лесно и забавно. Запознатите с Python ще открият, че е лесно да програмират микроконтролери с MicroPython.

И за по-голямата част от общността на DIY/maker Arduino все още ще бъде най-добрият език за програмиране микроконтролери, тъй като предлага изключителен баланс на производителност, преносимост, функции и общност.