Spisu treści:

DIY Digital Out of Body Experience: 6 kroków
DIY Digital Out of Body Experience: 6 kroków

Wideo: DIY Digital Out of Body Experience: 6 kroków

Wideo: DIY Digital Out of Body Experience: 6 kroków
Wideo: Avatar Actors Intense Under Water Training 2024, Listopad
Anonim
DIY Digital Out of Body Experience
DIY Digital Out of Body Experience

W tym samouczku dowiesz się, jak zbudować system, który pozwoli ci widzieć, jakbyś był gdzie indziej. Nazwałem to cyfrowym doświadczeniem poza ciałem, ponieważ pierwszy raz pomyślałem o tym systemie, gdy ćwiczyłem jogę i pomyślałem, że byłoby bardzo interesujące ćwiczyć widząc siebie w widoku 3D osoby, jak w niektórych grach wideo. W końcu pomyślałem też, że może to być ciekawe narzędzie do medytacji nad nie-ja, obserwowania siebie z zewnątrz, jako narzędzie, które pomoże mi zdystansować się i po prostu obserwować swoje myśli, emocje i uczucia. Ale początkujący jogin i medytujący we mnie nie byli właściwymi ludźmi, aby dać się ponieść temu projektowi. W końcu to właśnie gracz/gracz, którym jestem, pomyślał, że ten projekt będzie miłym krokiem w kierunku zbudowania robota mobilnego sterowanego przez widok z pierwszej osoby, który będzie robił coś w rodzaju wyścigów robotów mobilnych z pierwszej perspektywy!

Krok 1: Rzeczy, których będziesz potrzebować

Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
  1. 2xRaspberry Pi 3 model B każdy wyposażony w kamerę i kabel pomiarowy (15cm i 30cm)
  2. Osłona baterii, 2 baterie i kabel usb do 2xmini-USB do podłączenia do Raspberry (użyłem podwójnej osłony baterii 10650 z wyjściem USB, 2xLiitoKala Lii-35A 18650 i tego kabla)
  3. Kawałek drewna MDF o wymiarach 240x140x5mm (lub inne drewno kompatybilne z wycinarką laserową)
  4. Dostęp do wycinarki laserowej
  5. Śruby i śruby M2
  6. Komputer z pytonem
  7. Smartfon z chromem
  8. Google Cardboard lub dowolny system pozwalający na korzystanie z VR z telefonu (dostałem Brille Virtual Reality ednet, który jest kompatybilny z telefonem o wymiarach do 159,2 mm x 75,2 mm od tego, co czytałem)

Krok 2: Zdobądź Rapsberry Pi, aby przechwytywać wideo na żywo i udostępniać je

Najpierw upewnijmy się, że nasza kamera Pi jest podłączona do Raspberry Pi. Gotowe ? To była część sprzętowa tego kroku. Przejdźmy do części oprogramowania.

Jeśli chodzi o soft, jeśli jesteś w moim przypadku i nie masz zainstalowanego systemu operacyjnego na swoim PI i nie masz żadnej zapasowej klawiatury, myszy i ekranu, pobierzmy raspbian lite tutaj i postępuj zgodnie z prostymi krokami opisanymi tutaj: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Jeśli wszystko poszło dobrze, Twoje Pi jest teraz połączone z siecią WIFI, znasz jego adres IP i jesteś z nim połączony przez ssh.

Korzystając z ssh, sprawmy, aby Pi udostępniało to, co wyświetla. Do tego użyjemy UV4L. W tym celu postępuj zgodnie z instrukcjami na następującej stronie internetowej: https://raspberry-valley.azurewebsites.net/UV4L/. Jeśli skończyłeś z konfiguracją UV4L, jak opisano w linku, powinieneś teraz móc oglądać wideo na żywo swojej maliny na swoim komputerze. W tym celu po prostu przejdź do swojej przeglądarki pod adresem https://raspberryip:8080/stream, zastępując „raspberryip” adresem IP raspberry pi, który znalazłeś za pomocą lanScan.

To tyle dla jednego z naszych dwóch „oczu”. A co z drugim? Albo powtórzymy ten sam proces, albo sklonujemy zawartość naszego Raspberry Pi na inną kartę SD. Aby dowiedzieć się więcej o drugiej opcji, możesz sprawdzić ten github:

I proszę bardzo, powinieneś teraz mieć swoje dwie raspberry pi udostępniające swój strumień wideo na żywo w sieci lokalnej! Sprawiliśmy, że oczy działają, teraz rozwiążmy ten mały problem ze strabisme i zróbmy nasz mały system przenośny!

Krok 3: Spraw, aby był przenośny: cięcie laserowe i montaż

Spraw, aby był przenośny: cięcie laserowe i montaż
Spraw, aby był przenośny: cięcie laserowe i montaż
Spraw, aby był przenośny: cięcie laserowe i montaż
Spraw, aby był przenośny: cięcie laserowe i montaż
Spraw, aby był przenośny: cięcie laserowe i montaż
Spraw, aby był przenośny: cięcie laserowe i montaż

Aby system kamer był przenośny, zaprojektowałem drewnianą konstrukcję, do której mogę przykręcić kamery Raspberry Pis i osłonę baterii. Projekt jest dołączony tutaj jako plik svg. Może być konieczne zmodyfikowanie położenia śrub osłony baterii w zależności od osłony i/lub konstrukcji w zależności od grubości drewna.

Kiedy już wszystko wytniesz:

  1. Zamontuj kamery po lewej stronie konstrukcji (8 śrub M2 5 mm, 8 śrub M2 8 mm i 8 śrub 8 mm)
  2. Zamontuj osłonę akumulatora (4 śruby M2 5 mm, 4 śruby M2 8 mm i 4 śruby 8 mm)
  3. Zamontuj "klaster" raspberry pi, jak pokazano na powyższym obrazku (4 śruby M2 5 mm, 4 śruby M2 8 mm, 4 śruby męsko-żeńskie 5 mm lub więcej, 4 śruby 21 mm). Uwaga: nie miałem śrub 21mm, więc zrobiłem swoje z 16 śrubami i 5 śrubami żeńsko-męskimi.

Uwaga: zdefiniowane tutaj długości śrub można zmieniać, wystarczy tylko upewnić się, że odległość między malinowym Pisem jest na tyle duża, aby nie doszło do zwarcia…

Naładuj baterie litowe za pomocą złącza mini-usb osłony baterii i zamontuj drewniany element razem, jak pokazano na powyższym obrazku. Jesteś gotowy, aby podłączyć osłonę baterii do malin! I nie trzeba już ssh-ing, gdy tylko włączymy Raspberry Pi, teraz udostępnia on strumień wideo online, gdy tylko się uruchomi, dzięki UV4L. Transmisja zakończona !

Krok 4: Wizualizuj obraz stereo

Wizualizuj obraz stereo
Wizualizuj obraz stereo

Teraz mamy dwa strumienie obrazów, które są dostępne przez sieć lokalną, widzieliśmy, że moglibyśmy oglądać je pojedynczo, korzystając z adresu https://raspberryip{1, 2}/stream/ w przeglądarce. Czy możemy zatem spróbować otworzyć dwie strony w naszej przeglądarce? Nie, nie będziemy! 1. To byłoby zbyt brzydkie 2. to nie działałoby, ponieważ wyświetlacz po pewnym czasie zasypiał ! Ten krok pokaże Ci, jak rozwiązać te problemy.

Najpierw zobaczmy, co kryje się za użytym wcześniej adresem. Jeśli sprawdzisz kod HTML strony, która jest otwarta, zobaczysz, że strumień, który jest wyświetlany na stronie składa się z

ze źródłem zdefiniowanym jako https://raspberryip/stream/video.mjpeg. W rezultacie ostatni krok może być całkiem prosty. Jednym ze sposobów może być zaprogramowanie aplikacji na Androida z dwoma widokami sieci Web, aby pokazać strumień obrazu, znacznie prostszym jest uruchomienie lokalnego serwera na naszym komputerze, który będzie obsługiwał stronę html podobną do „https://raspberryip/stream/” z wyjątkiem że pozwoli Ci oglądać oba strumienie zamiast jednego i utrzymać urządzenie w stanie czuwania.

Jak założyć taki serwer ? Nic prostszego z Pythonem. Utwórz folder, w którym umieścisz pliki index.txt i NoSleep.txt, których nazwy zmienisz na index.html i NoSleep.js. W index.html wyszukaj dwa

tagi i zastąp malinowe ips swoim. Będzie to strona html, która pokazuje nasze dwa strumienie obrazów z javascriptem, który pozwala jej nie zasnąć. Teraz chcesz, aby ta strona była dostępna dla Twojego telefonu komórkowego, gdzie python się przydaje: umieść plik server.py w tym samym folderze i uruchom skrypt za pomocą polecenia python server.py (Zauważ, że ten skrypt jest zgodny z pythonem 3, jeśli używasz Pythona 2, będziesz musiał edytować server.py i zastąpić socketserver przez SocketServer).

To jest to, że możesz uzyskać dostęp do strumienia stereo z dowolnego urządzenia z przeglądarką podłączoną do sieci lokalnej. Wypróbuj, pobierz ip swojego komputera i otwórz https://computerip:8080. Prawdopodobnie zauważysz trzy rzeczy:

  • Wspaniale, że już prawie jesteśmy!
  • Nie jest w trybie pełnoekranowym,
  • W końcu idzie spać.

Dlaczego ? Jak możesz przeczytać tutaj, funkcja aktywacji trybu no-sleep wymaga wywołania fikcyjnej akcji. Aby uszanować tę konieczność, połączyłem z tą funkcją kliknięcie pierwszego obrazu. W rezultacie po prostu kliknij na pierwszy obraz, a powinieneś zobaczyć alert informujący, że nie ma snu, a strona powinna być teraz również w trybie pełnoekranowym.

Otóż to! Powinieneś teraz móc włożyć telefon do zestawu słuchawkowego VR i zobaczyć, co dzieje się przed Twoim Pi! Czy to jest to?

Krok 5: Wygładź sprawy

W rzeczywistości, jeśli twoje Pi i sieć są podobne do moich, to, co widzisz w zestawie słuchawkowym, może być nieco niezręczne, ponieważ mogą wystąpić silne opóźnienia. Aby naprawdę zakończyć sprawny system, rozwiążmy ten ostatni problem. Jak rozwiązać opóźnienie? Po prostu domyśliłem się, że problem może wynikać albo z kompresji w czasie rzeczywistym przez Pi, która jest zbyt intensywna obliczeniowo, albo z połączenia bezprzewodowego, w które wątpiłbym. W każdym razie, aby go rozwiązać, możesz zrobić coś bardzo prostego, czyli zmniejszyć rozdzielczość i szybkość transmisji bitów, z którymi twoje obrazy są pozyskiwane i kodowane na Pi.

Aby zmienić te parametry, wróć do terminala i zaloguj się do Raspberry Pi. UV4L używa pliku konfiguracyjnego. Ten plik to /etc/uv4l/uv4l-raspicam.conf. Aby go edytować, wpisz polecenie sudo nano /etc/uv4l/uv4l-raspicam.conf. Teraz będziesz mógł ustawić szerokość, wysokość i kwantyzację według własnego uznania. Użyłem wartości szerokość = 320, wysokość = 240 i kwantyzacja = 40 i uzyskałem z nimi płynną transmisję.

Krok 6: Ciesz się

Jedyne, co pozostało do zrobienia, to skonfigurować system tam, gdzie chcesz, włożyć telefon do kartonu i zrobić sesję jogi, medytację, piwny pong z przyjaciółmi lub cokolwiek innego! Możesz potrzebować trochę czasu (1 lub 2 minuty), aby przyzwyczaić się do kierunku kamery, co na początku poczujesz się tak, jakbyś nagle miał problem ze zezem. Jednym ze sposobów, aby szybko się do tego przyzwyczaić, jest najpierw skupienie się na bliskich obiektach, a następnie przejście do dalszych.

Pomyślałem o kilku rozszerzeniach, które mogą być interesujące:

  • umożliwienie widzenia poza domem, czyli udostępnienie strumienia spoza sieci lokalnej.
  • umieść go na mobilnej platformie robota, aby robić wyścigi dronów!

Jako nauczyciel myślę, że ten projekt może być interesujący, aby dowiedzieć się więcej o:

  • Raspberry Pi, jakie są podstawowe podzespoły komputera, co to jest system operacyjny,
  • Ogólne koncepcje sieciowe, z lokalnym i zewnętrznym adresem IP, protokołem
  • HTML i javascript.

Mam nadzieję, że ta instrukcja, która była moim pierwszym, jest wystarczająco jasna i nie jest zbyt ciężka do czytania.

Zalecana: