Главный редактор

Виртуальная реальность своими руками: как собрать собственную гарнитуру и почему вам, вероятно, это не понадобится.

Краткое руководство по радостям и трудностям создания собственного налобного дисплея.

Виртуальная реальность своими руками: как собрать собственную гарнитуру и почему вам, вероятно, это не понадобится.

Виртуальная реальность сейчас находится в несколько странном положении. После множества несбывшихся надежд в 1990-х годах она триумфально вернулась с выходом Oculus Rift в 2016 году . Какое-то время казалось, что VR, AR, XR, метавселенная или как бы вы это ни называли, станет невероятно популярной. Марк Цукерберг был в этом убежден , и даже Apple присоединилась к ажиотажу со своим Vision Pro .

Но к тому времени интерес к альтернативным реальностям, обозначенным всеми аббревиатурами, уже неуклонно снижался, и с тех пор он только угасал. Темпы разработки новых гарнитур замедлились, и многие компании (включая Apple) сократили или отложили свои усилия. Хотя новые релизы, такие как Steam Frame и Pimax Dream Air, всё ещё выходят, многие из самых интересных разработок в этой области сегодня ориентированы на энтузиастов.

Да, вы правильно поняли, самодельные VR-устройства — это реальность, и, потратив пару сотен долларов на компоненты и много часов своего времени, вы тоже можете погрузиться в захватывающий мир виртуальной реальности, одновременно испытав на себе все прелести и сложности пайки, прошивки и 3D-печати. ​​Я сам прошел через это и понял, почему это до сих пор остается довольно нишевым направлением.

Ландшафт виртуальной реальности, создаваемой своими руками

Я случайно попал в эту сферу около года назад. В основном я использую VR для симуляторов гонок, чтобы тренироваться водить лучшие в мире автомобили на лучших трассах, не выходя из дома в пижаме. В то время я использовал HP Reverb G2, гарнитуру виртуальной реальности, созданную на основе стандарта Windows Mixed Reality (WMR).

В рамках мер по сдерживанию развития VR-технологий Microsoft прекратила поддержку WMR, и я опасался, что мне может понадобиться новая гарнитура. (Мои опасения были напрасны. Многие талантливые люди поддерживали работоспособность гарнитур WMR с помощью сторонних драйверов, таких как OASIS в Steam.)

Именно тогда я наткнулся на видео ютубера CNCDan о создании VR-гарнитуры за 150 долларов . Цена, безусловно, была привлекательной, и, как человек, обладающий особыми навыками в области электроники, приобретенными за годы разборки и ремонта пинбольных автоматов , я подумал, что это звучит довольно забавно.

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

Лучше всего начать с Relativty VR . Этот проект, начатый в конце 2010-х годов Йонасом Чекконом, Габриэлем Комбе и Максимом Куте, включает в себя весь необходимый код, настройки и инструкции для начала работы.

Но есть и другие, например, OpenVR Arduino HMD , Project North Star и система отслеживания всего тела SlimeVR . Существует множество способов собрать свою гарнитуру. В своей первой попытке я решил упростить задачу, используя программное обеспечение Relativty и полагаясь на 3D-модели гарнитуры, предоставленные CNCDan в рамках его сборки. Первый шаг: аппаратная часть.

Спецификация материалов

Самодельная VR-гарнитура — это сочетание аппаратного и программного обеспечения, и хотя программное обеспечение можно подготовить всего за несколько кликов, скорее всего, потребуется некоторое время, чтобы получить необходимое оборудование. Это особенно актуально, учитывая неопределенность в отношении международной доставки.

Самый большой и, возможно, самый важный компонент оборудования — это 3D-принтер. Хотя я видел несколько впечатляющих самодельных VR-гарнитур, сделанных из переделанных держателей для VR-телефонов — например , Google Cardboard — большинство проектов помещаются в корпуса, изготовленные на 3D-принтере. Если у вас нет доступа к принтеру, такие сервисы, как Formlabs, могут изготовить его по почте, но, учитывая сложность работы, безусловно, выгоднее печатать дома.

В любом случае, вам нужно будет купить довольно много вещей. Начнём с самого дорогого: дисплеев. Вы можете подумать, что найти пару панелей, достаточно маленьких и качественных для VR-гарнитуры, будет сложно и слишком дорого, и вы, конечно, можете потратить здесь немало, но стандартный вариант — это набор 2,9-дюймовых ЖК-дисплеев, которые можно приобрести вместе с необходимым контроллером примерно за 125 долларов.

Каждый из них имеет разрешение 1440×1440 пикселей. Они обеспечивают яркость 150 нит и контрастность 600:1. Не сказать, что это характеристики мирового класса, но вполне достаточны для данного применения, и хотя они довольно некрасиво смотрятся под необычными углами, поскольку вы будете буквально держать их в нескольких сантиметрах от глаз, это не является проблемой.

Следующий недостающий элемент — это сенсорный модуль, содержащий инерциальный измерительный блок (IMU). Это устройство определяет положение гарнитуры. Вам понадобится плата GY-91, которая имеет встроенный акселерометр, гироскоп, магнитометр и барометр. Её можно найти примерно за 5 долларов, но будьте осторожны при покупке, причины я объясню чуть позже.

Далее следует схема, которая всё это объединяет. В некоторых самодельных VR-проектах используются специальные печатные платы, напичканные компонентами. В проекте Relativty же используется только Arduino Pro Micro, который можно купить в любом магазине электроники за 5 долларов или меньше.

Вам также понадобятся пара линз диаметром 34 мм для фокусировки этих крошечных дисплеев, некоторые дополнительные детали для соединения элементов и нейлоновый ремешок, чтобы закрепить устройство на голове. Ах да, и коврик от HTC Vive, потому что никому не хочется, чтобы острые края многослойного пластика, выдавленного из 3D-принтера, терлись о лицо.

В общей сложности я потратил на все это чуть меньше 180 долларов.

Время макетной платы

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

Я не буду здесь приводить все подробности подключения, так как лучше следовать руководству на GitHub, указанном выше, но в целом вам необходимо подключить IMU к Arduino для подачи питания и передачи данных.

Также, как показано в видео выше, вы можете дополнительно подключить контроллер дисплея к Arduino для питания. Именно так я и поступил в ходе тестирования, но имейте в виду, что это не всегда хорошая идея, учитывая энергопотребление дисплеев по сравнению с возможностями Arduino. Лучше использовать отдельный USB-кабель для подключения к дисплею или USB-разветвитель внутри гарнитуры.

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

Развлечения с прошивкой

Прошивка Arduino должна быть простой частью, но именно здесь у меня всё пошло наперекосяк. В теории, вы устанавливаете Arduino IDE на свой компьютер, скачиваете проект FastIMU, подключаете Arduino через USB, а затем нажимаете «Компилировать». Легко.

У меня постоянно что-то шло не так. Снова и снова появлялось стандартное сообщение об ошибке, e:-1. После некоторых поисков и экспериментов я наконец-то разобрался, в чем дело, и новости были неутешительными.

Хотя я заказал и оплатил GY-91 со встроенным IMU 9250, и именно так он и определил устройство, на самом деле это был базовый, более дешевый IMU 6500, у которого отсутствует магнитометр.

Как я убедился (на собственном горьком опыте), это, к сожалению, довольно распространенная ситуация. Многие недобросовестные компании, занимающиеся электроникой, с удовольствием продают вам не тот компонент по неправильной цене. Оба устройства совместимы и работают практически одинаково, но без магнитометра точность отслеживания существенно снижается.

После того, как я обновил код, указав в качестве источника данные о моей плате 6500, а не о 9250, как я думал, всё прошилось без проблем, и я мгновенно запустил плату. Я откалибровал свой IMU через Arduino IDE, и был готов к окончательной сборке.

Собираем всё воедино

В интернете можно найти различные корпуса для кастомных VR-гарнитур, многие из которых разработаны для работы с конкретным набором плат, используемых в Relativty. Я решил использовать файлы CNCDan, поскольку они показались мне чистым и продуманным решением, позволяющим даже регулировать расстояние между дисплеями, известное как межзрачковое расстояние (IPD).

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

Здесь я допустил досадную ошибку. В конструкциях для глаз предусмотрены маленькие зажимы, а в инструкции предлагается просто вставить дисплеи туда.

Так делать не следует. Открытые ЖК-экраны чрезвычайно хрупкие, и, защелкнув их, я умудрился сломать оба. Небольшого усилия оказалось достаточно, чтобы они разлетелись на части, и повреждения были незаметны, пока я их не включил.

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

Вступить в игру

Закрепив все провода, я скрутил детали гарнитуры, прикрепил лицевую накладку, продел ремешок и потратил около пяти минут, пытаясь добиться удобной посадки. Мне так и не удалось этого сделать.

Я запустил SteamVR в режиме «гостиная» и сразу же почувствовал себя дезориентированным. Во-первых, я смотрел прямо в пол. Во-вторых, при повороте головы изображение начинало вращаться в разные стороны, что быстро вызывало тошноту.

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

После повторной калибровки и небольшой доработки прошивки я вернулся в комнату настройки SteamVR и понял, что проблема всё ещё остаётся. Держа голову совершенно неподвижно, я видел, как перспектива медленно вращается.

Кроме того, оси инерциального измерительного блока (IMU) казались слегка перекрещенными, поэтому изменение перспективы не совсем соответствовало движению моей головы. Я проверил правильность установки IMU в корпусе и несколько раз выполнял повторную калибровку, но это не помогло.

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

Тем не менее, качество изображения оказалось не таким уж плохим, как я ожидал. Эти дешевые пластиковые линзы работают на удивление хорошо, и хотя я мог различить пиксели на дисплеях (ужасный эффект «сетки» в VR), это меня не беспокоило. Яркость и контрастность были более чем достаточными, а частота обновления 60 Гц была достаточной для обычных тренировок.

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

Я участвовал в многочасовых гонках на выносливость в нескольких массовых VR-гарнитурах. После 15 минут в этой я был готов сдаться.

Заключительные мысли и планы на будущее

Мои общие затраты на этот проект составили 239,93 доллара. Но это включает в себя дополнительные 62 доллара, которые мне пришлось потратить на второй комплект дисплеев. Если избежать этой дорогостоящей ошибки, то общая стоимость компонентов составит около 180 долларов.

Это примерно вдвое дешевле, чем Meta Quest 3S , одна из самых дешевых гарнитур на рынке прямо сейчас. Это существенная экономия, но я бы определенно рекомендовал большинству людей доплатить. Проблемы с отслеживанием в моей гарнитуре просто сводят с ума, качество изображения в лучшем случае посредственное, и это, безусловно, самая неудобная гарнитура, которую я когда-либо носил.

Однако всё это можно исправить. В некоторых проектах используется инерциальный измерительный блок MinIMU-9, который выглядит намного точнее и его сложнее подделать, но он также значительно дороже — 35 долларов. Можно также перейти на более качественные ЖК-дисплеи или даже крошечные OLED-панели, обеспечивающие всю необходимую цветопередачу и контрастность. Есть варианты с встроенными аккумуляторными батареями, беспроводными адаптерами, и, конечно же, можно потратить столько времени, сколько захочется, на разработку сверхкомфортного корпуса для всего этого.

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

Как всегда в подобных проектах, все зависит от ваших потребностей. Если вам просто нужна недорогая, простая и надежная гарнитура для полного погружения в мир игр нового поколения, то это, вероятно, не тот вариант.

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

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

avatar
Главный редактор

0 комментариев