Tabla de contenido:

Traje de realidad virtual con Arduino: 7 pasos (con imágenes)
Traje de realidad virtual con Arduino: 7 pasos (con imágenes)

Video: Traje de realidad virtual con Arduino: 7 pasos (con imágenes)

Video: Traje de realidad virtual con Arduino: 7 pasos (con imágenes)
Video: ANT REALITY tiene las LENTES del FUTURO para REALIDAD VIRTUAL y REALIDAD.MIXTA 2024, Noviembre
Anonim
Traje de realidad virtual con Arduino
Traje de realidad virtual con Arduino

He creado este proyecto para jugar juegos de computadora normales en realidad virtual completa. Este proyecto emula tus movimientos al presionar o mantener presionadas las teclas de tu teclado.

Ejemplo: cuando avanza, se emula la acción de presionar la tecla 'w'.

He emulado el juego Call of Duty 4: Modern Warfare, pero no elijo juegos que tengan retroceso al disparar porque cambiará la posición predeterminada del mouse.

Paso 1: requisitos

Los requisitos son-

Hay una lista llena de cosas que necesitas para hacer este traje.

Sensores táctiles-5

Sensor de fuerza-1

GPU 6050 - 4

(o)

GPU 6050 - 2 y acelerómetro - 2

Gafas de realidad virtual

Teléfono habilitado para VR

ordenador personal

Punto de acceso wifi

Una pistola de juguete

Un juego de pc (he usado Call of Duty- Modern Warfare 1)

Alambres de la placa de pan (macho-hembra)

ARDUINO LEONARDO-2

Auton escudo - 2

Fuente de energía (lipo)

Cables arcoiris

Paso 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

* reload_pin, shoot_pin, night vision_pin, grenade_pin, arma change_pin son sensores táctiles. aim_pin es un sensor de fuerza y el mouse es emulado por MPU6050 otros sensores son acelerómetro (postura, movimiento1 y 2)

1.1) SOLDADURA

SOLDER MPU 6050, acelerómetro, sensor táctil y sensor de fuerza con los cables

1.2) CABLEADO

Para MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR / VCC

Para Movement_pin1-

Pin A1- eje x

GND-GND

5v - PWR / VCC

Para Movement_pin2-

Pin A2- eje x

GND-GND

5v - PWR / VCC

Para posture_pin-

Pin A0- eje x

GND-GND

5v - PWR / VCC

para weapon_pin -

sig-5v

GND-GND

5v - PWR / VCC

Para Reload_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Para Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR / VCC

Para shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Para aim_pin -

Pin 8 - 5v

5v - PWR / VCC

1.3) HILOS DE SOLDADURA

Suelde los cables de la placa de pan con los cables del arco iris

1.4) AISLAMIENTO

Pega los cables con cinta aislante en el lugar donde los has soldado para evitar cortocircuitos.

Paso 3: SOFTWARE

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

He usado una aplicación llamada 'Remotr' de Play Store para transmitir el video desde la computadora portátil al teléfono

2.1) MANDO A DISTANCIA

Instale la aplicación REMOTR en su computadora y cree una cuenta

Aqui esta el link-

remotrapp.com/#download

Instale la aplicación REMOTR en su teléfono inteligente

2.2) TRANSMISIÓN DE VIDEO

Primero conecte tanto la computadora como la misma red WiFi e ingrese su cuenta REMOTR en ambos dispositivos

ahora agregue manualmente el juego que desea transmitir en el software

ahora la aplicación mostrará la computadora como administrador, haga clic para comenzar a transmitir

Para transmitir en realidad virtual, habilite el modo vr en su teléfono inteligente

Si no lo entiende, consulte este enlace para obtener información detallada

remotrapp.com/en/howto

Paso 4: CÓDIGO PRINCIPAL

El código de este proyecto no es difícil ni complejo, sino largo.

Aquí está el código, simplemente cópielo y péguelo en su archivo arduino

ARDUINO

Ratón LEONARDO

Me he referido a Gabry295. Este código de mouse se basa en su cabeza Instructable Mouse

#incluir

#incluir

#incluir

#incluir

int aim_pin;

int shoot_pin;

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

configuración vacía () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

mientras (1);

}

pinMode (7, ENTRADA);

pinMode (8, ENTRADA);

}

bucle vacío () {

disparar_pin = digitalRead (7);

aim_pin = digitalRead (8);

mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

vx = (gx-300) / 200; // He puesto -300 y +490 ya que mi mpu6050 muestra estos valores cuando no mueve el cheque

vy = - (gz + 490) / 200; // verifique el código de la cabeza del mouse de Gabry295 para obtener más detalles sobre estos valores

Mouse.move (vx, vy);

retraso (20);

while (shoot_pin == HIGH);

{

Click del raton();

}

while (aim_pin == HIGH);

{

Click del raton();

}

}

Teclado Leonardo

#incluir

int Grenade;

int weapon_pin;

int reload_pin;

int movimiento1_pin;

int movimiento2_pin;

int posture_pin;

char nightvision_pin;

configuración vacía ()

{

pinMode (7, ENTRADA);

pinMode (8, ENTRADA);

pinMode (9, ENTRADA);

pinMode (10, ENTRADA);

pinMode (11, ENTRADA);

pinMode (12, ENTRADA);

pinMode (A0, ENTRADA);

pinMode (A1, ENTRADA);

Keyboard.begin ();

}

bucle vacío ()

{

Grenade_pin = digitalRead (8);

arma_pin = digitalRead (9);

movimiento1_pin = analogRead (A1);

movimiento2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

si (granada == ALTA)

{

Keyboard.press ('g');

}

while (weapon_pin == HIGH)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (movimiento1_pin> 340 && movimiento1_pin <420)

{

Keyboard.press ('w');

}

while (movimiento1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (movimiento2_pin> 340 && movimiento2_pin <420)

{

Keyboard.press ('w');

}

while (movimiento2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

while (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

while (posture_pin> 420)

{

Keyboard.press ('l');

}

while (posture_pin <340)

{

Keyboard.press ('z');

}

while (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Paso 5: CÓDIGOS DE PRUEBA

Aquí están los pocos códigos divididos del código principal según la función

TIROTEO-

#incluir

int x;

configuración vacía () {

pinMode (8, ENTRADA);

Mouse.begin ();

}

bucle vacío () {

x = digitalRead (8);

si (x == ALTO)

{

Mouse.click ('g');

}

}

PUNTERÍA-

#incluir

#incluir

#incluir

#incluir

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

configuración vacía () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

mientras (1);

}

}

bucle vacío () {

disparar_pin = digitalRead (7);

aim_pin = digitalRead (8);

mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

vx = (gx + 300) / 200; // "+300" porque el eje x del giroscopio da valores de aproximadamente -350 mientras no se está moviendo. Cambie este valor si obtiene algo diferente usando el código TEST, chacking si hay valores lejos de cero.

vy = - (gz_-100) / 200; // Lo mismo aquí sobre "-100"

RECARGA

#incluir

int x;

configuración vacía () {

pinMode (8, ENTRADA);

Keyboard.begin ();

}

bucle vacío () {

x = digitalRead (8);

si (x == ALTO)

{

Keyboard.press ('r');

}

demás

{

Keyboard.release ('r');

}

}

VISIO NOCTURNO #incluir

int x;

configuración vacía () {

pinMode (8, ENTRADA);

Keyboard.begin ();

}

bucle vacío () {

x = digitalRead (8);

si (x == ALTO)

{

Keyboard.press ('g');

}

demás

{

Keyboard.release ('g');

}

}

CROUCH Y PRONTO-

#incluir

int y;

configuración vacía () {

pinMode (A0, ENTRADA);

Serial.begin (9600);

}

bucle vacío () {

y = analogRead (A0);

si (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

de lo contrario si (y> 260 && y <310)

{

Keyboard.press ('c');

}

si no (y> 310)

{

Keyboard.press ('p');

}

}

Paso 6: CONTROLES DEL JUEGO

cambia los controles del juego de la siguiente manera

agacharse - x

propenso - l

cambio de arma - q

sprint - p

pararse / saltar - z

visión nocturna - m

movimiento hacia adelante - w

granada - g

Paso 7: CONFIGURACIÓN

CONFIGURACIÓN
CONFIGURACIÓN
CONFIGURACIÓN
CONFIGURACIÓN
CONFIGURACIÓN
CONFIGURACIÓN

Finalmente hemos llegado al ultimo paso ahora ponemos el arduino

tablas en una caja y deslícela en la bolsa

Ahora conecte el micro USB del arduino a los puertos USB de la computadora portátil, ahora conecte los sensores como se indica arriba

* las marcas de flecha en las imágenes de arriba representan la dirección en la que debe mirar el sensor

Si tienes alguna duda no dudes en dejar un comentario y no olvides compartir tu experiencia.

Eso es todo gracias y

ADIÓS.

Recomendado: