Не ардуино единым. Обзор альтернативных микроконтроллеров и плат для разработки
Всем доброго времени суток, дорогие друзья. Практически каждый радиолюбитель знает что такое Ардуино и с чем его едят. На сегодняшний день платформа Arduino стала таким же нарицательным именем, как в свое время стал копировальный аппарат от фирмы Ксерокс (Xerox). Все мы помним эти времена, когда нужно было что-то отксерить. Так и Arduino как учебная платформа по конструированию и обучению программированию стала именем нарицательным. Однако, стоит отметить, что не смотря на то что на платформе ардуино разработано много полезных устройств (а сколько таких еще будет…) возможности этой платформы ограничены и увы не полетом фантазии. Стоит признать, что сетевые коммуникационные возможности микроконтроллеров Atmega оставляют желать лучшего, а низкая производительность, 8ми битная платформа и малый объем памяти сильно ограничивают применение ардуино. Но конкуренты не дремлют. В этой статье я хочу предложить вашему вниманию несколько альтернативных микроконтроллеров, которые дружат с Arduino IDE и при этом обладают большими возможностями по сравнению с Arduino на базе микроконтроллеров Atmega.
STM32 (STM32F103C8T6)
Данная отладочная плата известна также под названием проект “Blue pill”. Опенсорсное решение на базе ARM процессора. Плата призвана заменить собой платформу Arduino Nano и имеет следующие характеристики:
- Архитектура Микроконтроллера ARM Cotrex M3
- Разрядность 32 Бит
- Максимальная частота 72 Мгц
- Объем памяти программ (FLASH): 64 / 128 кБайт
- Объем памяти данных (RAM): 20 кБайт
- Выводы: 37
- UART: 3
- SPI: 2
- I2C: 2
- CAN: 1
- USB: 1
- АЦП: 2 АЦП, 10 каналов, время преобразования 1 мкс
- Напряжение питания микроконтроллера 2 … 3,6 В
- Напряжение питания платы 5 В
- Ток потребления до 50 мА
По сравнению с основным конкурентом — Arduino Nano, характеристики более чем впечатляющие. Да и зона применения этого микроконтроллера гораздо шире. Однако без нюансов не обходится. Стоит учитывать, что напряжение питания у микроконтроллера на этой плате составляет в среднем 3,3 вольта, соответственно и логика работы микроконтроллера трехвольтовая. У Arduino Nano напряжение питания 5 Вольт и логика соответствующая.
Для тех кто не в теме. Если микроконтроллер использует 5ти вольтовую логику, то при выдаче на цифровой пин логической 1 напряжение на выводе составляет 5 вольт. У микроконтроллера с 3,3-вольтовой логикой напряжение логической 1 равно 3,3 вольта, что в определенных случаях может доставить определенные сложности. Также не стоит забывать, что далеко не все устройства с логикой 3,3В толерантны (совместимы) с логикой 5В. Напряжение в 5В, поданное на цифровой вход устройства с логикой 3,3В, может привести к поломке.
Однако, не все так печально. Разработчики предусмотрели такой вариант и ряд выходов платы сделали толерантными к 5ти вольтовой логике. Данная информация представлена на изображении ниже:
При этом, если вам необходимо больше выводов, толерантных к 5ти вольтовой логике, чем может предложить данный модуль, существуют преобразователи логических уровней, которые позволяют решить данную проблему.
На китайских торговых площадках мне встречались преобразователи на 4 и 8 каналов, стоят копейки, но позволяют избавиться от головной боли :). Вот ссылка на 4х канальный преобразователь:
Преобразователь логических уровней на 4 канала. Комплект 10 штук.
Устройства на базе STM32 в последние годы все больше и больше набирают популярность. На них строят как примитивные устройства, так и квадрокоптеры. А с выходом marlin 2.0 количество 3Д принтеров на подобной платформе значительно увеличится.
Свои модули STM32 (STM32F103C8T6) я заказывал вот тут:
Ну а теперь поговорим о модулях на микроконтроллерах с WIFI.
Так или иначе рано или поздно любому радиолюбителю или инженеру становится скучно и не интересно разрабатывать автономные устройства, либо обстоятельства вынуждают разрабатывать устройства взаимодействующие друг с другом или через интернет. У Адруино есть шилды, которые позволяют подружить микроконтроллер с сетью, но прогресс не стоит на месте и был разработан новый микроконтроллер уже имеющий у себя на борту интерфейс wifi. Представляю Вашему вниманию микроконтроллер ESP8266.
Основные характеристики ESP8266 следующие:
- Тактовая частота 80 МГц с возможностью разгона до 160 МГц без гарантии стабильности работы
- Платформа 32 Бит
- Поддержка Wifi стандартов b/g/n
- Количество портов GPIO 14, из них доступно 11
- Количество аналоговых входов 1
- АЦП 10 Бит
- Питания от 2,6 до 3,6 В
- Потребляемая мощность до 215 мА в режиме передачи, 100 мА в режиме приема, 70 мА в режиме ожидания.
- Поддерживаются три режима пониженного потребления, все без сохранения соединения с точкой доступа: Modem sleep (15 мА), Light sleep (0.4 мА), Deep sleep (15 мкА)
Имеются следующие интерфейсы:
- UART
- SPI
- I2C
Источник: Википедия
Вот основные особенности данного микроконтроллера. Как видим, есть свои достоинства и недостатки. К достоинствам можно отнести:
- Производительная платформа
- Наличие Wifi
- Наличие поддержки самых востребованных интерфейсов
- Наличие режимов низкого энергопотребления
- Совместимость со средой Arduino IDE
К недостаткам можно отнести следующее:
- Мало количество портов GPIO
- Только один аналоговый вход
- Высокое энергопотребление в режиме передачи
Однако, недостатки не такие уж и критичные и для ряда проектов просто несущественные.
За счет своей функциональности микроконтроллер ESP8266 приобрел широкую популярность в среде разработчиков устройств и модулей для умного дома и интернета вещей. О чем свидетельствует популярность модулей Sonoff, обзоры которых я делал ранее. (Обзоры модулей Sonoff). Также данные микроконтроллеры используются во всяких устройствах с Wifi на борту, таких как кондиционеры, роботы-пылесосы и т.д.
Модули на базе ESP8266
Согласитесь, что сам по себе голый чип нам мало интересен, а раз мы любим ардуино, а не сам микроконтроллер atmуga, то нам интересны готовые модули на базе чипа ESP8266. Итак приступим.
На базе данного микроконтроллера разработан ряд модулей с маркировками от ESP-01 до ESP-13. В большинстве модули похожи друг на друга. Я же коснусь в своем рассказе только тех модулей, с которыми имел дело :)
Итак, самый младший представитель линейки – ESP-01.
Этот модуль знаком тем, кто пытался прикрутить к своему проекту на Arduino Wifi. Забавно, что зачастую проект мог бы и без ардуино обойтись :)
Итак, в данном модуле пользователю/разработчику доступно только 4 GPIO вывода. Не много, но для метеостанции или какого-нибудь датчика вполне сгодится.
Приобрести такой модуль можно по ссылкам ниже:
И там и там модули хорошего качества.
Ну а мы пойдем дальше. На очереди довольно интересный и необычный модуль ESP-07
Модуль представляет собой миниатюрную плату с возможностью установки на большую плату под пайку.Обратите внимание, шаг контактов 2 мм, не 2,54, а именно 2. В обычную макетку этот модуль впихнуть проблематично.
На первый взгляд отличительной особенностью данного модуля является наличие керамической антенны, а также разъема для подключения внешней антенны. На плате доступны все GPIO выводы за исключением выводов, отвечающих на SPI шину.
Модуль считается не первой свежести, но в большинстве проектов не теряет своей актуальности.
Приобрести данный модуль на Али можно по ссылке ниже:
Стоит признать, что некоторые считают, модуль ESP-07 несколько устаревшим, так как ему на смену пришли модули ESP-12
Плата модуля рассчитана под пайку, либо установку на гребенку с шагом контактов 2 мм, однако из существенных отличий – наличие выводов шины SPI.
Широкое распространение получили модули ESP-12E и ESP-12F, отличающиеся друг от друга объемом FLASH памяти.
В отличие от модуля ESP-07, Модули на базе ESP-12 не имеют возможности подключения внешней антенны и используют посредственную встроенную антенну, которая представляет собой дорожку на плате.
Распиновка у модулей ESP-12 одинакова.
Приобрести данные модули можно по ссылке ниже:
Подробную информацию по подключению и прошивке данных модулей вы можете получить на ресурсе посвященном микроконтроллерам ESP8266.ru
Учтите, что для прошивки и заливки скетчей в модули ESP-01 … ESP-12 необходим программатор. Подробнее о программаторах вы можете почитать в статье “Программаторы для Arduino, 3Д принтеров и не только”
Все эти модули хороши, однако кроме ESP-01 в готовом виде их применять не получится, т.к. нужна обвязка. Поэтому мы плавно переходим к готовым модулям, родоначальником которых стала плата ESP-12
Готовые модули на базе платы ESP-12
И так, как я уже говорил ранее, выход в свет модуля ESP-12 породил целую серию различных ARDUINO совместимых плат яркими представителями среди которых стали платы Wemos и платы Nocemcu (Lolin).
Первые известны под названием Wemos D1 и по форм фактору являются совместимыми с платами на базе Arduino UNO. Однако в виду того, что такой форм-фактор мне был мало интересен за счет своих больших габаритов, меня заинтересовала разновидность Wemos D1 Mini.
Это упрощенная миниатюрная версия модуля, построенная на базе сборки ESP-01 или ESP-12. В зависимости от производителя поставляется в двух вариантах:
- На плате распаян модуль ESP-12 с USB-TTL преобразователем, а также имеет минимальную необходимую обвязку для работы модуля
- На плате распаяна микросхема ESP8266 с USB-TTL преобразователем и минимальной обвязкой.
Как правило, в обоих вариантах на борту имеется DC-DC преобразователь, понижающий напряжение до 3,3 вольт. Имеется возможность питания как напряжением 5 В так и напряжением 3,3 вольта.
Выглядят модули следующим образом. Ху из ху отличить проблемы не составит.
Еще, модули могут отличаться объемом памяти и моделью микросхемы USB-TTL преобразователя.
На рисунке выше представлена распиновка модуля. Как видно, все сделано по упрощенной схеме. Также стоит отметить, что у данного модуля SPI порты не разведены. Учитывайте это.
Но для ряда проектов этого вполне достаточно :)
В качестве примера могу представить Вашему вниманию метеостанцию собранную на указанном модуле.
Итак, данные модули в интернете вы можете приобрести по ссылкам, указанным ниже. Как и всегда, я указываю ссылки на товары и магазины, где сам закупаюсь.
Как я уже упоминал выше, кроме Wemos D1 mini существуют модули NodeMCU или как их еще называют Lolin. Насколько я понимаю, изначально они разрабатывались для написания прошивок на Lua скриптах, однако, они прекрасно прошиваются и с помощью Arduino IDE, причем без лишних телодвижений. Т.е. хочешь пиши прошивку на LUA и заливай в микроконтроллер, хочешь на Arduino IDE. На сегодняшний день в продаже имеются модули под маркировкой NodeMCU v3. Выглядят платы следующим образом:
Как и Wemos D1 mini модули отличаются схемотехникой, объемом памяти, а также моделью микросхемы USB-TTL преобразователя. Однако, от модулей D1 NODEMCU имеют полный набор GPIO выводов с разведенной SPI шиной и как следствие – плата у NodMCU значительно больше (этак раза в два).
В остальном, по функционалу модули ни чем не отличаются.
Выводы делайте сами :)
Ну а купить такие платы можно по следующим ссылкам:
Ну и как Вишенка на торте, пара слов о гораздо более мощном 32х битном двухъядерном микроконтроллере, который называется ESP-32.
Ну а теперь давайте поговорим о характеристиках данных модулей.
Аппаратные характеристики:
- Процессор Tensilica Xtensa LX6 двухъядерный (или одноядерный) 32-разрядный процессор, с тактовой частотой 160 или 240 МГц и производительностью до 600 DMIPS (Dhrystone MIPS)
- Сопроцессор с ультранизким энергопотреблением
- Память: 520 КБ памяти SRAM, до 64 мб FLASH памяти
- Wi-Fi: 802.11 b / g / N
- Bluetooth: v4.2 BR/EDR and BLE
Интерфейсы:
- 12-разрядный АЦП до 18 каналов
- 2 × 8 бит ЦАПа
- 10 × портов для подключения емкостных датчиков (измеряющие ёмкость GPIO)
- Датчик температуры[источник не указан 282 дня]
- 4 × SPI мастер-интерфейса (ведущие устройства)
- 2 × I²S мастер-интерфейса
- 2 × I²C мастер-интерфейса
- 3 × UART интерфейса
- SD/SDIO/CE-ATA/MMC/ eMMC хост-контроллер
- SDIO/SPI слейв-контроллеры (ведомые устройства)
- Ethernet MAC interface с выделенным DMA и IEEE 1588 Precision Time Protocol support
- CAN bus 2.0
- ИК дистанционное управление (передатчик/приемник, до 8 каналов)
- Возможность подключения двигателей и светодиодов через ШИМ-выход
- Датчик Холла
- Аналоговый пред усилитель низкого энергопотребления
Таким образом, пользователю доступно до 34 GPIO портов различного назначения. В купе с кучей плюшек и специфических портов, а также наличием большого набора различных интерфейсов, модуль обладает большим потенциалом для практического применения.
Уже сейчас на базе ESP-32 китайцы предлагают огромный набор готовых модулей различных компоновок. Тут и модули с возможностью подключения различных аккумуляторов, модулей с экранами, модулей с LORA, да и много еще с чем. Перечисленные модули я видел в продаже. Вообщем, кому интересно, можете посмотреть вот тут.
Базовые модули можно приобрести вот тут:
Модули ESP-32 без обвязки:
Модуль ESP-32 в магазине WavGAT
Модуль ESP-32 в магазине Greatwall
Модуль ESP-32 в магазине RobotDYN
Шилд для прошивки и программирования модуля без обвязки (Greatwall)
Готовые платы с модулем ESP-32
Готовый модуль ESP-32 в магазине Greatwall
Готовый модуль ESP-32 в магазине WavGAT
Готовый модуль ESP-32 с камерой
Готовый модуль ESP-32 с возможностью подключения источника резервного питания
Вот такие вот современные замены ардуино существуют в мире. Возможно, есть и другие варианты на других микроконтроллерах. Я описал те, о которых знал и которые покупал сам. Ссылки опубликованы на проверенных продавцов. Буду рад, если статья оказалась вам интересной. Инженерных и творческих успехов :)