Tartalomjegyzék:

Virtuális valóság öltöny az Arduino használatával: 7 lépés (képekkel)
Virtuális valóság öltöny az Arduino használatával: 7 lépés (képekkel)

Videó: Virtuális valóság öltöny az Arduino használatával: 7 lépés (képekkel)

Videó: Virtuális valóság öltöny az Arduino használatával: 7 lépés (képekkel)
Videó: CS50 2013 - Week 9 2024, Július
Anonim
Virtuális valóság öltöny az Arduino használatával
Virtuális valóság öltöny az Arduino használatával

Ezt a projektet azért hoztam létre, hogy normál számítógépes játékokat játsszak teljes VR -ben. Ez a projekt utánozza a mozdulatait a billentyűzet gombjainak lenyomására vagy lenyomására

Példa- ha előre lép, a „w” gomb megnyomása utánozódik.

Említettem a Call of Duty 4: Modern Warfare játékot, de ne válassz olyan játékokat, amelyek lövés közben visszaütnek, mert ez megváltoztatja az egér alapértelmezett pozícióját

1. lépés: Követelmények

A követelmények-

Van egy lista a szükséges dolgokkal az öltöny elkészítéséhez

Érintésérzékelők-5

Erőérzékelő-1

GPU 6050 - 4

(vagy)

GPU 6050 - 2 és gyorsulásmérő - 2

Vr szemüveg

Vr -kompatibilis telefon

PC

Wifi csatlakozási pont

Egy játékpisztoly

PC játék (Call of Duty- Modern Warfare 1-et használtam)

Kenyeretábla vezetékek (férfi-nő)

ARDUINO LEONARDO-2

Autonikus lap - 2

Áramforrás (lipo)

Szivárványhuzalok

2. lépés: HARDVER

HARDVER
HARDVER
HARDVER
HARDVER
HARDVER
HARDVER

*reload_pin, shoot_pin, night vision_pin, grenade_pin, fegyver change_pin érintésérzékelők. A aim_pin az erőérzékelő, az egeret pedig az MPU6050 emulálja, a többi érzékelő gyorsulásmérő (testtartás, mozgás1 és 2)

1.1) FORRÁS

SOLDER MPU 6050, gyorsulásmérő, érintésérzékelő és erőérzékelő a vezetékekkel

1.2) BEKÖTÉS

MPU 6050-

2-es csap SDA

3. csap- SCL

GND - GND

5v - PWR/VCC

A motion_pin1-

Tű A1- x tengely

GND-GND

5v - PWR/VCC

A motion_pin2-

Csap A2- x tengely

GND-GND

5v - PWR/VCC

A posture_pin-

Csap A0- x tengely

GND-GND

5v - PWR/VCC

fegyver_csaphoz -

sig-5v

GND-GND

5v - PWR/VCC

Reload_pin esetén -

pin 12 - 5v

GND-GND

5v - PWR/VCC

A Nightvision_pin számára -

10–5 V -os csap

GND-GND

5v - PWR/VCC

A shoot_pin számára -

Tű: 7 - 5v

GND-GND

5v - PWR/VCC

A aim_pin számára -

Tű 8 - 5v

5v - PWR/VCC

1.3) Forrasztóhuzalok

Forrasztja a kenyeretábla vezetékeket a szivárványhuzalokkal

1.4) SZIGETELÉS

Ragassza be a vezetékeket a szigetelő szalaggal a forrasztási helyre, hogy elkerülje a rövidzárlatot

3. lépés: SZOFTVER

SZOFTVER
SZOFTVER
SZOFTVER
SZOFTVER

A Play Store áruház „Remotr” nevű alkalmazásával használtam a videót a laptopról a telefonra

2.1) REMOTR-

Telepítse a REMOTR alkalmazást a számítógépére, és hozzon létre egy fiókot

Itt a link-

remotrapp.com/#download

Telepítse a REMOTR alkalmazást okostelefonjára

2.2) VIDEO STREAMING

Először csatlakoztassa a számítógépet és ugyanazt a WiFi hálózatot, és adja meg REMOTR fiókját mindkét eszközön

most manuálisan adja hozzá a streamelni kívánt játékot a szoftverhez

most az alkalmazás megjeleníti a számítógépet rendszergazdaként

Ha VR -on szeretne streamelni, engedélyezze a vr módot az okostelefonján

Ha nem érti, nézze meg ezt a linket a részletes információkért

remotrapp.com/en/howto

4. lépés: FŐKÓD

Ennek a projektnek a kódja nem kemény vagy bonyolult, de hosszú

Itt van a kód, csak másolja ki, és illessze be az arduino fájlba

ARDUINO

LEONARDO egér-

Utaltam Gabry295 -re. Ez az egérkód a fején alapul Egér utasítható

#befoglalni

#befoglalni

#befoglalni

#befoglalni

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

Sorozat.kezdet (9600);

Egér.kezdet ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

míg (1);

}

pinMode (7, BEMENET);

pinMode (8, BEMENET);

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // -300 -at és +490 -et tettem, mivel az mpu6050 -esem ezeket az értékeket mutatja, ha nem mozog csekk

vy = -(gz+490)/200; // ellenőrizze a fej egér kódját Gabry295 -től, ha további részleteket szeretne megtudni ezekről az értékekről

Egér.move (vx, vy);

késleltetés (20);

while (shoot_pin == HIGH);

{

Egér.kattint ();

}

while (aim_pin == HIGH);

{

Egér.kattint ();

}

}

Leonardo billentyűzet

#befoglalni

int Gránát;

int fegyver_csap;

int reload_pin;

int motion1_pin;

int motion2_pin;

int posture_pin;

char nightvision_pin;

üres beállítás ()

{

pinMode (7, BEMENET);

pinMode (8, BEMENET);

pinMode (9, BEMENET);

pinMode (10, BEMENET);

pinMode (11, BEMENET);

pinMode (12, BEMENET);

pinMode (A0, INPUT);

pinMode (A1, BEMENET);

Keyboard.begin ();

}

üres hurok ()

{

Grenade_pin = digitalRead (8);

fegyver_csap = digitalRead (9);

motion1_pin = analogRead (A1);

motion2_pin = analogRead (A2);

testtartás_tű = analógOlvasás (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

ha (gránát == HIGH)

{

Keyboard.press ('g');

}

míg (fegyvercsap == HIGH)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (motion1_pin> 340 && motion1_pin <420)

{

Keyboard.press ('w');

}

miközben (motion1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (motion2_pin> 340 && motion2_pin <420)

{

Keyboard.press ('w');

}

miközben (motion2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

míg (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

közben (testtartás_tű> 420)

{

Keyboard.press ('l');

}

míg (testtartás_tű <340)

{

Keyboard.press ('z');

}

közben (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

5. lépés: TESZT KÓDOK

Íme néhány kód, amelyek a funkció szerint vannak elosztva a fő kódtól

LÖVÉS-

#befoglalni

int x;

void setup () {

pinMode (8, BEMENET);

Egér.kezdet ();

}

void loop () {

x = digitalRead (8);

ha (x == MAGAS)

{

Egér.click ('g');

}

}

CÉLZÁS-

#befoglalni

#befoglalni

#befoglalni

#befoglalni

MPU6050 mpu;

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

int vx, vy;

void setup () {

Sorozat.kezdet (9600);

Egér.kezdet ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

míg (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300", mert a giroszkóp x tengelye -350 körüli értékeket ad, miközben nem mozog. Változtassa meg ezt az értéket, ha a TEST kód használatával mást kap, és ellenőrizze, hogy vannak -e messze nullától eltérő értékek.

vy = -(gz_ -100)/200; // ugyanez itt a "-100" -ról

RELOADING-

#befoglalni

int x;

void setup () {

pinMode (8, BEMENET);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

ha (x == MAGAS)

{

Keyboard.press ('r');

}

más

{

Keyboard.release ('r');

}

}

ÉJSZAKAI LÁTÁS #befoglalás

int x;

void setup () {

pinMode (8, BEMENET);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

ha (x == MAGAS)

{

Keyboard.press ('g');

}

más

{

Keyboard.release ('g');

}

}

KARÁCSONY ÉS HALÁNY-

#befoglalni

int y;

void setup () {

pinMode (A0, INPUT);

Sorozat.kezdet (9600);

}

void loop () {

y = analóg olvasmány (A0);

ha (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

egyébként ha (y> 260 && y <310)

{

Keyboard.press ('c');

}

egyébként ha (y> 310)

{

Keyboard.press ('p');

}

}

6. lépés: JÁTÉKVEZÉRLÉS

módosítsa a játékvezérlőket az alábbiak szerint

guggolás - x

hajlamos - l

fegyvercsere - q

sprint - p

állni/ugrani - z

éjszakai látás - n

előrehaladás - w

gránát - g

7. lépés: BEÁLLÍTÁS

FELÁLLÍTÁSA
FELÁLLÍTÁSA
FELÁLLÍTÁSA
FELÁLLÍTÁSA
FELÁLLÍTÁSA
FELÁLLÍTÁSA

Végül elérkeztünk az utolsó lépéshez, most tegyük fel az arduino -t

deszkákat egy dobozba, és csúsztassa a zsákba

Most csatlakoztassa az arduino mikro USB -jét a laptop USB -portjaihoz, majd csatlakoztassa az érzékelőket a fentiek szerint

*A fenti képeken található nyilak azt az irányt jelölik, amelyet az érzékelőnek szembe kell néznie

Ha kétségei vannak, ne habozzon megjegyzést írni, és ne felejtse el megosztani tapasztalatait

Ennyi köszönöm és

VISZLÁT.

Ajánlott: