roboforum.ru

Технический форум по робототехнике.

AVRCam

AVRCam

North » 04 фев 2009, 16:17

Доброго времени суток всем. Похвастаюсь и я :) Собрал AVRCam. Только сегодня запустил. Работает, за цветами следит, кадры снимает. В общем я доволен и делюсь радостью :) Если кому интересно, расскажу как и что делал. Прилагаю фотку (телефонную к сожалению)


P.S. Давненько я тут не был...
Вложения
AVRCamFront.jpg

Re: AVRCam

Myp » 04 фев 2009, 16:21

=) да конечно

я лично вобще незнаю что это такое

Re: AVRCam

galex1981 » 04 фев 2009, 16:23

Очень интересно, расскажи поподробнее...

Re: AVRCam

EdGull » 04 фев 2009, 16:29

маладца!!! :Bravo:
давай хвастайся!

Re: AVRCam

North » 04 фев 2009, 16:31

Странно, мне казалось что все робототехники знают что такое авркам. Её родина находится тут: http://www.jrobot.net/Projects/AVRcam.html. Насколько я знаю CMUCam делает приблизительно то же самое, но имеет закрытый код. В кратце это цветная матрица, подключенная к меге 8. Мега снимает картинку с матрицы и ищет на ней цветные пятна. На компьютер или на другой микроконтроллер она отправляет координаты цветного пятна и номер цвета. Отслеживает одновременно до 8 цветов. Цвета программируются с компа и хранятся в ЕЕПРОМ.

Re: AVRCam

EdGull » 04 фев 2009, 16:33

а саму камеру где и почем брал?

Re: AVRCam

hudbrog » 04 фев 2009, 16:40

North писал(а):Насколько я знаю CMUCam делает приблизительно то же самое, но имеет закрытый код.

Не, у кмукама код открытый.

Re: AVRCam

North » 04 фев 2009, 16:45

В общем расскажу всю историю. Меня распирает :D Этим летом я защищал диплом по теме "модульный робот, бла-бла-бла". Он был разбит на три части, программное обеспечение, аппаратное обеспечение и система управления. Соответственно делали его три человека. По сути делал его я один, а двое спонсировали мои разработки, что меня более чем устраивало. Так вот, робот состоял из пяти модулей: Драйвер двигателей, модуль питания, модуль сенсоров расстояния, центральный модуль и модуль камеры. Как это обычно бывает, привести всё это хозяйство в рабочее состояние к моменту защиты не успели, и защищались теорией :) Модуль камеры я даже не включил в дипломный проект, т. к. не был уверен в том что он вообще заработает. Но как бы то ни было, практически всё железо было собрано до защиты, так что после финансовые вливания уже не требовались и я спокойно и неторопливо писал софт для модулей. Вот дошла очередь и до камеры.

Добавлено спустя 4 минуты 32 секунды:
Первая же встреченная сложность - невозможность достать модуль С3088, который использовал Джон Орландо, отец AVRCam. Поняв что это бесполезно, я начал искать саму матрицу. Она была найдена в одной конторе, торгующей редкими детальками. Контора находилась в Питере, я в Москве. Матрицы были относительно недорогими, доставка стоила дороже и я заказал сразу пять штук, на всякий случай. Было сделано четыре платы, так что одна матрица осталась про запас. Через две или три недели матрицы были у меня.

Re: AVRCam

Сергей » 04 фев 2009, 16:53

Диплом то защитил?

Re: AVRCam

North » 04 фев 2009, 17:58

Сложность номер два - подключение матрицы. Джон использовал готовый модуль, с разъёмом, кварцем и объективом. У меня же голая матрица. Гугл выдаёт на эту матрицу один даташит в 30 с чем то страниц, по ходу самодельный. Один из выводов называется ASUB. В разделе описания выводов одна единственная строка: analog substrate voltage. Каким должен быть этот волтадж больше нигде не упоминается. Лезу на сайт производителя. Для того чтобы скачать даташит, нужно заполнить анкету. Нужно, так нужно, думаю я и заполняю. Через некоторое время мой запрос перенаправляют к их дилерам в России. От них мне приходит письмо, в котором они интересуются зачем мне это нужно и предлагают заменить матрицу на другую, ибо эта уже снята с производства. Я объясняю зачем мне это. После этого ответа больше небыло. От одного знакомого услышал что якобы на матрицы сони напряжение подложки 20 вольт. Где я их возьму? Решаю в итоге посадить на эту ножку резисторы, чтобы их соотношением менять напряжение от земли до питания. Развожу плату с таким рассчётом.

Добавлено спустя 6 минут 38 секунд:
Диплом то защитил?

Защитил. Там вообще халява была. Можно было и не парится
Сложность номер три - у Джона несколько версий платы и ещё больше версий софта. В последних версиях платы у него появился дополнительный процессор Tiny, задача которого проинициализировать матрицу, чтобы она выдала тактовый сигнал на мегу. Такая вот странная экономия кварца. На моей плате всё равно стоит второй проц (мега88) так что я мог реализовать оба варианта схемы. Я развёл место под два кварца (1-й вариант: мега с кварцем тактирует матрицу, 2-й вариант: матрица с кварцем тактирует мегу, правда для этого ей нужно подать несколько команд, что и делала тинька) При сборке был выбран первый, более ранний вариант.

Добавлено спустя 15 минут 33 секунды:
Сложность номер четыре - объектив. Держатель объектива к счастью вещь более менее стандартная и стоит копейки. У них. У нас не продаётся. Ну или только вместе с камерой. Был совершён рейд по магазинам, торгующим системами безопасности. Продавцы-консультанты пытались мной на предмет сломанных мёртвых камер, откуда можно эту деталь скрутить. Попутно приходилось объяснять что мне нужно, так как на словосочетание "держатель объектива" они делали круглые глаза. Везде я слышал вежливый отказ. В конце дня я, разочарованный, собрался было домой, но решил на последок пройтись по тёмным рядам савёловского рынка, тем где торгуют пиратским софтом, краденными телефонами, прошивают иксбоксы и т. д. И, о чудо, в одной из палаток был приобретён искомый кусочек металла с объективом. Объектив был от чёрно-белой видеокамеры, а я где-то краем уха слышал что вроде бы на объективах для цветных камер должен быть напылён ИК фильтр. Подтверждаю. Должен. Камера показывала мир в жутких коричневых цветах. Сначала я свалил вину на лампочку накаливания, освещающую комнату, но на следующий день, при естественном освещении цвета не изменились. В жертву искусству была принесена домашняя веб-камера Logitech QuickCam Express, из первых серий. Объектив частично подошёл, цвета исправились, разве что чуть-чуть в зелень отдают. Но диагональ матрицы логитека и моей матрицы не совпадают, изображение проецируется только на некоторую область чувствительной зоны, что проявляется в том, что камера смотрит немного вниз и в сторону. Эту проблему я до конца так и не решил, надо ездить по магазинам и подбирать объектив, а времени свободного нет. :(

Добавлено спустя 27 минут 23 секунды:
Когда я паял камеру, в глубине души теплилась надежда, что .hex файл, скачанный с сайта AVRCam и прошитый в мегу будет работать сразу как надо. Этой мечте не суждено было сбыться :cry: После прошивки мега мигала отладочным светодиодом, отправляла команды на матрицу по I2C и всё. больше никаких признаков жизни. Никакой реакции на команды UARTа. Пришлось адаптировать его программу под свой компилятор, переписывать. Но и после адаптации стало не намного лучше. Мега стала отвечать на команды, но при попытке дать команду "взять кадр" или "включить слежение" наглухо висла. Было решено проверять программу по частям. Сначала я написал отдельную программу для снятия кадров. Она, естесственно, потребовала программу для компа, которая отображала бы принятый кадр. Этот софт (со стороны компа) написан на яве, и лежит на официальном сайте в виде исходников. Честно говоря я не знаю что мне делать с этими исходниками. Поэтому я написал небольшую утилитку, принимающую данные по УАРТу, и складывающую их в картинку. Следующим шагом было исправление программы для меги. Она стала снимать кадры, но при попытке включить слежение всё так же висла. После нескольких дней мучений наконец она стала выдавать на команду ""включить слежение" в терминал данные. Писать программу на комп, отображающую принимаемые пакеты в удобоваримом виде было выше моих сил, так как под комп программист из меня хреновый. Поиск в гугле навёл меня на интересную вещицу - NXTCam. По сути это клон AVRCam, причём клон до мелочей, включая протокол передачи. Делает его некая контора, производящая модули для конструктора лего майндсторм. Клиентская программа для камеры шла в виде инсталлятора. Я установил её на комп, и она признала мою камеру.

Добавлено спустя 3 минуты 42 секунды:
Если кому надо могу выложить исходники (для меги - на IAR, для компа - Visual Studio) и схемы платы (P-CAD 2004)

Добавлено спустя 1 минуту 13 секунд:
Внешний вид моей утилитки:
FrameGrabber.JPG
FrameGrabber.JPG (14.75 КиБ) Просмотров: 8372


Добавлено спустя 8 минут 31 секунду:
А вот так выглядит программа NXTCam:
NXTCam.JPG

Re: AVRCam

Myp » 04 фев 2009, 17:59

вот бы ещё найти место где такие камеры можно купить...
тут на форуме давно уже бродит мысль сделать чтото типа аналог кмукама
но засада в том что нет доступной простой дешовой камеры

а исходники и схему выкладывай
мб комуто будет интересно посмотреть.

Re: AVRCam

North » 04 фев 2009, 18:13

Myp писал(а):вот бы ещё найти место где такие камеры можно купить...
тут на форуме давно уже бродит мысль сделать чтото типа аналог кмукама
но засада в том что нет доступной простой дешовой камеры


Как я уже говорил, я купил в Питере, правда только матрицы. Да хранят боги ту фирму. Можно переделать камеру под другую матрицу, более доставабельную в наших условиях.

Добавлено спустя 9 минут 40 секунд:
Выкладываю схему
Вложения
P-CAD EDA - [Sheet1]CamSchematic.pdf
(94.54 КиБ) Скачиваний: 322

Re: AVRCam

North » 05 фев 2009, 12:50

Вот и исходники
Вложения
AVRCam.zip
(58.61 КиБ) Скачиваний: 84

Re: AVRCam

=DeaD= » 05 фев 2009, 12:52

Как со смазыванием кадра в этой камере? Скажем на лайн-трейсере применять можно на скорости 50см/сек?

Re: AVRCam

Myp » 05 фев 2009, 12:55

а ты по ссылкам пройдись посмотри там есть видео где лайнтрейсер с этой камеой катается по трассе


Rambler\'s Top100 Mail.ru counter