Оглавление:
- Шаг 1. Вещи, которые вам понадобятся
- Шаг 2. Заставьте Rapsberry Pi снимать живое видео и делиться им
- Шаг 3. Сделайте его портативным: лазерная резка и установка
- Шаг 4: Визуализируйте стереоизображение
- Шаг 5: сгладьте все
- Шаг 6: наслаждайтесь
Видео: Цифровой внетелесный опыт своими руками: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этом руководстве вы узнаете, как построить систему, которая позволит вам видеть, как если бы вы были где-то еще. Я назвал это цифровым внетелесным опытом, потому что впервые я подумал об этой системе, когда занимался йогой, и подумал, что было бы очень интересно практиковать, видя себя в трехмерном виде, как в некоторых видеоиграх. В конце концов, я также подумал, что это может быть интересный прием для медитации на не-я, наблюдая за собой со стороны, как инструмент, который поможет мне отойти на некоторое расстояние и просто наблюдать за своими мыслями, эмоциями и чувствами. Но начинающий йог и медитатор во мне не были теми людьми, чтобы увлечь меня этим проектом. В конце концов, именно тот геймер / игрок, которым я являюсь, подумал, что этот проект будет хорошим постепенным шагом на пути к созданию мобильного робота, управляемого через вид от первого лица, который будет выполнять своего рода гонку с видом от первого лица для мобильных роботов!
Шаг 1. Вещи, которые вам понадобятся
- 2xRaspberry Pi 3 модели B, каждая из которых оснащена камерой и кабелем для измерения (15 см и 30 см)
- Батарейный экран, 2 батареи и кабель USB на 2xmini-USB для подключения к Raspberry (я использовал двойной экран батареи 10650 с выходом USB, 2 батареи LiitoKala Lii-35A 18650 и этот кабель)
- Кусок дерева МДФ размером 240x140x5 мм (или любой другой древесины, совместимой с лазерным резаком)
- Доступ к лазерному аппарату
- Винты и болты M2
- Компьютер с питоном
- Смартфон с хромом
- Картон Google или любая система, позволяющая получить опыт виртуальной реальности с вашего телефона (я получил ednet Virtual Reality Brille, который совместим с телефоном размером до 159,2 мм x 75,2 мм из того, что я читал)
Шаг 2. Заставьте Rapsberry Pi снимать живое видео и делиться им
Сначала давайте убедимся, что наша камера Pi подключена к Raspberry Pi. Выполнено ? Это была аппаратная часть этого шага. Продолжим программную часть.
Что касается программного обеспечения, если вы находитесь в моем случае, и на вашем PI не установлена ОС и у вас нет запасных клавиатуры, мыши и экрана, то давайте загрузим raspbian lite здесь и выполните простые шаги, описанные здесь: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Если все прошло хорошо, ваш Pi теперь подключен к вашему WIFI, вы знаете его IP-адрес и подключены к нему через ssh.
Используя ssh, давайте заставим Pi делиться тем, что он просматривает. Для этого воспользуемся UV4L. Для этого выполните действия на следующей веб-странице: https://raspberry-valley.azurewebsites.net/UV4L/. Если вы закончили настройку UV4L, как описано в ссылке, теперь у вас должна быть возможность просматривать живое видео вашей малины на вашем компьютере. Для этого просто зайдите в свой браузер по адресу https:// raspberryip: 8080 / stream, заменив «raspberryip» на ip-адрес raspberry pi, который вы нашли с помощью lanScan.
Вот и все для одного из наших двух «глаз». А что насчет другого? Либо мы повторяем тот же процесс, либо клонируем то, что находится на нашем raspberry pi, на другую SD-карту. Чтобы узнать больше о втором варианте, вы можете проверить этот github:
Итак, теперь у вас должны быть два ваших Raspberry Pi, которые делятся своим живым видеопотоком в локальной сети! У нас заработали глаза, теперь давайте решим эту маленькую проблему косоглазия и сделаем нашу маленькую систему портативной!
Шаг 3. Сделайте его портативным: лазерная резка и установка
Чтобы сделать камеру портативной, я спроектировал деревянную конструкцию, на которую я могу прикрутить малиновый P, камеры и экран аккумулятора. Дизайн прилагается здесь в виде файла svg. Возможно, вам придется изменить положение винтов для экрана батареи в зависимости от вашего экрана и / или конструкции в зависимости от толщины вашей древесины.
Как только вы все разрежете:
- Установите камеры в левой части конструкции (8 винтов M2 5 мм, 8 винтов M2 8 мм и 8 болтов 8 мм).
- Установите щит аккумуляторной батареи (4 винта M2 5 мм, 4 винта M2 8 мм и 4 болта 8 мм)
- Установите «кластер» raspberry pi, как показано на рисунке выше (4 винта M2 5 мм, 4 винта M2 8 мм, 4 болта «папа-мама» 5 мм или более, 4 болта 21 мм). Примечание: у меня не было болтов диаметром 21 мм, поэтому я сделал свой с 16 болтами и 5 болтами с внутренней резьбой.
Предупреждение: указанную здесь длину болтов можно изменить, только убедитесь, что расстояние между малиновыми буквами Pis достаточно велико, чтобы не было короткого замыкания …
Зарядите литиевые батареи с помощью разъема mini-usb экрана батареи и соедините деревянную деталь вместе, как показано на рисунке выше. Вы готовы подключить аккумуляторный щиток к малине! И больше не требуется ssh-ing, как только мы включаем raspberry pi, он теперь делится видеопотоком онлайн, как только он запускается, благодаря UV4L. Передача окончена!
Шаг 4: Визуализируйте стереоизображение
Теперь у нас есть два потока изображений, доступных через локальную сеть, и мы увидели, что можем просматривать их по отдельности, используя адрес https:// raspberryip {1, 2} / stream / в браузере. Итак, можем ли мы попытаться открыть две страницы в нашем браузере? Нет, не будем! 1. Это было бы слишком некрасиво, 2. это не сработало бы, так как через некоторое время дисплей перешел бы в спящий режим! Этот шаг покажет вам, как решить эти проблемы.
Сначала давайте посмотрим, что стоит за адресом, который использовался ранее. Если вы проверите html-код открываемой страницы, вы увидите, что поток, показанный на странице, состоит из
с источником, определенным как https://raspberryip/stream/video.mjpeg. В результате последний шаг может быть довольно простым. Один из способов - запрограммировать приложение Android с двумя Webviews для отображения потока изображений, гораздо проще - запустить локальный сервер на нашем компьютере, который будет обслуживать html-страницу, похожую на https:// raspberryip / stream /, за исключением что это позволит вам просматривать оба потока вместо одного, и держать устройство в активном состоянии.
Как нам настроить такой сервер? Нет ничего проще с питоном. Создайте папку, в которую вы поместите файлы index.txt и NoSleep.txt, которые вы переименуете в index.html и NoSleep.js. В index.html найдите два
теги и замените ips малины на свои. Это будет html-страница, на которой будут показаны два наших потока изображений с javascript, позволяющим не заснуть. Теперь вы хотите сделать эту страницу доступной для вашего мобильного телефона, где python будет удобен: поместите файл server.py в ту же папку и запустите сценарий с помощью команды python server.py (обратите внимание, что этот сценарий совместим с python 3, если вы используете python 2, вам придется отредактировать server.py и заменить socketserver на SocketServer).
Вот и все, вы можете получить доступ к стереопотоку с любого устройства с браузером, подключенным к вашей локальной сети. Попробуйте, получите ip вашего компьютера и откройте https:// computerip: 8080. Вы, вероятно, заметите три вещи:
- Здорово, что мы почти у цели!
- Это не в полноэкранном режиме,
- В конце концов, он засыпает.
Как придешь ? Как вы можете прочитать здесь, функция активации режима без сна требует вызова фиктивного действия. Чтобы уважать эту необходимость, я связал щелчок по первому изображению с этой функцией. В результате просто нажмите на первое изображение, и вы должны увидеть предупреждение о том, что режим без сна активирован, и страница также должна быть теперь в полноэкранном режиме.
Вот и все! Теперь вы можете вставить свой телефон в гарнитуру VR и посмотреть, что происходит перед вашим Pi! Или это все?
Шаг 5: сгладьте все
На самом деле, если ваши Pi и сеть похожи на мои, то, что вы видите в своей гарнитуре, может быть немного неудобным из-за сильных задержек. Итак, чтобы действительно закончить с гладкой системой, давайте решим эту последнюю проблему. Как решить задержку? Я просто предположил, что проблема может возникнуть либо из-за сжатия в реальном времени Pi, которое требует слишком больших вычислительных ресурсов, либо из-за беспроводного соединения, в котором я сомневаюсь. В любом случае, чтобы решить эту проблему, вы можете сделать что-то очень простое, а именно уменьшить разрешение и битрейт, с которыми ваши изображения собираются и кодируются на Pi.
Чтобы изменить эти параметры, вернитесь к своему терминалу и войдите в свой Raspberry Pi. UV4L использует файл конфигурации. Это файл /etc/uv4l/uv4l-raspicam.conf. Чтобы отредактировать его, введите команду sudo nano /etc/uv4l/uv4l-raspicam.conf. Теперь вы можете установить ширину, высоту и квантование по своему усмотрению. Я использовал значения ширины = 320, высоты = 240 и квантования = 40 и получил плавную передачу с ними.
Шаг 6: наслаждайтесь
Единственное, что осталось сделать, это установить систему там, где вы хотите, положить телефон в картон и заняться йогой, медитацией, пивным понгом с друзьями или чем-то еще! Вам может потребоваться некоторое время (1-2 минуты), чтобы привыкнуть к направлению камеры, которое поначалу будет ощущаться так, как будто у вас внезапно возникло косоглазие. Для меня один из способов быстро привыкнуть к этому - сначала сосредоточиться на близких объектах, а затем перейти к другим.
Я подумал о нескольких расширениях, которые могут быть интересными:
- сделать возможным видеть за пределами вашего дома, то есть сделать поток доступным извне вашей локальной сети.
- поместите его на мобильную роботизированную платформу, чтобы участвовать в гонках на дронах!
Как преподаватель, я думаю, что этот проект может быть интересным, если вы хотите узнать больше о:
- Raspberry Pi, каковы основные компоненты компьютера, что такое ОС,
- Общие концепции сети, с локальным и внешним IP, протоколом
- HTML и javascript.
Я надеюсь, что это руководство, которое было моим первым, достаточно ясное, но не слишком тяжелое для чтения.
Рекомендуемые:
Карманные часы своими руками: 9 шагов
Карманные часы «сделай сам»: в этом загруженном мире отслеживание времени необходимо для повышения производительности, а если вы любитель, то почему бы не создать устройство для отслеживания времени. Благодаря технологиям существуют устройства под названием «часы», но! когда ты делаешь что-то сам по себе
Очки для FPV своими руками: 6 шагов
DIY FPV Goggles: Вы когда-нибудь видели те крутые fpv-системы, которые есть у парней из flitetest. Что ж, я завидовал им за такие замечательные вещи. Я знал об ассортименте мобильных телефонов и возможностях видеозвонков, Skype или чего-то подобного. Так что я решил сделать свою в
Как снести цифровой штангенциркуль и как работает цифровой штангенциркуль: 4 шага
Как снести цифровой штангенциркуль и как работает цифровой штангенциркуль: многие люди знают, как использовать штангенциркуль для измерения. Из этого туториала Вы узнаете, как разобрать цифровой штангенциркуль, и объясните, как работает цифровой штангенциркуль
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Создайте мини-гидропонные системы своими руками и сад гидропонных трав своими руками с помощью предупреждений Wi-Fi: 18 шагов
Постройте мини-гидропонные системы своими руками и сад гидропонных трав своими руками с помощью предупреждений Wi-Fi: в этом уроке мы покажем вам, как построить систему #DIY #hydroponics. Эта гидропонная система, сделанная своими руками, будет поливать в соответствии с индивидуальным гидропонным циклом полива с 2 минутами включения и 4 минутами перерыва. Он также будет контролировать уровень воды в резервуаре. Эта система