Какой язык программирования следует использовать для ваших проектов микроконтроллеров? Давайте рассмотрим четыре лучших варианта.
Платы для разработки микроконтроллеров стали основным продуктом в сообществе производителей. Эти программируемые устройства специально разработаны для обработки входных и выходных сигналов в качестве способа управления различными модулями и компонентами, такими как датчики, двигатели, светодиоды и устройства человеческого ввода (HID).
Но перед этим вам нужно выучить язык сценариев, который микроконтроллер может интерпретировать для программирования этих устройств. Сегодня самые популярные языки микроконтроллеров включают MicroPython, CircuitPython, Arduino (упрощенный C++) и C. У каждого из этих языков есть свои плюсы и минусы.
МикроПитон
MicroPython — это облегченная реализация языка программирования Python 3, разработанная специально для микроконтроллеров. Он был выпущен в 2013 году доктором Дэмиеном Джорджем для более быстрого прототипирования и для того, чтобы люди, уже знакомые с Python, могли программировать микроконтроллеры на аналогичном языке.
Функции
MicroPython — отличный язык сценариев для начинающих, желающих программировать микроконтроллеры. Новичкам, не имеющим опыта программирования, будет легко читать и понимать его, поскольку он использует понятные для человека команды в простых структурах. Кроме того, он использует среду выполнения цикла чтения-оценки-печати-цикла (REPL), что обеспечивает интерактивный опыт кодирования.
Производительность
Для программирования микроконтроллера с помощью MicroPython в микроконтроллер прошивается прошивка, содержащая интерпретатор, библиотеки и различные другие зависимости. Это позволяет микроконтроллеру интерпретировать и выполнять код MicroPython локально, что позволяет быстро создавать прототипы, поскольку во время кодирования может быть обеспечена обратная связь в реальном времени.
Однако из-за как процессоры выполняют код, интерпретируемые языки, такие как MicroPython, будут значительно медленнее по сравнению с компилируемыми языками, такими как C++. Таким образом, по умолчанию, хотя прототипирование может быть намного быстрее, само выполнение кода происходит медленнее.
Совместимость
Поскольку MicroPython использует локальные ресурсы для интерпретации и выполнения программ, микроконтроллер должен иметь не менее 256 КБ флэш-памяти и 16 КБ ОЗУ. К сожалению, некоторые популярные платы для разработки, такие как Arduino Uno, не соответствуют требуемым спецификациям. Однако до сих пор существует множество плат, совместимых с MicroPython.
В настоящее время MicroPython официально поддерживает Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Платы для разработки STM32 и несколько плат Arduino, таких как Nano 33 BLE, Nano RP2040, Giga R1 и Portenta. Н7.
Сообщество и поддержка
С момента своего запуска в 2013 году MicroPython приобрел множество поклонников. Начинающим должно быть легко изучить MicroPython благодаря хорошо написанной документации. Если вам нужна дополнительная помощь, у MicroPython также есть форум сообщества, где пользователи делятся учебными пособиями, идеями и отвечают на все виды проблем, которые могут у вас возникнуть в связи с MicroPython.
Ардуино
Arduino — это популярная платформа с открытым исходным кодом, предназначенная в первую очередь для любителей электроники и самодельщиков. Язык программирования Arduino основан на языках программирования C и C++. Язык Arduino был выпущен в 2005 году группой инженеров, художников и дизайнеров из Италии.
Функции
Язык программирования Arduino использует урезанную версию C и C++, что упрощает его изучение и разработку. Выполнение кода с использованием Arduino происходит значительно быстрее, чем его аналоги на интерпретируемом языке из-за его скомпилированного характера. Кроме того, для работы Arduino требуется лишь небольшое количество системных ресурсов, что делает его совместимым со многими отладочными платами и микроконтроллерами.
Производительность
В отличие от MicroPython и CircuitPython, Arduino — это компилируемый язык программирования. Это означает, что код сначала компилируется на компиляторе (уже включенном в среду разработки Arduino), а затем выполняется микроконтроллером как целая программа.
Это значительно улучшает выполнение кода, поскольку микроконтроллеру не нужно использовать ресурсы для интерпретации каждой строки кода. Кроме того, компиляция программы также переводит ее в машинный код, который микроконтроллер может выполнять без установки зависимостей.
Это значительно повышает скорость выполнения кода, поскольку микроконтроллер может напрямую выполнять программу, не выделяя время и аппаратные ресурсы на трансляцию кода.
Поддерживаемые платы
Поскольку этап компиляции выполняется через IDE, микроконтроллеры могут иметь для работы всего 32 КБ флэш-памяти и 2 КБ ОЗУ. Итак, помимо плат Arduino, существует множество альтернатив плате Arduino вы можете использовать для программирования с Arduino. Многие из этих плат будут использовать микроконтроллеры, такие как ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 и STM32.
Сообщество и поддержка
Будучи платформой с открытым исходным кодом с 2005 года, Arduino имеет одну из лучших доступных документов. Каждый год Фонд Arduino активно предоставляет обновления, поддержку и новые интересные продукты. Мировое сообщество также является одним из самых активных участников обмена руководствами и идеями, а также решения любых проблем, связанных с устранением неполадок, с которыми вы можете столкнуться. С Arduino вам гарантирован хороший уровень поддержки.
CircuitPython
CircuitPython — это реализация Python 3 от Adafruit, основанная на MicroPython. Несмотря на то, что CircuitPython является ответвлением от MicroPython, он предлагает несколько улучшений, делающих изучение микроконтроллеров легким и увлекательным.
Функции
CircuitPython был создан, чтобы помочь новичкам научиться программировать микроконтроллеры. Для этого CircuitPython предоставляет несколько функций, в том числе интерактивное кодирование. среда, встроенные библиотеки, простой синтаксис (проще, чем у MicroPython) и отличная документация. и направляющие.
Производительность
Так как CircuitPython основан на MicroPython, у него много общих сильных и слабых сторон. Время выполнения программы будет немного медленнее, чем у MicroPython, поскольку CircuitPython предоставляет больше функций и дополнительных библиотек. Однако разница, скорее всего, незаметна, поскольку для работы CircuitPython требуются более мощные микроконтроллеры.
Поддерживаемые платы
Благодаря встроенным библиотекам и еще более простому синтаксису платам для разработки микроконтроллеров требуется больше ресурсов для использования CircuitPython. Как минимум, микроконтроллер должен иметь 8-битный процессор, 256 КБ флэш-памяти (рекомендуется 512 КБ) и 32 КБ ОЗУ (рекомендуется 64 КБ). В настоящее время 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/производителей Arduino по-прежнему будет лучшим языком для программирования. микроконтроллеры, так как они предлагают выдающийся баланс производительности, портативности, функций и сообщество.