Taula de continguts:

Vestit de realitat virtual amb Arduino: 7 passos (amb imatges)
Vestit de realitat virtual amb Arduino: 7 passos (amb imatges)

Vídeo: Vestit de realitat virtual amb Arduino: 7 passos (amb imatges)

Vídeo: Vestit de realitat virtual amb Arduino: 7 passos (amb imatges)
Vídeo: Основные ошибки при возведении перегородок из газобетона #5 2024, De novembre
Anonim
Vestit de realitat virtual amb Arduino
Vestit de realitat virtual amb Arduino

He creat aquest projecte per jugar a jocs d'ordinador normals en realitat virtual completa. Aquest projecte emula els vostres moviments en prémer o mantenir premudes les tecles del teclat

Exemple: en avançar, s'emula l'acció de prémer la tecla 'w'.

He imitat el joc Call of Duty 4: Modern Warfare, però no trieu jocs que tinguin retrocés mentre es dispara perquè canviarà la posició predeterminada del ratolí

Pas 1: requisits

Els requisits són

Hi ha una llista plena de coses que necessiteu per fer aquest vestit

Sensors tàctils-5

Sensor de força-1

GPU 6050-4

(o)

GPU 6050 - 2 i acceleròmetre - 2

Ulleres Vr

Telèfon habilitat per a VR

PC

Punt d'accés WiFi

Una pistola de joguina

Un joc per a PC (he utilitzat Call of Duty- Modern Warfare 1)

Filferros de taulers de pa (Home-Dona)

ARDUINO LEONARDO-2

Auton sheild - 2

Font d'alimentació (lipo)

Filferro arc de Sant Martí

Pas 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

* reload_pin, shoot_pin, night vision_pin, granada_pin, arma change_pin són sensors tàctils. aim_pin és el sensor de força i el ratolí és emulat per MPU6050; altres sensors són acceleròmetre (postura, moviment1 i 2)

1.1) SOLDADURA

SOLDER MPU 6050, acceleròmetre, sensor tàctil i sensor de força amb els cables

1.2) CABLEAT

Per a MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR / VCC

Per a moviment_pin1-

Pin A1- eix x

GND-GND

5v - PWR / VCC

Per a moviment_pin2-

Pin A2- eix x

GND-GND

5v - PWR / VCC

Per a posture_pin-

Pin A0- eix x

GND-GND

5v - PWR / VCC

per arma_pin -

sig-5v

GND-GND

5v - PWR / VCC

Per a Reload_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Per a Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR / VCC

Per a shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Per aim_pin -

Pin 8 - 5v

5v - PWR / VCC

1.3) FILS DE SOLDAT

Soldeu els cables de la taula de pa amb els cables de l’arc de Sant Martí

1.4) A INLLAMENT

Enganxeu els cables amb la cinta aïllant al lloc on heu soldat per evitar curtcircuits

Pas 3: PROGRAMARI

PROGRAMARI
PROGRAMARI
PROGRAMARI
PROGRAMARI

He utilitzat una aplicació anomenada "Remotr" de Play Store per emetre el vídeo des del portàtil al telèfon

2.1) REMOTR-

Instal·leu l'aplicació REMOTR al vostre ordinador i creeu un compte

Aquí teniu l’enllaç-

remotrapp.com/#download

Instal·leu l'aplicació REMOTR al vostre telèfon intel·ligent

2.2) VIDEO STREAMING

Primer, connecteu tant l’ordinador com la mateixa xarxa WiFi i introduïu el vostre compte REMOTR als dos dispositius

ara afegiu manualment el joc que voleu transmetre al programari

ara l'aplicació mostrarà l'ordinador com a administrador i feu-hi clic per iniciar la reproducció

Per transmetre en VR, activa el mode vr al teu telèfon intel·ligent

Si no ho podeu entendre Consulteu aquest enllaç per obtenir informació detallada

remotrapp.com/en/howto

Pas 4: CODI PRINCIPAL

El codi d’aquest projecte no és dur ni complex, sinó llarg

Aquí teniu el codi, només cal copiar-lo i enganxar-lo al fitxer arduino

ARDUINO

Ratolí LEONARDO-

He referit Gabry295. Aquest codi de ratolí es basa en el cap del ratolí que es pot instruir

#incloure

#incloure

#incloure

#incloure

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

configuració nul·la () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

mentre que (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

bucle buit () {

shoot_pin = DigitalRead (7);

objectiu_pin = DigitalRead (8);

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

vx = (gx-300) / 200; // He posat -300 i +490 perquè el meu mpu6050 mostra aquests valors quan no es mou

vy = - (gz + 490) / 200; // comproveu el codi del ratolí principal per Gabry295 per obtenir més informació sobre aquests valors

Mouse.move (vx, vy);

retard (20);

mentre (shoot_pin == HIGH);

{

Mouse.click ();

}

while (aim_pin == HIGH);

{

Mouse.click ();

}

}

Teclat Leonardo

#incloure

int Granada;

int arma_pin;

int reload_pin;

int moviment1_pin;

int moviment2_pin;

int postura_pin;

char nightvision_pin;

configuració nul·la ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Keyboard.begin ();

}

bucle buit ()

{

Grenade_pin = DigitalRead (8);

arma_pin = DigitalRead (9);

moviment1_pin = analogRead (A1);

moviment2_pin = analogRead (A2);

postura_pin = analogRead (A0);

recarregar_pin = digitalRead (12);

nightvision_pin = DigitalRead (10);

if (granada == ALTA)

{

Keyboard.press ('g');

}

while (arma_pin == ALTA)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (moviment1_pin> 340 && moviment1_pin <420)

{

Keyboard.press ('w');

}

while (moviment1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (moviment2_pin> 340 && moviment2_pin <420)

{

Keyboard.press ('w');

}

while (moviment2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

while (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

mentre que (posture_pin> 420)

{

Keyboard.press ('l');

}

while (postura_pin <340)

{

Keyboard.press ('z');

}

while (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Pas 5: CODIS DE PROVA

Aquests són els pocs codis dividits del codi principal segons la funció

TIR-

#incloure

int x;

configuració nul·la () {

pinMode (8, INPUT);

Mouse.begin ();

}

bucle buit () {

x = DigitalRead (8);

if (x == ALT)

{

Mouse.click ('g');

}

}

PUNTERIA-

#incloure

#incloure

#incloure

#incloure

MPU6050 mpu;

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

int vx, vy;

configuració nul·la () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

mentre que (1);

}

}

bucle buit () {

shoot_pin = DigitalRead (7);

objectiu_pin = DigitalRead (8);

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

vx = (gx + 300) / 200; // "+300" perquè l'eix x del giroscopi dóna valors aproximats de -350 mentre no es mou. Canvieu aquest valor si obteniu alguna cosa diferent mitjançant el codi TEST, perseguint si hi ha valors allunyats de zero.

vy = - (gz_-100) / 200; // el mateix aquí sobre "-100"

RECÀRREGA-

#incloure

int x;

configuració nul·la () {

pinMode (8, INPUT);

Keyboard.begin ();

}

bucle buit () {

x = DigitalRead (8);

if (x == ALT)

{

Keyboard.press ('r');

}

en cas contrari

{

Keyboard.release ('r');

}

}

VISIÓ NITAL #include

int x;

configuració nul·la () {

pinMode (8, INPUT);

Keyboard.begin ();

}

bucle buit () {

x = DigitalRead (8);

if (x == ALT)

{

Keyboard.press ('g');

}

en cas contrari

{

Keyboard.release ('g');

}

}

CROUCH I PRONE-

#incloure

int y;

configuració nul·la () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

bucle buit () {

y = analogRead (A0);

si (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

altrament si (y> 260 && y <310)

{

Keyboard.press ('c');

}

altrament si (y> 310)

{

Keyboard.press ('p');

}

}

Pas 6: CONTROLS DEL JOC

canvieu els controls del joc de la següent manera

ajupir-se - x

propens - l

canvi d'armes - q

sprint - pàg

plantar-se / saltar - z

visió nocturna - n

moviment cap endavant - w

magrana - g

Pas 7: CONFIGURACIÓ

PREPARANT
PREPARANT
PREPARANT
PREPARANT
PREPARANT
PREPARANT

Finalment hem arribat a l'últim pas que ara posa l'arduino

taules en una caixa i introduïu-la a la bossa

Ara connecteu el micro USB de l’arduino als ports USB del portàtil i ara connecteu els sensors tal com s’indicava més amunt

* Les marques de fletxa de les imatges anteriors representen la direcció que ha d’afrontar el sensor

Si teniu cap dubte, no dubteu a deixar un comentari i no oblideu compartir la vostra experiència

Això és tot gràcies i

ADEU.

Recomanat: