roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 13:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 20 май 2010, 22:05 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
AndreiSk писал(а):
Знают же некоторые товарищи как найти проблемы :roll:

Собсно не вижу проблемы. Я захотел сделать с нуля - я сделал с нуля. А сопрягать камеру по вайфаю/эзернету/юсби неинтересно. Всё равно что купить новую видюху для компа и вкрутить её в системник. Дрова поставил - всё, я крутой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 20 май 2010, 22:07 
Не в сети
Аватара пользователя

Зарегистрирован: 23 апр 2009, 17:03
Сообщения: 2639
Откуда: Москва, Самара
прог. языки: C#
Так я не спорю.. просто удивляюсь иногда.
Но есть же полный цикл, добыть руду, выплавить медь, наделать проводов, и т.д... а вы усократили ;)
Имеете право!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 20 май 2010, 22:11 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
и как бы ты ее к avr прикрутил бы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 20 май 2010, 22:21 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
AndreiSk писал(а):
Но есть же полный цикл, добыть руду, выплавить медь, наделать проводов, и т.д... а вы усократили ;)

Ну сократил слегка, каюсь :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 28 май 2010, 14:39 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Цитата:
и как бы ты ее к avr прикрутил бы?

А толку???
Кому нужна камера с FPS 0.25 кадров в секунду??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 00:12 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
North, а если не сложно можешь в двух словах описать как данные с камеры считываешь? Ну в смысле какой выходной формат и как получить один кадр?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 01:07 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
По уарту шлёшь команду DF\r [dump frame]
камера отвечает ACK\r и шлёт в ответ пакеты с горизонтальными строками в формате

0x0B, n, R1, G1, B1,...,R174, G174, B174, 0x0F

где 0x0B - маркер начала пакета, n - номер строки, Rn, Gn, Bn - компоненты n-го пиксела, 0x0F - маркер конца пакета.

Для включения режима слежения шлётся команда ET\r [enable tracking]
камера отвечает ACK\r и шлёт в ответ пакеты с наблюдаемыми объектами в формате

0x0A, n, M1, UX1, UY1, LX1, LY1,...,Mn, UXn, UYn, LXn, LYn, 0xFF

где 0x0A - маркер начала пакета, n - количество объектов в пакете, Mn - номер цвета n-го объекта, UXn,UYn,LXn,LYn - соответственно X и Y координаты верхнего левого и нижнего правого угла рамки, обрамляющей объект n, 0xFF - маркер конца пакета

Или тебя интересует как снимается кадр непосредственно с матрицы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 11:54 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
ага. именно как кадр с матрицы прочитать. вот там есть шина паралельная и клоки...чтобы получить один кадр что надо сделать и как потом в картинку его преобразовать на компе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 12:38 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
Ну в общем случае имеем параллельную шину данных и три клока: кадровый синхроимпульс, строчный синхроимпульс и пиксельный клок. Для снятия кадра нам нужно выполнить следующую последовательность шагов:

1) Поймать начало кадра по растущему фронту кадрового синхроимпульса (например по прерыванию или ожидая его в коротком цикле). Перед этим или после этого нужно сбросить счётчик строк и пикселов в строке.

2) Поймать начало строки также по растущему фронту.

3) Поймать растущий фронт пиксельного фронта, и положить байт, находящийся в данный момент на шине данных в память. Увеличить счётчик пикселов на единицу (или сдвинуть указатель)

4) Повторять шаг 3 до тех пор пока не закончатся пикселы в строке. (количество пикселов можно захардкодить вручную, зная разрешение матрицы, либо мониторить состояние строчного синхроимпульса. Поймали обратный фронт - строка закончилась)

5) После окончания приёма строки увеличить счётчик строк на единицу, сбросить счётчик пикселов, перейти на шаг 2 и начать приём следующей строки.

6) После приёма последней строки (также можно захардкодить или поймать по кадровому импульсу) мы имеем в памяти полный кадр. После этого нужно переправить полученный дамп в комп по любому доступному интерфейсу (UART, USB, Bluetooth, Wi-Fi etc.)

На каждом из этих шагов есть куча места где может зарыться собака :P . В основном это связано с жёсткими временными интервалами между импульсами, и (как в моём случае) ограничениями памяти используемого проца. Если нет желания реализовывать всё это программно, можно переложить эту операцию на плечи хардвары. В качестве иллюстрации такого подхода можно привести в пример камеру CMUCam3. Там проц только ждёт кадровый синхроимпульс (шаг 1) после чего разрешает работу хардварного FIFO буфера, в который матрица складывает картинку полностью в автоматическом режиме без участия проца. Потом проц может забрать готовую картинку из буфера в любое удобное ему время.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 13:51 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
круть. спасиб, четко расписал!
а потом что с этими данными делать? когда на комп они поступили? И можно ли какнить понизить клок? Считывать на маленькой частоте и по уарту данные кидать в комп?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 15:04 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
А что хочешь то и делай с этими данными. Можешь натравить на них алгоритм распознавания-чего-нибудь, можешь просто в окошке показать. С моей матрицы пикселы шли в формате RGB (фильтр Байера). Делаешь SetPixel(RGB) в цикле и рисуешь картинку в окошке.

По поводу частоты можно конечно и понизить, но это выразится в большем смазывании движущихся предметов в кадре. Как вариант можешь подавать тактовую частоту дёргая ногой проца (например используя OutputCompare). В моей камере матрица и проц тактируются от одного кварца, что позволяет, в частности, не проверять фронты пиксельных клоков, т. е. просто я знаю что время между соседними пикселами, скажем, 8 тактов и у меня есть 7-8 команд чтобы положить принятый байт в память. Вообще жёсткая привязка тактовых частот проца и матрицы полезна :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 19:08 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
ок.спасиб за помощь. тоже прикупил се камеры от C65 и E700...хочу попробовать прикрутить. Отпишу чуть позже как чего )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 20:39 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
К какому процу цеплять камеры будешь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 31 май 2010, 22:14 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
Сейчас ток мега16L под рукой. Не знаю попробую на мегабите по уарту данные в комп гнать. Может будет успевать? Как считаешь?
Блин ток проблема с напряжениями....ей 2.8-3в надо..Дык максимум видимо ток кварец на 8Мгц можно поставить к ней.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVRCam
СообщениеДобавлено: 01 июн 2010, 02:15 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
У меги16 памяти на кадр не хватит, придётся бить кадр на части, например дождался начала кадра, снял 1-ю и 2-ю строку, отправил их на комп. Матрица естессно ждать не будет, так что на оставшуюся часть кадра (и вполне вероятно пару следующих кадров) смело забиваем. После передачи опять ждём начало кадра, пропускаем 1-ю и 2-ю строки и сохраняем 3-ю и 4-ю. Отправляем в комп. Со следующего кадра снимаем 5-ю и 6-ю и так далее пока не наберём количество строк в кадре. Минус такого подхода - строки полученного изображения принадлежат на самом деле разным кадрам. Но если перед объективом никто не бегает, то ничего страшного. Плюс этого подхода - это единственный способ снять картинку с камеры с помощью авр-ки :P
8 МГц конечно не ахти. Можно попробовать брать не каждый пиксел в строке, а, скажем, каждый второй или даже каждый четвёртый (строки конечно тоже нужно будет тогда пропускать чтобы сохранялось отношение сторон кадра). Разрешение результирующей картинки соответственно уменьшится в такое же количество раз. Но зато время на сохранение пиксела возрастёт соотв. в 2-4 раза.
Да, и кип ин майнд, так сказать, что если камера передаёт в формате Bayer RGB, то строки сохранять/пропускать можно только парами, ибо каждая нечётная строка содержит только зелёные составляющие пикселов, а чётные - голубые и красные составляющие. Так что если выкинуть все чётные строки, то получится сильно зелёная картинка :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO