Данная камера ov7670 является самым доступным модулем для получения изображения совместно с Arduino.
Модуль камеры имеет следующие характеристики:
- различные разрешение VGA (640 х 480); — QVGA (320 х 240); — CIF (352 х 240); — QCIF (176 × 144);
- скорость передачи до 30 fps,
- несколько способов кодирование изображения RAW RGB, RGB 565/555, YUV/YCbCr 4:2:2
В данной статье попробуем подключить, настроить и получить тестовое изображение с помощью небольшой программки написанной в среде Arduino IDE, что станет начальной точкой для дальнейшего применения в различных проектах.
Подключение OV7670 к Arduino
Начнем с сборки схемы и написания программы управления. Итак для сборки и отладки тестового макета нам потребуется :
Внешний вид макета
После того как Все компоненты собраны, приступаем к сборке схемы.
Чтобы не запутаться в схеме, для наглядности, распишем что и куда подключается:
OV7670 подключаем к arduino: Дисплей подключаем к arduino VSYNC - к выводу D2 DC - к выводу D8 XCLCK - к выводу D3 CS - к выводу D9 PCLCK - к выводу D12 RESET - к выводу D10 SIOD - к выводу A4 SPI data - к выводу D11 SIOC - к выводу A5 SPI clock - к выводу D13 D0..D3 - к выводу A0..A3 VCC - к выводу 3.3V D4..D7 - к выводу D4..D7 BL - к выводу 3.3V 3.3V - к выводу 3.3V GND - к выводу GND RESET - к выводу 3.3V GND - к выводу GND PWDN - к выводу GND
Программа для трансляции видео с камеры на tft дисплее
Для работы с камерой и дисплеем совместно с Arduino нам понадобится, библиотеки: LiveOV7670Library и Adafruit_GFX_Library. Скачиваем их и устанавливаем в Arduino IDE. Теперь все готово для загрузки программы в Arduino.
Код состоит из нескольких частей. После скачивания и распаковки, все файлы следует сохранить в одной папке (ссылка в конце инструкции). После загрузки кода и проверки схемы, мы сразу получаем картинку ту что видит камера, не забыв настроить фокусировку.
После проверки работоспособности, можно перейти в скетче на вкладу setup.h
и изменив значение EXAMPLE 1 на EXAMPLE 3, камера будет транслировать изображение напрямую на экран монитора, при условии, что arduino подключена к компьютеру и запущена программа Arduino IDE.
При значение EXAMPLE 1 камера совместно с библиотекой LiveOV7670Library, передает картинку напрямую на дисплей подключенный по SPI интерфейсу.
Видео работы:
Заключение
Данный пример работы камеры можно использовать как камеру видео наблюдения добавив к arduino LAN или же как зрение к роботу. Так же возможно использовать в виде WEB-камеры для компьютера.
Немного об особенностях работы с камерой.
- Согласно документации камеры OV7670, модуль питается от 3,3 В, при подключении к Arduino 5V необходимо обеспечить преобразование уровней напряжения. (Хотя запустилась и заработала без лишних элементов)
- Модуль имеет выходы SIO_C, SIO_D — шина SCCB похожа по работе с шиной I2C. Модуль отвечает на шину I2C по адресу 0x21. Входной сигнал синхронизирующего сигнала XCLK и выход PCLK для синхронного сбора данных с параллельной 8-разрядной шины D7-D0.
- Выходы H1REF и VSYNC синхронизируют сбор данных с параллельной шины (соответствующая конфигурация позволяет отложить сигнал сигнальной линии H1REF, используя только синхронизацию VSYNC-кадров).
- Основой для запуска модуля является соответствующая конфигурация регистров по шине SCCB. Интерфейсные линии SCCB должны быть подтянуты по питанию через резисторы 4.7-10 кОм.
- Стабильность работы камеры зависит и от источника питания, необходимо, чтобы модуль имел стабильный источник питания 3,3 В.
- Для того, чтобы шина данных работала, необходимо подать сигнал синхронизации на вход XCLK, согласно Datasheet: частота входного сигнала должна быть 10-48 МГц.
- Ниже приведенный скетч генерирует тактовую частоту XCLK = 8 МГц. Частота сигнала PCLK, изменяет данные на линиях D7-D0 зависимые от установленных делителей и PLL. В нашем случае мы на PCLK частотой 2 МГц.
- На основе полученных изображений сразу можно сделать вывод о недостатках:
а. Отсутствие внутреннего буфера приводит к смазывание картинки, тк она сразу передается на компьютер, а это занимает время.
б. Наблюдаются артефакты в виде горизонтальных полосок — сбой синхронизации в получении картинки. Вместо градации серого отправляется цветоразностная составляющая.
в. Объект должен быть в фокусе камеры для четкого изображения
Полезные ссылки
Библиотека для работы с камерой OV7670:
Здравствуйте, не знаю ответите ли, но спрошу. Возможно ли по этому принципу сделать что-то типа виде регистратора. Только чтобы видео сразу записывалось на microSD карту? То есть ардуино нано+камера+SDкарта
Здравствуйте. Нано в данном случае будет мало.
Посмотрите в сторону esp32cam
Всех приветствую, хотел узнать а можно ли на OV7670 собрать модель плотера, для резки по меткам. Зарание спасибо!
http://git.robotclass.ru/download/LiveOV7670.rar
ссылка не рабочая
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://web.mit.edu/6.111/www/f2016/tools/OV7670_2006.pdf
Ссылка не работает http://git.robotclass.ru/download/LiveOV7670.rar
Исправлено!
Здравствуйте!
Ссылка на скачивание проекта нерабочая (http://git.robotclass.ru/download/LiveOV7670.rar).
Обновите пожалуйста информацию.
Если есть возможность ответом приложите новую ссылку.
Спасибо!
Вот здесь можно взять последнюю версию библиотеки:
https://github.com/indrekluuk/LiveOV7670
Здравствуйте,не подскажите, 511ovo подойдёт вместо7670?
Просто покупаю уже не первый раз, присылают именно 511 не знаю что делать.
Может это клон китайский?