Сложность номер два - подключение матрицы. Джон использовал готовый модуль, с разъёмом, кварцем и объективом. У меня же голая матрица. Гугл выдаёт на эту матрицу один даташит в 30 с чем то страниц, по ходу самодельный. Один из выводов называется ASUB. В разделе описания выводов одна единственная строка: analog substrate voltage. Каким должен быть этот волтадж больше нигде не упоминается. Лезу на сайт производителя. Для того чтобы скачать даташит, нужно заполнить анкету. Нужно, так нужно, думаю я и заполняю. Через некоторое время мой запрос перенаправляют к их дилерам в России. От них мне приходит письмо, в котором они интересуются зачем мне это нужно и предлагают заменить матрицу на другую, ибо эта уже снята с производства. Я объясняю зачем мне это. После этого ответа больше небыло. От одного знакомого услышал что якобы на матрицы сони напряжение подложки 20 вольт. Где я их возьму? Решаю в итоге посадить на эту ножку резисторы, чтобы их соотношением менять напряжение от земли до питания. Развожу плату с таким рассчётом.
Добавлено спустя 6 минут 38 секунд:Диплом то защитил?
Защитил. Там вообще халява была. Можно было и не паритсяСложность номер три - у Джона несколько версий платы и ещё больше версий софта. В последних версиях платы у него появился дополнительный процессор Tiny, задача которого проинициализировать матрицу, чтобы она выдала тактовый сигнал на мегу. Такая вот странная экономия кварца. На моей плате всё равно стоит второй проц (мега88) так что я мог реализовать оба варианта схемы. Я развёл место под два кварца (1-й вариант: мега с кварцем тактирует матрицу, 2-й вариант: матрица с кварцем тактирует мегу, правда для этого ей нужно подать несколько команд, что и делала тинька) При сборке был выбран первый, более ранний вариант.
Добавлено спустя 15 минут 33 секунды:Сложность номер четыре - объектив. Держатель объектива к счастью вещь более менее стандартная и стоит копейки. У них. У нас не продаётся. Ну или только вместе с камерой. Был совершён рейд по магазинам, торгующим системами безопасности. Продавцы-консультанты пытались мной на предмет сломанных мёртвых камер, откуда можно эту деталь скрутить. Попутно приходилось объяснять что мне нужно, так как на словосочетание "держатель объектива" они делали круглые глаза. Везде я слышал вежливый отказ. В конце дня я, разочарованный, собрался было домой, но решил на последок пройтись по тёмным рядам савёловского рынка, тем где торгуют пиратским софтом, краденными телефонами, прошивают иксбоксы и т. д. И, о чудо, в одной из палаток был приобретён искомый кусочек металла с объективом. Объектив был от чёрно-белой видеокамеры, а я где-то краем уха слышал что вроде бы на объективах для цветных камер должен быть напылён ИК фильтр. Подтверждаю. Должен. Камера показывала мир в жутких коричневых цветах. Сначала я свалил вину на лампочку накаливания, освещающую комнату, но на следующий день, при естественном освещении цвета не изменились. В жертву искусству была принесена домашняя веб-камера Logitech QuickCam Express, из первых серий. Объектив частично подошёл, цвета исправились, разве что чуть-чуть в зелень отдают. Но диагональ матрицы логитека и моей матрицы не совпадают, изображение проецируется только на некоторую область чувствительной зоны, что проявляется в том, что камера смотрит немного вниз и в сторону. Эту проблему я до конца так и не решил, надо ездить по магазинам и подбирать объектив, а времени свободного нет.
Добавлено спустя 27 минут 23 секунды:Когда я паял камеру, в глубине души теплилась надежда, что .hex файл, скачанный с сайта AVRCam и прошитый в мегу будет работать сразу как надо. Этой мечте не суждено было сбыться
После прошивки мега мигала отладочным светодиодом, отправляла команды на матрицу по I2C и всё. больше никаких признаков жизни. Никакой реакции на команды UARTа. Пришлось адаптировать его программу под свой компилятор, переписывать. Но и после адаптации стало не намного лучше. Мега стала отвечать на команды, но при попытке дать команду "взять кадр" или "включить слежение" наглухо висла. Было решено проверять программу по частям. Сначала я написал отдельную программу для снятия кадров. Она, естесственно, потребовала программу для компа, которая отображала бы принятый кадр. Этот софт (со стороны компа) написан на яве, и лежит на официальном сайте в виде исходников. Честно говоря я не знаю что мне делать с этими исходниками. Поэтому я написал небольшую утилитку, принимающую данные по УАРТу, и складывающую их в картинку. Следующим шагом было исправление программы для меги. Она стала снимать кадры, но при попытке включить слежение всё так же висла. После нескольких дней мучений наконец она стала выдавать на команду ""включить слежение" в терминал данные. Писать программу на комп, отображающую принимаемые пакеты в удобоваримом виде было выше моих сил, так как под комп программист из меня хреновый. Поиск в гугле навёл меня на интересную вещицу - NXTCam. По сути это клон AVRCam, причём клон до мелочей, включая протокол передачи. Делает его некая контора, производящая модули для конструктора лего майндсторм. Клиентская программа для камеры шла в виде инсталлятора. Я установил её на комп, и она признала мою камеру.
Добавлено спустя 3 минуты 42 секунды:Если кому надо могу выложить исходники (для меги - на IAR, для компа - Visual Studio) и схемы платы (P-CAD 2004)
Добавлено спустя 1 минуту 13 секунд:Внешний вид моей утилитки:
- FrameGrabber.JPG (14.75 КиБ) Просмотров: 8369
Добавлено спустя 8 минут 31 секунду:А вот так выглядит программа NXTCam: