Sommario:
- Passaggio 1: requisiti
- Passaggio 2: HARDWARE
- Passaggio 3: SOFTWARE
- Passaggio 4: CODICE PRINCIPALE
- Passaggio 5: CODICI DI PROVA
- Passaggio 6: CONTROLLI DI GIOCO
- Passaggio 7: IMPOSTAZIONE
Video: Tuta per realtà virtuale con Arduino: 7 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Ho creato questo progetto per giocare ai normali giochi per computer in piena VR. Questo progetto emula i tuoi movimenti premendo o tenendo premuti i tasti della tastiera
Esempio: quando si va avanti viene emulata l'azione di premere il tasto 'w'.
Ho emulato il gioco Call of Duty 4: Modern Warfare ma non scegliere giochi che hanno il rinculo durante le riprese perché cambierà la posizione predefinita del mouse
Passaggio 1: requisiti
I requisiti sono-
C'è una lista piena di cose di cui hai bisogno per realizzare questo vestito
Sensori tattili-5
Sensore di forza-1
GPU 6050 - 4
(o)
GPU 6050 - 2 & Accelerometro - 2
Occhiali Vr
Telefono abilitato per Vr
PC
Hotspot wifi
Una pistola giocattolo
Un gioco per PC (ho usato Call of Duty- Modern Warfare 1)
Fili tagliere (Maschio-Femmina)
ARDUINO LEONARDO-2
Scudo di Auton - 2
Fonte di alimentazione (lipo)
Fili arcobaleno
Passaggio 2: HARDWARE
*reload_pin, shoot_pin, night vision_pin, granata_pin, cambio arma_pin sono sensori tattili. goal_pin è un sensore di forza e il mouse è emulato da MPU6050 altri sensori sono accelerometro (postura, movimento1 e 2)
1.1) SALDATURA
SALDARE MPU 6050, accelerometro, sensore tattile e sensore di forza con i fili
1.2) CABLAGGIO
Per MPU 6050-
Pin 2- SDA
Pin 3- SCL
GND - GND
5v - PWR/VCC
Per movimento_pin1-
Pin A1- asse x
GND-GND
5v - PWR/VCC
Per movimento_pin2-
Pin A2- asse x
GND-GND
5v - PWR/VCC
Per postura_pin-
Pin A0- asse x
GND-GND
5v - PWR/VCC
per pin_arma –
sig-5v
GND-GND
5v - PWR/VCC
Per Reload_pin –
pin12 – 5v
GND-GND
5v - PWR/VCC
Per Nightvision_pin –
pin 10 – 5v
GND-GND
5v - PWR/VCC
Per shoot_pin –
Pin7 – 5v
GND-GND
5v - PWR/VCC
Per obiettivo_pin –
Pin 8 – 5v
5v - PWR/VCC
1.3) FILI DI SALDATURA
Saldare i fili della breadboard con i fili arcobaleno
1.4) ISOLAMENTO
Fissare i fili con il nastro isolante nel punto in cui sono stati saldati per evitare cortocircuiti
Passaggio 3: SOFTWARE
Ho usato un'app chiamata "Remotr" dal Play Store per trasmettere il video dal laptop al telefono
2.1) REMOTO-
Installa l'applicazione REMOTR sul tuo computer e crea un account
Ecco il link-
remotrapp.com/#download
Installa l'app REMOTR sul tuo smartphone
2.2) STREAMING VIDEO
Per prima cosa connetti sia il computer che la stessa rete WiFi e inserisci il tuo account REMOTR in entrambi i dispositivi
ora aggiungi manualmente il gioco che desideri riprodurre in streaming nel software
ora l'app mostrerà il computer come amministratore fai clic su di esso per avviare lo streaming
Per eseguire lo streaming in VR, abilita la modalità vr sul tuo smartphone
Se non riesci a capire Controlla questo link per informazioni dettagliate
remotrapp.com/en/howto
Passaggio 4: CODICE PRINCIPALE
Il codice per questo progetto non è duro o complesso ma lungo
Ecco il codice, copialo e incollalo nel tuo file arduino
ARDUINO
LEONARDO Topo-
Ho indicato Gabry295. Questo codice del mouse è basato sulla sua testa Mouse istruibile
#includere
#includere
#includere
#includere
int obiettivo_pin;
int shoot_pin;
MPU6050 MPU;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
void setup() {
Serial.begin(9600);
Mouse.begin();
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) {
mentre (1);
}
pinMode(7, INGRESSO);
pinMode(8, INGRESSO);
}
ciclo vuoto() {
shoot_pin = digitalRead(7);
obiettivo_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx-300)/200; // Ho messo -300 e +490 poiché il mio mpu6050 mostra questi valori quando non si muove check
vy = -(gz+490)/200; // controlla il codice della testa del mouse di Gabry295 per maggiori dettagli su questi valori
Mouse.move(vx, vy);
ritardo(20);
while(shoot_pin == HIGH);
{
Mouse.click();
}
while(aim_pin == HIGH);
{
Mouse.click();
}
}
Tastiera Leonardo
#includere
int Granata;
int arma_pin;
int reload_pin;
int movimento1_pin;
int movimento2_pin;
int postura_pin;
char nightvision_pin;
configurazione nulla()
{
pinMode(7, INGRESSO);
pinMode(8, INGRESSO);
pinMode(9, INGRESSO);
pinMode(10, INGRESSO);
pinMode(11, INGRESSO);
pinMode(12, INGRESSO);
pinMode(A0, INGRESSO);
pinMode(A1, INGRESSO);
Keyboard.begin();
}
ciclo vuoto()
{
Grenade_pin=digitalRead(8);
arma_pin = digitalRead(9);
movimento1_pin = analogRead(A1);
movimento2_pin = analogRead(A2);
postura_pin = analogRead(A0);
reload_pin = digitalRead(12);
nightvision_pin = digitalRead(10);
if(granata==ALTA)
{
Keyboard.press('g');
}
mentre (weapon_pin == HIGH)
{
Keyboard.press('q');
}
while(reload_pin == HIGH)
{
Keyboard.press('r');
}
mentre (movement1_pin>340&&movement1_pin<420)
{
Keyboard.press('w');
}
mentre (movement1_pin>420)
{
Keyboard.press('w');
Keyboard.press('p');
}
mentre (movement2_pin>340&&movement2_pin<420)
{
Keyboard.press('w');
}
mentre (movement2_pin>420)
{
Keyboard.press('p');
Keyboard.press('w');
}
mentre (posture_pin>340&&posture_pin<420)
{
Keyboard.press('c');
}
mentre (posture_pin>420)
{
Keyboard.press('l');
}
mentre (posture_pin<340)
{
Keyboard.press('z');
}
mentre (nightvision_pin==HIGH)
{
Keyboard.press('n');
}
}
}
Passaggio 5: CODICI DI PROVA
Ecco i pochi codici divisi dal codice principale in base alla funzione
TIRO-
#includere
intero x;
void setup() {
pinMode(8, INGRESSO);
Mouse.begin();
}
ciclo vuoto() {
x=digitalRead(8);
if(x==ALTA)
{
Mouse.click('g');
}
}
MIRA-
#includere
#includere
#includere
#includere
MPU6050 MPU;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
void setup() {
Serial.begin(9600);
Mouse.begin();
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) {
mentre (1);
}
}
ciclo vuoto() {
shoot_pin = digitalRead(7);
obiettivo_pin = digitalRead(8);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = (gx+300)/200; // "+300" perché l'asse x del giroscopio fornisce valori di circa -350 mentre non è in movimento. Cambia questo valore se ottieni qualcosa di diverso usando il codice TEST, controllando se ci sono valori lontani da zero.
vy = -(gz_-100)/200; // lo stesso qui per "-100"
RICARICA-
#includere
intero x;
void setup() {
pinMode(8, INGRESSO);
Keyboard.begin();
}
ciclo vuoto() {
x=digitalRead(8);
if(x==ALTA)
{
Keyboard.press('r');
}
altro
{
Keyboard.release('r');
}
}
VISIO NOTTURNO #include
intero x;
void setup() {
pinMode(8, INGRESSO);
Keyboard.begin();
}
ciclo vuoto() {
x=digitalRead(8);
if(x==ALTA)
{
Keyboard.press('g');
}
altro
{
Keyboard.release('g');
}
}
RAVVICINATI E PRONATI-
#includere
int y;
void setup() {
pinMode(A0, INGRESSO);
Serial.begin(9600);
}
ciclo vuoto() {
y=analogRead(A0);
se(y<260)
{
Keyboard.release('c');
Keyboard.release('p');
}
altrimenti se(y>260&&y<310)
{
Keyboard.press('c');
}
altrimenti se(y>310)
{
Keyboard.press('p');
}
}
Passaggio 6: CONTROLLI DI GIOCO
cambia i controlli di gioco come segue
accucciarsi - x
prono - la
cambio arma - q
sprint - p
stare in piedi/saltare - z
visione notturna - n
movimento in avanti - w
granata - g
Passaggio 7: IMPOSTAZIONE
Finalmente siamo arrivati all'ultimo passaggio ora metti l'arduino
tavole in una scatola e mettilo nella borsa
Ora collega la micro USB dell'arduino alle porte USB del laptop ora collega i sensori come indicato sopra
*i segni di freccia nelle immagini sopra rappresentano la direzione verso cui deve essere rivolto il sensore
Se hai dei dubbi non esitare a lasciare un commento e non dimenticare di condividere la tua esperienza
Questo è tutto grazie e
ADDIO.
Consigliato:
Realtà virtuale su Raspberry Pi con BeYourHero!: 19 passaggi (con immagini)
Realtà virtuale su Raspberry Pi con BeYourHero!: Benvenuto in "Be Your Hero" progetto!Spero che tu sia pronto per entrare nella prossima generazione di immersione nella realtà virtuale!Questo progetto ti darà il pieno controllo gestuale di qualsiasi eroe virtuale che ti piace con un semplice set di dispositivi economici che utilizzano se
Gioco pronto per la realtà virtuale in soggiorno con Linux: 4 passaggi
Livingroom VR Ready Gaming con Linux: introduzioneVolevo creare un impianto di gioco per la realtà virtuale e il social gaming nel mio soggiorno. Sono un fan di Linux e della comunità open source, quindi la domanda era "Linux può fare la realtà virtuale?", Linux è un sistema operativo di gioco molto capace - in gran parte grazie a Win
Creazione di un'interfaccia utente curva in Unity per la realtà virtuale: 4 passaggi
Creazione di un'interfaccia utente curva in Unity per la realtà virtuale: se stai cercando una soluzione semplice e gratuita per creare un'interfaccia utente curva per la tua applicazione di realtà virtuale o gioco VR, sei nel posto giusto. In questo blog imparerai a creare un elemento dell'interfaccia utente curvo in unity utilizzando le estensioni dell'interfaccia utente di Unity
Occhiali per realtà virtuale e mista: 15 passaggi (con immagini)
Occhiali per realtà virtuale e mista: Introduzione: Durante il master Technology for Concept Design ci è stato chiesto di esplorare una tecnologia emergente adatta al nostro progetto principale e di testare questa tecnologia realizzando un prototipo. Le tecnologie che abbiamo scelto sono entrambe Reali Virtuali
Realtà virtuale mobile utilizzando l'elaborazione per Android (TfCD): 7 passaggi (con immagini)
Realtà virtuale mobile che utilizza l'elaborazione per Android (TfCD): la realtà virtuale (VR) è una delle nuove tecnologie che potrebbero essere interessanti per i prodotti futuri. Ha molte opportunità e non hai nemmeno bisogno di costosi occhiali VR (Oculus Rift). Può sembrare molto difficile da fare da soli, ma le basi sono