Какой микроконтроллер выбрать начинающему? Arduino или более современный?

Конструкторы для обучения детей робототехнике

Share Button

Какой микроконтроллер лучше? Опубликованная вчера в блоге на Habr статья «Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих» вызвала бурные обсуждения, т.к. она призывает «похоронить» популярную Arduino даже в любительских проектах.

Какой микроконтроллер выбрать начинающему? Arduino или более современный?

Олег Артамонов и ранее приводил критику использования Arduino в старших классах школы, но на этот раз подробнее описал недостатки платформы, а также продемонстрировал, что работать с ARM Mbed просто — вопреки популярному мнению нет необходимости «долгими бессонными ночами читать бесконечные даташиты на регистры процессора и учить ассемблер».

«Традиционным преимуществом платформы Arduino считалоcь снижение порога входа в микроконтроллерную разработку до уровня базовых знаний C/C++ и электроники в масштабе «подключить светодиод в нужной полярности, — пишет Олег Артамонов, — Спросите примерно у любого активного сторонника Arduino — и вам быстро объяснят, что можно, конечно, писать под STM32 или nRF52, но выгоды в том реальной никакой, зато вас ждут бессонные ночи над сотнями страниц даташитов и бесконечные простыни функций с длинными непонятными названиями. Заслуги Arduino в снижении порога вхождения действительно трудно переоценить — эта платформа появилась на свет в середине нулевых годов, а после 2010 завоевала серьезную популярность среди любителей. Особых альтернатив на тот момент ей не было — процессоры на ядрах Cortex-M только появились, по сравнению с AVR они были довольно сложны даже для профессиональных разработчиков, а отладочные платы у большинства вендоров стоили от сотни долларов и выше (и в общем в индустрии ценник за отладку на 5-долларовом контроллере в $500 никого сильно не удивлял)».

Развитие платформы Arduino за последние 10 лет автор сравнил с изменениями в некоторых моделях. АвтоВАЗа. AVR, как и вообще 8-битные контроллеры, уже не выдерживают конкуренции с 32-битными Cortex-M по соотношению цена/характеристики. А сложность разработки существенно снизилась с появлением микроконтроллерных операционных систем. Благодаря ОС программирование микроконтроллеров становится ближе к написанию софта под большие ПК, и создание многозадачности средствами цикла loop() при наличии современных средств разработки, становится абсурдно. Микроконтроллерные операционные системы дают:

  • HAL — абстрагирование от железа.
  • Многозадачность.
  • Таймеры.
  • IPC — межпроцессное сообщение.
  • Наборы стандартных библиотек и функций — помимо API работы с самим микроконтроллером, ОС может предоставлять вам доступ к стандартным библиотекам, в том числе сторонней разработки.
  • Наборы драйверов — многие ОС предоставляют также «из коробки» наборы драйверов для внешних по отношению к контроллеру датчиков и систем.

Статью прокомментировал разработчик микропроцессоров MIPS Юрий Панчул:

Главная проблема ардуины и ее software (UPD: если вы вздумаете использовать ее профессионально, как люди, с которыми ругается Олег) — это отсутствие многозадачности, из-за чего системы сложнее чем мигание лампочкой либо тормозят, либо процессор все время ожидает и обрабатывает ввод-вывод вместо решения полезных задач, либо имеет место куча спагетти-кода в комбинации с примитивными ардуинскими обработчиками прерываний. Именно это имхо стоило продемонстрировать Олегу с наглядными примерами кода. Ругаться с ардуинщиками по поводу порога входа в их нежно любимую платформу можно, но там речь идет о вкусах и небольшой неэффективности из-за ардуиногого api, а вот отсутствие в ардуине tasks/semaphores и других RTOS-ных примитивов, которые позволяют писать эффективные надежно работающие программы с компактным легко читаемым кодом — это принципиально, и на этом ардуинщиков вполне реально урыть (если они готовы идти дальше мигания лампочкой). Например привести вывод на графический экран двумя процессами с семафором, как мы в MIPS и Microchip сделали три года назад в курсе Connected MCU по программированию PIC32MZ и FreeRTOS

Позже Юрий Панчул добавил в свой пост информацию о существовании RTOS для Arduino: » … пусть живет. Все написанное отменяется.». Прогресс не стоит на месте и мир микроконтроллерных плат для любителей больше не ограничивается Arduino и ESP. А что думаете вы?

Если вы заинтересованы подробнее познакомится с программированием современных микроконтроллеров, рекомендуем ознакомиться с курсом лекций (видео).

Share Button

3 комментария к статье “Какой микроконтроллер выбрать начинающему? Arduino или более современный?”

  1. Учиник гуру

    19.08.2018

    Этот вечный спор, какой же дистрибутив линукс/микроконтроллер/IDE/etc выбрать начинающему? Да тот же, который лучше всего знает ваш знакомый гуру, к которому вы потом и пойдете за советами и помощью. Ведь у начинающего всегда будут вопросы. Вы не можете знать того чего не знаете, вы ещё не встали на те грабли на которые уже наступил ваш гуру. И беда гуру в том, что он бы и рад вам объяснить, что не наступай на те же грабли что я — ученик всё равно наступит (ну может вы умный ученик и послушаетесь гуру, я — нет).
    Итого чтобы выбрать нужный вам инструмент вам придется ознакомиться со всеми доступными инструментами, узнать на своем опыте что лучше подойдет для конкретной задачи.

    Ответить на этот комментарий
  2. Роберт

    19.08.2018

    Я , как начинающий разработчик,начал с Cortex-m4 (stm32fxxx), однако новичку сложно сразу объять и понять не только функциональные возможности процессора но и его широкого спектра периферии. Сейчас я работаю над не большой системой оповещения для нашей лаборатории на базе atmega328p и sim800l GSM и могу сказать что с этим сравнительно простым МК работать гораздо легче. Поэтому я думаю что новичок может начать с лёгкого , понять тонкости работы МК и периферии , а потом набравшись опыта перейти к более могучим МК.
    P.S. есть проекты для которых 8 битники вполне оправдывают себя, больше просто не нужно.

    Ответить на этот комментарий
  3. Вадим

    21.08.2018

    Дурацкие модули. Atmega8 топ.

    Ответить на этот комментарий

Оставить комментарий

© 2014-2018 Занимательная робототехника, Гагарина Д.А., Гагарин А.С., Гагарин А.А. All rights reserved / Все права защищены. Копирование и воспроизведение в любой форме запрещено. Политика кофиденциальности. Соглашение об обработке персональных данных.
Наверх