Inhoudsopgave:

DIY Digital Out of Body Experience: 6 stappen
DIY Digital Out of Body Experience: 6 stappen

Video: DIY Digital Out of Body Experience: 6 stappen

Video: DIY Digital Out of Body Experience: 6 stappen
Video: How out-of-body experiences could transform yourself and society | Nanci Trivellato | TEDxPassoFundo 2024, November
Anonim
DIY Digitale Out of Body Experience
DIY Digitale Out of Body Experience

In deze tutorial leer je hoe je een systeem bouwt waarmee je kunt zien alsof je ergens anders bent. Ik noemde deze digitale uittredingservaring omdat ik voor het eerst aan dit systeem dacht toen ik yoga beoefende en ik dacht dat het heel interessant zou zijn om te oefenen terwijl ik mezelf zag met 3D-persoonweergave, zoals in sommige videogames. Uiteindelijk dacht ik ook dat het een interessant middel zou kunnen zijn om op het niet-zelf te mediteren, mezelf van buitenaf te bekijken, als hulpmiddel om wat afstand te nemen en simpelweg mijn gedachten, emoties en gevoelens te observeren. Maar de beginnende yogi en meditator in mij waren niet de juiste mensen om me mee te laten slepen in dit project. Uiteindelijk is het de gamer/speler die ik ben die dacht dat dit project een mooie stap zou zijn in de richting van het bouwen van een mobiele robot die wordt bestuurd door first-person view om een soort van mobiele robot first-view racen te doen!

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
  1. 2xRaspberry Pi 3 model B elk voorzien van een camera en kabel meten (15cm en 30cm)
  2. Een batterijschild, 2 batterijen en usb naar 2xmini-USB-kabel om aan te sluiten op de Raspberry's (ik gebruikte een dubbel 10650 batterijschild met USB-uitgang, 2xLiitoKala Lii-35A 18650-batterijen en deze kabel)
  3. 240x140x5mm stuk MDF-hout (of elk ander hout dat compatibel is met lasersnijder)
  4. Toegang tot een lasercutter
  5. M2 schroeven en bouten
  6. Een computer met python
  7. Een smartphone met chroom
  8. Een google-karton of een ander systeem waarmee je VR-ervaring van je telefoon kunt krijgen (ik heb de ednet Virtual Reality Brille die compatibel is met een telefoon met afmetingen tot 159,2 mm x 75,2 mm van wat ik heb gelezen)

Stap 2: Laat de Rapsberry Pi een livevideo vastleggen en delen

Laten we er eerst voor zorgen dat onze Pi-camera is aangesloten op de Raspberry Pi. Gedaan ? Dat was het hardwaregedeelte voor deze stap. Laten we doorgaan met het softwaregedeelte.

Wat betreft de zachte, als je in mijn geval bent en je hebt geen besturingssysteem op je PI geïnstalleerd en je hebt geen extra toetsenbord, muis en scherm, laten we dan raspbian lite hier downloaden en de eenvoudige stappen volgen die hier worden beschreven: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Als alles goed is gegaan, is je Pi nu verbonden met je WIFI, weet je het ip-adres en ben je ermee verbonden via ssh.

Met behulp van ssh laten we de Pi delen wat hij bekijkt. Hiervoor gebruiken we UV4L. Volg hiervoor de stappen op de volgende webpagina: https://raspberry-valley.azurewebsites.net/UV4L/. Als je klaar bent met de UV4L-installatie zoals beschreven in de link, zou je nu de live video van je Raspberry op je computer moeten kunnen zien. Ga hiervoor naar uw browser op het adres https://raspberryip:8080/stream, waarbij u "raspberryip" vervangt door het ip van de raspberry pi die u via lanScan hebt gevonden.

Nu dat is het voor een van onze twee "ogen". Hoe zit het met de ander? Ofwel herhalen we hetzelfde proces, ofwel klonen we wat er op onze Raspberry Pi staat naar een andere SD-kaart. Voor meer informatie over de tweede optie kun je deze github bekijken:

En daar ga je, je zou nu je twee raspberry pi moeten hebben die hun live videostream delen op het lokale netwerk! We hebben onze ogen laten werken, laten we nu dit kleine scheelzien-probleem oplossen en ons kleine systeem draagbaar maken!

Stap 3: Maak het draagbaar: lasersnijden en monteren

Maak het draagbaar: lasergesneden en gemonteerd
Maak het draagbaar: lasergesneden en gemonteerd
Maak het draagbaar: lasergesneden en gemonteerd
Maak het draagbaar: lasergesneden en gemonteerd
Maak het draagbaar: lasergesneden en gemonteerd
Maak het draagbaar: lasergesneden en gemonteerd

Om het camerasysteem draagbaar te maken, heb ik een houten constructie ontworpen waarop ik de Raspberry Pis, de camera's en het batterijschild kan schroeven. Het ontworpen is hier als een svg-bestand bijgevoegd. Mogelijk moet u de schroefposities voor het batterijscherm aanpassen, afhankelijk van uw schild en/of het ontwerp, afhankelijk van de dikte van uw hout.

Zodra je alles hebt geknipt:

  1. Monteer de camera's aan de linkerkant van het ontwerp (8 M2 schroeven van 5 mm, 8 M2 schroeven van 8 mm en 8 bouten van 8 mm)
  2. Monteer het batterijschild (4 M2 schroeven van 5 mm, 4 M2 schroeven van 8 mm en 4 bouten van 8 mm)
  3. Monteer de raspberry pi "cluster" zoals getoond in de afbeelding hierboven (4 M2 schroeven van 5 mm, 4 M2 schroeven van 8 mm, 4 man-vrouwelijke bouten van 5 mm of meer, 4 21 mm bouten). Opmerking: ik had geen 21 mm-bouten, dus ik deed de mijne met 16 bouten en 5 vrouwelijke-mannelijke bouten.

Waarschuwing: de lengtes van de bouten die hier zijn gedefinieerd, kunnen worden gewijzigd, maar zorg ervoor dat de afstand tussen de Raspberry Pis groot genoeg is om geen kortsluiting te krijgen…

Laad uw lithiumbatterijen op met behulp van de mini-usb-connector van het batterijscherm en monteer het houten stuk samen zoals weergegeven op de afbeelding hierboven. Je bent klaar om je batterijschild aan de frambozen te koppelen! En er is geen ssh-ing meer nodig, zodra we de raspberry pi opstarten, deelt hij de videostream nu online zodra hij begint dankzij UV4L. Transmissie voorbij!

Stap 4: Visualiseer het stereobeeld

Visualiseer het stereobeeld
Visualiseer het stereobeeld

Nu hebben we twee beeldstreams die toegankelijk zijn via het lokale netwerk, we zagen dat we ze afzonderlijk konden bekijken met het adres https://raspberryip{1, 2}/stream/ in een browser. Zullen we daarom proberen om twee pagina's in onze browser te openen? Nee dat doen we niet! 1. Dat zou te lelijk zijn, kom op 2. dat zou niet werken omdat het display na een tijdje in slaap zou vallen! Deze stap laat u zien hoe u deze problemen kunt oplossen.

Laten we eerst eens kijken wat er achter het eerder gebruikte adres zit. Als je de html-code controleert van de pagina die wordt geopend, zie je dat de stream die op de pagina wordt getoond bestaat uit een

tag met de bron gedefinieerd als https://raspberryip/stream/video.mjpeg. Hierdoor kan de laatste stap vrij eenvoudig zijn. Een manier zou kunnen zijn om een Android-app met twee webviews te programmeren om de beeldstroom te tonen, een veel eenvoudigere is om een lokale server op onze computer te draaien die een html-pagina zal weergeven die lijkt op "https://raspberryip/stream/", behalve dat u beide streams kunt bekijken in plaats van één en dat u het apparaat wakker kunt houden.

Hoe zetten we zo'n server op? Niets eenvoudiger met python. Maak een map aan waarin u de bestanden index.txt en NoSleep.txt plaatst die u hernoemt naar index.html en NoSleep.js. Zoek in index.html naar de twee

tags en vervang de raspberry ips door die van jou. Dit zal de html-pagina zijn die onze twee afbeeldingsstromen toont met het javascript waardoor het wakker kan blijven. Nu wil je deze pagina toegankelijk maken voor je mobiele telefoon, waar python handig is: plaats het bestand server.py in dezelfde map en start het script met het commando python server.py (Merk op dat dit script compatibel is met python 3, als je python 2 gebruikt, moet je server.py bewerken en socketserver vervangen door SocketServer).

Dat is alles, u hebt toegang tot de stereostream vanaf elk apparaat met een browser die is aangesloten op uw lokale netwerk. Probeer het uit, pak het ip van je computer en open https://computerip:8080. U kunt waarschijnlijk drie dingen opmerken:

  • Super dat we er bijna zijn!
  • Het is niet op volledig scherm,
  • Het gaat uiteindelijk slapen.

Hoe kan dat ? Zoals u hier kunt lezen, heeft de functie om de niet-slaapmodus te activeren een dummy-actie nodig om te worden aangeroepen. Om deze noodzaak te respecteren heb ik een klik op de eerste afbeelding aan deze functie gekoppeld. Als gevolg hiervan klikt u eenvoudig op de eerste afbeelding en ziet u een waarschuwing dat no-sleep is geactiveerd en dat de pagina nu ook op volledig scherm moet zijn.

Dat is het! Je zou nu je telefoon in je VR-headset moeten kunnen stoppen en zien wat er voor je Pi's gebeurt! Of is dat het?

Stap 5: Maak dingen glad

Als je Pi's en netwerk vergelijkbaar zijn met het mijne, kan wat je in je headset ziet misschien een beetje onhandig zijn, omdat er enkele sterke vertragingen kunnen zijn. Dus om echt af te sluiten met een soepel systeem, laten we dit laatste probleem oplossen. Hoe de vertraging op te lossen? Ik vermoedde gewoon dat het probleem zou kunnen komen van de compressie in realtime door de Pi's, die te rekenintensief is, of van de draadloze verbinding die ik zou betwijfelen. Hoe dan ook, om het op te lossen kun je iets heel eenvoudigs doen, namelijk de resolutie en bitrate verlagen waarmee je afbeeldingen worden verkregen en gecodeerd op de Pi's.

Om die parameters te wijzigen, gaat u terug naar uw terminal en logt u in op uw Raspberry Pi's. UV4L gebruikt een configuratiebestand. Dit bestand is /etc/uv4l/uv4l-raspicam.conf. Om het te bewerken typt u het commando sudo nano /etc/uv4l/uv4l-raspicam.conf. U kunt nu de breedte, hoogte en kwantisering naar wens instellen. Ik gebruikte de waarden breedte = 320, hoogte = 240 en kwantisering = 40 en kreeg daarmee een soepele overdracht.

Stap 6: Geniet ervan

Het enige dat u nu nog hoeft te doen, is het systeem instellen waar u het wilt hebben, uw telefoon in uw karton stoppen en uw yogasessie, meditatie, bierpong met uw vrienden of wat dan ook doen! Het kan zijn dat u wat tijd nodig heeft (1 of 2 minuten) om aan de camerarichting te wennen, wat in het begin zal voelen alsof u plotseling een scheelzienprobleem heeft. Een manier voor mij om er snel aan te wennen, is door eerst te focussen op nabije objecten en dan verder te gaan.

Ik bedacht een paar extensies die interessant zouden kunnen zijn:

  • het mogelijk maken om buiten uw huis te kijken, dat wil zeggen de stream toegankelijk maken van buiten uw lokale netwerk.
  • zet het op een mobiel robotplatform om droneraces te doen!

Als docent denk ik dat dit project interessant kan zijn om meer te weten te komen over:

  • De Raspberry Pi, wat zijn de basiscomponenten van een computer, wat is een OS-systeem,
  • Algemene netwerkconcepten, met lokaal en extern IP, het
  • HTML en javascript.

Ik hoop dat deze instructable, die mijn eerste was, duidelijk genoeg is zonder te zwaar te zijn om te lezen.

Aanbevolen: