Sisällysluettelo:

Virtuaalitodellisuuspuku Arduinon avulla: 7 vaihetta (kuvilla)
Virtuaalitodellisuuspuku Arduinon avulla: 7 vaihetta (kuvilla)

Video: Virtuaalitodellisuuspuku Arduinon avulla: 7 vaihetta (kuvilla)

Video: Virtuaalitodellisuuspuku Arduinon avulla: 7 vaihetta (kuvilla)
Video: Книга - Моя первая схема ArduMikron 2024, Marraskuu
Anonim
Virtuaalitodellisuuspuku Arduinon avulla
Virtuaalitodellisuuspuku Arduinon avulla

Olen luonut tämän projektin pelaamaan normaaleja tietokonepelejä täydellä VR: llä. Tämä projekti jäljittelee liikkeitäsi näppäimistön näppäinten painamiseen tai pitämiseen

Esimerkki- kun siirryt eteenpäin, näppäimen "w" painallus emuloidaan.

Olen jäljitellut peliä Call of Duty 4: Modern Warfare, mutta älä valitse pelejä, joilla on takaisku kuvaamisen aikana, koska se muuttaa hiiren oletusasentoa

Vaihe 1: Vaatimukset

Vaatimukset ovat-

On luettelo täynnä asioita, joita tarvitset tämän puvun tekemiseen

Kosketusanturit-5

Voima-anturi-1

GPU 6050-4

(tai)

GPU 6050-2 ja kiihtyvyysanturi - 2

Vr lasit

Vr -yhteensopiva puhelin

PC

WLAN-yhteyspiste

Leluase

PC-peli (olen käyttänyt Call of Duty- Modern Warfare 1)

Leipälevyn johdot (uros-naaras)

ARDUINO LEONARDO-2

Autonika - 2

Virtalähde (lipo)

Sateenkaari johdot

Vaihe 2: LAITTEISTO

LAITTEISTO
LAITTEISTO
LAITTEISTO
LAITTEISTO
LAITTEISTO
LAITTEISTO

*reload_pin, shoot_pin, night vision_pin, grenade_pin, ase change_pin ovat kosketusantureita. aim_pin on voima -anturi ja hiiri on emuloitu MPU6050: n avulla, muut anturit ovat kiihtyvyysanturi (asento, liike1 ja 2)

1.1) JUOTTO

JUOTIN MPU 6050, kiihtyvyysmittari, kosketusanturi ja voima -anturi johtimien kanssa

1.2) KYTKENTÄ

MPU 6050-

Nasta 2- SDA

Nasta 3- SCL

GND - GND

5v - PWR/VCC

Liikkeelle_pin1-

Tappi A1- x akseli

GND-GND

5v - PWR/VCC

Liikkeelle_nappi2-

Tappi A2- x akseli

GND-GND

5v - PWR/VCC

Posture_pin-

Tappi A0- x akseli

GND-GND

5v - PWR/VCC

ase_pins - varten

sig-5v

GND-GND

5v - PWR/VCC

Reload_pin -

nasta 12 - 5v

GND-GND

5v - PWR/VCC

For Nightvision_pin -

nasta 10-5v

GND-GND

5v - PWR/VCC

Shoot_pinille -

Nasta 7 - 5v

GND-GND

5v - PWR/VCC

For aim_pin -

Nasta 8-5v

5v - PWR/VCC

1.3) JUOTOKSET

Juotos leipälevyn johdot sateenkaarilangoilla

1.4) ERISTYS

Teippaa johdot eristysnauhalla siihen kohtaan, jossa olet juottanut oikosulkujen välttämiseksi

Vaihe 3: OHJELMISTOT

OHJELMISTO
OHJELMISTO
OHJELMISTO
OHJELMISTO

Olen käyttänyt Play Kaupan Remotr -sovellusta videon lähettämiseen kannettavasta tietokoneesta puhelimeen

2.1) REMOTR-

Asenna REMOTR -sovellus tietokoneellesi ja luo tili

Tässä on linkki-

remotrapp.com/#download

Asenna REMOTR -sovellus älypuhelimeesi

2.2) VIDEON Suoratoisto

Liitä ensin tietokone ja sama WiFi -verkko ja kirjoita REMOTR -tilisi molempiin laitteisiin

lisää nyt peli, jonka haluat suoratoistaa ohjelmistoon manuaalisesti

nyt sovellus näyttää tietokoneen järjestelmänvalvojana napsauttamalla sitä aloittaaksesi suoratoiston

Jos haluat suoratoistaa VR: ssä, ota käyttöön älypuhelimen VR -tila

Jos et ymmärrä, tarkista tästä linkistä

remotrapp.com/en/howto

Vaihe 4: PÄÄKOODI

Tämän projektin koodi ei ole kova tai monimutkainen, mutta pitkä

Tässä on koodi vain kopioi se ja liitä se arduino -tiedostoosi

ARDUINO

LEONARDO Hiiri-

Olen viitannut Gabry295: een. Tämä hiirikoodi perustuu hänen päähänsä Hiiri ohjeistettavissa

#sisältää

#sisältää

#sisältää

#sisältää

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

Sarja.alku (9600);

Hiiri.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

kun taas (1);

}

pinMode (7, TULO);

pinMode (8, TULO);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // Olen asettanut -300 ja +490, koska mpu6050 näyttää nämä arvot, kun se ei liiku

vy = -(gz+490)/200; // tarkista Gabry295: n päähiiren koodi saadaksesi lisätietoja näistä arvoista

Hiiri.liike (vx, vy);

viive (20);

while (shoot_pin == HIGH);

{

Hiiri. Napsauta ();

}

while (aim_pin == HIGH);

{

Hiiri. Napsauta ();

}

}

Leonardo -näppäimistö

#sisältää

int Kranaatti;

int ase_neula;

int reload_pin;

int motion1_pin;

int liike2_pin;

int posture_pin;

char nightvision_pin;

mitätön asennus ()

{

pinMode (7, TULO);

pinMode (8, TULO);

pinMode (9, TULO);

pinMode (10, TULO);

pinMode (11, TULO);

pinMode (12, TULO);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Näppäimistö.begin ();

}

tyhjä silmukka ()

{

Grenade_pin = digitalRead (8);

aseen_neula = digitalRead (9);

motion1_pin = analoginenLue (A1);

motion2_pin = analoginenLue (A2);

asento_nasta = analoginenLue (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

jos (kranaatti == KORKEA)

{

Keyboard.press ('g');

}

while (aseen_nasta == KORKEA)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (liike1_pin> 340 &&liike1_pin <420)

{

Keyboard.press ('w');

}

samalla (liike1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

kun taas (motion2_pin> 340 && motion2_pin <420)

{

Keyboard.press ('w');

}

samalla (liike2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

samalla (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

samalla (asento_nasta> 420)

{

Keyboard.press ('l');

}

samalla (asento_neula <340)

{

Keyboard.press ('z');

}

while (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Vaihe 5: TESTIKOODIT

Tässä on muutamia koodeja, jotka on jaettu pääkoodista toiminnon mukaan

AMMUNTA-

#sisältää

int x;

void setup () {

pinMode (8, TULO);

Hiiri.begin ();

}

void loop () {

x = digitaalinen luku (8);

jos (x == KORKEA)

{

Hiiri.click ('g');

}

}

TAVOITTEET-

#sisältää

#sisältää

#sisältää

#sisältää

MPU6050 mpu;

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

int vx, vy;

void setup () {

Sarja.alku (9600);

Hiiri.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

kun taas (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300", koska gyroskoopin x -akseli antaa arvoja noin -350, kun se ei liiku. Muuta tätä arvoa, jos saat jotain muuta käyttämällä TEST -koodia ja tarkista, onko arvoja kaukana nollasta.

vy = -(gz_ -100)/200; // sama täällä "-100"

LATAA-

#sisältää

int x;

void setup () {

pinMode (8, TULO);

Näppäimistö.begin ();

}

void loop () {

x = digitaalinen luku (8);

jos (x == KORKEA)

{

Keyboard.press ('r');

}

muu

{

Keyboard.release ('r');

}

}

YÖNÄKYMÄ #sisältö

int x;

void setup () {

pinMode (8, TULO);

Näppäimistö.begin ();

}

void loop () {

x = digitaalinen luku (8);

jos (x == KORKEA)

{

Keyboard.press ('g');

}

muu

{

Keyboard.release ('g');

}

}

KIINNITYS JA MAHA

#sisältää

int y;

void setup () {

pinMode (A0, INPUT);

Sarja.alku (9600);

}

void loop () {

y = analoginen luku (A0);

jos (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

muuten jos (y> 260 && y <310)

{

Keyboard.press ('c');

}

muuten jos (y> 310)

{

Keyboard.press ('p');

}

}

Vaihe 6: PELISÄÄTIMET

muuttaa peliohjaimia seuraavasti

kyyristyä - x

altis - l

aseen vaihto - q

sprintti - s

seistä/hypätä - z

pimeänäkö - n

eteenpäin suuntautuva liike - w

kranaatti - g

Vaihe 7: ASETUKSET

ASETTAA
ASETTAA
ASETTAA
ASETTAA
ASETTAA
ASETTAA

Lopulta olemme tulleet viimeiseen vaiheeseen, joka nyt laittaa arduino

laudat laatikkoon ja työnnä se pussiin

Liitä nyt arduinon mikro -USB kannettavan tietokoneen USB -portteihin ja liitä nyt anturit yllä kuvatulla tavalla

*Yllä olevissa kuvissa olevat nuolimerkit osoittavat anturin suunnan

Jos sinulla on epäilyksiä, älä epäröi jättää kommenttia äläkä unohda jakaa kokemustasi

Siinä se kiitos ja

HEI HEI.

Suositeltava: