- PVSM.RU - https://www.pvsm.ru -

LeapMotion. Что внутри?

Пока работа с чайником ограничивается составлением документации(что, несомненно довольно скучно для хабра — сужу по предыдущему [1] топику) напишу о отвлеченном — о внутренности железяк. Для следующего проекта(управление освещением) потребовалось нам раскурить тему OpenCV и подходящие для этого дела камеры.
В то же время хотелось получать еще и карту глубин с видео — для изменения яркости в зависимости от расстояния до человека.
LeapMotion. Что внутри?
Узнав о том, что в контроллере LeapMotion используются две камеры, мы тут же его заказали «на потыкать».


Думаю, о том, что такое LeapMotion если не знают, то хотя бы слышали все. Если все-таки не слышали — то это маленькая коробочка-контроллер, которая воспринимает движения рук, и позволяет этими самыми движениями управлять компьютером. Вот ролик, в котором показано как это происходит:

Я не буду подробно останавливаться на анбоксинге и обзоре самого устройства, потому что это уже давно сделали до меня, целых два [2] раза [3].
Я расскажу о более интересной вещи — как эта штука, собственно, работает. Устройство готово к препарированию:
LeapMotion. Что внутри?
Общупав его со всех сторон, выявляется первый вариант вскрытия — резиновая наклейка в нижней части, которая легко отклеивается:
LeapMotion. Что внутри?
Под ней обнаруживаются несколько винтов:
LeapMotion. Что внутри?
Который естественно тут же выкручиваются, и… и ничего не происходит. Устройство выглядит таким же монолитом как и прежде. Хорошо, зайдем с другой стороны в прямом и переносном смысле:
LeapMotion. Что внутри?
Темная поверхность на лицевой части — непрозрачный ИК-проницаемый пластик. Он тоже на что-то приклеен, но медленными движениями термофена его удалось освободить от объятий клея и корпуса. Убираем его в сторону, и видим ГЛАЗА:
LeapMotion. Что внутри?
На вас они не производят такого впечатления, потому что вы уже видели их в заглавной фотке. Но когда убираешь непрозрачный пластик, а из-за него на тебя смотрят — ощущение незабываемое.
Убираем резиновый уплотнитель, и видим первую плату:
LeapMotion. Что внутри?
Она держится на четырех шурупах. Откручиваем их, снимаем верхнюю плату, и получаем доступ к нижней:
LeapMotion. Что внутри?
Вот она-то, вместе с черным пластиковым вкладышом и держится теми винтами, что мы видели ранее. Хорошо что мы их уже выкрутили :)
Контрольное включение, проверяем корректную работу после разборки:
LeapMotion. Что внутри?
Все нормально. Можно играться дальше.

При соединении платы составляют вот такой бутерброд:
LeapMotion. Что внутри?
Соединяются платы вот таким разьемом(часть отэц):
LeapMotion. Что внутри?
И другая часть:
LeapMotion. Что внутри?
Конечно, нет нужды показывать его в таких подробностях, но я все еще радуюсь своему макро-обьективу. Переходим к платам(нижняя сторона верхней платы):
LeapMotion. Что внутри?
На ней расположен контроллер CYUSB301X [4]:
LeapMotion. Что внутри?
Это 32-битный ARM9 контролер от Cypress. 200МГц, USB3.0 и 2.0, OTG. Рассчитан как раз на работу с картинками и видео.
USB3.0(интересно зачем, неужели 2.0 не хватило бы?) разьем:
LeapMotion. Что внутри?
Рядом расположился MOSFET:
LeapMotion. Что внутри?
И два больших конденсатора:
LeapMotion. Что внутри?

Больше на этой стороне ничего интересного нет. Смотрим на верхнюю сторону первой платы:
LeapMotion. Что внутри?
Это флеш-память MXIC 25L3206E, SPI-интерфейс, 32 мегабита. В ней хранится прошивка контроллера. Разработчики почему-то не стали использовать фирменную фишку кипрессовских контроллеров — загрузка прошивки по USB. Может быть, для ускорения загрузки?
Разведенный UART:
LeapMotion. Что внутри?
Увидев его, мы настолько быстро к нему припаялись, что даже не успели сфотографировать контактные площадки без припоя.
LeapMotion. Что внутри?
К сожалению, он молчит в него как партизан — ни единого байтика.
Так что, посмотрим на что-нибудь более интересное, например на один из трех инфракрасных светодиодов:
LeapMotion. Что внутри?
Рядом с ним — по видимому, обвязка для управления им — в режиме ожидания светодиоды заметно гасят яркость.
А вот еще один, центральный светодиод:
LeapMotion. Что внутри?
Единственное отличие — немного другая форма линзы. Рядом с ним — точно такая же обвязка.

Оставшаяся плата — довольно скучная. Две камеры с объективами «рыбий глаз», да разъем.
Еще раз удивляемся ощущению рожицы с глазами-камерами, и ртом-разьемом:
LeapMotion. Что внутри?
Думаю, разработчики не случайно остановились на именно таком расположении компонентов. °-°
Камеры черно-белые, разрешением всего 640×480, но зато могут выдавать 60 кадров в секунду.
LeapMotion. Что внутри?
Посчитаем. 0.3 мегапикселя, на 60 кадров, две камеры, без сжатия… 640*480*60*2=35Мбайт/сек. Видимо поэтому и поставили USB3.0, такая скорость недостижима для 2.0, а разработать сжатие было дороже(в накладных расходах), чем поставить новый чип.
Впрочем, в режиме USB2.0 устройств тоже работает, но снижает частоту кадром — реакция становится задумчивее.

Хотел посмотреть на матрицу — но объективы камер были заклеены герметиком:
LeapMotion. Что внутри?
Так что дальше мы разбирать не решились, опасаясь нарушить фокусировку. Камеры снимают полностью в ИК-диапазоне [5] — темный пластик отрезает полностью видимый свет, а инфракрасное излучение от светодиодов, отраженное от кожи рук — пропускает. Как и ожидалось, при ярком источнике инфракрасного света позади(солнце, лампы накаливания), определение пальцев начинает немного подглючивать. Используйте люминесцентные и светодиодные лампы. :)

Выводы

В плане схемотехники — устройство довольно глупое. По сути, просто веб-камера с подсветкой, которая гонит видео-поток на компьютер.
Картинка с двух камер выглядит вот так забавно:
LeapMotion. Что внутри?
А вот на компе картинка обрабатывается, по двум изображениям строится карта глубин:
LeapMotion. Что внутри?
И создается массив точек [6], с которым уже работают программы:
LeapMotion. Что внутри?

Работать с камерой можно и без использования родного ПО — добрые люди разобрали протокол и написали программки [7] для работы с ним.

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

Напоследок — забавный двухцветный светодиод:
LeapMotion. Что внутри?

Напоминаю, если вы не хотите пропустить эпопею с чайником и хотите увидеть все новые посты нашей компании, вы можете подписаться на imageна странице компании [8](кнопка «подписаться»)

Автор: vvzvlad

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/gadzhety-ustrojstva-dlya-gikov/46762

Ссылки в тексте:

[1] предыдущему: http://habrahabr.ru/company/avi/blog/197372/

[2] два: http://habrahabr.ru/company/rozetked/blog/190404/http://habrahabr.ru/company/rozetked/blog/190404/

[3] раза: http://habrahabr.ru/post/169043/

[4] CYUSB301X: http://www.cypress.com/?docID=44322

[5] ИК-диапазоне: http://habrahabr.ru/company/avi/blog/195580/

[6] массив точек: http://www.youtube.com/watch?v=353p4IozW-4

[7] программки: https://github.com/openleap

[8] на странице компании: http://habrahabr.ru/company/avi/

[9] Источник: http://habrahabr.ru/post/199230/