Начало работы с платой Freenove ESP32-Wrover CAM

Это краткое руководство по началу работы с платой Freenove ESP32-Wrover CAM. Эта плата оснащена камерой OV2640, множеством GPIO для подключения периферийных устройств и встроенным программатором с USB-разъёмом, что упрощает загрузку кода на плату. Мы кратко рассмотрим плату и покажем несколько примеров программирования с использованием ядра Arduino для ESP32.

Начало работы с платой Freenove ESP32-Wrover CAM

Подробный обзор характеристик Freenove ESP32-Wrover CAM смотрите в этом посте: Freenove ESP32-Wrover CAM Board: Overview and Pinout

Где купить?

Вы можете перейти по следующей ссылке, чтобы посмотреть камеру в разных магазинах:

Freenove ESP32-Wrover CAM Board

Знакомство с платой Freenove ESP32-Wrover CAM

Плата Freenove ESP32-Wrover CAM — это плата разработки на базе ESP32 с чипом ESP32-Wrover-E (с 4 МБ PSRAM) и камерой OV2640.

Чип Freenove ESP32-Wrover-E

Она имеет встроенный преобразователь USB-UART, поэтому загрузка кода на плату очень проста. Вам достаточно подключить USB-кабель к плате и подсоединить её к компьютеру для загрузки кода или подачи питания. Нет необходимости в дополнительных схемах или FTDI-программаторе (в отличие от платы ESP32-CAM AI-Thinker).

USB-разъём Freenove ESP32-CAM

Плата имеет множество выведенных GPIO, если вы хотите подключить другие периферийные устройства, такие как датчики и исполнительные механизмы (значительно больше GPIO, чем у ESP32-CAM AI-Thinker). Кроме того, если вы не используете камеру, вы можете использовать её как обычный ESP32 с большим количеством доступных GPIO. GPIO с косой чертой над номерами — это те, которые используются камерой.

GPIO Freenove ESP32-Wrover Cam

Есть кнопки RESET и BOOT, что упрощает перезагрузку платы или переключение в режим прошивки при необходимости.

Кнопки BOOT и RST на Freenove ESP32-Wrover Cam

На плате есть четыре встроенных светодиода:

  • ON: когда горит, это означает, что плата подключена к питанию.

  • RX/TX: мигают при использовании последовательной связи.

  • IO2: встроенный светодиод, подключённый к GPIO 2 — полезен для отладки.

Встроенные светодиоды Freenove ESP32-Wrover Cam

Эта плата очень практична, единственный недостаток — отсутствие слота для 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

Источник изображения

На схеме есть подписи, указывающие функции каждого вывода. Вы можете чётко видеть, какие выводы используются камерой, выводы питания, ШИМ-выводы, выводы АЦП и т.д.

Определение выводов камеры 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? Это зависит от требований вашего проекта, давайте сравним эти платы.

Freenove ESP32-Wrover Cam vs ESP32-CAM AI-Thinker

И 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 смотрите таблицу ниже.

Freenove ESP32-Wrover CAM

ESP32-CAM AI-Thinker

Изображение

../../../_images/Freenove-ESP321.png ../../../_images/ESP32-CAM-300h.jpg

Чип

ESP32-Wrover-E

ESP32-S

PSRAM

4 МБ

4 МБ

Доступные GPIO

30

6

Встроенный программатор

Да

Нет

Антенна

Встроенная

Встроенная и внешняя

Индикаторные светодиоды

Да

Нет

Программирование платы 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.

Arduino IDE — выбор ESP32 Wrover Module

Перейдите в File > Examples > ESP32 > Camera и откройте пример CameraWebServer.

Arduino IDE — пример CameraWebServer

Убедитесь, что вы выбрали правильную плату в коде (уберите // перед CAMERA_MODEL_WROVER_KIT и убедитесь, что все остальные выборы плат имеют //), как показано ниже:

Пример CameraWebServer — выбор camera 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, чтобы плата могла подключиться к вашей сети.

Пример CameraWebServer — SSID и пароль
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-порт, к которому подключена плата.

Arduino IDE — выбор COM-порта

Не видите COM-порт или он недоступен? Это означает, что у вас, возможно, не установлены необходимые драйверы. Эта конкретная плата использует драйверы CH340. Выполните быстрый поиск для установки этих драйверов на вашу операционную систему. После установки драйверов попробуйте загрузить код снова.

Затем вам нужно выбрать модель платы в меню Tools.

Настройки платы Arduino IDE для Freenove ESP32-Wrover CAM

Выберите следующие настройки:

  • Board: ESP32 Wrover Module

  • Partition Scheme: Huge APP (3MB No OTA) (или другую, в зависимости от требований вашего проекта).

Наконец, просто нажмите кнопку загрузки.

Кнопка загрузки Arduino IDE

Через несколько секунд код должен быть успешно загружен на плату.

Демонстрация

После загрузки кода откройте Serial Monitor в Arduino IDE на скорости 115200 бод.

Кнопка Serial Monitor Arduino IDE

Нажмите кнопку RST на плате. IP-адрес ESP32 будет выведен в Serial Monitor.

Пример CameraWebServer — IP-адрес в Serial Monitor

Откройте браузер в вашей локальной сети и введите IP-адрес ESP32. В моём случае:

http://192.168.1.142

Вы должны получить доступ к странице, где можно запустить видеостриминг и делать фотографии с камеры.

Нажмите кнопку Start Streaming, чтобы запустить видеостриминг, или кнопку Get Still, чтобы сделать фото.

Кнопки управления CameraWebServer ESP32-CAM

Также есть несколько меню, с которыми можно поэкспериментировать для настройки параметров камеры.

Видеостриминг ESP32 CameraWebServer в браузере

Для более высоких разрешений качество изображения довольно хорошее. Однако видеостриминг в высоких разрешениях на этой плате немного медленный, если вы не находитесь рядом с роутером.

В настоящее время этот пример не поддерживает распознавание лиц для этой платы, но обнаружение лиц работает для разрешения CIF и ниже.

Обнаружение лиц ESP32 CameraWebServer

Заключение

Это руководство было кратким введением в плату Freenove ESP32-Wrover CAM. В зависимости от требований вашего проекта, это может быть хорошей альтернативой наиболее популярной ESP32-CAM AI-Thinker.

У нас есть другие проекты, которые вы можете попробовать с платой Freenove ESP32-Wrover CAM. Следующие руководства совместимы, просто убедитесь, что вы скорректировали назначение выводов в коде: