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

Камера MT9D111 с шилдом Arducam для Arduino UNO

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

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

Модуль камеры MT9D111 имеет параллельный интерфейс, поэтому напрямую к Arduino UNO его не подключить. Объёма SRAM у Arduino UNO (2 КБ у ATmega328P) не хватает даже на один кадр, а тактовая частота MT9D111 намного выше, чем способен обработать микроконтроллер ATmega328P. Шилд Arducam преобразует параллельный интерфейс в SPI, и через него камеру с параллельным интерфейсом можно использовать с Arduino UNO. Если нужна камера, которая подключается напрямую к Arduino или другим платформам, например ESP8266 и ESP32, посмотрите SPI-камеры Arducam: 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. Оборудование

Аппаратная часть примера
Аппаратная часть примера
Плата Arduino UNO

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

2.1. Загрузка архива с исходным кодом

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

Ссылка на скачивание архива с исходным кодом

Распакуйте архив и скопируйте четыре библиотеки в папку Arduino\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 — это, по сути, данные RGB565, сохранённые с заголовком BMP. Поэтому ЖК-экран может выводить поток в реальном времени напрямую.
  • Почему изображение BMP на SD-карте повёрнуто на 180°? Это связано со способом хранения данных в управляющей микросхеме.
Изображение BMP, снятое примером ArduCAM_Shield_V2_Camera_Playback
Изображение 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, снятое примером ArduCAM_shield_V2_MT9D111_Camera_JPEG
Изображение JPEG из примера ArduCAM_shield_V2_MT9D111_Camera_JPEG
ПримечаниеПочему ЖК-экран не показывает изображение в реальном времени? ЖК-экран поддерживает только изображения в формате RGB565, а JPEG — это закодированное изображение, а не исходные данные кадра. Перед выводом его нужно декодировать, поэтому напрямую на RGB-экране его не показать.
Результат работы примера ArduCAM_shield_V2_MT9D111_Camera_JPEG

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

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