какие микроконтроллеры сейчас популярны
Какой микроконтроллер выбрать начинающему? Arduino или более современный?
Какой микроконтроллер лучше? Опубликованная вчера в блоге на Habr статья «Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих» вызвала бурные обсуждения, т.к. она призывает «похоронить» популярную Arduino даже в любительских проектах.
Олег Артамонов и ранее приводил критику использования Arduino в старших классах школы, но на этот раз подробнее описал недостатки платформы, а также продемонстрировал, что работать с ARM Mbed просто — вопреки популярному мнению нет необходимости «долгими бессонными ночами читать бесконечные даташиты на регистры процессора и учить ассемблер».
Развитие платформы Arduino за последние 10 лет автор сравнил с изменениями в некоторых моделях. АвтоВАЗа. AVR, как и вообще 8-битные контроллеры, уже не выдерживают конкуренции с 32-битными Cortex-M по соотношению цена/характеристики. А сложность разработки существенно снизилась с появлением микроконтроллерных операционных систем. Благодаря ОС программирование микроконтроллеров становится ближе к написанию софта под большие ПК, и создание многозадачности средствами цикла loop() при наличии современных средств разработки, становится абсурдно. Микроконтроллерные операционные системы дают:
Статью прокомментировал разработчик микропроцессоров MIPS Юрий Панчул:
Главная проблема ардуины и ее software (UPD: если вы вздумаете использовать ее профессионально, как люди, с которыми ругается Олег) — это отсутствие многозадачности, из-за чего системы сложнее чем мигание лампочкой либо тормозят, либо процессор все время ожидает и обрабатывает ввод-вывод вместо решения полезных задач, либо имеет место куча спагетти-кода в комбинации с примитивными ардуинскими обработчиками прерываний. Именно это имхо стоило продемонстрировать Олегу с наглядными примерами кода. Ругаться с ардуинщиками по поводу порога входа в их нежно любимую платформу можно, но там речь идет о вкусах и небольшой неэффективности из-за ардуиногого api, а вот отсутствие в ардуине tasks/semaphores и других RTOS-ных примитивов, которые позволяют писать эффективные надежно работающие программы с компактным легко читаемым кодом — это принципиально, и на этом ардуинщиков вполне реально урыть (если они готовы идти дальше мигания лампочкой). Например привести вывод на графический экран двумя процессами с семафором, как мы в MIPS и Microchip сделали три года назад в курсе Connected MCU по программированию PIC32MZ и FreeRTOS
Позже Юрий Панчул добавил в свой пост информацию о существовании RTOS для Arduino: » … пусть живет. Все написанное отменяется.». Прогресс не стоит на месте и мир микроконтроллерных плат для любителей больше не ограничивается Arduino и ESP. А что думаете вы?
Если вы заинтересованы подробнее познакомится с программированием современных микроконтроллеров, рекомендуем ознакомиться с курсом лекций (видео).
6 лучших плат микроконтроллеров для всех уровней
Микроконтроллеры в основном следуют аналогичным конструкциям. Они имеют ограниченную встроенную память, работают с низким энергопотреблением и оснащены набором выводов ввода-вывода общего назначения (GPIO), которые обычно программируются через кабель USB.
Есть так много досок на выбор, что может быть трудно выбрать идеальную для вас. Новички имеют совершенно другой опыт работы с оборудованием, чем люди, которые раньше могли программировать или работать с электроникой.
Независимо от того, на каком уровне вы находитесь, один из этих микроконтроллеров должен хорошо работать для вас.
1. Лучший микроконтроллер для начинающих
Arduino Uno R3
Если у вас есть интерес к микроконтроллерам, вы почти наверняка слышали об Arduino. Они популяризировали хобби-оборудование с открытым исходным кодом со своим набором плат для разработки и независимой средой разработки (IDE) для их кодирования.
Arduino Uno R3 — это стандартный Arduino, который можно найти в большинстве стартовых комплектов, и он самый простой в использовании. Если проблема в бюджете, обратите внимание, что Arduino — это оборудование с открытым исходным кодом. Поэтому копии дизайна полностью легальны. Если вы ищете клоны Arduino, вы найдете много по гораздо более низкой цене, чем официальные доски Arduino.
Makeblock mBot Robot Kit
Подожди, это не похоже на плату микроконтроллера!
Ну, у mBot Robot Kit в качестве мозга есть микроконтроллер. Его дизайн делает его идеальным для обучения детей робототехнике без необходимости иметь дело со сложным кодом. Визуальный код блока, собранный в приложении Blocky, передается на плату через Bluetooth, чтобы повлиять на поведение робота.
Вы можете купить микроконтроллер отдельно от набора роботов, но почему бы вам? Роботы самые лучшие!
Этот комплект охватывает все, от создания роботов до основ программирования. Для представления микроконтроллеров молодой аудитории нет ничего лучше!
3. Лучший микроконтроллер для программистов
STM32 F3 Discovery
STMicroelectronics STM32 F3 Discovery
Плата STM32 F3 Discovery представляет собой микроконтроллер на основе ARM Cortex-M4 для экспериментов со всеми аспектами аппаратного программирования. Плата оснащена встроенным детектором движения, трехосным гироскопом, датчиком линейного ускорения и датчиком магнитного поля.
Есть также восемь светодиодов в круглом расположении. Обратите внимание, что эта плата требует отдельного адаптера FTDI для связи с компьютерами через USB. Если вы не уверены, что это такое, то мы использовали его в нашем собственном руководстве по Arduino для связи с чипом ATMega328P.
Обучение программированию F3 Discovery является более глубоким процессом, чем многие другие микроконтроллеры. К счастью, есть библиотеки, которые делают этот процесс более доступным, и многие учебные пособия начинаются с основ. Наряду с использованием языка программирования C ++, доска является предметом Книги Открытий; руководство по началу работы по внедрению языка программирования Rust.
4. Лучший микроконтроллер для носимых
Adafruit Gemma M0
Благодаря тому, что микроконтроллеры сочетают в себе расширенный контроль над светодиодами и другими компонентами с небольшими форм-факторами и низкими требованиями к мощности, неудивительно, что они проявляются в дизайне костюмов и косплее. Плата Gemma M0 от Adafruit представляет собой микроконтроллер размером с монету, идеально подходящий для подключения светодиодов или других компонентов с помощью проводящей резьбы. Кроме того, вы можете использовать встроенный светодиод RGB DotStar.
Чип ATSAMD21E18 (попробуйте сказать, что спешите) — это шаг вперед по сравнению с обычными встроенными контроллерами для микроконтроллеров этого типа. В то время как вы можете использовать стандартный Arduino типа C ++, плата поставляется с предустановленной CircuitPython для программирования на Python и собственным USB-соединением, которого обычно нет на других платах этого типа.
5. Лучший микроконтроллер для питания
Teensy 3.2
Для необработанной мощности в крошечном форм-факторе линейка Teensy 3.2 считается лучшей. 32-разрядный микропроцессор ARM Cortex запускает кольца практически на любой другой плате. Помимо скорости, Teensy имеет аудиоинтеграцию I2C и несколько высококачественных аналого-цифровых преобразователей (АЦП).
Каждый вывод на Teensy настраивается как прерывание, и платы работают с 64 КБ ОЗУ и 256 КБ флеш-памяти. Все это совместимо с Arduino IDE с использованием библиотеки Teensyduino, и, если вам недостаточно 28 выводов Teensy 3.2, 48-контактные разъемы Teensy 3.5 и 3.6 доступны на веб-сайте PJRC.
Mbed LPC1768 Совет по развитию
Делать следующий шаг от хобби-микроконтроллеров больше похоже на скачок. Промышленное использование встроенного оборудования может быть гораздо более сложным и иметь гораздо более высокую стоимость входа как на уровне оборудования, так и на уровне программного обеспечения.
Хорошим примером платы прямо на границе между потребителем и промышленностью является Совет по развитию Mbed LPC1768. Эта доска — скачок в качестве и инструментах, и цена отражает это. Mbed предоставляет онлайн-IDE для оборудования и библиотеки для выполнения задач с помощью выводов GPIO и встроенных светодиодов.
Этот значительный скачок цены также отражает разницу в вариантах использования. Такие платы, как LPC1768, находят применение в стандартных отраслевых ситуациях, и использование платы для углубления ваших знаний может стать важной частью изучения встроенного программирования.
Маленькие Доски, Большие Планы
Этот список должен помочь вам принять обоснованное решение о том, какой микроконтроллер подходит именно вам. Это, однако, ни в коем случае не является исчерпывающим, и пропускает отличные платы, как Arduino, убивающий NodeMCU.
На какой бы плате вы ни остановились, микроконтроллеры — это идеальный способ сочетать электронику и кодирование. Любой из этих проектов для начинающих Arduino
15 отличных проектов Arduino для начинающих
15 отличных проектов Arduino для начинающих
Заинтересованы в Arduino, но не знаете, с чего начать? Вот некоторые из наших лучших проектов Arduino для начинающих!
Прочитайте больше
поможет вам справиться с обоими!
Кредит изображения: Ha4ipiri / Depositphotos
Узнайте больше о: Arduino, советы по покупке, электроника, Raspberry Pi.
Какие МК PIC сейчас наиболее популярны?
Начал свою микроконтроллерную жизнь я с PIC16F84A. В двухтысячных. Потом забросил все это дело.. А пару лет назад вернулся в электронику, но уже на AVR. Потом ARM. А теперь снова стало интересно чего там у PIC нового с тех пор вышло.
Какие сейчас наиболее популярные серии, модели? Кто чем пользуется?
Какие программы сейчас наиболее востребованы?
Скажите, какие программы сейчас наиболее востребованы? Утилиты, автоматизация бизнеса, что-то ещё.
Какие технологии популярны в Java EE?
Здравствуйте, программисты. Давненько пишу на джаве, но не имел опыта с j2ee. Вычитал там всякое.
Какие доработки 1С: ERP популярны?
Хочу поставить себе задачу в 1С: ERP, при выполнении которой могу научиться чему новому. Хочется.
пардон, какая связь тут?
я понимаю доводы про корпуса, унификацию линейки, цену, доступность, потребление. но кол-во бит?!
в stm мне лично нравится, что можно начать с простых 100-ок, например, которые уже по 30 рублей продаются, практически,
а потом шагать в сторону более дорогих, для удовлетворения требований по памяти и периферии. код при этом менять практически
не нужно. из периферии особенный интерес представляет usb. 105-ые можно через usb прошивать, например.
для людей, которые девайсами пользуются и не обременены всякой фигней типа переходника uart-rs232, это очень удобно.
discovery тоже хороши.
Правда, доходит не до всех. Особо ленивым всегда всего мало.
А вам всегда нужны именно рекордные показатели?
Правда, доходит не до всех. Особо ленивым всегда всего мало.
Я Вас узнал, как человека весьма консервативных взглядов. Да, у Вас свой проверенный инструментарий, которым Вы можете решить 99.99% интересующих Вас задач. Другие Вас, возможно, и не интересуют.
на dsPIC33FJ128GP708 у меня реализован модуль 80х20 мм с сканом 40 пьезорезистивных полумостов (давление) 200 раз в секунду с калибровкой. И я рад, что у этого 16-тибитника есть DMA и задачи сканирования и отсылки можно красиво параллелить. И что там 16-битный умножитель/делитель.
Безусловно, какой-нибудь фрик почёл бы за честь сделать это на 8-битном АВРе. Но это никому не нужно.
Именно сейчас мне надо вбить 3 х 512 квадратных полиномов + расчёт сорока функций Гаусса по наименьшим квадратам «несколько» раз в секунду. Пока только раз в секунду, но надеюсь не предел. К этому всему очень желателен hi-speed USB, т.к. прибор (спектрометер) на full-speed не запрограммирован вообще. И не желателен Линух и вообще системы с внешней памятью для программы, откуда её можно стырить, если не, встав на уши, складировать её там в зашифрованном виде.
PIC32 получается в 22 раза медленнее в расчётах, чем STM32F4хх. Проверенно в эксперименте. То есть при прочих равных PIC32 выдавал бы результат раз в 22 секунды. Вот и разница.
Шаг 4. Как выбрать нужный микроконтроллер.
Выбор микроконтроллера
Для создания робота нужно сделать правильный выбор микроконтроллера. Сначала нужно разобраться с понятием, что такое микроконтроллер и что он делает?
Микроконтроллер — это вычислительное устройство, способное выполнять программы (то есть последовательность инструкций).
Он часто упоминается как “мозг” или “центр управления” робота. Как правило, микроконтроллер отвечает за все вычисления, принятие решений и коммуникации.
Для того, чтобы взаимодействовать с внешним миром, микроконтроллер имеет ряд штырей или выводов для электрического распознавания сигнала. Так сигнал может быть включен на максимум (1/С) или минимум (0/выкл) с помощью инструкции программирования. Эти выводы также могут быть использованы для считывания электрических сигналов. Они поступают с датчиков или других приборов и определяют, являются сигналы высокими или низкими.
микроконтроллер для робота
Большинство современных микроконтроллеров может также измерять напряжение аналоговых сигналов. Это сигналы, которые могут иметь полный диапазон значений вместо двух четко определенных уровней. Происходит это с помощью аналогового цифрового преобразователя (АЦП). В результате микроконтроллер может присвоить сигналу числовое значение в виде аналогового напряжения.Это напряжение не является ни высоким, ни низким и, как правило, находится в диапазоне 0 — 10 вольт.
Что может делать микроконтроллер?
Хотя микроконтроллеры могут показаться довольно ограниченными, на первый взгляд, многие сложные действия можно выполнять, используя контакты высокого и низкого уровня сигнала для программирования алгоритма. Тем не менее создавать очень сложные алгоритмы, такие как интеллектуальное поведение или очень большие программы, может быть просто невозможно для микроконтроллера из-за ограниченных ресурсов и ограничения в скорости.
Например, для того, чтобы заставит мигать свет, можно запрограммировать повторяющуюся последовательность. Так микроконтроллер включает высокий уровень сигнала, ждет секунду, превращает его низкий, ждет еще секунду и сначала. Свет подключен к выходному контакту микроконтроллера и в циклической программе будет мигать бесконечно.
микроконтроллер со светодиодами
Аналогичным образом, микроконтроллеры могут быть использованы для контроля других электрических устройств. В первую очередь таких как приводы (при подключении к контроллеру двигателя), устройства хранения (например, карты SD), WiFi или bluetooth-интерфейсы и т. д. Как следствие этой невероятной универсальностью, микроконтроллеры можно найти в повседневной жизни.
Практически в каждом бытовом приборе или электронном устройстве используется, по крайней мере, один микроконтроллер. Хотя часто используется и несколько микроконтроллеров. Например, в телевизорах, стиральных машинах, пультах управления, телефонах, часах, СВЧ-печах и многих других устройствах.
В отличие от микропроцессоров (например, центральный процессор в персональных компьютерах), микроконтроллер не требует периферийных устройств. Таких как внешняя оперативная память или внешнее устройство хранения данных для работы. Это означает, что хотя микроконтроллер может быть менее мощным, чем их коллеги ПК. Почти всегда разработка схем и продуктов, основанных на микроконтроллерах значительно проще и дешевле.Потому что требуется очень мало дополнительных аппаратных компонентов.
Важно отметить, что микроконтроллер может выдавать только очень небольшое количество электрической энергии через свои выходные контакты. Это означает, что к микроконтроллеру не получиться подключить мощный электродвигатель, соленоид, большое освещение, или любую другую большую нагрузку напрямую. Попытка сделать это может вывести контроллер из строя.
Какие существуют более специализированные функции микроконтроллера?
Специальное оборудование, встроенное в микроконтроллеры позволяет этим устройствам сделать больше, чем обычный цифровой ввод/вывод, базовые расчеты и принятие решений. Многие микроконтроллеры с готовностью поддерживает наиболее популярные протоколы связи, такие как UART (RS232 или другой), SPI и I2C. Эта функция невероятно полезна при общении с другими устройствами, такими как компьютеры, датчики, или другие микроконтроллеры.
Хотя эти протоколы можно реализовать вручную, всегда лучше иметь выделенное встроенное оборудование, которое заботится о деталях. Это позволяет микроконтроллеру сосредоточиться на других задачах и обеспечивает чистоту программы.
rs232
Аналого-цифровые преобразователи (АЦП), используются для преобразования аналоговых сигналов напряжения в цифровые. Там количество пропорционально величине напряжения, и это число может затем использоваться в программе микроконтроллера. Для того, чтобы выходное промежуточное количество энергии отличается от высокого и низкого, некоторые микроконтроллеры имеют возможность использовать широтно-импульсную модуляцию (ШИМ). Например, этот способ позволяет плавно изменять яркость свечения светодиода.
Наконец, в некоторые микроконтроллеры интегрирован стабилизатор напряжения. Это достаточно удобно, так как позволяет микроконтроллеру работает с широким диапазоном напряжения. Поэтому вам не требуется обеспечивать необходимые значения напряжений. Это также позволяет легко подключать различные датчики и другие устройства без дополнительного внешнего регулируемого источника питания.
Аналоговые или цифровые?
Какие нужно использовать входные и выходные сигналы зависит от поставленной задачи и условий. Например, если у вас стоит задача просто что-то включить или выключить, то вам достаточно чтобы сигнал на входном контакте микроконтроллера был цифровой.
Двоичное состояние переключателя 0 или 1. Высокий уровень сигнала может быть 5 вольт, а низкий 0. Если же вам нужно измерить, например, температуру, то нужен аналоговый входной сигнал. Далее АЦП на микроконтроллере интерпретирует напряжение и преобразует его в числовое значение.
Как программировать микроконтроллеры?
Программирование микроконтроллеров стало более простым благодаря использованию современных интегрированных сред разработки IDE с полнофункциональными библиотеками. Они легко охватывают все наиболее распространенные задачи и имеют много готовых примеров кода.
В настоящее время микроконтроллеры могут быть запрограммированы на различных языках высокого уровня. Это такие языки как C, C++, С#, Ява, Python, Basic и другие. Конечно, всегда можно написать программу на ассемблере. Хотя это для более продвинутых пользователей с особыми требованиями (с намеком на мазохизм). В этом смысле, любой должен быть в состоянии найти язык программирования, который лучше всего соответствуют его вкусу и предыдущему опыту программирования.
Программировать микроконтроллеры становится еще проще, так как производители создают графические среды программирования. Это пиктограммы, которые содержат в себе несколько строк кода. Пиктограммы соединяются друг с другом. В результате создается программа визуально простая, но содержащая в себе большое количество кода. Например, одно изображение может представлять управление двигателем. От пользователя требуется только разместить пиктограмму там, где необходимо и указать направление вращения и обороты.
среда программирования Lego Education EV3
Разработанные микроконтроллерные платы достаточно удобны в эксплуатации. И их проще использовать долгое время. Они также обеспечивают удобные питание от USB и интерфейсы программирования. Следовательно, есть возможность подключаются к любому современному компьютеру.
Почему не использовать стандартный компьютер?
Очевидно, что микроконтроллер очень похож на процессор компьютера. Если это так, почему бы просто не использовать компьютер для управления роботом? Итак, что выбрать настольный компьютер или микроконтроллер?
системный блок компьютера
По сути, в более продвинутых роботах, особенно тех, которые включают сложные вычисления и алгоритмы, микроконтроллер часто заменяются (или дополняются) стандартным компьютером. В настольном компьютере установлена материнская плата, процессор, оперативная память устройства (например, жесткий диск), видеокарта (встроенная или внешняя).
Дополнительно есть периферийные устройства, такие как монитор, клавиатура, мышь и т. д. Эти системы обычно дороже, физически больше, потребляют больше энергии. Основные отличия выделены в таблице ниже. Кроме этого они часто имеют больший функционал чем необходимо.
Как выбрать микроконтроллер правильно?
Если вы изучаете робототехнику, то вам понадобится микроконтроллер для любого робототехнического проекта. Для новичка, выбор правильного микроконтроллера может показаться сложной задачей. Особенно учитывая ассортимент, технические характеристики и области применения. Есть много различных микроконтроллеров доступны на рынке:
Для того чтобы правильно выбрать микроконтроллер задайте себе следующие вопросы:
Какой микроконтроллер самый популярный для моего приложения?
Конечно, создание роботов и электронных проектов в целом-это не конкурс популярности. Очень хорошо если микроконтроллер имеет большую поддержку сообщества. И успешно используется в похожих или даже одинаковых ситуациях. В результате это может значительно упростить этап проектирования. Таким образом, вы могли бы извлечь пользу из опыта других пользователей, как среди любителей, так и среди профессионалов.
Участники сообществ конструкторов роботов делятся друг с другом результатами, кодами, картинками, видео, и подробно рассказывают об успехах и даже неудачах. Все это является доступными материалами и возможностью получать советы от более опытных пользователей. Следовательно, может оказаться очень ценным.
Есть какие-то особенные требования у вашего робота?
Микроконтроллер должен быть способен выполнять все специальные действия вашего робота, чтобы функции исполнялись правильно. Некоторые особенности являются общими для всех микроконтроллеров (например, наличие цифровых входов и выходов, возможность выполнять простые математические действия, сравнение значений и принятие решений).
Возможно другим контроллерам требуется специфическое оборудование (например, АЦП, ШИМ, и коммуникационный протокол поддержки). Также требования к памяти и скорости, а также число выводов должны быть приняты во внимание.
Какие компоненты доступны для конкретного микроконтроллера?
Может быть ваш робот имеет специальные требования или необходим конкретный датчик или компонент. И это имеет решающее значение для вашего проекта. Следовательно выбор совместимого микроконтроллера, безусловно, очень важен.
Большинство датчиков и компонентов может взаимодействовать напрямую со многими микроконтроллерами. Хотя некоторые комплектующие предназначены для взаимодействия с конкретным микроконтроллером. Возможно они будут уникальными и несовместимыми другими типами микроконтроллеров.
Что нас ждет в будущем?
Цена на компьютеры резко идет вниз, и достижения в области технологии делают их меньше и эффективнее. В результате одноплатные компьютеры стали привлекательным вариантом для роботов. Они могут работать с полноценной операционной системой (Windows и Linux являются наиболее распространенными).
Дополнительно компьютеры могут подключаться к внешним устройствам, таким как USB-устройства, жидкокристаллические дисплеи и т. д. В отличие от своих предков, эти одноплатные компьютеры, как правило, значительно меньше потребляют электроэнергии.
Основные критерии выбора
Для того чтобы выбрать микроконтроллер составим список нужных нам критериев:
Этим критериям соответствует модуль EV3 из набора Lego Mindstorms EV3.