Guida alla creazione del guanto aptico LucidVR Glove

Essere dentro la VR

E’ indubbio che la VR negli ultimi anni abbia fatto passi da gigante grazie a nuove tecnologie e nuovi headset in grado di offrirci esperienze ancora più immersive: aumento della risoluzione degli schermi, ampliamento del fov, scomparsa dello screen door effect, sono solo alcune delle novità introdotte dai nuovi visori come Oculus Quest 2 o HP Reverb G2. Negli ultimi tempi, inoltre, sempre più compagnie hanno cominciato ad offrire prodotti in grado di ampliare ulteriormente il grado di immersività delle esperienze VR, aggiungendo un ulteriore layer di simulatività alle nostre esperienze, con la creazione di sistemi di feedback aptico che simulano le senzazioni che si possono provare nel mondo reale.

Basti pensare a ProTubeVR con il suo ForceTube, che simula il rinculo e le vibrazioni delle armi utilizzate negli FPS, a Bhaptics che con la TactSuit X mira a ricreare sul nostro dorso la sensazione di un proiettile che ci colpisce o un pugno sferrato dal nostro avversario, fino a KatVR che con il suo KatWalk C ci fa muovere come fossimo all’interno del gioco.

Tutte queste nuove tecnologie incredibilmente affascinanti, hanno però ancora costi troppo elevati per la diffusione su larga scala, e si scontrano un po’ con quella che è la filososia della geek culture che ha da sempre ispirato e tenuto viva la VR, la cui community ancora prima che diventasse di moda, era formata in gran parte da smanettoni, nerd e filosofi del cyberpunk. Una community amante dell’open source e del mercato libero delle conoscenze e delle tecnologie.

Proprio partendo dall’esperienza di quella community nasce questa guida, che punta alla realizzazione di un guanto aptico perfettamente funzionale, open source, economico e accessibile a tutti.

Cosa sono i guanti aptici ?

Il guanto aptico è un dispositivo indossabile che oltre a mappare il movimento delle dita del suo utilizzatore in un ambiente virtuale, simula le sensazioni tattili che si proverebbero toccando e maneggiando gli oggetti virtuali visualizzati nel visore. In pratica, un guanto aptico fornisce un feedback reale sulla sensazione tattile di oggetti virtuali, ingannando il cervello e facendogli credere di tenere in mano un oggetto reale. Sebbene i guanti più avanzati siano in grado di fornire all’utilizzatore informazioni avanzatissime, come la temperatura, la superficie e altre informazioni, il guanto che andremo a realizzare in questa guida, offrirà soltanto la sensazione fisica di toccare un oggetto, attraverso un sistema di servomotori che bloccano la posizione delle dita sulla base delle informazioni fornite dal mondo di gioco, proprio come se si stesse impugnando l’oggetto visualizzato.

LucidVRGlove

Il guanto in questione è ancora molto lontano dalla perfezione ma si tratta di un progetto molto divertente in cui è chiara la passione del suo creatore, Lucas LucidVR, che non solo ha per primo ideato il progetto originario, evolutosi in quello che creeremo oggi, ma ne ha creato anche i firmware, i driver e i disegni delle stampe 3d, tutto open source e nel pieno spirito di condivisione di cui vi parlavamo all’inizio.

MATERIALE:

  • Potenziometri B10k Ohm (Amazon)
  • Retractable badge reels 10x (Amazon)
  • Pezzetti stampati in 3D (se non ne avete una potete scrivermi alla mia mail tommyfranca@gmail.com li posso spedire)
  • Servo MG90S 10x 180 gradi (Amazon)
  • Fili elettrici/connettori (Amazon)
  • WD40 (Amazon)
  • Termorestringenti (Amazon)
  • ESP32 wroom AZdelivery (Amazon)
  • Guanto qualsiasi
  • Colla a caldo
  • Super attack
  • Quest 2
  • Uno stick analogico per spostarsi in varie direzioni
  • Un cavo ricarica sacrificabile
  • Saldatore o nel caso pinza crimpatrice

ESP-32

L’esp32 è il cuore del nostro progetto ed è composta in maniera molto semplice da un scheda con dei collegamenti detti pin: ogni pin ha una funzione, alimentare il dispositivo, trasferire informazioni ecc.; quelli che useremo di più sono 5V corrente, GND terra, ed i pin di collegamento.

1. Come prima cosa prendiamo la scheda ESP-32 e saldiamo o crimpiamo i 5 fili che saranno i pin di collegamento. Nel nostro caso i pin che ci servono sono i numeri 35, 34, 32, 39, 36. Quindi salderemo o crimperemo su ognuno di questi un filo di circa 10cm. I pin 36 e 39 non sono indicati sulla scheda. Allego una foto per capire la loro posizione

LucidVRGloveESP

2. Dopo esserci assicurati che tutti i fili siano collegati, accertiamoci che non possano toccarsi l’uno con l’altro e utilizziamo della guaina termorestringente per isolarli. Se usate un saldatore ovviamente.

3. Ora dobbiamo collegare il nostro 5v, che sulla nostra scheda si chiama 3v3: dovendo alimentare sei dispositivi dobbiamo dividere i cavi in sei. Cinque saranno per i potenziometri e uno per il joystick.
Per dividere i cavi si possono usare varie tecniche: fare i ponti o crimpare due cavi in uno, ma io preferisco attorcigliare i 6 cavi che si disperderanno sui potenziometri e sul joystick, saldarli insieme e poi saldare un ultimo cavo che si collegherà al pin 3v3 della scheda.

4. Dovremo fare lo stesso procedimento col pin GND: sempre 6 cavi come per pin 3v3. Ora che abbiamo collegato i cavi possiamo collegare il joystick e i potenziometri.

5. Per i potenziometri dovremo seguire questo schema qui sotto quindi collegheremo il 5v che corrisponde ai cavi divisi in 6 del pin del 3v3, uguale per il pin GND facendo attenzione a non sbagliare l’ordine se non vogliamo che il potenziometro vada in corto, mentre il pin che nella foto si chiama signal andrà collegato con uno dei 35, 34, 32, 39, 36 ogni numero corrisponde ad un dito.

6. Per il joystick dovremo sempre collegare l’ultimo cavo al pin che sul PCB del joystick è indicato come 5v; stesso discorso per il pin GND. Dovremmo aggiungere 3 connettori/saldature sulla scheda che saranno per i 3 pin rimanenti del joystick che si chiamano pin joy x e pin joy y. Pin joy x andrà messo sulla scheda al numero 25 mentre pin joy y al numero 33, rimane un pin da completare chiamato SW che è il pin che serve quando si schiaccia il joystick, SW verrà collegato al numero 26.

LucidvrGloveStick

Una volta completati nostri collegamenti dobbiamo accertarci che i potenziometri funzionino. Per verificare dovremmo scaricare il firmware di arduino.

  • Entriamo quindi nella cartella firmware che abbiamo scaricato (lucid_gloves) e in firmware.ino.
  • Abilitiamo l’uso di esp32 stumenti, gestore schede e cerchiamo “ESP32”.
  • Installiamo l’ultima versione del software e potremo collegare il nostro esp32 con un cavo al pc.
  • Selezioniamo la porta e teniamo premuto il pulsante di boot sull’esp32.
  • Clicchiamo il pulsante upload.

Se qualcosa dovesse andare storto selezionate correttamente il modello di scheda e controllate che la scheda non sia danneggiata, se tutto andrà a buon fine visualizzerete una scritta con scritto “hard reset via rst pin”. Possiamo a questo punto chiudere arduino e spostarci su Steam dove dovremo installare il driver opengloves e da qui selezionare la COM usata da arduino. Se per qualche motivo la vostra avete tante COM e non sapete scegliere potete andare su gestione dispositivi e guardate i nomi delle COM.

Controllando di aver chiuso arduino e opengloves possiamo aprire SteamVR home, provando a girare i potenziometri e se funzionerà potremo passare alla parte meccanica.

Assemblaggio parte meccanica

Per la parte meccanica avremo bisogno dei pezzi stampati in 3D, dei badge reels e dei potenziometri e dei suoi bulloni a forma di esagono. Se non avete una stampante 3D potete o scrivermi oppure potrete comprarne una, consiglio ender 3 V2 o in alternativa ender 3 classica.

  • Per prima cosa mettiamo il bullone nella parte ritagliata del primo pezzo (se non entra non usate un trincerino o un dremel, usate un martello o qualcosa per picchiettarlo)
  • Poi avvolgiamo il filo di ferro che troviamo rompendo le badge reels e lo facciamo passare nel buco. Lo arrotoliamo fino a quando dovremo avvitare il potenziometro col bullone e la fine del filo andrà passata all’interno del taglio sull’albero del potenziometro, ovviamente più avvolgete il filo di ferro più il potenziometro torna indietro con più potenza.
  • Ora possiamo passare il filo nella haptic spool e possiamo far passare il filo attraverso i due buchi dove nella parte interna (quella che si attacca al potenziometro faremo due nodi per non far uscire il filo. Ora richiudendolo potremmo notare che girandolo la haptic spool tornerà indietro. Usando sempre lo stesso filo passiamo da dalla parte superiore all’interno il filo nel cover spool, facendolo girare un paio di volte il filo andrà a depositarsi attorno alla haptic spool. Se la haptic spool si dovesse staccare consiglio di usare una colla attack facendo moltissima attenzione a non far colare la colla dentro il potenziometro. Invece se la cover spool si dovesse staccare dal tensioner la parte dove abbiamo messo il bullone, mettiamo un po’ di colla per non farlo staccare.

Se avremo fatto tutti i passaggi tirando il filo avrete un ingranaggio a molla.

Ora dobbiamo mettere l’ingranaggio nella postazione.

Ora completato il cablaggio: possiamo connettere la scheda e dopo che avremo scaricato il codice sulla scheda alimenteremo un powerbank l’ESP32 e andando ad aggiungere un dispositivo Bluetooth noteremo che apparirà un dispositivo di nome “lucidglove-glove”. Se il dispositivo non viene visualizzato potremo ad esempio non avere il Bluetooth integrato nel pc per risolvere possiamo comprare un dongle da Amazon.

Per i guide node solo piccoli pezzi (sempre nella cartella delle stampe) che vanno incollati sulle dita del guanto per far passare il filo. Due per ogni dito e uno per il pollice. Gli end cap non vanno incollati.

posizionamento guide node e endcap

Servo

Per i servo dovremo fare un procedimento diverso, intanto dovremmo andare su arduino e mettere “true” in una barra del codice sopra la disposizione delle dita chiamata enable_haptic.feedback e selezionare true. Per il cablaggio invece dobbiamo prendere il servo e tagliare il connettore, trovare qual è il 5v e GND e connetterli tutti insieme (5 per 5v e 5 per gnd, mai insieme se non volete vedere il fuoco). Prendere quindi un cavo ricarica e spellateli per connettere i nostri 10 cavi rispettivamente al 5v del cavo e al gnd del cavo. Questo cavo è un cavo con terminazione che andrà nella seconda porta del powerbank. Per il cavo centrale, invece, andrà messo nei pin che sono scritti sul firmware in Arduino posizioniamo dietro ad i potenziometri i servo e dovremo attaccarli dove ci sono dei buchi: qui dovremo mettere le viti. I servo per essere regolati devono essere aperti cioè come vengono chiamati dal lucidgloves driver su steam “estratti” pigiando il pulsante i servo si muoveranno in base alla loro posizione dovranno toccare esattamente a sinistra della vite che è sulla haptic spool nel buco. (per alimentare tutto serve un powerbank a due uscite)

i servo funzionano per quasi ogni gioco, tranne per half_life alyx che serve riscaricare il gioco con un dlc gratis di open gloves.

Conclusioni

Si conclude qui il nostro minitutorial alla realizzazione del vostro primo guanto aptico. Si tratta di una guida sicuramente di base, e siamo sicuri che dopo averla letta, avrete più dubbi che certezze. Se volete provare a fugarne qualcuno, vi invito a scrivermi ai recapiti qui sotto, oppure ad iscrivervi al nostro gruppo Telegram VR | AR Italia dove parliamo di VR in tutte le sue forme.

  • mauro_poltroni#4697 (discord)
  • @tommyfranca (telegram)

Previous ArticleNext Article

This post has 1 Comment

1
  1. Damn, bel lavoro. Articolo scritto come su riviste.

    Mi ricordo le vecchie riviste di Futura elettronica che parlavano di queste cose, ma con la tecnologia di 10 anni fa, ed e fantastico vedere che sono sempre stati i maker a lasciare le prime tracce di innovazione, sulle quali alla fine viene costruito il futuro.
    Questo dimostra quanto sia potente la politica open source.
    👍👍👍

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *