Kazalo:

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

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

Video: Obleka za navidezno resničnost z uporabo Arduina: 7 korakov (s slikami)
Video: Часть 4. Аудиокнига Эдит Уортон «Эпоха невинности» (главы 23–30) 2024, Julij
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.

Priporočena: