- Компоненте потребне
- Ствари које треба запамтити о модулу камере ОВ7670
- Кружни дијаграм
- Програмирање Ардуино УНО
- Како се користи читач серијског порта за читање слика
- Испод су примери слика преузетих са ОВ7670
- Мере предострожности приликом употребе ОВ7670
Камере су увек доминирале у електронској индустрији јер има мноштво апликација као што су систем за надгледање посетилаца, систем за надзор, систем за присуство и сл. Камере које данас користимо паметне су и имају пуно карактеристика које нису биле присутне у ранијим камерама. Иако данашњи дигитални фотоапарати не само да снимају слике, већ снимају и описе сцена на високом нивоу и анализирају оно што виде. Интензивно се користи у роботици, вештачкој интелигенцији, машинском учењу итд. Снимљени оквири се обрађују помоћу вештачке интелигенције и машинског учења, а затим се користе у многим апликацијама као што су откривање регистарске плочице, откривање предмета, детекција покрета, препознавање лица итд.
У овом упутству ћемо повезати модул камере ОВ7670 који се најчешће користи са Ардуино УНО. Модул камере ОВ7670 може бити повезан са Ардуино Мега-ом са истом конфигурацијом пина, кодом и корацима. Модул камере је тешко повезати јер има велики број пинова и преплетених ожичења за извођење. Такође жица постаје веома важна када се користе модули камере, јер избор жице и дужина жице могу значајно утицати на квалитет слике и могу донијети буку.
Већ смо урадили довољно пројеката на фотоапаратима са различитим врстама микроконтролера и ИоТ уређаја као што су:
- Систем за надгледање посетилаца са Распберри Пи и Пи камером
- Систем кућне безбедности Распберри Пи заснован на ИОТ-у са упозорењем е-поште
- Надзорна камера Распберри Пи са хватањем покрета
Камере ОВ7670 радови на 3.3В, тако да постаје веома важно да се избегне Ардуино који даје 5В на својим излазним ГПИО игле. ОВ7670 је ФИФО камера. Али у овом упутству, слика или оквири ће се ухватити без ФИФО-а. Овај водич ће имати једноставне кораке и поједностављено програмирање за повезивање ОВ7670 са Ардуино УНО.
Компоненте потребне
- Ардуино УНО
- ОВ7670 Модул камере
- Отпорници (10к, 4,7к)
- Скакачи
Потребан софтвер:
- Ардуино ИДЕ
- Читач серијског порта (за анализу излазне слике)
Ствари које треба запамтити о модулу камере ОВ7670
Модул камере ОВ7670 је ФИФО модул камере доступан од различитих произвођача са различитим конфигурацијама пинова. ТхеОВ7670 пружа 8-битне слике пуног оквира са прозорима у широком спектру формата. Низ слика може да ради до 30 сличица у секунди (фпс) у ВГА. ОВ7670 укључује
- Низ сензора слике (од око 656 к 488 пиксела)
- Тиминг Генератор
- Аналогни процесор сигнала
- А / Д претварачи
- Тест Паттерн Генератор
- Дигитални процесор сигнала (ДСП)
- Имаге Сцалер
- Дигитал Видео Порт
- Излаз за контролу ЛЕД и Стробе блица
Сензором слике ОВ7670 управља се помоћу серијске контролне магистрале камере (СЦЦБ) која је И2Ц интерфејс (СИОЦ, СИОД) са максималном тактном фреквенцијом од 400КХз.
Камера долази са сигналима руковања као што су:
- ВСИНЦ: Вертикални излаз за синхронизацију - низак током кадра
- ХРЕФ: водоравна референца - висока током активних пиксела реда
- ПЦЛК: Излаз такта пиксела - Слободни сат. Подаци важе на растућој ивици
Поред овог, има још неколико сигнала као што су
- Д0-Д7: 8-битни ИУВ / РГБ видео компонентни дигитални излаз
- ПВДН: Избор режима искључивања - Нормални режим и режим искључивања
- КСЦЛК: Улаз системског сата
- Ресетовање: ресетовање сигнала
ОВ7670 ради на тактима осцилатора од 24МХз. Ово даје излазни такт пиксела (ПЦЛК) од 24МХз. ФИФО пружа 3Мбпс меморије бафера видео оквира. Генератор пробних узорака садржи узорак шипки у боји од 8 трака, шарени трак који прелази у сиву боју. Сада кренимо са програмирањем Ардуино УНО за тестирање камере ОВ7670 и хватање оквира помоћу читача серијских порта.
Кружни дијаграм
Програмирање Ардуино УНО
Програмирање започиње укључивањем потребне библиотеке неопходне за ОВ7670. Будући да ОВ7670 ради на И2Ц интерфејсу, он укључујеПосле овога, регистре треба изменити за ОВ7670. Програм је подељен на мале функције ради бољег разумевања.
Подешавање () обухвата све почетне подешавања потребна за само прихватање слике. Прва функција је ардуиноУноИнут () која се користи за иницијализацију ардуино уно. У почетку онемогућава све глобалне прекиде и поставља конфигурације комуникационог интерфејса као што су ПВМ сат, избор прекида за прекиде, одабир претклаера, додавање паритета и стоп битова.
АрдуиноУноИнут ();
Након конфигурисања Ардуина, камера мора бити конфигурисана. Да иницијализујемо камеру, имамо само могућности да променимо вредности регистра. Вредности регистра треба променити из подразумеваних у прилагођене. Такође додајте потребно кашњење у зависности од фреквенције микроконтролера коју користимо. Спори микроконтролери имају мање времена обраде, додајући веће кашњење између хватања оквира.
воид цамИнит (воид) { вритеРег (0к12, 0к80); _делаи_мс (100); врСенсорРегс8_8 (ов7670_дефаулт_регс); вритеРег (РЕГ_ЦОМ10, 32); // ПЦЛК се не укључује на ХБЛАНК. }
Камера је подешена да снима КВГА слику, па је потребно одабрати резолуцију. Функција конфигурише регистар за снимање КВГА слике.
сетРесолутион ();
У овом упутству, слике се снимају у монохрому, па је вредност регистра постављена тако да даје монохроматску слику. Функција поставља вредности регистра са листе регистара која је унапред дефинисана у програму.
сетЦолор ();
Следећа функција је функција уписа у регистар која уписује хексадецималну вредност за регистрацију. Ако добијете кодиране слике, покушајте да промените други термин, тј. 10 на 9/11/12. Али најчешће ова вредност делује у реду, па је није потребно мењати.
вритеРег (0к11, 10);
Ова функција се користи за добијање величине резолуције слике. У овом пројекту фотографишемо у величини 320 к 240 пиксела.
цаптуреИмг (320, 240);
Осим овог, код такође има И2Ц конфигурације подељене на неколико делова. Само да би добили податке са камере, И2Ц конфигурације имају функцију Старт, Реад, Врите, Сет Аддресс које су важне при коришћењу И2Ц протокола.
Комплетан код са демонстрацијским видео записом можете пронаћи на крају овог водича. Само отпремите код и отворите читач серијског порта и ухватите оквире.
Како се користи читач серијског порта за читање слика
Читач серијских порта је једноставан ГУИ, преузмите га одавде. Ово снима басе64 кодирање и декодира га да би се створила слика. Само следите ове једноставне кораке да бисте користили читач серијских портоваКорак 1: Повежите свој Ардуино са било којим УСБ портом вашег рачунара
Корак 2: Кликните на „Провери“ да бисте пронашли свој Ардуино ЦОМ порт
Корак 3: Коначно кликните на дугме „Старт“ да бисте започели серијско читање.
Корак 4: Ове слике можете сачувати и кликом на „Сачувај слику“.
Испод су примери слика преузетих са ОВ7670
Мере предострожности приликом употребе ОВ7670
- Покушајте да користите жице или краткоспојнике што је краће могуће
- Избегавајте било какав лабави контакт са било каквим иглама на Ардуину или ОВ7670
- Будите опрезни при повезивању јер велики број ожичења може довести до кратког споја
- Ако УНО даје излаз од 5 В на ГПИО, онда користите Левел Схифтер.
- Користите улаз од 3.3 В за ОВ7670 јер прекорачење напона може оштетити модул ОВ7670.
Овај пројекат је створен да пружи преглед коришћења модула камере са Ардуином. С обзиром да Ардуино има мање меморије, обрада можда неће бити онаква каква се очекивала. Можете користити различите контролере који имају више меморије за обраду.