224   221     15   57    

Как подключить модуль камеры OV7670 к Arduino

Транслируем изображение в реальном времени с помощью модуля камеры OV7670 на 1,8-дюймовый TFT ЖК-экран с помощью Arduino IDE.

Шаг 1. О проекте

В этом уроке мы покажем как отображать видео-поток с модуля камеры OV7670 на 1,8-дюймовый TFT ЖК-экран с помощью Arduino. OV7670 - самый доступный модуль камеры, который можно использовать с Arduino, поэтому вы можете использовать его во многих проектах.

Мы подключим, настроим и получим тестовый образ от OV7670 с помощью небольшой программы, написанной в Arduino IDE. Это может стать отправной точкой для его использования в будущих проектах. В уроке мы будем использовать библиотеку indrekluuk, и мы очень благодарны разработчикам этой библиотеки.

Шаг 2. Модуль камеры OV7670

Этот модуль позволяет захватывать изображения в формате VGA (640x480). Он может выполнять некоторую начальную обработку и передавать изображения на микроконтроллеры, такие как Arduino, через интерфейс SCCB.

Модуль камеры OV7670.
Модуль камеры OV7670.

Камера позволяет формировать изображения в других форматах, таких как CIF (352x240) например. Ручная регулировка до 40x30 также возможна. Максимальная скорость передачи изображения (VGA) может достигать 30 кадров в секунду. Камера также выполняет предварительную обработку изображений, например контроль экспозиции, усиление, баланс белого и многое другое. Также поддерживаются различные варианты кодирования изображений (YUV, различные типы RGB). Передача данных осуществляется по протоколу SCCB.

OV7670 характеристики

  • Разрешение VGA (640 x 480)
  • QVGA (320 х 240)
  • CIF (352 х 240)
  • QCIF (176 × 144);
  • Скорость передачи до 30 кадров в секунду,
  • несколько способов кодирования изображения RAW RGB, RGB 565/555, YUV / YCbCr 4: 2: 2.

Шаг 3. Комплектующие

Нам понадобится очень небольшой набор комплектующих (на фото выше слева направо):

Для понимания работы TFT-дисплея обязательно посмотрите Гид по работе с TFT-дисплеями.

Шаг 4. Схема соединения

Продолжаем со сборки всех компонентов, как показано на схеме ниже.

Соединения между OV7670 и Arduino Nano:

OV7670 Arduino Nano
VSYNC PIN2
XCLCK PIN3(должен быть сдвинут по уровню от 5 В => 3,3 В)
PCLCK PIN12
SIOD A4 (I2C data)
SIOC A5 (I2C clock)
DO D3 A0.. A3 (pixel data bits 0..3)
D4 D7 PIN4..PIN7 (pixel data bits 4..7)
3.3V 3.3V
RESET 3.3V
GND GND
PWDN GND

Соединения между TFT-дисплеем и Arduino Nano:

TFT Display Arduino Nano
DC PIN 8 (5V => 3.3V)
CS PIN 9 (5V => 3.3V)
RESET PIN 10 (5V => 3.3V)
SPI data PIN 11 (5V => 3.3V)
SPI clock PIN 13 (5V => 3.3V)
VCC 5V/3.3V (в зависимости от положения перемычки на плате TFT)
BL 3.3V
GND GND

Шаг 5. Компиляция в Arduino IDE

Скачать все нужные файлы вы можете на GitHub здесь.

  • Скопируйте "src/lib/LiveOV7670Library" и "src/lib/Adafruit_GFX_Library" в папку Arduino "libraries" (если у вас уже есть "Adafruit_GFX_Library", то вам не нужно её копировать).
  • Откройте "src/LiveOV7670/LiveOV7670.ino" в Arduino IDE.
  • Select Tools -> Board -> Arduino Uno/Nano.

Шаг 6. Настройка программы

Вы можете выполнить все действия шаг за шагом согласно скриншотам.

Сначала идем на Github.

Нажмите «Скачать ZIP» (Download ZIP), чтобы загрузить все файлы.

После загрузки разархивируйте файлы в нужную папку.

Откройте разархивированную папку и перейдите в каталог: LiveOV7670-master\src\lib. Скопируйте две папки в вашу библиотеку (Library) Arduino.

Перейдите в LiveOV7670-master\src\LiveOV7670. Откройте файл с именем setup.h.

При изменении значения примера 1 на пример 3, как показано на скриншоте ниже, камера будет транслировать изображение непосредственно на компьютер.

Когда установлен Пример 1, камера передает изображение непосредственно на ЖК-дисплей, который подключен через интерфейс SPI с использованием библиотеки LiveOV7670Library.

Установите Пример 1 для live-потока TFT.

Далее откройте файл LiveOV7670.ino.

В нижней правой части экрана выберите плату Arduino и порт (Port).

Загрузите код сверху без каких-либо изменений.

Вы увидите уведомление о том, что программа компилируется, как показано выше.

Шаг 7. Заключение

Эта дешевая и простая в использовании Arduino-совместимая камера полезна для проектов видеонаблюдения или в качестве системы для робототехники, использующей платформы, такие как OpenCV. Также можно использовать как обычную веб-камеру.

Ардуино+