Sommario:

Esperienza digitale fuori dal corpo fai-da-te: 6 passaggi
Esperienza digitale fuori dal corpo fai-da-te: 6 passaggi

Video: Esperienza digitale fuori dal corpo fai-da-te: 6 passaggi

Video: Esperienza digitale fuori dal corpo fai-da-te: 6 passaggi
Video: Maranza cerca di prendermi la moto 2024, Novembre
Anonim
Esperienza digitale fuori dal corpo fai-da-te
Esperienza digitale fuori dal corpo fai-da-te

In questo tutorial imparerai come costruire un sistema che ti permetta di vedere come se fossi da qualche altra parte. Ho chiamato questa esperienza digitale fuori dal corpo perché la prima volta che ho pensato a questo sistema è stato quando stavo praticando yoga e ho pensato che sarebbe stato molto interessante esercitarmi guardando me stesso con la visuale 3D, come in alcuni videogiochi. Alla fine ho anche pensato che potesse essere un dispositivo interessante per meditare sul non-sé, guardandomi dall'esterno, come uno strumento per aiutarmi a prendere una certa distanza e semplicemente osservare i miei pensieri, emozioni e sentimenti. Ma lo yogi principiante e il meditatore in me non erano le persone giuste per lasciarmi trasportare da questo progetto. Alla fine è il giocatore/giocatore che sono io che ha pensato che questo progetto sarebbe stato un bel passo in avanti verso la costruzione di un robot mobile controllato attraverso la visuale in prima persona per fare una sorta di corsa in prima visione del robot mobile!

Passaggio 1: cose di cui avrai bisogno

Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
  1. 2xRaspberry Pi 3 modello B ciascuno dotato di fotocamera e cavo di misura (15 cm e 30 cm)
  2. Uno scudo per batteria, 2 batterie e cavo da USB a 2xmini-USB per il collegamento al Raspberry (ho usato un doppio scudo per batteria 10650 con uscita USB, batterie 2xLiitoKala Lii-35A 18650 e questo cavo)
  3. 240x140x5mm pezzo di legno MDF (o qualsiasi altro legno compatibile con il taglio laser)
  4. Accesso a un cutter laser
  5. Viti e bulloni M2
  6. Un computer con Python
  7. Uno smartphone con Chrome
  8. Un cartone di Google o qualsiasi sistema che ti permetta di ottenere un'esperienza VR dal tuo telefono (ho ottenuto l'ednet Virtual Reality Brille che è compatibile con telefoni di dimensioni fino a 159,2 mm x 75,2 mm da quello che ho letto)

Passaggio 2: ottenere il Rapsberry Pi per acquisire un video in diretta e condividerlo

Per prima cosa assicuriamoci che la nostra fotocamera Pi sia collegata al Raspberry Pi. Fatto ? Quella era la parte hardware per questo passaggio. Continuiamo con la parte software.

Per quanto riguarda il software, se sei nel mio caso e non hai un sistema operativo installato sul tuo PI e non hai tastiera, mouse e schermo di riserva, allora scarichiamo raspbian lite qui e seguiamo i semplici passaggi descritti qui: https://www.taygan.co/blog/2018/03/08/setup-a-rasp… Se tutto è andato bene, il tuo Pi è ora connesso al tuo WIFI, conosci il suo indirizzo IP e sei connesso ad esso tramite ssh.

Usando ssh facciamo in modo che il Pi condivida ciò che visualizza. Per questo useremo UV4L. Per questo seguire i passaggi nella seguente pagina Web: https://raspberry-valley.azurewebsites.net/UV4L/. Se hai finito con l'installazione di UV4L come descritto nel link, ora dovresti essere in grado di vedere il video live del tuo lampone sul tuo computer. Per questo basta andare sul tuo browser all'indirizzo https://raspberryip:8080/stream, sostituendo "raspberryip" con l'ip del raspberry pi che hai trovato tramite lanScan.

