0,0
рейтинг
11 июля 2014 в 01:52

Nvidia + Nexus 7 + две лупы + коробка = VR шлем

Добрый день! В интернете уже накопилось достаточное количество статей по сборке DIY VR шлемов и хабр тому не исключение. Но в большинстве случаев при сборке используются смартфоны с относительно не большими дисплеями, что не позволяет получить широкий угол обзора. Сегодня же мы будем собирать шлем на основе Nexus 7, потратив всего 600 рублей в ближайшем гипермарките. Ну и т.к. главный лозунг этой статьи «Меньше теории, больше практики», хватит лишних слов, начинаем!





0. Предисловие


Данная статья написана по просьбам пользователей. Написана она быстро, на коленке, как и сам шлем. Но в ней я постараюсь рассказать всё от начала и до конца. Прошу заметить, данный шлем не совместим с нативными приложениями Oculus Rift, а все фотографии были сделаны просто для «истории», но впоследствии использованы в статье, т.ч. не обессудьте.

1. Идём по магазинам


Итак. Первое, что нам нужно сделать это купить всё нужное. Я буду рассматривать именно свой случай, но ничего не мешает вам применить смекалку и свои инженерные навыки в проектировании вашего варианта шлема.

Мой список покупок:
  • 1. Цианоакрилат, по простому суперклей. 2шт = 60руб.
  • 2. Коробка для инструментов на 11" = 120 руб.
  • 3. Маска для сварки = 70 руб.
  • 4. Коврика для мыши. 2шт = 80 руб. (или тонкий поролон)
  • 5. Тянущаяся лента. 2 метра = 150 руб. (Покупается в любом швейном магазине)
  • 6. Лупы на 5 крат, диаметром 65мм. 2шт = 120 руб.

А ещё вам понадобятся:
  • 1. Nexus 7
  • 2. Nvidia GTX 650 и старше (для работы GameStream)
  • 3. Хороший WiFi роутер

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

2. Тестируем линзы


Я использовал обычные линзы от 5-кратных луп. Как ни странно они показали наилучшие показатели при тестировании. Расстояние до экрана в данном случае равно ~6-7см. Можно использовать и другие линзы. Мной были протестированы стекла с 6- и 8-кратным увеличением, угол обзора в этом случае становится выше, но глазу гораздо труднее сфокусироваться. В любом случае, советую сразу протестировать и прикинуть нужное расстояние и положение линз! Настоятельно рекомендую тестировать уже на играх с драйверами Vireio Perception. Настройку их мы рассмотрим немного ниже. Или использовать нативные Oculus Rift приложения. Демо под Android не имеют общих стандартов и в большинстве своём не предназначены для работы на планшетах. Используя их, вы можете потратить очень много времени, подбирая расположение линз, а затем обнаружить, что при трансляции с ПК картинка двоится. Единственное приложение которое хорошо заработало у меняна планшете — это DiveCityCoaster. Для тестов я использовал обычную коробку. Во время экспериментов выяснилось, что держатель стёкол от сварочной маски вполне подходит и для крепления моих линз.



3. Сборка


Я использовал паяльник с тонким стержнем для резки пластика. В зависимости от плотности пластика, вы можете использовать пилку или нож. При склейке деталей советую их ошкуривать, особенно это касается резиновой маски.







Крышку и верх коробки я срезал, так как они были достаточно увесистые, но возможно вы найдете лучший вариант коробки, наличие крышки может хорошо изолировать внутренности от яркого света. Перегородку внутри я сделал из темного пластика, попавшегося под руку. Она служит ограничителем расстояния в нижней части, в верхней части ограничителем является сама коробка. Крепление планшета сделано из спицы с загнутыми концами. Высота подогнана несколькими слоями коврика для мыши. Резиновой стороной он лежит вверх, что не позволяет планшету скользить внутри.



Теперь закрепляем ремни. Советую крепление делать Т-образным, т.к. шлем с планшетом внутри будет весить порядочно и весь его вес будет давить на вашу переносицу. Тестируем! Подопытная не жалуется. Вот и отлично!



4. Настройка GameStream


Данная технология позволяет стримить картинку на планшет с очень хорошим качеством и практически без задержек. Для её работы потребуется видеокарта Nvidia GTX 650 и старше. Данная технология разрабатывалась для консоли Nvidia Shield, но с помощью приложения Limelight можно использовать практически любой планшет или телефон. Итак, устанавливаем последнюю версию драйверов и ставим галку на GeForce Experience. Запускаем приложение, добавляем нужные нам приложения и включаем GameStream в настройках. На планшете запускаем Limelight и добавляем компьютер, введя его IP адрес. Выбираем в Limelight качество стрима и тестируем. Сразу скажу, на стареньком роутере стандарта 802.11n 150Мб нормально отказывалась работать трансляция качества 720р, что меня и подтолкнуло к давно назревшей покупке нового устройства. Был куплен роутер на 300Мб, и после его установки заработала трансляция 1080р при 60fps.



5. FreePIE


FreePIE является очень глючным и непредсказуемым ПО, но после нескольких часов войны с ним, был написан небольшой скрипт и обнаружено большинство подводных камней. По пунктам. 1. Обязательно устанавливайте на планшет apk идущий в комплекте дистрибутива. В сети много версий приложений для Android поддерживающих FreePIE, но ни одно из них у меня нормально не заработало. 2. После запуска скрипта внутри FreePIE и запуске Vireio Perception ни в коем случае не переводите фокус на окно FreePIE, иначе оно обязательно зависнет. 3. На планшете не включайте режим Debug, при попытке свернуть приложение в этом режиме оно обязательно зависнет. В обычном режиме приложение нормально работает в фоне.



Скрипт который я использовал. Для старта отслеживания нужно нажать клавишу «Z».

def update():
   global yaw
   global roll
   global pitch
   yaw = android[0].googleYaw + math.pi
   roll = android[0].googleRoll
   pitch = android[0].googlePitch

if starting:
   yaw = 0
   roll = 0
   pitch = 0
   enabled = False
   android[0].update += update

deltaYaw = filters.delta(yaw)
deltaPitch = filters.delta(pitch)
deltaRoll = filters.delta(roll)

if math.fabs(deltaYaw) >= math.pi:
   deltaYaw = 0

if (enabled):
   mouse.deltaX = deltaYaw*1280	
   mouse.deltaY = deltaRoll*900

toggle = keyboard.getPressed(Key.Z)

if toggle:
   enabled = not enabled


Тестируем, если мышка слушается, берёмся за последний пункт.

6. Vireio Perception


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



Запускаем и выбираем «RiftUP!», данный драйвер позволяет настроить положение изображений по осям X\Y, настроить его скалирование, а главное смещать его относительно центра. Меню во время игры вызывается сочетанием клавиш Ctrl+Q, но настоятельно рекомендую вам прочитать мануал, идущий в комплекте с ПО.



7. Играем!


После настройки можно начинать играть. Лично у меня нормально запустились Mirror's Edge и Portal 2. А вот Left 4 Dead 2 зависал во время старта. Остальное пока не пробовал. Заявленный список поддерживаемых игр находится тут. Всё вышеописанное запускалось на Windows 8.1 64bit. Стабильность работы ПО в целом оставляет желать лучшего, особенно после общения с Oculus Rift.



Oculus Rift я тестировал и могу сказать, что полученное качество не намного хуже оригинала, но отсутствие совместимости и постоянные проблемы с драйверами заставляют рассматривать полученное устройство только как средство хотя бы немного приобщиться к VR эре и с нетерпением ждать выход Oculus Rift и Project Morpheus на рынок.

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



Надеюсь, данная информация была для вас полезна. С удовольствием отвечу на интересующие вопросы.
Спасибо за внимание!
Сергей Стрельников @PlazmX
карма
45,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (30)

  • +2
    Плюсы за разъяснение про FreePIE — это самое тонкое и нестабильное звено в таком проекте. Ребята, кто будет использовать подобную схему — обязательно обратите внимание на то, что сказано в статье про FreePIE, оно конечно не кровью написано, но потом, 100%
    • 0
      Самое интересное, что в одной из последних версий появилась поддержка треккера Rift, но при использовании данной библиотеки FreePIE наглухо виснет… После пары часов войны и гуглений забил на данную возможность. + изображение от Rift у меня достаточно сильно двоится.

      Возможно, у кого-то из читателей получится сделать полный аналог Oculus Rift! Если что, подробности в студию.
      • 0
        Насчет FreePIE есть мысль, что ему не нужен GUI, была бы версия в трее, с выбором скрипта из меню, и запуском без открытия. Есть подозрение, что это редактор шалит, наверняка обращали внимание, как фокус мыши не переводится в окно с текстом, если запущен скрипт. Он, точнее, переводится, но и как-бы нет.
    • 0
      У меня вообще FreePIE не заработал ни на одном из двух смартфонов. Не видит датчики.
      • 0
        А какой производитель? Модели?
        • 0
          Fly IQ442 и ZTE v970m
  • 0
    Настоятельно рекомендую тестировать уже на играх с драйверами Virieo Perception. Настройку их мы рассмотрим немного ниже. Демо под Android совершенно не предназначены для работы на планшетах и вы можете потратить очень много времени подбирая расположение линз, а затем обнаружить, что при трансляции с ПК картинка двоится. Единственное приложение которое хорошо заработало на планшете это DiveCityCoaster.


    Вот тут тонкий момент, ваш опыт совсем не повторяет мой. Я настраивал по всем возможным на андроиде приложениям/видеофайлам, в итоге настроилось всё просто прекрасно, всё видео с компьютера выглядит как надо, трехмерно, ничего не двоится, и единственный источник, который в моем шлеме не работает — это как раз DiveCityCoaster — он двоится. Больше не двоится ничего и нигде, вот такая вот история. Но я обязательно повторю вашу постройку для пробы и сравнения, очень интересно.
    • 0
      Возможно потому, что у вас смартфон. Хотя диагонали устройств не такие уж разные… Странно.
      А вот на Xperia S у меня работает всё. И DiveCityCoaster и Google Cardboard и все остальные приложения от Dive. Но получаемый угол обзора гораздо меньше.
      • 0
        Верно, смартфон, сони ксперия ультра, куда я поставил абсолютно все доступные приложения для гугл карборд и дуровис дайва, то есть порядка 35 штук, посмотрел какие-то ролики, фильмы, в том числе ютуб SBS видео (например игровые прохождения и демо для окулус рифта), и даже собрал Квейк-2, по схеме, указанной на сайте дуровиса, и запустил его в SBS режиме. Ну и с компьютера стримил многочисленные SBS источники — игры, фильмы, и единственное приложение, которое начало двоить — это именно американские гонки. Чудеса. Линзы у меня тоже пятикратные, как и у вас, только диаметром 50мм. В общем, видимо действительно, нужно отталкиваться от устройства, которое будет экраном в этой конструкции.
  • +8
    О, ковёр хорош!
  • 0
    /me потерял дар речи.
  • 0
    На thingiverse уже есть несколько подобных вариантов для распечатки на 3d-принтере. Но учитывая размеры — возникает выбор между «сделать за пару часов самому» и «потратить кучу времени и пластика на попытки».
  • +2
    Пентакс МЕ-супер на колонке стоит?
    • +1
      Именно он! =) А рядом его цифровой братик.
  • 0
    Какой роутер был и какой стал?
    • 0
      Вечером гляную точные названия моделей.
  • 0
    Я даже загорелся повторить. Но меня мучает вопрос — кто-нибудь пробовал играть под линем?
    • 0
      Под линукс точно есть нативные Rift приложения и игры, но вот в остальном уж не знаю…
      • 0
        То что есть, никто не сомневается. В Лефт фо Дед или Портал я играю там. А вот работает ли… Надо попробовать
  • 0
    Есть один вопрос, если нету гироскопа, сие поделие можно использовать?
    • 0
      Нет, треккинг нормально работать не будет. Но можно, например, приладить Wii Remote или Razer Hydra, ну или FreeTracker на Arduino собрать.. Но это тянет на отдельную статью…
      • +1
        Понятно, мой телефон отпадает. Мне так интересно поиграть в шлеме в тот же халфлайф что я даже готов поставить windows и собрать шлем :). Мне просто интересно.
        • 0
          Часто на форумах вижу конструкции типа «один смартфон — экран, второй — трекер головы» в совершенно невообразимых конфигурациях. Так, на заметку :)
    • +1
      Попробуйте www.free-track.net/english/ Понадобится веб камера и 3 светодиода. В Virieo он нативно поддерживается в качестве трекера (хотя в этой связке я на практике еще не пробовал) и поддерживает больше степеней свободы чем гироскоп.
  • 0
    >>Прошу заметить, данный шлем не совместим с нативными приложениями Oculus Rift

    В тоже время с гугловским приложением play.google.com/store/apps/details?id=com.google.samples.apps.cardboarddemo он по идее будет совместим, не проверяли?
    • 0
      Да. Работает хорошо. Для управления магнитик только нужен.

      С окулусом устройство не совместимо по сути только из-за трекинга. Если сможите настроить линзы под нативное изображение от Окулуса то все будет ОКей. По идее и трекенг в скором времени можно юудет реализовать.
  • +1
    Вот к этой штуке бы еще сферу Латыпова бы…
  • 0
    Никто не пробовал стриминг на Radeon — через AMD Screen Mirror или Raptr, CiiNow? Или есть ещё какие-то программы, использующие VCE?
  • 0
    Есть ли разница, с какого расстояния глаз должен смотреть на линзу?
  • 0
    Попытался использовать опыт статьи, но так и не смог побороть Vireio Perception. Закинул все *.dill из папки bin распакованного Vireio Perception в папку со скайримом, запускаю прогу, а мне выдается, что поддерживаемых игр не найдено. То же самое с Portal 2

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.