Авторский проект IT-специалиста Олега Барабанова Персональные публикации на тему IT и не только…

Первые впечатления от знакомства с микроконтроллерами ESP32-C3 SuperMini

Я давно хотел ознакомиться с распространенными микроконтроллерами ESP32 и где-то с конца прошлого года по текущее время на Aliexpress назаказывал себе несколько дешевых ESP32-C3 SuperMini от различных производителей, а потом еще и купил ESP32-C6 и ESP32-S3 хотя их я пока еще не опробовал и поэтому в статье речь будет идти только о ESP32-C3 (в форм-факторе SuperMini).

Причины моего интереса к ESP32-C3

Вообще до недавнего времени мне вполне хватало Raspberry Pico и поэтому купленные микроконтроллеры ESP32 какое-то время лежали без дела. Более активно обратить внимание на ESP32-C3 меня вынудила необходимость работы с WiFi/Bluetooth вкупе с необходимостью реализовать более продолжительную автономную работу от аккумуляторов и всё это в недорогом исполнении.

Конечно есть Raspberry Pico W у которой тоже есть WiFi/Bluetooth и для многих задач это отличный микроконтроллер. Но версия с WiFi/Bluetooth не так массово продается, стоимость ее довольно ощутимая и имеет довольно высокое потребление даже в самом экономичном состоянии, а также мне нигде не встречалась в компактном исполнении.

ESP32-C3 и Micropython

Начал я знакомиться с ESP32-C3 используя MicroPython который на этих платах хорошо поддерживается. Прошивается Micropython на ESP32-C3 немного сложнее чем на Pico. Если в Pico процесс прошивки делался легко благодаря UF2 простым копированием на псевдофлешку файла, то в ESP32 это делается с помощью утилиты esptool. Весь процесс для ESP32-C3 подробно расписан на странице загрузки соответствующей прошивки Micropython.

Для работы esptool в системе должен быть установлен Python. С современными версиями Python в комплекте идет менеджер пакетов pip, с помощью которого ставится утилита esptool командой pip install esptool.

Сразу подскажу тем, кто с Python вообще не связывался. Бывает так что система не находит pip из-за того что путь до него не прописан в переменных окружения (а именно в PATH). В таком случае команду можно выполнить так (пример для Windows): c:\{путь до директории интерпретатора}\python.exe -m pip install esptool. А потом уже по той же аналогии вызывать установленный esptool, например: c:\{путь до директории интерпретатора}\python.exe -m esptool.

Разработка из под VSCode

Что касается IDE то программировать на Micropython под ESP32-C3 можно в VSCode используя плагин MicroPico который помимо Raspberry Pico поддерживает и некоторые ESP32 (в т.ч. и ESP32-C3). Поддержка плагином микроконтроллеров ESP32 экспериментальная но работает вполне неплохо, хотя иногда бывали глюки с повторным соединением при аппаратном сбросе микроконтроллера. Но подобные проблемы обычно пропадали после перезагрузки VSCode.

В остальных аспектах Micropython вполне прекрасно работает на ESP32-C3. Есть конечно определенная ограниченность в плане функциональности, но точно такая же ситуация есть и у других микроконтроллеров, в т.ч. и у Raspberry Pico. Всё-таки использование C/С++ и официальных SDK дает больше контроля и возможностей.

Впечатления от ESP32-C3 SuperMini

На первый взгляд ESP32-C3 SuperMini мне довольно быстро понравились. Чип идет сразу с поддержкой wifi (2.4 ГГц) и Bluetooth (5.0 Low Energy) и есть очень полезный и нужный мне режим DeepSleep с очень низким потребление энергии, а у Pico с этим были явные проблемы.

Памяти более чем достаточно (~400Kb SRAM, флеш на 4mb), процессор производительный (RISC-V на 160Mhz). Конечно как и у RP2040 нет аппаратного FPU для эффективных вычислений чисел с плавающей запятой, но это не всегда критично.

Платы ESP32-C3 очень компактные и с односторонним расположением компонентов и с 16 выведенными пинами по бокам. На фотографиях виден размер этих плат в сравнении с обычной пятирублевой монетой. Две платы у меня там лежат с уже припаянными пинами, а третьей платой, на которой присутствует разъем под антенну, пока еще не занимался. Все эксперименты с WiFi/Bluetooth делал только на самой левой плате, а на остальных особо не проверял.

Официальная документация по ESP32-C3 оказалась довольно хорошей. да и вообще в сети полно информации о нюансах этих микроконтроллеров вследствии их популярности. Платы широкодоступны в продаже и стоят около 150-200 рублей (на Aliexpress такие цены на момент написания статьи)!

Некоторые нюансы ESP32-C3 SuperMini

Не могу не упомянуть что качество этих плат ESP32-C3 SuperMini имеет определенную экземплярность. Я еще когда заказывал, узнал что у многих есть проблемы с работой WiFi/Bluetooth вроде бы из-за того что антенна слишком близко расположены к чипу и из-за этого помехи и очень плохой сигнал. Поскольку проблема нередкая я заказал несколько таких плат от разных производителей, среди которых одна имеет разъем под внешнюю антенну, если будут совсем уж сложности.

Я пока в основном пользовался только одной платой и с ней к счастью в процессе экспериментов проблем с WiFi не было. Сигнал был хороший, хотя допускаю что мне повезло с экземпляром. Остальные платы пока еще не проверял.

К сожалению на этих платах не стоит и мечтать о встроенных DC-DC (как это есть на обычных Raspberry Pico), ибо там стоит самый обычный LDO, хотя и у RP2040-Zero с которым я познакомился недавно тоже стоит LDO.

Ну и опять же большинство подобных дешевых плат часто комплектуются какими-то стальными штырями (отлично магнитятся) которые немного затруднительно паяются с помощью обычной спирто-канифоли (ФКСП) и желательно использовать более эффективный флюс.

Заключение

ESP32-C3 (и в частности SuperMini) за довольно низкую цену при своих возможностях являются отличными микроконтроллерами, поэтому я не удивлен что они всё чаще встречаются в недорогих бытовых устройствах, со всяким функционалом умного дома и беспроводной передачей. А ведь это еще самая младшая модель. Есть еще и ESP32-C6 у которого даже есть встроенная поддержка Zigbee для всяких умных домов. Но с ESP32-C6, как и с ESP32-S3 я пока еще не знаком и попробую позже.

Конечно это всё был очень поверхностный и ознакомительный опыт но в будущем надеюсь более глубоко познать эти микроконтроллеры. Также в дальнейшем планирую ознакомиться еще и с знаменитыми STM32 для расширения профессионального кругозора и понимания возможностей и ограничений каждого из этих микроконтроллеров. Да и просто это реально очень интересно.

↑ ↓