Что такое stereopi
Об этой разработке неоднократно уже писалось как на Хабре (пост, пост), так и в других источниках. Но если коротко: stereopi — это compute module v.3 с обвесом в виде usb портов, выходом на hdmi, ethernet и, разумеется, 2-х синхронизированных csi камер для raspberry pi.
*На подходе уже обновленная версия второго поколенияstereopi v.2, но она пока не доступна, по крайней мере мне.
В принципе, на сайте stereopi представлена достаточно подробная инструкция, что куда втыкать и что куда загружать. Однако, несмотря на то, что все разжевано до мелочей, подводные камни начинают возникать по мере приближения к заветной цели — созданию стереоприбора — буквально на этапе подключения wi-fi. Кроме того, поместив compute module в stereopi и пришвартовав две камеры, становится непонятно как и куда это все поместить, «чтобы не торчало во все стороны».
Поэкспериментировав достаточно с usb донглами, корпусами и прочими аксессуарами, и был выработан определенный рабочий концепт, речь о котором и пойдет далее.
Как всё работает
Софт-начинка (основной образ для stereopi) представлен разработчиками stereopi, и надо признаться, что после обновления он стал достаточно прогрессивным. Доработанный web-интерфейс дополнен многочисленными опциями, которые делают жизнь удобнее. Добавлены кнопки создания фото-, видео- прямо из web-интерфейса, которых лично мне так не хватало. Помимо прочего, сам web-интерфейс оптимизирован и нет подвисаний при работе с тем же файловым менеджером даже при относительно не быстром wi-fi.
*Ранее автором самостоятельно предпринимались попытки доработать web-интерфейс, а также оптимизировать его загрузку, но это не пошло в мэйнстрим.
**Кроме того были проблемы с apt-get update, которые вызывали слишком много вопросов.
Итак, после запуска stereopi, она подключается к сети wifi, получает ip адрес. Далее к этому адресу можно подключиться как со стационарного ПК, так и со смартфона. Причем на последнем можно выбрать режим «без иконок» и наслаждаться стерео.
С чего начать собирать?
C корпуса конечно. Его можно напечатать на 3d принтере, а можно просто купить коробочку из дерева в каком-нибудь специализированном магазине. Данные коробочки, как правило, продаются для изготовителей шкатулок.
Например подойдет вот такая деревянная заготовка размерами — 10x10x6 см (в Москве продается в «Лео… до»:
Итого понадобятся:
- stereopi v.1
- compute module v.3 (non lite)
- usb dongle (низкопрофильный)
- две камеры csi для raspberry pi (лучше взять fish eye, т.к. угол обзора у них шире)
- держатель для аккумуляторов 18650B (например такой)
- 4 аккумулятора типа 18650B
- понижающий преобразователь dc-dc (например такой — MP1584EN)
- * cooler 12V, 0.1А (его можно запитать прямо от ног stereopi, взяв 5V)
- комплект гаек с болтами для закрепления держателя батарей 18650 на размер m2 (например).
Несколько слов о usb-донглах
Несмотря на то, что в самом compute module уже есть встроенный wi-fi, но его качество оставляет желать лучшего. Поэтому лучше приобрести внешний usb-свисток и желательно, чтобы он не сильно выпирал из корпуса.
На известном китайском ресурсе есть на любой вкус и цвет. Но самое интересное начинается, когда пытаешься установить driver на linux систему stereopi. Большинство usb-донглов от китайцев работают из коробки только для систем на базе windows.
Тем не менее, эта проблема зачастую преодолима, и при установке драйверов на stereopi необходимо не забывать про то, что система работает в режиме read-only и ее перед любыми изменениями необходимо перемонтировать — ссылка.
В данном проекте используется Wi-Fi адаптер TP-LINK Archer T2U Nano и под него уже установлен драйвер на прилагаемом к статье образе.
Несколько слов о держателях для аккумуляторов 18650B
Здесь нет ничего особенного и можно использовать как держатель на 4 аккумулятора, так и на меньшее количество, главное помнить, что stereopi необходимо 5V питания.
Но все же, стандартный пластиковый держатель для батарей неудобен — батареи приходится выковыривать из него острым предметом, нет контроллера переразряда, да и сами батареи прилегают неплотно в держателях. Тем не менее главное преимущество — цена и незначительный вес.
И все же мой совет — использовать нормальные держатели, немного переплатив за них:
Например, ссылка на товар. В них также предусмотрены контроллеры, защищающие от переразряда, а также тумблер питания, который в данном проекте вынесен отдельно.
Собрать все вместе
Для камер потребуется просверлить отверстия в лицевой части коробки. Разместить камеры на расстоянии 65 мм, закрепив их на болтики m2.
*Вообще для разного режима стереосъемки разработчики продают отдельно держатели для камер с уже выверенными размерами (ссылка). Но для меня это показалось дороговато для нескольких кусочков фанеры.
Точно также крепится держатель для батарей снизу корпуса — на болты m2, длины которых вполне хватает чтобы оставить еще зазор для выдуваемого из корпуса воздуха:
К днищу корпуса внутри крепится cooler, а также размещается понижающий преобразователь:
Stereopi крепится опять же на болты m2 с противоположной стороны лицевой панели коробочки.
Заливаем образ
Чтобы запустить аппарат, сперва необходимо загрузить образ на stereopi.
Небольшая ремарка — необходимо уточнить, что никакой sd карты не требуется, так как образ заливается непосредственно во встроенную память compute module через stereopi.
Образ можно взять из данной статьи либо скачать образ, который предлагается на сайте разработчиков stereopi. Но в последнем случае потребуется самостоятельно искать и устанавливать драйвер для usb dongle, а также править параметры wi-fi сети.
Двигаясь далее, предварительно потребуется установить на ПК rpiboot — программу, позволяющую общаться со stereopi.
Далее — поставить перемычку-джампер в usb-slave, подключить кабель mini-usb, соединив stereopi с ПК.
*В данном случае stereopi работает в режиме slave и при подключении определится как обычная usb-флэшка (после заливки образа).
Перенесение образа на stereopi можно производить разными программами, но я по-старинке использую win32diskimager.
После заливки образа можно изменить параметры wi-fi сети, к которой будет подключаться stereopi, сделав это в файле cosmostreamer.conf:
*Для этого необходимо еще раз запустить stereopi с установленным джампером на usb-slave.
После заливки образа, необходимо выключить stereopi, вытащить джампер и далее загружаться как обычно.
Как обычно — это подавая питание на 5V VCC вход stereopi, а не через mini-usb кабель.
Также, что важно, при питании сoolerа необходимо помнить, что на stereopi v.1 gpio гребенка представлена реверсивно, то есть расположение пинов не так как у стандартной raspberry pi.
Этот вопрос также обсуждался автором на форуме здесь.
После прогрузки залитого образа stereopi будет искать сети boss либо boss1 (пароль одинаковый — 1234554321) и пытаться к ним подключиться.
Фото и видео создается при нажатии прямо на экране соответствующих кнопок.
Далее результаты попадают в папку /mnt/DCIM, до которой можно дотянуться прямо из браузера, воспользовавшись встроенным tiny file manager:
И, что самое приятное, скачать на пк или смартфон прямо из браузера:
В заключение
Сваять свой стерео фото-, видео- аппарат, собрав по пути несколько интересных шишек, дорогого стоит.
Тем не менее, несмотря на рабочую модель, остаются моменты над которыми придется подумать. Например, как видно на фото, камеры даже из одной серии дают разные цветовые оттенки. Размещение камер на дефолтном расстоянии 65мм дают небольшие искажения при сведении изображений. Видимо, придется поработать с крепежами камер либо все же купить anycase для богатых, о котором упоминалось в статье.
Также интересно как поведет себя stereopi с образом предустановленного opencv и элементами дополненной реальности. Но это, как говорится, совсем другая история.
Образ для stereopi — скачать (2 Гб, после распаковки 15,3 Гб).
Автор:
zoldaten