Questo è tutto per uno dei nostri due "occhi". E l'altro? O ripetiamo lo stesso processo, o cloniamo ciò che è sul nostro Raspberry Pi su un'altra scheda SD. Per saperne di più sulla seconda opzione puoi controllare questo github:

Ed ecco fatto, ora dovresti avere i tuoi due Raspberry Pi che condividono il loro flusso video in diretta sulla rete locale! Ci siamo cavati gli occhi lavorando, ora risolviamo questo piccolo problema di strabismo e rendiamo portatile il nostro piccolo sistema!

Passaggio 3: rendilo portatile: taglio e montaggio laser

Rendilo portatile: taglio e montaggio laser
Rendilo portatile: taglio e montaggio laser
Rendilo portatile: taglio e montaggio laser
Rendilo portatile: taglio e montaggio laser
Rendilo portatile: taglio e montaggio laser
Rendilo portatile: taglio e montaggio laser

Per rendere portatile il sistema di fotocamere, ho progettato una struttura in legno su cui posso avvitare il lampone Pis le fotocamere e lo scudo della batteria. Il design è allegato qui come file svg. Potrebbe essere necessario modificare le posizioni delle viti per lo scudo della batteria a seconda dello scudo e/o il design a seconda dello spessore del legno.

Una volta tagliato tutto:

  1. Montare le telecamere sulla parte sinistra del design (8 viti M2 da 5 mm, 8 viti M2 da 8 mm e 8 bulloni da 8 mm)
  2. Montare lo scudo della batteria (4 viti M2 da 5 mm, 4 viti M2 da 8 mm e 4 bulloni da 8 mm)
  3. Montare il "cluster" raspberry pi come mostrato nell'immagine sopra (4 viti M2 da 5 mm, 4 viti M2 da 8 mm, 4 bulloni maschio-femmina da 5 mm o più, 4 bulloni da 21 mm). Nota: non avevo bulloni da 21 mm, quindi ho fatto il mio con 16 bulloni e 5 bulloni femmina-maschio.

Attenzione: le lunghezze dei bulloni qui definite possono essere modificate, l'unica cosa è assicurarsi che la distanza tra il lampone Pis sia abbastanza grande da non creare cortocircuiti…

Carica le tue batterie al litio utilizzando il connettore mini-usb della protezione della batteria e monta il pezzo di legno insieme come mostrato nell'immagine sopra. Sei pronto per collegare lo scudo della batteria ai lamponi! E non è più necessario ssh-ing, non appena accendiamo il raspberry pi ora condivide il flusso video online non appena inizia grazie a UV4L. Trasmissione finita!

Passaggio 4: visualizza l'immagine stereo

Visualizza l'immagine stereo
Visualizza l'immagine stereo

Ora abbiamo due flussi di immagini accessibili tramite la rete locale, abbiamo visto che potevamo visualizzarli individualmente utilizzando l'indirizzo https://raspberryip{1, 2}/stream/ su un browser. Possiamo quindi provare ad aprire due pagine sul nostro browser? No, non lo faremo! 1. Sarebbe troppo brutto dai 2. non funzionerebbe perché il display si spegnerebbe dopo un po' di tempo! Questo passaggio ti mostrerà come risolvere questi problemi.

Per prima cosa vediamo cosa c'è dietro l'indirizzo usato prima. Se controlli il codice html della pagina che viene aperta, vedrai che lo stream che viene mostrato nella pagina è costituito da un

tag con la sorgente definita come https://raspberryip/stream/video.mjpeg. Di conseguenza l'ultimo passaggio può essere abbastanza semplice. Un modo potrebbe essere programmare un'app Android con due Webview per mostrare il flusso di immagini, uno molto più semplice è eseguire un server locale sul nostro computer che servirà una pagina html simile a "https://raspberryip/stream/" tranne che ti consentirà di visualizzare entrambi i flussi anziché uno e di mantenere attivo il dispositivo.

Come si imposta un server del genere? Niente di più semplice con Python. Crea una cartella in cui metti i file index.txt e NoSleep.txt che rinominerai come index.html e NoSleep.js. In index.html, cerca i due

