Примеры скетчей для SPI-камер ArduCAM
В папке examples шесть подпапок: для разных моделей ArduCAM и для хост-приложения. Структура папок показана на рисунке 1. Папка ESP8266 — примеры для платы ArduCAM-ESP8266-UNO. Папка Mini — для модулей ArduCAM-Mini-2MP и ArduCAM-Mini-5MP. Папка Mini_5MP_Plus — для модулей ArduCAM-Mini-5MP-Plus (OV5640/OV5642). Папка RevC — для шилдов ArduCAM-Shield-RevC и ArduCAM-Shield-RevC+. Папка Shield_V2 — для шилда ArduCAM-Shield-V2. Папка host_app — хост-приложение для захвата и просмотра изображений со всех модулей ArduCAM.

1. Примеры для ArduCAM Mini
Папка Mini содержит примеры для модулей ArduCAM Mini. Все примеры рассчитаны на ArduCAM-Mini-2MP и ArduCAM-Mini-5MP: нужная модель выбирается автоматически по макроопределению в файле memorysaver.h.
1.1. ArduCAM_Mini_Video_Streaming
Пример показывает, как непрерывно отправлять ArduCAM команды захвата и передавать данные JPEG хост-приложению через встроенный интерфейс USB-Serial платы Arduino. Чем выше разрешение, тем больше размер изображения и тем ниже частота кадров потока. Чтобы смотреть снимки, запустите пример вместе с хост-приложением.
1.2. ArduCAM_Mini_LowPowerMode
Пример похож на 1.1 и показывает, как после каждого захвата отключать лишнее энергопотребление сенсора и микросхемы памяти. Это полезно для устройств с батарейным питанием. Пример рекомендуется для модуля ArduCAM Mini 5MP: на полной мощности он сильно нагревается. Чтобы смотреть снимки, запустите пример вместе с хост-приложением.
1.3. ArduCAM_Mini_Capture2SD
Пример показывает, как снимать изображения с интервалом (таймлапс) и сохранять их на карту TF/SD.
1.4. ArduCAM_Mini_Video2SD
Пример показывает, как записывать видео MJPEG с низким разрешением и низкой частотой кадров в файл AVI.
1.5. ArduCAM_Mini_4CAM
Пример показывает, как подключить четыре модуля ArduCAM-Mini (2MP или 5MP) к адаптеру для нескольких камер ArduCAM и получать снимки через USB-Serial, как в примере 1.1. Пример работает с тем же хост-приложением.
2. Примеры для ArduCAM Mini 5MP Plus
Как и примеры для ArduCAM Mini, примеры из этой папки рассчитаны на модули ArduCAM-Mini-5MP-Plus (OV5640/OV5642) и используют их дополнительные возможности и производительность.
2.1. ArduCAM_Mini_5MP_Plus_Video_Streaming
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.1.
2.2. ArduCAM_Mini_5MP_Plus_LowPowerMode
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.2.
2.3. ArduCAM_Mini_5MP_Plus_Multi_Capture2SD
Пример показывает, как снимать серию кадров подряд и сохранять их на карту TF/SD; максимум — 7 снимков. Пример пригодится, если вы хотите собрать HDR-изображение из кадров с разной экспозицией: для этого вручную задавайте экспозицию в начале каждого кадра.
2.4. ArduCAM_Mini_5MP_Plus_short_movie_clip
Пример показывает, как записать короткий видеоролик: камера непрерывно снимает изображения JPEG, пока не заполнится весь буфер кадров на 8 МБ, а затем сохраняет кадры MJPEG в файл AVI на карту TF/SD. Файл AVI можно воспроизвести в медиаплеере на ПК.
2.5. ArduCAM_Mini_5MP_Plus_4CAM
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.5.
3. Примеры для ArduCAM Rev.C
Папка REVC содержит примеры для шилдов ArduCAM Rev.C и Rev.C+. Для них нужна дополнительная библиотека UTFT4ArduCAM_SPI, упомянутая ранее. Примеры рассчитаны на разные модули камер: нужный модуль выбирается автоматически по макроопределению в файле memorysaver.h.
3.1. ArduCAM_Camera_Playback
Пример снимает изображение BMP с разрешением 320 × 240 и сохраняет его на карту SD. Если удерживать кнопку спуска дольше 3 секунд, снимок воспроизводится на ЖК-экране.
3.2. ArduCAM_Digital_Camera
Пример работает как настоящий цифровой фотоаппарат: выводит изображение с камеры на ЖК-экран и по нажатию кнопки спуска снимает JPEG с высоким разрешением. Размер снимка должен помещаться во встроенный буфер кадра, иначе буфер переполнится.
3.3. ArduCAM_Video_Streaming
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.1.
3.4. ArduCAM_Capture2SD
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.3.
3.5. ArduCAM_Video2SD
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.4.
4. Примеры для ArduCAM Shield V2
Как и примеры для шилдов ArduCAM Rev.C/Rev.C+ и ArduCAM-Mini-5MP-Plus, примеры из этой папки рассчитаны на ArduCAM-Shield-V2 и используют её дополнительные возможности и производительность. Примеры рассчитаны на разные модули камер: нужный модуль выбирается автоматически по макроопределению в файле memorysaver.h. Примеры работают и с модулем ArduCAM-Nano-ESP8266.
4.1. ArduCAM_Camera_Playback
Аналогичен примеру для ArduCAM-Mini, см. раздел 3.1.
4.2. ArduCAM_Digital_Camera
Аналогичен примеру для ArduCAM-Mini, см. раздел 3.2.
4.3. ArduCAM_Video_Streaming
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.1.
4.4. ArduCAM_Multi_Capture2SD
Аналогичен примеру для ArduCAM-Mini, см. раздел 2.3.
4.5. ArduCAM_short_movie_clip
Аналогичен примеру для ArduCAM-Mini, см. раздел 2.4.
4.6. ArduCAM_MT9M001_Camera_RAW
Пример снимает изображение Bayer RAW с разрешением 1280 × 1240 и сохраняет его на карту TF/SD. Изображение на ЖК-экране будет выглядеть странно: экран поддерживает только формат RGB565, а при видео в формате RAW цвета передаются неправильно.
5. Примеры для ESP8266 UNO
Примеры из папки ESP8266 предназначены для платы ArduCAM ESP8266 UNO версий V1 и V2 и работают с модулями ArduCAM-Mini и ArduCAM-Mini-Plus.
5.1. ArduCAM_ESP8266_OVxxxx_Capture
Пример показывает, как получать изображение по стандартному протоколу HTTP и показывать снимки и видео на веб-странице из папки html. По умолчанию пример работает в режиме точки доступа (AP) с IP-адресом 192.168.4.1 без пароля. Параметры в примере можно изменить вручную, чтобы перевести камеру в режим станции (station) и подключить её к домашнему роутеру.
5.2. ArduCAM_ESP8266_Vx_OVxxxx_Capture2SD
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.3.
5.3. ArduCAM_ESP8266_Vx_OVxxxx_Video2SD
Аналогичен примеру для ArduCAM-Mini, см. раздел 1.4.