Начало работы с платой Freenove ESP32-Wrover CAM
Это краткое руководство по началу работы с платой Freenove ESP32-Wrover CAM. Эта плата оснащена камерой OV2640, множеством GPIO для подключения периферийных устройств и встроенным программатором с USB-разъёмом, что упрощает загрузку кода на плату. Мы кратко рассмотрим плату и покажем несколько примеров программирования с использованием ядра Arduino для ESP32.
Подробный обзор характеристик Freenove ESP32-Wrover CAM смотрите в этом посте: Freenove ESP32-Wrover CAM Board: Overview and Pinout
Где купить?
Вы можете перейти по следующей ссылке, чтобы посмотреть камеру в разных магазинах:
Знакомство с платой Freenove ESP32-Wrover CAM
Плата Freenove ESP32-Wrover CAM — это плата разработки на базе ESP32 с чипом ESP32-Wrover-E (с 4 МБ PSRAM) и камерой OV2640.
Она имеет встроенный преобразователь USB-UART, поэтому загрузка кода на плату очень проста. Вам достаточно подключить USB-кабель к плате и подсоединить её к компьютеру для загрузки кода или подачи питания. Нет необходимости в дополнительных схемах или FTDI-программаторе (в отличие от платы ESP32-CAM AI-Thinker).
Плата имеет множество выведенных GPIO, если вы хотите подключить другие периферийные устройства, такие как датчики и исполнительные механизмы (значительно больше GPIO, чем у ESP32-CAM AI-Thinker). Кроме того, если вы не используете камеру, вы можете использовать её как обычный ESP32 с большим количеством доступных GPIO. GPIO с косой чертой над номерами — это те, которые используются камерой.
Есть кнопки RESET и BOOT, что упрощает перезагрузку платы или переключение в режим прошивки при необходимости.
На плате есть четыре встроенных светодиода:
ON: когда горит, это означает, что плата подключена к питанию.
RX/TX: мигают при использовании последовательной связи.
IO2: встроенный светодиод, подключённый к GPIO 2 — полезен для отладки.
Эта плата очень практична, единственный недостаток — отсутствие слота для microSD-карты. Однако на ней есть доступные GPIO, которые можно использовать для подключения внешнего модуля microSD-карты при необходимости.
Характеристики платы Freenove ESP32-Wrover CAM
Вот краткое описание характеристик платы Freenove ESP32-Wrover CAM:
Чип ESP32-Wrover-E с 4 МБ PSRAM
Встроенный преобразователь USB-UART (драйверы CH340C) — не нужен FTDI-программатор
Камера OV2640, 2 мегапикселя
Кнопки BOOT и RST
Светодиодные индикаторы (RX/TX, ON/OFF и встроенный светодиод (GPIO2))
Встроенная антенна
Распиновка платы Freenove ESP32-Wrover CAM
На следующей схеме показана распиновка платы ESP32-Wrover CAM. Вы можете нажать на изображение, чтобы увидеть его в полном размере.
На схеме есть подписи, указывающие функции каждого вывода. Вы можете чётко видеть, какие выводы используются камерой, выводы питания, ШИМ-выводы, выводы АЦП и т.д.
Определение выводов камеры Freenove ESP32-Wrover CAM
Вот таблица с подключениями между ESP32 и камерой:
Камера OV2640 |
ESP32 |
|---|---|
XCLK |
GPIO 21 |
SIOD |
GPIO 26 |
SIOC |
GPIO 27 |
Y9 |
GPIO 35 |
Y8 |
GPIO 34 |
Y7 |
GPIO 39 |
Y6 |
GPIO 36 |
Y5 |
GPIO 19 |
Y4 |
GPIO 18 |
Y3 |
GPIO 5 |
Y2 |
GPIO 4 |
VSYNC |
GPIO 25 |
HREF |
GPIO 23 |
PCLK |
GPIO 22 |
Обратите внимание, что при использовании камеры вы не можете подключать периферийные устройства к GPIO, используемым камерой. В противном случае камера не будет работать корректно. Когда вы не используете камеру, вы можете использовать эту плату ESP32 как «обычную» ESP32 и использовать выводы камеры для других целей.
Определение выводов для платы ESP32-Wrover CAM (бренд Freenove) в ваших скетчах Arduino должно быть следующим (в некоторых примерах Arduino это определение выводов находится под определением CAMERA_MODEL_WROVER_KIT).
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 21
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 19
#define Y4_GPIO_NUM 18
#define Y3_GPIO_NUM 5
#define Y2_GPIO_NUM 4
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
Поскольку эта плата использует ту же камеру, что и плата ESP32-CAM, примеры для ESP32-CAM (которые не используют microSD-карту) также должны работать с камерной платой Freenove ESP32, если изменить определение выводов. Примеры, использующие microSD-карту, также должны быть совместимы при использовании внешнего модуля microSD-карты и соответствующей корректировке определения выводов в коде.
Freenove ESP32-Wrover CAM vs ESP32-CAM AI-Thinker
Какая плата лучше? ESP32-CAM AI-Thinker или Freenove ESP32-Wrover Cam? Это зависит от требований вашего проекта, давайте сравним эти платы.
И ESP32-CAM AI-Thinker, и Freenove ESP32 Camera поставляются с чипом ESP32. Платы AI-Thinker обычно поставляются с чипом ESP32-S, а бренд Freenove — с ESP32-Wrover-E. Оба чипа схожи по производительности.
Обе платы имеют одну и ту же модель камеры — OV2640. Это означает, что большинство проектов для ESP32 AI-Thinker также будут работать с платой Freenove и наоборот — достаточно изменить назначение выводов в коде.
ESP32-CAM AI-Thinker имеет встроенный слот для microSD-карты, а Freenove — нет. Freenove имеет больше доступных GPIO, чем AI-Thinker, включая GPIO, используемые камерой. Это означает, что когда вы не используете камеру, у вас есть больше GPIO для использования, почти как у обычной платы ESP32. Если вы планируете использовать microSD-карту в своих проектах, возможно, ESP32-CAM будет лучшим вариантом. Однако вы можете легко подключить модуль microSD-карты к Freenove, потому что у неё есть несколько свободных GPIO.
Freenove имеет кнопки BOOT и RESET, тогда как большинство плат ESP32-CAM AI-Thinker имеют только кнопку RESET.
Freenove имеет встроенные индикаторные светодиоды, а AI-Thinker — нет. Это заставляет меня думать, что ESP32-CAM AI-Thinker лучше с точки зрения энергопотребления, хотя я это не тестировал.
Freenove имеет встроенный преобразователь USB-TTL, что означает, что вы можете легко загружать код на плату и подавать питание через USB-разъём. Плата AI-Thinker не имеет этой функции, что является большим недостатком при экспериментах с кодом и отладке — загрузка кода может стать утомительной задачей.
Freenove имеет встроенную антенну, тогда как AI-Thinker доступна как со встроенной антенной, так и с возможностью подключения внешней антенны для увеличения дальности Wi-Fi.
Для лучшего сравнения ESP32-CAM AI-Thinker и Freenove ESP32-Wrover CAM смотрите таблицу ниже.
Программирование платы ESP32-Wrover CAM с помощью Arduino IDE
В этом руководстве по началу работы мы покажем краткий пример, демонстрирующий, как программировать вашу плату с помощью Arduino IDE. Перед началом у вас должна быть установлена Arduino IDE на компьютере, а также дополнение ESP32 для Arduino IDE.
Мы рекомендуем следовать следующему руководству для установки Arduino IDE и добавления поддержки плат ESP32, если вы ещё этого не сделали:
Пример веб-сервера видеостриминга Freenove ESP32-Wrover CAM
В этом разделе мы загрузим пример, который создаёт веб-сервер видеостриминга, к которому вы можете получить доступ в вашей локальной сети.
В Arduino IDE перейдите в Tools > Board > ESP32 Arduino, затем выберите ESP32 Wrover Module.
Перейдите в File > Examples > ESP32 > Camera и откройте пример CameraWebServer.
Убедитесь, что вы выбрали правильную плату в коде (уберите // перед CAMERA_MODEL_WROVER_KIT и убедитесь, что все остальные выборы плат имеют //), как показано ниже:
// ===================
// Select camera model
// ===================
#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
Затем прокрутите код немного вниз и введите ваши сетевые учётные данные в переменные ssid и password, чтобы плата могла подключиться к вашей сети.
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
После выбора правильной платы и ввода сетевых учётных данных вы можете загрузить код на плату.
Загрузка кода на плату Freenove ESP32-Wrover CAM
Загрузка кода на Freenove ESP32-Wrover CAM очень проста — нет необходимости в дополнительных схемах или FTDI-программаторе. Вам достаточно подключить USB-кабель (с проводами данных — USB-кабели, предназначенные только для зарядки, не подойдут для загрузки кода) к USB-разъёму платы и подсоединить его к компьютеру.
Затем в Arduino IDE перейдите в Tools > Port и выберите COM-порт, к которому подключена плата.
Не видите COM-порт или он недоступен? Это означает, что у вас, возможно, не установлены необходимые драйверы. Эта конкретная плата использует драйверы CH340. Выполните быстрый поиск для установки этих драйверов на вашу операционную систему. После установки драйверов попробуйте загрузить код снова.
Затем вам нужно выбрать модель платы в меню Tools.
Выберите следующие настройки:
Board: ESP32 Wrover Module
Partition Scheme: Huge APP (3MB No OTA) (или другую, в зависимости от требований вашего проекта).
Наконец, просто нажмите кнопку загрузки.
Через несколько секунд код должен быть успешно загружен на плату.
Демонстрация
После загрузки кода откройте Serial Monitor в Arduino IDE на скорости 115200 бод.
Нажмите кнопку RST на плате. IP-адрес ESP32 будет выведен в Serial Monitor.
Откройте браузер в вашей локальной сети и введите IP-адрес ESP32. В моём случае:
http://192.168.1.142
Вы должны получить доступ к странице, где можно запустить видеостриминг и делать фотографии с камеры.
Нажмите кнопку Start Streaming, чтобы запустить видеостриминг, или кнопку Get Still, чтобы сделать фото.
Также есть несколько меню, с которыми можно поэкспериментировать для настройки параметров камеры.
Для более высоких разрешений качество изображения довольно хорошее. Однако видеостриминг в высоких разрешениях на этой плате немного медленный, если вы не находитесь рядом с роутером.
В настоящее время этот пример не поддерживает распознавание лиц для этой платы, но обнаружение лиц работает для разрешения CIF и ниже.
Заключение
Это руководство было кратким введением в плату Freenove ESP32-Wrover CAM. В зависимости от требований вашего проекта, это может быть хорошей альтернативой наиболее популярной ESP32-CAM AI-Thinker.
У нас есть другие проекты, которые вы можете попробовать с платой Freenove ESP32-Wrover CAM. Следующие руководства совместимы, просто убедитесь, что вы скорректировали назначение выводов в коде: