Как стать автором
Обновить

Запускаем камеру от телефона, или что делать, когда ничего не получается?

Время на прочтение6 мин
Количество просмотров102K
Всего голосов 103: ↑102 и ↓1+101
Комментарии53

Комментарии 53

Тоже однажды пришлось заводить подобную камеру, только на значительно более мощном процессоре Intel Atom BayTrail и с интерфейсом MIPI CSI. Как вспомню эту прекрасную 32х-битную Fedora с патченным Intel ядром, эти отличные драйверы для v4l2, этот замечательный процессор и не менее восхитительную прошивку для него от AMI… Слава яйцам, больше этим заниматься не надо, потрахались — и хватит!
Чисто ради любопытства: а Raspberry Pi camera чем вам не подошла? Полностью документированная, легко подключаемая… Если не ошибаюсь, и запустили ее в продажу как раз 8 лет назад.

P.S. Вы просто написали «8 лет назад» как «38 лет назад». А 8 лет назад электроника была уже весьма продвинутой, и камер подобных было (без необходимости курочить мобильники), я думаю, вполне достаточно.

Ох, ладно, не хотел писать, но сформулирую так. На роботе таких камер должно было быть больше одной. И не две и не три (правда, не одновременно, они должны были переключаться). Сделаете такое на малине? И вы размер камеры получившейся с кдпв представляете?

Я не предлагал «делать на малине», вопрос был про камеру.
1 камера малины появилась 7 лет назад.
2 габарит камеры малины даже без квадратной платы слишком большой из за разъема
3 csi интерфейса нету в контроллерах, используемых автором
4 закладывать малину, ардуину, esp32 и прочую diy китайщину в коммерческие проекты — очень плохая идея. (если нужны пруфы по этому пункту, почитайте статью про девайс flipper zero на хабре)
4 закладывать малину… в коммерческие проекты — очень плохая идея.

На всякий случай отмечу, что для средне-серийных (сотни-тысячи) проектов есть же RPi Compute Module — с более длительными сроками производства (кстати, на бывшей фабрике Sony в UK) и некоторыми дополнительными выводами (в конструктиве SO DIMM DDR2) — тем же 2м интерфейсом CSI-MIPI (там, вроде, лишь 2 линии).

Автору статьи, как я понял, ComputeMjdule не помог бы — но для проектов вроде StereoPI вполне.
Вы пробовали их купить в таких количествах?
Не было необходимости. Вы ожидаете какие-то сложности?

Upd: проверил возможность покупки 100 модулей(в waveshare) — она есть (хоть и очевидно, что оптовые партии закупать в розничных магазинах — плохая затея)
я ведь и написал, прочитайте про flipper zero на хабре на хабре, там как раз и была проблема с покупкой большой партии этих модулей
Похоже, вы читали ту статью по диагонали — цитата оттуда
Невозможно купить в большом количестве. Заводы вроде Farnell предлагают покупать Compute Module.


Лишь подтверждает мои слова.

И это касается не только RPi, но и NVidia Jetson, Khadas Edge и некоторых других.
По поводу Raspberry Pi камер мною и коллегами за последние три года было сказано много горьких слов на разных языках. Сенсоры для них, по нашему общему впечатлению, берутся из какой-то отбраковки — и вместо нормального клея или двустороннего скотча клеятся к плате какой-то обьемной «жвачкой». При этом (особенно после применения оригинального «гаечного ключа» для фокусировки) вы никогда не знаете куда точно направлена оптическая ось камеры — потому что модуль на этой «жвачке» болтается туда-сюда от вибрации, нагрева или просто так.
Про «полностью документированная» — это хорошая шутка. Оба человека, пытавшиеся «раскрутить» и описать подробности ее работы — наняты Foundation и подписаны под NDA.

Сколько камер в мусор уходит. Давно у меня печалит такое обращение с высококачествеными камерами, которые могли бы быть применены в любительских хобби вместо простейших камер для rpi/opi/esp. И часто выбрасывают телефоны с исправными экранами...

Без документации это электрический мусор.
Ну вот лежит камера (точнее сенсор KNC 201 39) от sony erricson K750. Даже с шлейфом. И дальше что? Ни схем, ни описания протоколов.
НЛО прилетело и опубликовало эту надпись здесь

Самоделкины всех стран объединяйтесь. Автор показал, что необходимо для того чтобы запустить эти камеры, теперь необходимо эти данные собирать и распространять.

НЛО прилетело и опубликовало эту надпись здесь
и конфигурил клоки через только появившийся экселевский файлик

Ох, ностальгия… Такой классный был файлик, генерил код на регистрах! А с кубом для этого весь HAL тащить приходится.

НЛО прилетело и опубликовало эту надпись здесь

Ну так, для использования HAL'a нужно HAL тащить, а для регистров напрямую — не нужно :)
К тому же, когда он только появлялся, им пользоваться было решительно невозможно.

Эта задача решалась на официальной работе или это было хобби?

На официальной. Вас убивают сроки разработки? Я не только этим там занимался. Но всё равно времени было очень много потрачено, да.

Нет, не сроки. Организация процесса. Странно, что вам санкционировали работу в таком виде. Сроки — это уже следствие.
М… а как бы вы решали подобную задачу?
Изучил бы чужой опыт. Изучил достоинства и недостатки. Использовал бы соответствующие методы и инструменты, чтобы исключить «детские ошибки».
Дык, в том и дело, что опыт был изучен вдоль и поперёк. Все делали камеры на аптиновских или омнивиженовских матрицах с внешней оптикой, которая у нас никуда не помещалась. Если бы можно было прикрутить MT9D131, я бы даже заморачиваться не стал. А камеры от мобильников — мне попадалась какая-то статья, в которой человек что-то подобное делал, но без подробностей.
Ну а детские ошибки, куда же без них? :) Не сделав их, не станешь взрослым. Разве нет?

Ух, вот спасибо за воспоминания.
То же самое, только на несколько лет пораньше, STM32 ещё не совсем вышли, камеры в телефонах камерами-то и не назвать.
в качестве первого прототипа MT9V022 в BGA на однослойной плате без маски — вот где слабоумие и отвага, но заработало. blackfin 532, потому что аппартный контроллер памяти и lqfp,
да ещё и на этом же параллельном видео порте вместе с матрицей какой-то аналоговый PAL энкодер для возможности переключения выхода "прямо на телевизор".

Очень интерестная тема. Всегда хотел купить камеру от айфона подключить её к ТВ Бокс Андроид. Но опыт мой нулевой. Есть интерестная тема но не смог найти подобных людей которым это тоже было бы интерестно да и времени заниматься небыло тогда.
Хорошая статья, было интересно
Без документации это электрический головоломка.

Может, кто-то однажды сделает фотоаппарат-шасси со множеством кроваток под самые популярные мобильные камеры и крутым софтом, который мог бы методами вычислительной фотографии собирать одно качественное фото из множества от 1 до десятков) разных менее качественных.
Типа — купил такое шасси тыщ за 5, прошёлся по ларькам с ремонтом мобильников, набрал пару десятков дохлых телефонов с приличными камерами, расставил в кроватки и получил крутой фотик.

Думается мне, такое не пять тысяч будет стоить.
Времени было на всё угрохано больше года. Сейчас это кажется диким и ужасно непродуктивным. Наверняка, есть много людей, проделавших бы подобное за пару месяцев. Но я был один, в коллективе никто таким не занимался, интернеты упорно молчали, совета просить было не у кого. Но опыт есть опыт. Я ни сколько не жалею о потраченном времени. Полученные знания бесценны!


Это было прекрасное время! Не стоит жалеть, разве что очень завидую тому, что была у вас возможность этим заниматься!
А где вы брали даташит на камеру? А то у меня есть камера от nokia7610, которая SMIA95. Но не удалось найти на нее документацию.
Ну как где. Нигде. В стандарте SMIA описаны все регистры кроме регистров производителей, в которых, как оказалось, и была вся засада. Вы же прочитали статью не по диагонали? ;)
Вот вам названия файлов, думаю, вы их легко сейчас найдете:
SMIA_Symbian_SMIA_Camera_device_driver_interface_1.0.pdf
SMIA_Mechanical_Specification_1.0.pdf
SMIA_Functional_specification_1.0.pdf
SMIA_CCP2_specification_1.0.pdf
SMIA_Software_and_application_specification_1.0.pdf
SMIA_Introduction_and_overview_1.0.pdf
SMIA_Reliability_Specification_1.0.pdf
SMIA_Characterisation_Specification_1.0.pdf

Но, боюсь, чтобы запустить вашу камеру, придется также при помощи лог. анализатора записать взаимодействие проца с камерой и посмотреть, что конкретно туда пишется, чтобы камера заработала.

Вот логи с нее записать не получится… Той мобилы уже давно нет… Спасибо за файлы.

Как вам удалось запустить MT9D131? Работал с ней, это же адская дичь) и сама она глючная, и доки на неё глючные)
К счастью, я ею не занимался. Её сделали до меня. Не знаю, читает ли разработчик драйвера для линукса этот топик (Паша, ты читаешь?), но она работала. Даже видео показывала вполне адекватное. С точки зрения железа там всё прозаично, вроде бы. С точки зрения софта — не знаю.

у микрона (aptina или кто там их нынче купил) документация — можно сказать просто образец для подражания, по сравнению с остальными.

Сейчас — наверное да, а вот лет 10 назад доку на MT9 пришлось добывать на подпольных китайских сайтах)
Хм. Я без проблем подписывал NDA с аптиной. Вот с ON Semi намного сложнее всё было. Когда делал камеру на MT9J003, описание регистров пришлось доставать через знакомых.
Очень интересная история, спасибо, что поделились!

Интересная статья, спасибо.
Не подскажите, каким образом получали вывод логического анализатора в текстовом виде?

Спасибо! В салеа есть экспорт в csv.
Как обычно — при решении задачи полезно знать ответ (правильные регистры инициализации)
Подскажите, по моему ошпарка была уже 8 лет тому, кто в курсе, когда они начали?
Увлёкся в последнее время «укрощением» LCD дисплеев от старых телефонов, тоже пришёл к тому, что нужно искать живых доноров и подпаиваться с логическим анализатором. Оказывается, много дисплеев доступны по смешным ценам (от 0,3...0,4 у.е.), у некоторых из них вполне паябельные шлейфы с шагом 0,5-0,6 мм. Но информации по подключению ноль. В результате вместо двух дисплеев (брал на пробу, хорошо, что не 10 штук) от Motorola C300 мне втюхали неопознанные дисплеи от других телефонов, даже не знаю каких, надписей нет. А ещё 5 штук, на которые есть достоверная информация по подключению, оказались не с такими шлейфами, как я ожидал, здесь я сам виноват, не разглядел на фото, так что на полку. Ещё у одного подопытного выводы в виде напыления на стекле и, хоть удалось подключить, тоже признал бесперспективным.

...запорол, пропаяв её при помощи флюса ТАГС

Долго стоял у меня этот флюс без дела, пока не попался окисленный медный провод. Ни один из где-то десятка флюсов его не взял, а механически чистить каждую жилку не хотелось. Подумал так и достал ТАГС. Он решил задачу без проблем, чистенько так залудил.

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

А эта статья никогда и не была "мануалом". Это рассказ, как было и с чем пришлось столкнуться. Эдакая техно-байка, воспринимайте её только таким образом. Схемы, кстати, вполне исчерпывающие, я даже замазывать там ничего не стал. :)

Крутейшая статья! Меня и самого одно время увлекало прикручивание дисплеев от сотиков к МК и о камерах думал.

Вот только одно не пойму, даже если завелась камера каким-то чудом, что дальше то с ней делать? Ведь поток данных с камеры серьезный и это нужно как-то сжать и передать. И даже сравнительно современные STM32F411 да даже думаю STM32F7xx с таким потоком ничего путного не сделают.

А как же это в самих телефонах то было?.. У них ведь тоже не ахти какие процессоры стояли. Но умудрялись в 25-30 кадров 640х480 нокии и снимать и выводить на дисплей (тоже с параллельной шиной) и сжимать и на карту памяти писать. И еще какие-то задачи в фоне выполнять. Или там аппаратные декодеры какие-то?

И никогда не пробовали ябловскую технику ковырять? Мне как-то достался дисплей от iPod Touch 4. Так вот долго он у меня как чемодан без ручки был. И выкинуть жалко и завести его не удалось.

Как считаете, есть ли шанс завести дисплей, например от 6S Plus или от 7 Plus/8 Plus яблока? Или там может инициализацию дисплея на криптографию ставят и без ключа не инициализируешь?

Спасибо :)


что дальше то с ней делать? Ведь поток данных с камеры серьезный и это нужно как-то сжать и передать.

В описываемом случае ничего не жалось, передавалось как есть, благо всего 640х480 и где-то 12-15 фпс было. За сеть, если не забыл, отвечал lwIP.


Или там аппаратные декодеры какие-то?

Насколько понимаю, аппаратные кодеки.


И никогда не пробовали ябловскую технику ковырять?

Нет. Максимум, который у меня есть в этом плане — дисплей от второго айпада, который через доп. плату можно воткнуть по eDP.


Как считаете, есть ли шанс завести дисплей, например от 6S Plus или от 7 Plus/8 Plus яблока? Или там может инициализацию дисплея на криптографию ставят и без ключа не инициализируешь?

Не знаю. Я бы для начала попробовал бы опознать дисплей, потом нашел бы на него документацию. Ну а что примерно делать дальше — описано в статье ;)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации