Собираем VR очки с трекингом головы на базе RTD2660

- Цена: 588р
- Перейти в магазин
Добрый день (опционально вечер/ночь).
Сегодня расскажу Вам о том, как можно изготовить очки виртуальной реальности своими руками, без телефонов (Трафик!):
ПРЕДИСЛОВИЕ
На данный момент НЕТ официального стандарта для VR очков/маски и тому подобных вещей. Про Oculus, HTC, Samsung, Sony и тд. нет смысла говорить и сравнивать. Это просто устройства с отличающимся функционалом + / -, какие-либо примочки. Тут нет смысла спорить о том, что такое VR, все видят по-своему.
Мне давненько хотелось поиграть с такого рода вещами, но телефонные очки меня не прельщают, неудобно, тяжело и мало приложений, плохая синхронизация с пк, батарея телефона, задержка по радиоканалу.
В процессе работы над своим экспериментом было выделено 2 нюанса важных для меня:
1. Трекинг головы.
2. Дисплей вместо телефона.
Исходя из этих нюансов я и занялся постройкой агрегата.
Скажу сразу, вещь сама в себе и не претендует на качество, каждый может повторить изготовление этого шлема исходя из полученных инструкций.
КОМПЛЕКТУЮЩИЕ
Для очков мне понадобились следующие комплектующие:
1. arduino Leonardo (можно использовать китайские платы Pro Micro, для уменьшения размеров, об этом я узнал много позже иначе бы применил именно ее);
2. гироскоп GY521;
3. самые дешевые очки для телефона с линзами и механизмом подгонки под глаза;
4. матрица для вывода изображения;
5. контроллер для матрицы с портом HDMI.
МАТЧАСТЬ
Первым делом будет предупреждение:

Вся ответственность, а именно самостоятельное проникновение в корпус готового изделия с последующим нарушением его целостности работоспособности, лежит на человеке совершившим это действие.
Корпус:
Корпус придется собирать под матрицу отдельно, в связи с тем, что матрица довольно объемная и требуется другое фокусировочное расстояние. Требуется замена линз. Из этого корпуса будет взята прикладывающаяся к голове и носу часть.



Контроллер:

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

Мой дисплей имеет соотношение сторон 16:9 и разрешение, которое укладывается в диапазон 1920х1440.
Проблема состоит в том, что контроллер имеет не то разрешение, и его надо прошить.
Изначально, при подключении дисплея, вместо картинки я получил набор полос. (Даже подумал, что накрылся сам дисплей).
Но через некоторое время (при подключению к компьютеру) стало ясно, что дисплей что-то выводит, но видно что у него проблема с синхронизацией и разрешением.
При прошивке перебрал не один десяток и остановился на данной версии:
Прошивка.
До этого сделал бекап.

Теперь при подключении к компьютеру, дисплей отображает информацию, о том, что подключен разъем HDMI и предлагает разрешение 1024х600. При это дисплей активно пытается получить сигнал с VGA, при этом выходит сообщение — «Подключите кабель VGA».
Пришлось снова чесать голову. Данный контролер является прямым аналогом плат с большим количеством разъемов, например:

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

На всякий случай прикладываю схему чипа RTD2660:

После прошивки и переключения контроллера в режим HDMI. Дисплей стал стартовать из под WIndows 7, велико было мое удивление, когда помимо родного, наитивного разрешения 1024х600, я смог установить разрешение 720p и 1080p. При 720р работает отлично не искажается, а вот в 1080р уже шрифты не читаются, но точно так же держит его, сюрприз, запускать игры в 720р веселей чем в 1024х600 (не все игры поддерживают низкие разрешения).

Матрица :
Я уже игрался в очках на телефоне, разрешение составляло 960Х540. Запускал Half-life 2, Portal, но не нравилось, то что это телефон и то что нельзя осмотреть пространство головой, вращал мышью + задержки по Wi-fi, просто бесили и не давали играть. В целом пиксели видно, но мне все-равно понравилось.
Из ящика с запчастями была извлечена матрица 1024х600 размером 7 дюймов, парт номер 7300130906 E231732 NETRON-YFP08. Исходя из доступного разрешения матрицы можно сделать вывод, что для каждого глаза разрешение будет составлять 512х600, что чуть больше чем разрешение экрана телефона и самое важное, будут отсутствовать задержки.

Коннектор матрицы имеет 50 пин и полностью совместим с контроллером дисплея.

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

Доработка матрицы осуществляется в 7 этапов:
1. разбираем матрицу по краю рамки;

2. кладем модуль на подкладку (тут можно прихватить скотчем края модуля к подкладке, чтобы вода не попортила деталь);
3. сверху на дисплей кладется влажная салфетка, желательно по размеру матовой пленки;

4. салфетка аккуратно пропитываются малым количеством воды градусов около 25;
5. выжидаем около 2 — 3 часов, все зависит от качества нанесения покрытия. (клей у матовых пленок чувствителен к воде);
6. аккуратно поддеваем край и медленно, без рывков, снимаем матовый слой;

7. проверяем.



Если Вы захотите собрать очки на 2К дисплее, то я дам Вам ссылку:
Полностью готовый модуль с HDMI для очков в 2К, 6 дюймов
За эту цену на али можно купить готовое устройство с FullHD -> готовое устройство
Поэтому я не стал тратить деньги на концепт и решил для пробы пользоваться тем, что есть.
Ардуино и гироскоп:
Самая важная часть получения эффекта присутствия в игре, приложении или видео — это возможность управлять головой, а значит будем писать трекинг головы.
Выдержка из официального источника для Arduino Leonardo:
В отличие от всех предыдущих плат ATmega32u4 имеет встроенную поддержку для USB соединения, это позволяет задать как Leonardo будет виден при подключение к компьютеру, это может быть клавиатура, мышь, виртуальный серийный / COM порт.
Именно это мне и надо.
Гироскоп был выбран самый простой и распространенный — GY521, на борту имеет акселерометр:
1. Accelerometer ranges: ±2, ±4, ±8, ±16g
2. Gyroscope ranges: ± 250, 500, 1000, 2000 °/s
3. Voltage range: 3.3V — 5V (the module include a low drop-out voltage regulator)
Подключение гироскопа:

Исходя из скетча можно сделать вывод, что трекинг головы это по сути гиро-мышь.
КОНЦЕПТ
Все свелось к разделению на этапы:
1. примерка трекинга головы;
2. написание прошивки трекера;
3. заказ необходимого контроллера для дисплея;
4. настройка и запуск дисплея с контроллером;
5. примерка и общая сборка.
Так выглядела отладка трекера головы с гироскопом:


Видео работы трекера головы:
Запуск дисплея с контроллером:


Для запуска дисплея мне потребуется программа Tridef 3D, которая позволяет запускать игры и приложения с изображением Side by Side, ею я и воспользовался в качестве теста.
Причина использования вполне ясна, данные очки не будут опознаваться как очки Oculus DK1/DK2 и для того, что бы устройство опознавалось как VR очки хотя бы первых ревизий окулуса, надо менять полностью программное обеспечение контроллера дисплея, что пока я себе позволить не могу, так же потребуется либо частичное протипирование, либо создавать снова концепт платы на базе уже вот таких гироскопов, которые применяются в окулусах — гиро-модуль
Но в связи с тем, что я решил много не тратить на этот проект и зарабатывать на нем я тоже не собираюсь, это мы оставим для других людей. (Я знаю кто на основе подобных очков для смартов изготавливает наборы с прошивкой окулуса, но не буду рекламировать их, пост не о них)
Корпус
Наигравшись со стандартным корпусом, я решил примерить матрицу к нему и очень сильно разочаровался, матрица оказалась слишком большая для фокусного расстояния, я все видел но не видел картинки целиком, она не складывалась в единую.
Началось собирание корпуса с нуля.
Отломав все выступающие части, а так же крепление ремня для головы получил такой набор:




Собственно как и многие прототипы я выбрал гофрированный картон, как самый гибкий, легко доступный материал:


Тестирование
В процессе тестирования очки показали себя крайне хорошо, на разрешении 720р играть одно удовольствие. Гироскоп отлично работает и отрабатывает движения головы, мышь не плывет по координатам, кабеля я пропускал через голову позади себя, 3 метров хватило с лихвой.
Нюанс:
Очки довольно сильно выпирают, хоть масса не очень большая крутить головой надо привыкать.


Недостатки такой системы:
1.Надо меньше матрицу размером, что бы уменьшить длинну корпуса.
2.Нужны качественные линзы (для своих я брал с луп в ближайшей роспечати).
В целом для себя, как нетребовательного человека пойдет.
Как наиграюсь с этим всем буду делать из этой матрицы и контроллера проектор 8D. (Следите за обзорами)
Спасибо за внимание, терпение с удовольствием отвечу на ваши комментарии.


Сегодня расскажу Вам о том, как можно изготовить очки виртуальной реальности своими руками, без телефонов (Трафик!):
ПРЕДИСЛОВИЕ
На данный момент НЕТ официального стандарта для VR очков/маски и тому подобных вещей. Про Oculus, HTC, Samsung, Sony и тд. нет смысла говорить и сравнивать. Это просто устройства с отличающимся функционалом + / -, какие-либо примочки. Тут нет смысла спорить о том, что такое VR, все видят по-своему.
Мне давненько хотелось поиграть с такого рода вещами, но телефонные очки меня не прельщают, неудобно, тяжело и мало приложений, плохая синхронизация с пк, батарея телефона, задержка по радиоканалу.
В процессе работы над своим экспериментом было выделено 2 нюанса важных для меня:
1. Трекинг головы.
2. Дисплей вместо телефона.
Исходя из этих нюансов я и занялся постройкой агрегата.
Скажу сразу, вещь сама в себе и не претендует на качество, каждый может повторить изготовление этого шлема исходя из полученных инструкций.
КОМПЛЕКТУЮЩИЕ
Для очков мне понадобились следующие комплектующие:
1. arduino Leonardo (можно использовать китайские платы Pro Micro, для уменьшения размеров, об этом я узнал много позже иначе бы применил именно ее);
2. гироскоп GY521;
3. самые дешевые очки для телефона с линзами и механизмом подгонки под глаза;
4. матрица для вывода изображения;
5. контроллер для матрицы с портом HDMI.
МАТЧАСТЬ
Первым делом будет предупреждение:

Вся ответственность, а именно самостоятельное проникновение в корпус готового изделия с последующим нарушением его целостности работоспособности, лежит на человеке совершившим это действие.
Корпус:
Корпус придется собирать под матрицу отдельно, в связи с тем, что матрица довольно объемная и требуется другое фокусировочное расстояние. Требуется замена линз. Из этого корпуса будет взята прикладывающаяся к голове и носу часть.



Контроллер:

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

Мой дисплей имеет соотношение сторон 16:9 и разрешение, которое укладывается в диапазон 1920х1440.
Проблема состоит в том, что контроллер имеет не то разрешение, и его надо прошить.
Изначально, при подключении дисплея, вместо картинки я получил набор полос. (Даже подумал, что накрылся сам дисплей).
Но через некоторое время (при подключению к компьютеру) стало ясно, что дисплей что-то выводит, но видно что у него проблема с синхронизацией и разрешением.
При прошивке перебрал не один десяток и остановился на данной версии:
Прошивка.
До этого сделал бекап.

Теперь при подключении к компьютеру, дисплей отображает информацию, о том, что подключен разъем HDMI и предлагает разрешение 1024х600. При это дисплей активно пытается получить сигнал с VGA, при этом выходит сообщение — «Подключите кабель VGA».
Пришлось снова чесать голову. Данный контролер является прямым аналогом плат с большим количеством разъемов, например:

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

На всякий случай прикладываю схему чипа RTD2660:

После прошивки и переключения контроллера в режим HDMI. Дисплей стал стартовать из под WIndows 7, велико было мое удивление, когда помимо родного, наитивного разрешения 1024х600, я смог установить разрешение 720p и 1080p. При 720р работает отлично не искажается, а вот в 1080р уже шрифты не читаются, но точно так же держит его, сюрприз, запускать игры в 720р веселей чем в 1024х600 (не все игры поддерживают низкие разрешения).

Матрица :
Я уже игрался в очках на телефоне, разрешение составляло 960Х540. Запускал Half-life 2, Portal, но не нравилось, то что это телефон и то что нельзя осмотреть пространство головой, вращал мышью + задержки по Wi-fi, просто бесили и не давали играть. В целом пиксели видно, но мне все-равно понравилось.
Из ящика с запчастями была извлечена матрица 1024х600 размером 7 дюймов, парт номер 7300130906 E231732 NETRON-YFP08. Исходя из доступного разрешения матрицы можно сделать вывод, что для каждого глаза разрешение будет составлять 512х600, что чуть больше чем разрешение экрана телефона и самое важное, будут отсутствовать задержки.

Коннектор матрицы имеет 50 пин и полностью совместим с контроллером дисплея.

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

Доработка матрицы осуществляется в 7 этапов:
1. разбираем матрицу по краю рамки;

2. кладем модуль на подкладку (тут можно прихватить скотчем края модуля к подкладке, чтобы вода не попортила деталь);
3. сверху на дисплей кладется влажная салфетка, желательно по размеру матовой пленки;

4. салфетка аккуратно пропитываются малым количеством воды градусов около 25;
5. выжидаем около 2 — 3 часов, все зависит от качества нанесения покрытия. (клей у матовых пленок чувствителен к воде);
6. аккуратно поддеваем край и медленно, без рывков, снимаем матовый слой;

7. проверяем.



Если Вы захотите собрать очки на 2К дисплее, то я дам Вам ссылку:
Полностью готовый модуль с HDMI для очков в 2К, 6 дюймов
За эту цену на али можно купить готовое устройство с FullHD -> готовое устройство
Поэтому я не стал тратить деньги на концепт и решил для пробы пользоваться тем, что есть.
Ардуино и гироскоп:
Самая важная часть получения эффекта присутствия в игре, приложении или видео — это возможность управлять головой, а значит будем писать трекинг головы.
Выдержка из официального источника для Arduino Leonardo:
В отличие от всех предыдущих плат ATmega32u4 имеет встроенную поддержку для USB соединения, это позволяет задать как Leonardo будет виден при подключение к компьютеру, это может быть клавиатура, мышь, виртуальный серийный / COM порт.
Именно это мне и надо.
Гироскоп был выбран самый простой и распространенный — GY521, на борту имеет акселерометр:
1. Accelerometer ranges: ±2, ±4, ±8, ±16g
2. Gyroscope ranges: ± 250, 500, 1000, 2000 °/s
3. Voltage range: 3.3V — 5V (the module include a low drop-out voltage regulator)
Подключение гироскопа:

#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Mouse.h>
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
void setup() {
Serial.begin(115200);
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) {
while (1);
}
}
void loop() {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx+300)/200;
vy = -(gz+100)/200;
Mouse.move(vx, vy);
delay(2);
}
Исходя из скетча можно сделать вывод, что трекинг головы это по сути гиро-мышь.
КОНЦЕПТ
Все свелось к разделению на этапы:
1. примерка трекинга головы;
2. написание прошивки трекера;
3. заказ необходимого контроллера для дисплея;
4. настройка и запуск дисплея с контроллером;
5. примерка и общая сборка.
Так выглядела отладка трекера головы с гироскопом:


Видео работы трекера головы:
Запуск дисплея с контроллером:


Для запуска дисплея мне потребуется программа Tridef 3D, которая позволяет запускать игры и приложения с изображением Side by Side, ею я и воспользовался в качестве теста.
Причина использования вполне ясна, данные очки не будут опознаваться как очки Oculus DK1/DK2 и для того, что бы устройство опознавалось как VR очки хотя бы первых ревизий окулуса, надо менять полностью программное обеспечение контроллера дисплея, что пока я себе позволить не могу, так же потребуется либо частичное протипирование, либо создавать снова концепт платы на базе уже вот таких гироскопов, которые применяются в окулусах — гиро-модуль
Но в связи с тем, что я решил много не тратить на этот проект и зарабатывать на нем я тоже не собираюсь, это мы оставим для других людей. (Я знаю кто на основе подобных очков для смартов изготавливает наборы с прошивкой окулуса, но не буду рекламировать их, пост не о них)
Корпус
Наигравшись со стандартным корпусом, я решил примерить матрицу к нему и очень сильно разочаровался, матрица оказалась слишком большая для фокусного расстояния, я все видел но не видел картинки целиком, она не складывалась в единую.
Началось собирание корпуса с нуля.
Отломав все выступающие части, а так же крепление ремня для головы получил такой набор:




Собственно как и многие прототипы я выбрал гофрированный картон, как самый гибкий, легко доступный материал:


Тестирование
В процессе тестирования очки показали себя крайне хорошо, на разрешении 720р играть одно удовольствие. Гироскоп отлично работает и отрабатывает движения головы, мышь не плывет по координатам, кабеля я пропускал через голову позади себя, 3 метров хватило с лихвой.
Нюанс:
Очки довольно сильно выпирают, хоть масса не очень большая крутить головой надо привыкать.


Недостатки такой системы:
1.Надо меньше матрицу размером, что бы уменьшить длинну корпуса.
2.Нужны качественные линзы (для своих я брал с луп в ближайшей роспечати).
В целом для себя, как нетребовательного человека пойдет.
Как наиграюсь с этим всем буду делать из этой матрицы и контроллера проектор 8D. (Следите за обзорами)
Спасибо за внимание, терпение с удовольствием отвечу на ваши комментарии.
Беспощадный, самодельный VR


+61 |
20952
42
|
Самые обсуждаемые обзоры
+82 |
6785
133
|
+35 |
3006
103
|
Запускал Half-life 2, Portal
Не увидел в обзор, что за телефон у Вас?
Смотреть СНИЗУ — наверх.
Как по мне, толку с проектора будет больше.
Хотя и за очки, РЕСПЕКТ!
1. Что за «матовая пленка»? Я так подозреваю, что это не просто пленка, а поляризатор. Я отродясь не слыхивал, чтобы в такой дешманской матрице как Netron была бы какая то «матовая пленка»… Ха!!! Догнал… Это транспортировочная что ли? Так она в любом случае должна убираться…
2. Прошивок на контроллер PCB800168 существует всего 9 штук, и только одна на 1024*600 TTL. Интересно узнать, что вы там «перебрали не один десяток»? Прошивки на RTD2660H вообще? Это как минимум пустое занятие. Или именно на эту плату? Тогда я уже сказал, сколько на нее существует прошивок. А вообще — мой вам совет: прошивку (поскольку она всего одна подходящая) надо переделать — заново собрать EDID (чтобы компьютер «знал» про разрешение 1024*600). Как — вэлкам на pccar, найдете там мою тему про EDID и сделайте. Это несложно. Но зато у вас будет честный натив, а не абы что…
Пленку можно купить и отдельно с последующей наклейкой (после того, как осознаете, что вы натворили), но она уже не будет того качества, как ее сделали на заводе AUO, CPT, Hannstar, Innolux, LG и т.д. И после этого ваш монитор будет по углам обзора сильно смахивать на самый дешевый ноут…
Насчет матовой пленки — специально расковыряю нетроновскую матрицу, посмотрю. У других такого не встречал. В мониторах — нет, в бучных — тоже, в других планшетных матрицах — тоже не видел. Хотя, в планшетах матовые и редко попадаются.
И все же, мне очень интересно (я вполне серьезно) — я знаю под эту матрицу для этого контроллера только одну прошивку, а вы — десятки. Расскажите — может я что то упустил…
Ну и мое предложение насчет матрицы с контроллером — в силе.
Применил два зеркала, чтобы уменьшить вынос матрицы в перёд и расположил саму матрицу почти на макушке (можно было применить только одно зеркало, если в контроллере можно было включить зеркальное отображение по горизонтали). Потом уравновесил аккумулятором, питающим это всё. он выкладывал в теме на rcdesign.
Поискал, не нашёл фотку на всего этого добра (была на форуме rcdesign)
Нужен либо гибкий дисплей, либо обратная видео_проекция на изогнутую форму очков.
Короче, поставь теперь для эксперимента около линз две замутнëные полусферы взятые с обычных светодиодных энергосберегающих лампочек.
И попробуй потом для уменьшения размеров, одну из этих полусфер разрезать на две одинаковые части, и обязательно убери острые края напильником.