Tabla de contenido:
- Paso 1: requisitos
- Paso 2: HARDWARE
- Paso 3: SOFTWARE
- Paso 4: CÓDIGO PRINCIPAL
- Paso 5: CÓDIGOS DE PRUEBA
- Paso 6: CONTROLES DEL JUEGO
- Paso 7: CONFIGURACIÓN
Video: Traje de realidad virtual con Arduino: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
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
* 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
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
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:
Realidad virtual en Raspberry Pi con BeYourHero !: 19 pasos (con imágenes)
¡Realidad virtual en Raspberry Pi con BeYourHero !: Bienvenido a " Sé tu héroe " ¡Espero que esté listo para ingresar a la próxima generación de inmersión en realidad virtual! Este proyecto le brindará un control total por gestos de cualquier héroe virtual que desee con un simple conjunto de dispositivos económicos que usan se
Juegos listos para la realidad virtual en la sala de estar con Linux: 4 pasos
Livingroom VR Ready Gaming con Linux: Introducción Quería hacer una plataforma de juegos para VR y juegos sociales en mi sala de estar. Soy fanático de Linux y de la comunidad de código abierto, por lo que la pregunta era "¿Puede Linux hacer realidad virtual?", Linux es un sistema operativo para juegos muy capaz, en gran parte gracias a Win
¡Recupera! Juego de realidad virtual con Arduino y Acclerometer: 9 pasos
¡Recupera! Juego de realidad virtual usando Arduino y Acclerometer: en este tutorial crearemos un juego de realidad virtual usando Arduino y Acclerometer
Gafas de realidad virtual y mixta: 15 pasos (con imágenes)
Gafas de realidad virtual y mixta: Introducción: Durante el curso de maestría Tecnología para el diseño de conceptos se nos pidió que exploramos una tecnología emergente que se adapte a nuestro proyecto principal y que probamos esta tecnología haciendo un prototipo. Las tecnologías que elegimos son reali
Realidad virtual móvil con procesamiento para Android (TfCD): 7 pasos (con imágenes)
Realidad virtual móvil con procesamiento para Android (TfCD): La realidad virtual (VR) es una de las nuevas tecnologías que podrían resultar interesantes en los productos del futuro. Tiene muchas oportunidades y ni siquiera necesitas costosas gafas de realidad virtual (Oculus Rift). Puede parecer muy difícil hacerlo usted mismo, pero lo básico es