Sisukord:

Virtuaalse reaalsuse ülikond Arduino abil: 7 sammu (piltidega)
Virtuaalse reaalsuse ülikond Arduino abil: 7 sammu (piltidega)

Video: Virtuaalse reaalsuse ülikond Arduino abil: 7 sammu (piltidega)

Video: Virtuaalse reaalsuse ülikond Arduino abil: 7 sammu (piltidega)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, November
Anonim
Virtuaalse reaalsuse ülikond Arduino abil
Virtuaalse reaalsuse ülikond Arduino abil

Olen selle projekti loonud tavaliste arvutimängude mängimiseks täies VR -is. See projekt jäljendab teie liigutusi klaviatuuri klahvide vajutamisel või hoidmisel

Näide- kui liigute edasi, jäljendatakse klahvi "w" vajutamist.

Olen jäljendanud mängu Call of Duty 4: Modern Warfare, kuid ärge valige mänge, millel on pildistamise ajal tagasilöök, sest see muudab hiire vaikeasendit

Samm: nõuded

Nõuded on-

Seal on nimekiri täis asju, mida vajate selle ülikonna valmistamiseks

Puuteandurid-5

Jõuandur-1

GPU 6050 - 4

(või)

GPU 6050 - 2 ja kiirendusmõõtur - 2

Vr prillid

Vr toega telefon

PC

WiFi leviala

Mängupüstol

Arvutimäng (olen kasutanud Call of Duty- Modern Warfare 1)

Leivaplaadi juhtmed (mees-naine)

ARDUINO LEONARDO-2

Autonoomne kilp - 2

Toiteallikas (lipo)

Vikerkaare juhtmed

2. samm: RIISTVARA

RIISTVARA
RIISTVARA
RIISTVARA
RIISTVARA
RIISTVARA
RIISTVARA

*reload_pin, shoot_pin, night vision_pin, grenade_pin, relva change_pin on puutetundlikud andurid. aim_pin on jõuandur ja hiirt emuleerib MPU6050, teised andurid on kiirendusmõõtur (asend, liikumine1 ja 2)

1.1) JUOTMINE

SOLDER MPU 6050, kiirendusmõõtur, puutetundlik andur ja juhtmetega jõuandur

1.2) TREENING

MPU 6050- jaoks

Pin 2- SDA

Tihvt 3- SCL

GND - GND

5v - PWR/VCC

Liikumise_pin1- jaoks

Tihvt A1- x telg

GND-GND

5v - PWR/VCC

Liikumise_pin2- jaoks

Tihvt A2- x telg

GND-GND

5v - PWR/VCC

Posture_pin- jaoks

Tihvt A0- x telg

GND-GND

5v - PWR/VCC

jaoks gun_pin -

sig-5v

GND-GND

5v - PWR/VCC

Reload_pin jaoks -

pin 12 - 5v

GND-GND

5v - PWR/VCC

Nightvision_pin jaoks -

tihvt 10 - 5 V.

GND-GND

5v - PWR/VCC

Shoot_pin jaoks -

Pin 7 - 5v

GND-GND

5v - PWR/VCC

Aim_pin jaoks -

Pin 8 - 5v

5v - PWR/VCC

1.3) JUOTMISJUHENDID

Jootage leivaplaadi juhtmed vikerkaare juhtmetega

1.4) Isolatsioon

Kleepige juhtmed isoleerlindiga kohale, kus olete jootnud, et vältida lühiseid

3. samm: TARKVARA

TARKVARA
TARKVARA
TARKVARA
TARKVARA

Olen kasutanud Play poe rakendust nimega „Remotr” video edastamiseks sülearvutist telefoni

2.1) REMOTR-

Installige oma arvutisse rakendus REMOTR ja looge konto

Siin on link-

remotrapp.com/#download

Installige nutitelefoni rakendus REMOTR

2.2) VIDEO STREAMING

Esmalt ühendage arvuti ja sama WiFi -võrk ning sisestage oma REMOTR -konto mõlemasse seadmesse

lisage nüüd tarkvara, mida soovite voogesitada, käsitsi

nüüd näitab rakendus arvutit administraatorina, et seda voogesituse alustamiseks klõpsata

VR -is voogesitamiseks lubage nutitelefonis VR -režiim

Kui te ei saa aru, vaadake üksikasjalikku teavet sellelt lingilt

remotrapp.com/en/howto

4. samm: PÕHIKOOD

Selle projekti kood ei ole raske ega keeruline, kuid pikk

Siin on kood, lihtsalt kopeerige see ja kleepige see oma arduino -faili

ARDUINO

LEONARDO hiir-

Olen viitanud Gabry295 -le. See hiirekood põhineb tema peaga Hiir juhendatav

#kaasake

#kaasake

#kaasake

#kaasake

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

tühine seadistus () {

Seriaalne algus (9600);

Hiir.algus ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

samas (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // Olen pannud -300 ja +490, kuna minu mpu6050 näitab neid väärtusi, kui tšekki ei liigutata

vy = -(gz+490)/200; // nende väärtuste kohta lisateabe saamiseks kontrollige peahiire koodi Gabry295 poolt

Hiir.move (vx, vy);

viivitus (20);

while (shoot_pin == HIGH);

{

Hiir.klõps ();

}

while (aim_pin == HIGH);

{

Hiir.klõps ();

}

}

Leonardo klaviatuur

#kaasake

int Granaat;

int relva_nõel;

int reload_pin;

int liikumine1_pin;

int liikumine2_pin;

int posture_pin;

char nightvision_pin;

tühine seadistus ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Klaviatuur.begin ();

}

tühine tsükkel ()

{

Grenade_pin = digitalRead (8);

relvapulk = digitalRead (9);

motion1_pin = analogRead (A1);

motion2_pin = analogRead (A2);

poos_pin = analoogLoe (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

kui (granaat == KÕRGE)

{

Keyboard.press ('g');

}

samas (relvapulk == KÕRGE)

{

Keyboard.press ('q');

}

samas (reload_pin == HIGH)

{

Keyboard.press ('r');

}

samas (motion1_pin> 340 && motion1_pin <420)

{

Keyboard.press ('w');

}

samas (liikumine1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

samas (motion2_pin> 340 && motion2_pin <420)

{

Keyboard.press ('w');

}

samas (liikumine2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

samas (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

samas (posture_pin> 420)

{

Keyboard.press ('l');

}

samas (poos_pin <340)

{

Keyboard.press ('z');

}

samas (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

5. samm: TESTIKOODID

Siin on mõned koodid jagatud põhikoodist vastavalt funktsioonile

Tulistamine-

#kaasake

int x;

tühine seadistus () {

pinMode (8, INPUT);

Hiir.algus ();

}

void loop () {

x = digitalRead (8);

kui (x == KÕRGE)

{

Hiir.klõps ('g');

}

}

EESMÄRK-

#kaasake

#kaasake

#kaasake

#kaasake

MPU6050 mpu;

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

int vx, vy;

tühine seadistus () {

Seriaalne algus (9600);

Hiir.algus ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

samas (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300", sest güroskoobi x -telg annab väärtusi umbes -350, kui see ei liigu. Muutke seda väärtust, kui saate TEST -koodi abil midagi muud, kontrollides, kas väärtused on nullist kaugel.

vy = -(gz_ -100)/200; // sama siin "-100" kohta

LAADIMINE-

#kaasake

int x;

tühine seadistus () {

pinMode (8, INPUT);

Klaviatuur.begin ();

}

void loop () {

x = digitalRead (8);

kui (x == KÕRGE)

{

Keyboard.press ('r');

}

muidu

{

Keyboard.release ('r');

}

}

ÖÖVISIOON #kaasas

int x;

tühine seadistus () {

pinMode (8, INPUT);

Klaviatuur.begin ();

}

void loop () {

x = digitalRead (8);

kui (x == KÕRGE)

{

Keyboard.press ('g');

}

muidu

{

Keyboard.release ('g');

}

}

KROUTS JA KALTUS-

#kaasake

int y;

tühine seadistus () {

pinMode (A0, INPUT);

Seriaalne algus (9600);

}

void loop () {

y = analooglugemine (A0);

kui (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

muidu kui (y> 260 && y <310)

{

Keyboard.press ('c');

}

muidu kui (y> 310)

{

Keyboard.press ('p');

}

}

6. samm: MÄNGU JUHTIMINE

muutke mängu juhtelemente järgmiselt

kükitama - x

altid - l

relva vahetus - q

sprint - lk

seista/hüpata - z

öine nägemine - n

ettepoole liikumine - w

granaat - g

Samm 7: SEADISTAMINE

SEADISTAN
SEADISTAN
SEADISTAN
SEADISTAN
SEADISTAN
SEADISTAN

Lõpuks oleme jõudnud viimase sammu juurde, pannes nüüd arduino

lauad kasti ja libistage see kotti

Nüüd ühendage arduino mikro -USB sülearvuti USB -portidega ja ühendage andurid, nagu eespool kirjeldatud

*Ülaltoodud piltidel olevad noolemärgid tähistavad suunda, mida andur peab vaatama

Kui teil on kahtlusi, jätke julgelt kommentaar ja ärge unustage oma kogemusi jagada

See on aitäh ja

BYE.

Soovitan: