Китайцы не спят, выпускают новые версии ESP32-CAM. Я тоже решил не спать и сделал свою версию платы разработки (Development Boards) на базе отладочной платы ESP32-DEVKITC с установленным модулем ESP32-WROVER-B и отдельного модуля видеокамеры - вариантов которых на Ali можно найти великое множество.
Обычно когда слышат ESP32-CAM то имеют в виду вот это:
Но, по факту, разновидностей этих плат существует огромное множество.
Программное обеспечение открытое, а значит ни что не мешает изучить документацию и собрать свой вариант такой платы самостоятельно. Например вот такой:
На обратной стороне платы находится SD-READER для чтения карт памяти формата uSD. В нижнем уголке нарезана резьба для установки на стандартный штатив для фотоаппарата. В верхнем уголке просверлено отверстие для установки внешней Wi-Fi антенны (версия ESP32-WROVER-IB позволяет её подключение.
Для питания платы установлено гнездо DC005 2.5*5.5 мм. Для внешнего питания используется БП от ТВ приставки, который все равно у меня валялся без дела. Важно, при работе с камерой ESP32 потребляет достаточно большие токи (особенно в момент подключения к Wi-Fi и инициализации камеры) - на питание от USB рассчитывать не стоит. Внешний источник питания с напряжением 5V обязателен, иначе либо не будет запускаться камера, либо ESP32 будет уходить постоянно уходить в перезагрузку при подключении к Wi-FI. (это касается любых плат ESP32-CAM, да и не CAM тоже). Для экспериментов на плате установлена кнопка. Модуль RGB-светодиода, и дисплей съемные.
Все порты ввода/вывода и питание выведены на отдельные гребенки и в случае необходимости могут быть использованы по своему усмотрению.
Принципиальная электрическая схема и особенности проектирования.
Самое простое было взять существующую схему подключения для какой-нибудь готовой платы - в среде Arduino IDE их огромный набор:
однако получалось такое огромное количество пересечений дорожек, что сделать такую плату с помощью утюга становилось весьма проблематично даже если использовать двухстороннюю ЛУТ). Макроопределения пришлось вынести в отдельный файл и переписывать под себя с учетом того, что:
GPIO: IO36, IO39, IO34, IO35 могут работать только на вход (туда повесил шину данных камеры);
GPIO: TX, RX UART0 (туда уже подключен USB-UART преобразователь через который в плату заливается прошивка);
GPIO: IO17, IO16 заняты внешней PSRAM памятью интегрированной в чип ESP32-WROVER-B;
GPIO: D1, D0, CLK, CMD, D3, D2 заняты SPI-Flash памятью интегрированной в чип ESP32-WROVER-B;
GPIO: IO2, IO15, IO14 аппаратная шина для чтения SD карт SD_MMC (для ESP32 с помощью коммутатора не переопределяется).
В отличии от скрепной Arduino на AVR в ESP32 можно программно переназначить интерфейсы с помощью встроенного коммутатора на другие порты ввода/вывода, поэтому для дисплея 1.3" SH1106 OLED работающего по протоколу i2c было решено использовать GPIO 26, 27.
на GPIO12 подключается самодельный модуль адресного светодиода - писал про него тут
на GPIO13 подключена кнопка (если кнопкой не пользоваться - то можно порт забрать с гребенки под свои нужды).
На этой фотографии не модуль SD-READER (обвязки на этой плате нет), а разъем-переходник uSD на шаг 2.54 (DIP).
Подключен он на аппаратную шину SD_MMC - подробнее в этой статье
Здесь только добавлю, что вместо подтягивающего резистора используется GPIO_0. Зачем так и почему читайте по ссылке выше.
Картридер в проектах с ESP32 CAM требуется не часто, поэтому если он не нужен его и резисторы обвязки можно не припаивать, а разрезав дорожку между GPIO_2 и GPIO_0 появляются лишние дополнительные порты.
Все управляющие линии развел авто-трассировщик на нижем слое (синие линии). Питание разводил вручную - потребуется 2 перемычки (красный цвет).
Плата была сделана с помощью утюга
Переходник для чтения карт памяти установлен на обратную сторону платы. По идее тут нужны втулки-заклепки для печатных плат - но поскольку картридер требуется не часто - я его просто подключил через угловую гребенку.
На самом деле фотографии при работе с ESP32-CAM проще отправлять в сеть ("телега", сайт, файловый ресурс, электронная почта) - поэтому для разовой акции заморачиваться с двусторонним ЛУТ мне было лень, а если в готовую конструкцию потребуется плата без картридера - то можно вытравить туже самую плату, только не припаивать обвес и сам карт-ридер.
В отличии от стандартных плат ESP32-CAM - сюда можно подключать и другие модули камер попадающиеся на Ali:
Набор получился не дешевый - все желающие могут посмотреть стоимость компонентов по ссылкам ниже:
https://alli.pub/72mxmy?erid=2SDnjcVqiAP
https://alii.pub/72mxsl?erid=2SDnjbukfeK
https://alli.pub/72my3o?erid=2SDnjcofExB
https://alli.pub/72my8x?erid=2SDnjcz3ptT
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
но, этот самодельный девелопмент-кит и не предназначен для установки в готовые конструкции. Его цель, возможность комфортной разработки и отладки кода - без необходимости разводить кучу соплей из проводов на макетной плате, из-за плохих контактов которой, могут наблюдаться различные глюки. Перезалить хорошо оттестированный собственный код в дешевый ESP32-CAM для готовой конструкции никто ведь не мешает.
Да и вообще, приятно сделать своими руками вещь, которую до тебя еще никто не делал. Но это мое мнение, а свое оставляете в комментариях.
Оглавление канала тут:
Всем удачи!