К содержимому
  1. Главная
  2. Документация
  3. Камеры для Arduino и MCU
  4. Быстрый старт: камера MT9D111 с Arducam Shield V2 на Arduino UNO

Быстрый старт: камера MT9D111 с Arducam Shield V2 на Arduino UNO

Документация Arducam · перевод arducam-russia.ru

Arduino Uno — плата с открытой архитектурой на микроконтроллере Microchip ATmega328P, её разрабатывает Arduino.cc.

У модуля камеры MT9D111 параллельный интерфейс, поэтому напрямую к Arduino UNO его не подключить. SRAM у Arduino UNO (2 КБ у ATmega328P) слишком мала, чтобы вместить даже один кадр, а тактовая частота MT9D111 намного выше, чем способен обработать микроконтроллер ATmega328P. Шилд Arducam преобразует параллельный интерфейс в SPI, и через него камеру с параллельным интерфейсом можно использовать с Arduino UNO. Есть и SPI-камеры Arducam, которые подключаются к Arduino и другим платформам, например ESP8266 и ESP32, напрямую. Подробнее — на страницах Arducam Shield Mini 2MP Plus и Arducam Shield Mini 5MP Plus.

Итак, чтобы работать с модулем камеры MT9D111 на Arduino UNO, нужен шилд. Что это за плата, описано в документации.

Плата Arducam Shield V2, вид сверху
Плата Arducam Shield V2, вид снизу

Ниже показано, как с помощью камеры Arducam MT9D111 и шилда снимать изображения в форматах JPEG и BMP на Arduino UNO.

1. Оборудование

Оборудование для подключения MT9D111 к Arduino UNO, фото 1
Оборудование для подключения MT9D111 к Arduino UNO, фото 2
Плата Arduino UNO

2. Программное обеспечение

2.1. Скачайте пакет с исходным кодом

Подробнее — в документации.

Репозиторий с исходным кодом
Скачивание архива с исходным кодом

Распакуйте архив с исходным кодом и скопируйте четыре пакета библиотек в папку libraries среды Arduino.

Пакеты библиотек в папке libraries

2.2. Быстрый старт

Можно действовать по документации.

Шаг 1.

Откройте файл memorysaver.h из папки Arduino\libraries\ArduCAM.

Шаг 2.

Раскомментируйте строку #define ARDUCAM_SHIELD_V2, а также строку #define MT9D111B_CAM или #define MT9D111A_CAM.

//Step 1: select the hardware platform, only one at a time
//#define OV2640_MINI_2MP
//#define OV3640_MINI_3MP
//#define OV5642_MINI_5MP
//#define OV5642_MINI_5MP_BIT_ROTATION_FIXED
#define OV2640_MINI_2MP_PLUS
//#define OV5642_MINI_5MP_PLUS
//#define OV5640_MINI_5MP_PLUS
//#define ARDUCAM_SHIELD_REVC
#define ARDUCAM_SHIELD_V2
//Step 2: Select one of the camera module, only one at a time
#if (defined(ARDUCAM_SHIELD_REVC) || defined(ARDUCAM_SHIELD_V2))
 //#define OV7660_CAM
 //#define OV7725_CAM
 //#define OV7670_CAM
 //#define OV7675_CAM
 //#define OV2640_CAM
 //#define OV3640_CAM
 //#define OV5642_CAM
 //#define OV5640_CAM

 //#define MT9D111A_CAM
 #define MT9D111B_CAM
 //#define MT9M112_CAM
 //#define MT9V111_CAM
 //#define MT9M001_CAM
 //#define MT9V034_CAM
 //#define MT9M034_CAM
 //#define MT9T112_CAM
 //#define MT9D112_CAM
ПримечаниеУ MT9D111A и MT9D111B разные адреса сенсора:
  • MT9D111A — 0xbe;
  • MT9D111B — 0 × 90.

2.3. Примеры скетчей

2.3.1. ArduCAM_Shield_V2_Camera_Playback

Откройте пример ArduCAM_Shield_V2_Camera_Playback, как показано на рисунке.

Пример ArduCAM_Shield_V2_Camera_Playback в меню Arduino IDE
  • Скомпилируйте скетч и загрузите его в Arduino.
  • Проверьте, что карта SD вставлена.
  • Нажмите кнопку button1 на шилде, чтобы сделать снимок.
  • Снимки сохраняются на карту SD.
ПримечаниеОтветы на частые вопросы о режиме BMP:
  • Почему ЖК-экран показывает изображение в реальном времени? Файл BMP — это, по сути, данные RGB565, сохранённые с заголовком BMP, поэтому ЖК-экран выводит поток в реальном времени напрямую.
  • Почему изображение BMP на карте SD повёрнуто на 180°? Это связано со способом записи данных у главного управляющего чипа.
Снимок в формате BMP
Изображение в формате BMP из примера ArduCAM_Shield_V2_Camera_Playback

2.3.2. ArduCAM _shield_V2_MT9D111_Camera_JPEG

Откройте пример ArduCAM _shield_V2_MT9D111_Camera_JPEG, как показано на рисунке.

Пример ArduCAM _shield_V2_MT9D111_Camera_JPEG в меню Arduino IDE
  • Скомпилируйте скетч и загрузите его в Arduino.
  • Проверьте, что карта SD вставлена.
  • Нажмите кнопку button1 на шилде, чтобы сделать снимок.
  • Снимки сохраняются на карту SD.
Снимок в формате JPEG
Изображение в формате JPEG из примера ArduCAM _shield_V2_MT9D111_Camera_JPEG
ПримечаниеПочему ЖК-экран не показывает изображение в реальном времени? ЖК-экран поддерживает только изображения RGB565, а JPEG — закодированное изображение. Это не «сырые» данные кадра: перед выводом их нужно декодировать, поэтому напрямую на RGB-экране они не отображаются.
Снимок в формате JPEG с камеры MT9D111

Запросить цену

Укажите количество — пришлём коммерческое предложение.