tag e sostituisci il lampone ips con il tuo. Questa sarà la pagina html che mostrerà i nostri due flussi di immagini con il javascript che gli consentirà di rimanere sveglio. Ora vuoi rendere questa pagina accessibile al tuo cellulare, quella in cui python ti torna utile: metti il file server.py nella stessa cartella e avvia lo script usando il comando python server.py (nota che questo script è compatibile con python 3, se usi python 2 dovrai modificare server.py e sostituire socketserver con SocketServer).

È così che puoi accedere allo streaming stereo da qualsiasi dispositivo con un browser connesso alla tua rete locale. Provalo, ottieni l'ip del tuo computer e apri https://computerip:8080. Probabilmente puoi notare tre cose:

  • È fantastico che ci siamo quasi!
  • Non è a schermo intero,
  • Alla fine va a dormire.

Come mai ? Come puoi leggere qui, la funzione per attivare la modalità no-sleep richiede un'azione fittizia per essere chiamata. Per rispettare questa necessità ho collegato a questa funzione un click sulla prima immagine. Di conseguenza, fai semplicemente clic sulla prima immagine e dovresti vedere un avviso che ti dice che la non sospensione è attivata e che anche la pagina dovrebbe essere ora a schermo intero.

Questo è tutto! Ora dovresti essere in grado di mettere il tuo telefono nell'auricolare VR e vedere cosa sta succedendo davanti ai tuoi Pi! O è quello?

Passaggio 5: migliora le cose

In realtà, se i tuoi Pi e la tua rete sono simili ai miei, ciò che vedi nell'auricolare potrebbe essere un po' imbarazzante in quanto potrebbero esserci dei forti ritardi. Quindi, per finire davvero con un sistema fluido, risolviamo quest'ultimo problema. Come risolvere il ritardo? Ho semplicemente immaginato che il problema potesse derivare sia dalla compressione in tempo reale da parte dei Pi che è troppo impegnativa dal punto di vista computazionale, sia dalla connessione wireless di cui dubito. Ad ogni modo, per risolverlo puoi fare qualcosa di molto semplice che è ridurre la risoluzione e il bitrate con cui le tue immagini vengono acquisite e codificate sui Pi.

Per modificare questi parametri, torna al tuo terminale e accedi al tuo Raspberry Pi. UV4L utilizza un file di configurazione. Questo file è /etc/uv4l/uv4l-raspicam.conf. Per modificarlo digita il comando sudo nano /etc/uv4l/uv4l-raspicam.conf. Ora sarai in grado di impostare la larghezza, l'altezza e la quantizzazione come preferisci. Ho usato i valori larghezza = 320, altezza = 240 e quantizzazione = 40 e ho ottenuto una trasmissione fluida con quelli.

Passaggio 6: divertiti

L'unica cosa che resta da fare ora è impostare il sistema dove vuoi che sia, mettere il telefono nel cartone e fare la tua sessione di yoga, meditazione, birra pong con i tuoi amici o qualsiasi altra cosa! Potresti aver bisogno di un po' di tempo (1 o 2 minuti) per abituarti alla direzione della telecamera che all'inizio ti sembrerà di avere improvvisamente un problema di strabismo. Un modo per abituarmi rapidamente è concentrarmi prima sugli oggetti vicini e poi passare a quelli successivi.

Ho pensato ad alcune estensioni che potrebbero essere interessanti:

  • rendere possibile vedere fuori casa, cioè rendere accessibile lo streaming dall'esterno della propria rete locale.
  • mettilo su una piattaforma robotica mobile per fare gare di droni!

Come insegnante penso che questo progetto possa essere interessante per saperne di più su:

  • Il Raspberry Pi, quali sono i componenti di base di un computer, cos'è un sistema operativo,
  • Concetti generali di rete, con IP locale ed esterno, protocollo
  • HTML e javascript.

Spero che questo tutorial che è stato il mio primo sia abbastanza chiaro senza essere troppo pesante da leggere.

Consigliato: