Модуль камеры OV7670
Камера для Arduino.VGA-модуль
Модуль видеокамеры предназначен для работы в составе электронного фотоаппарата, приборов видеотрансляции и видеозаписи. Информация на выходе модуля представляется в цифровом виде. VGA-модуль OV7670 300KP совместим с различными микроконтроллерами. Высокая чувствительность позволяет работать в условиях низкой освещенности. По шине управления можно настроить качество изображения, формат данных и режим передачи. Особенности модуля позволяют автоматически поддерживать высокое качество изображения путем уменьшения или устранения зашумленности, выравнивания баланса цвета, повышения четкости изображения, установки оптимальной насыщенности, контрастности, гаммы и оттенка изображения. Эти особенности прибора OV7670 300KP позволяют его применять в системах видеонаблюдения входящих в комплексы “умный дом”, охранные системы. Малый вес устройства позволяет устанавливать его на автоматические аэросистемы и различные подвижные платформы. Энтузиастами ведутся разработки в области определения расстояний до препятствия с помощью двух камер.
Характеристики
Питание
напряжение
диапазон 5,5 – 3,3 В
номинальное 3,3 В
потребляемая мощность 60 мВт
ток в режиме сна менее 20 мкА
Уровень напряжения лог. 1 на контактах сигналов в диапазоне 2,5 – 3 В
Интерфейсы OV7670 300KP: SCCB совместим с I2C и параллельный 8 линий
Чувствительность 1,3 В (люкс-секунда)
Отношение сигнал-шум 46 db
VGA-модуль имеет динамический диапазон 52 db
Темновой ток 12 мВ/с при 60 ° С
Разрешающая способность 0,3 мегапиксель
максимальная 640 х 480 точек
минимальная 40 x 30 точек
Развертка по строкам
Поддерживается масштабирование изображения
Форматы передачи цвета: RGB565, RGB555, RGB444, YUV/YCbCr 4:2:2, GRB 4:2:2, Raw RGB Data
Максимальная скорость передачи 30 кадр/с
Размер объектива 1/6 "
Угол обзора 25 °
Методы автокоррекции: AEC, AGC, AWB, ABF, ABLC
Автокомпенсация помехи 50, 60 Гц
Прогрессивный режим просмотра
Электронная экспозиция от одной линии до 510
Температура окружающего воздуха во время работы OV7670 300KP
рекомендуемая от 0 до 50 °С
предельная от –30 до 70 °C
Размер пикселя 3,6 x 3,6 мкм
Вес 12 г
Особенности
Для OV7670 существуют множество настроек. Программируется качество изображения, формат данных и режим передачи. Обработка изображения настраивается записью данных в специальные регистры микросхемы OV7670 с помощью интерфейса Serial Camera Control Bus (SCCB) – аналог шины I2C. Частота дискретизации 30 кадров в секунду соответствует стандарту VGA. Скорость передачи кадров устанавливается программно. Также доступны форматы: QVGA 320х240, CIF 352х240, QCIF 176x144. Разрешающая способность может принудительно снижаться до 40x30 точек.
Данные о цвете передаются с помощью установленной программистом кодировки. Используются два основных типа кодирования YCbCr и RGB, который имеет три варианта: RGB565, RGB555, RGB444. Здесь цифры означают количество бит на один цвет. Например, RGB565 это 5 бит на красный, 6 бит на зеленый и 5 бит на синий. В случае кодировки RGB для передачи данных о цвете пикселя потребуется 2 байта. Передача кодировки цвета YCbCr сложнее.
По умолчанию установлен формат VGA 640х480. 30 кадров, 480 строк. На выходе HREF сигнал с частотой 14,4 кГц. Частота обусловлена параметрами изображения 30 кадров х 480 строк = 14400 Гц.
Схема и компоненты
Изображение объектов, находящихся перед объективом камеры для Arduino, фокусируется на поверхности микросхемы OV7670, расположенной на плате под объективом. Микросхема U1 преобразует фотоинформацию в цифровой вид и обеспечивает передачу данных по интерфейсу. Для питания микросхемы на плате смонтированы два интегральных стабилизатора напряжений 2,8 и 1,8 вольт. В схему устройства входит несколько пассивных компонентов, обеспечивающих работу стабилизаторов и светочувствительной микросхемы.
Контакты и сигналы
Контакт |
Тип | Сигнал |
3V3 | питание | |
GND | общий провод | |
SIO_C | вход | такт интерфейса SCCB управления камерой |
SIO_D | вход-выход | данные интерфейса SCCB управления камерой |
VSYNC | выход | кадровая синхронизация |
HREF | выход | строчная синхронизация |
PCLK | выход | такт передачи байта из параллельного порта D0–D7 |
XCLK | вход | главный такт для работы OV7670 |
D7–D0 | выходы | параллельный видеовыход |
RESET | вход | сброс лог. 0 |
PWDN | вход | включение лог. 0 и выключение лог. 1 камеры |
Наилучшее подключение прибора – непосредственная установка вилки соединителя в розетку основного модуля прибора видеонаблюдения. Частоты сигналов могут доходить до 24 МГц. В связи с этим линии подключения модуля видеокамеры выполняются в соответствии с требованиям к высокочастотным соединениям. Среди них главное требование выполнять соединения как можно более короткими проводниками.
Напряжение питания микроконтроллеров выше предельного напряжения сигналов модуля. Для обеспечения соответствия уровней сигналов МК и VGA-модуля необходимо устанавливать согласующие цепи. Для входа SIO_C необходимо сделать резисторный делитель напряжения для выполнения требования по максимальному уровню входного сигнала модуля видеокамеры. Для контакта SIO_D так сделать нельзя, он является двунаправленной линией. К счастью, Arduino имеет встроенную поддержку протокола I2C с рабочим напряжением 3,5 В на контактах A4 SDA и A5 SCL. Величину резисторов делителей нужно подбирать. Другой вариант согласования уровней SIO_D и SIO_C – установка на этих линиях резисторов подтяжки к питанию 3,3 В сопротивлением 3,3 кОм.
Обмен данными с камерой по шине I2C возможен, если подана тактовая частота на вход XCLK. Рекомендуемая частота этого сигнала 24 МГц. Используя в качестве источника сигнала 8 МГц, микроконтроллер и установив в МС OV7670 умножение частоты на 3, получим требуемые 24 МГц. При напряжении питания генератора 5 В тактовый сигнал XCLK подается через согласующий резисторный делитель напряжения из одинаковых резисторов 4,7 кОм.
Видеоинтерфейс модуля OV7670 300KP использует синхроимпульсы по кадрам VSYNC, по строкам HREF и по пикселям PCLK. Данные пикселя, представляющие собой закодированную информацию о его цвете, передаются по параллельному интерфейсу D7–D0 по тактам PCLK. Для передачи данных о цвете используются 2 байта, отправляемые по очереди.
Расположение бит кодировки цвета RGB565 в двух байтах.
Расположение бит кодировки цвета RGB555 в двух байтах.
Расположение бит в трех видах кодировок цвета в двух байтах.
Диаграмма сигналов несущих информацию о цвете.
Проверка работоспособности
Подать питание на VGA-модуль величиной 3,3 В. Подать на вход XCLK меандр частотой 24 МГц используя изложенные выше рекомендации. С помощью осциллографа убедиться в наличии сигналов на выходах: PCLK – 24 МГц, VSYNC – 30 Гц, HREF – 14,4 кГц, на D0–D7 должны быть видны информационные посылки. Если камера для Arduino формирует перечисленные сигналы, значит она работоспособна.