Obleka za navidezno resničnost z uporabo Arduina: 7 korakov (s slikami)
Obleka za navidezno resničnost z uporabo Arduina: 7 korakov (s slikami)
Anonim
Obleka za navidezno resničnost z uporabo Arduina
Obleka za navidezno resničnost z uporabo Arduina

Ta projekt sem ustvaril za igranje običajnih računalniških iger v polni VR. Ta projekt posnema vaša gibanja s pritiskom ali držanjem tipk na tipkovnici

Primer- ko se premaknete naprej, se posnema dejanje pritiska na tipko 'w'.

Imuriral sem igro Call of Duty 4: Modern Warfare, vendar ne izberite iger, ki med streljanjem odmikajo, ker bo spremenila privzeti položaj miške

1. korak: Zahteve

Zahteve so-

Seznam stvari, ki jih potrebujete za izdelavo te obleke, je poln

Senzorji na dotik-5

Senzor sile-1

GPU 6050 - 4

(ali)

GPU 6050 - 2 in merilnik pospeška - 2

Vr kozarci

Telefon z vrtom

Osebni računalnik

Dostopna točka WiFi

Pištola za igrače

PC igra (uporabljal sem Call of Duty-Modern Warfare 1)

Žice za kruh (moški-ženski)

ARDUINO LEONARDO-2

Autonova ponjava - 2

Napajanje (lipo)

Mavrične žice

2. korak: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*reload_pin, shoot_pin, pin of night vision, grenade_pin, weapon change_pin so senzorji na dotik. aim_pin je senzor sile in miško posnema MPU6050, drugi senzorji so merilnik pospeška (drža, gibanje 1 in 2)

1.1) SPAJANJE

SOLDER MPU 6050, merilnik pospeška, senzor na dotik in senzor sile z žicami

1.2) OŽIČENJE

Za MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Za motion_pin1-

Pin A1- x os

GND-GND

5v - PWR/VCC

Za motion_pin2-

Pin A2- x os

GND-GND

5v - PWR/VCC

Za posture_pin-

Pin A0-x os

GND-GND

5v - PWR/VCC

za pištolo za orožje -

sig-5v

GND-GND

5v - PWR/VCC

Za Reload_pin -

pin12 - 5v

GND-GND

5v - PWR/VCC

Za Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR/VCC

Za shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR/VCC

Za aim_pin -

Pin 8 - 5v

5v - PWR/VCC

1.3) SPAJALNE Žice

Spajite žice plošče za kruh z mavričnimi žicami

1.4) IZOLACIJA

Žice z izolacijskim trakom prilepite na mesto, kjer ste spajkali, da se izognete kratkemu stiku

3. korak: PROGRAMSKA OPREMA

PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA

Za predvajanje videoposnetka iz prenosnega računalnika v telefon sem uporabil aplikacijo Remotr

2.1) DALJINSKI

Namestite aplikacijo REMOTR v računalnik in ustvarite račun

Tukaj je povezava-

remotrapp.com/#download

Namestite aplikacijo REMOTR v pametni telefon

2.2) VIDEO POTIČANJE

Najprej povežite računalnik in isto omrežje WiFi ter v obeh napravah vnesite svoj račun REMOTR

zdaj ročno dodajte igro, ki jo želite pretočno predvajati v programski opremi

zdaj bo aplikacija prikazala računalnik kot skrbnik, kliknite za začetek pretakanja

Za pretakanje v VR omogočite način vr v pametnem telefonu

Če ne razumete, za podrobne informacije preverite to povezavo

remotrapp.com/en/howto

4. korak: GLAVNA KODA

Koda za ta projekt ni težka ali zapletena, ampak dolga

Tukaj je koda, ki jo preprosto kopirajte in prilepite v datoteko arduino

ARDUINO

Miška LEONARDO-

Predlagal sem Gabry295. Ta koda miške temelji na njegovi glavi Miška, ki jo je mogoče naročiti

#vključi

#vključi

#vključi

#vključi

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

medtem ko (1);

}

pinMode (7, INPUT);

pinMode (8, VHOD);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // Postavil sem -300 in +490, saj moj mpu6050 prikazuje te vrednosti, ko se ne premika

vy = -(gz+490)/200; // za več podrobnosti o teh vrednostih preveri kodo glave miške Gabry295

Mouse.move (vx, vy);

zamuda (20);

medtem ko (ustreli_pin == VISOKO);

{

Mouse.click ();

}

medtem ko (aim_pin == HIGH);

{

Mouse.click ();

}

}

Leonardo tipkovnica

#vključi

int granata;

int weapon_pin;

int reload_pin;

int motion1_pin;

int motion2_pin;

int posture_pin;

char nightvision_pin;

void setup ()

{

pinMode (7, VHOD);

pinMode (8, VHOD);

pinMode (9, VHOD);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, VHOD);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Keyboard.begin ();

}

void loop ()

{

Grenade_pin = digitalRead (8);

gun_pin = digitalno branje (9);

move1_pin = analogRead (A1);

move2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

če (granata == VISOKO)

{

Keyboard.press ('g');

}

medtem ko (orožni_pin == VISOKO)

{

Keyboard.press ('q');

}

medtem ko (reload_pin == HIGH)

{

Keyboard.press ('r');

}

medtem ko (motion1_pin> 340 && motion1_pin <420)

{

Keyboard.press ('w');

}

medtem ko (motion1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

medtem ko (motion2_pin> 340 && motion2_pin <420)

{

Keyboard.press ('w');

}

medtem ko (motion2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

medtem ko (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

medtem ko (posture_pin> 420)

{

Keyboard.press ('l');

}

medtem ko (posture_pin <340)

{

Keyboard.press ('z');

}

medtem ko (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

5. korak: PRESKUSNE KODE

Tu je nekaj kod, ločenih od glavne kode glede na funkcijo

Streljanje-

#vključi

int x;

void setup () {

pinMode (8, VHOD);

Mouse.begin ();

}

void loop () {

x = digitalno branje (8);

če (x == VISOKO)

{

Mouse.click ('g');

}

}

CILJ-

#vključi

#vključi

#vključi

#vključi

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

medtem ko (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300", ker os x žiroskopa daje vrednosti okoli -350, medtem ko se ne premika. Spremenite to vrednost, če s kodo TEST dobite kaj drugega, če preverite, ali so vrednosti daleč od nič.

vy = -(gz_ -100)/200; // enako tukaj glede "-100"

PONOVNO NAČITANJE-

#vključi

int x;

void setup () {

pinMode (8, VHOD);

Keyboard.begin ();

}

void loop () {

x = digitalno branje (8);

če (x == VISOKO)

{

Keyboard.press ('r');

}

drugače

{

Keyboard.release ('r');

}

}

NIGHT VISIO #include

int x;

void setup () {

pinMode (8, VHOD);

Keyboard.begin ();

}

void loop () {

x = digitalno branje (8);

če (x == VISOKO)

{

Keyboard.press ('g');

}

drugače

{

Keyboard.release ('g');

}

}

CROCHCH AND PRONE-

#vključi

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogno branje (A0);

če (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

drugače če (y> 260 && y <310)

{

Keyboard.press ('c');

}

drugače če (y> 310)

{

Keyboard.press ('p');

}

}

6. korak: NADZOR IGRE

nadzor igre spremenite na naslednji način

počep - x

nagnjen - l

menjava orožja - q

sprint - str

stoj/skok - z

nočni vid - n

gibanje naprej - w

granata - g

7. korak: NASTAVITEV

NASTAVITEV
NASTAVITEV
NASTAVITEV
NASTAVITEV
NASTAVITEV
NASTAVITEV

Končno smo prišli do zadnjega koraka, zdaj postavimo arduino

deske v škatli in jih spravite v vrečko

Zdaj priključite mikro USB arduina na vrata USB prenosnega računalnika. Zdaj povežite senzorje, kot je opisano zgoraj

*puščice na zgornjih slikah predstavljajo smer, kamor mora biti obrnjen senzor

Če dvomite, ne oklevajte in pustite komentar in ne pozabite deliti svoje izkušnje

To je to hvala in

Adijo.