Sadržaj:

Odijelo za virtualnu stvarnost pomoću Arduina: 7 koraka (sa slikama)
Odijelo za virtualnu stvarnost pomoću Arduina: 7 koraka (sa slikama)

Video: Odijelo za virtualnu stvarnost pomoću Arduina: 7 koraka (sa slikama)

Video: Odijelo za virtualnu stvarnost pomoću Arduina: 7 koraka (sa slikama)
Video: Ежедневные новости Crypto Pirates — вторник, 19 января 2022 г. — последнее обновление новостей о криптовалютах 2024, Studeni
Anonim
Odijelo za virtualnu stvarnost pomoću Arduina
Odijelo za virtualnu stvarnost pomoću Arduina

Ovaj projekt sam stvorio za igranje normalnih računalnih igara u punom VR -u. Ovaj projekt oponaša vaše pokrete pritiskom ili držanjem tipki na tipkovnici

Primjer- kada se krećete naprijed, oponaša se radnja pritiskom na tipku 'w'.

Oponašao sam igru Call of Duty 4: Modern Warfare, ali nemojte birati igre koje ustuknu tijekom snimanja jer će promijeniti zadani položaj miša

Korak 1: Zahtjevi

Zahtjevi su-

Postoji popis stvari koje su vam potrebne za izradu ovog odijela

Senzori dodira-5

Senzor sile-1

GPU 6050 - 4

(ili)

GPU 6050 - 2 i akcelerometar - 2

Vr čaše

Telefon s vrtom

PC

WiFi žarišna točka

Pištolj za igračke

PC igra (koristio sam Call of Duty-Modern Warfare 1)

Žice na ploči za kruh (muško-žensko)

ARDUINO LEONARDO-2

Autonska oplata - 2

Izvor napajanja (lipo)

Dugine žice

Korak 2: HARDVER

HARDVER
HARDVER
HARDVER
HARDVER
HARDVER
HARDVER

*reload_pin, shoot_pin, pin of night vision, granade_pin, weapon change_pin su senzori dodira. aim_pin je senzor sile i miš emulira MPU6050, drugi senzori su mjerači ubrzanja (držanje, kretanje1 i 2)

1.1) LETLJENJE

SOLDER MPU 6050, akcelerometar, osjetnik na dodir i senzor sile sa žicama

1.2) OŽIČENJE

Za MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Za pokret_pin1-

Pin A1- x os

GND-GND

5v - PWR/VCC

Za pin_pin2-

Pin A2- x os

GND-GND

5v - PWR/VCC

Za držanje_ igla-

Pin A0- x os

GND-GND

5v - PWR/VCC

za pištolj za oruž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) ŽICE ZA LEMLJENJE

Lemiti žice ploče za kruh žicama duginih boja

1.4) IZOLACIJA

Zalijepite žice izolacijskom trakom na mjesto gdje ste zalemljeni kako biste izbjegli kratke spojeve

Korak 3: SOFTVER

SOFTVER
SOFTVER
SOFTVER
SOFTVER

Koristio sam aplikaciju pod nazivom 'Remotr' iz Trgovine Play za prijenos videozapisa s prijenosnog računala na telefon

2.1) DALJINSKI

Instalirajte aplikaciju REMOTR na svoje računalo i stvorite račun

Evo linka-

remotrapp.com/#download

Instalirajte aplikaciju REMOTR na svoj pametni telefon

2.2) VIDEO STREAMING

Prvo povežite računalo i istu WiFi mrežu i unesite svoj REMOTR račun na oba uređaja

sada ručno dodajte igru koju želite strujati u softveru

sada će aplikacija prikazati računalo kao administrator, kliknite na nju za početak streaminga

Za streaming u VR -u omogućite vr način rada na svom pametnom telefonu

Ako ne razumijete, provjerite ovu vezu za detaljne informacije

remotrapp.com/en/howto

Korak 4: GLAVNI KOD

Kôd za ovaj projekt nije težak ili složen, već dugačak

Ovdje je kod samo ga kopirajte i zalijepite u svoju arduino datoteku

ARDUINO

LEONARDO miš-

Referirao sam Gabry295. Ovaj kôd miša temelji se na njegovoj glavi

#uključi

#uključi

#uključi

#uključi

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {{100} {101}

while (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

void loop () {{100} {101}

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // Stavio sam -300 i +490 jer moj mpu6050 prikazuje ove vrijednosti kada se ne pomiče ček

vy = -(gz+490)/200; // provjerite kod glave miša od strane Gabry295 za više detalja o tim vrijednostima

Miš.kretanje (vx, vy);

kašnjenje (20);

while (shoot_pin == HIGH);

{

Miš.klik ();

}

while (aim_pin == VISOKO);

{

Miš.klik ();

}

}

Leonardo tipkovnica

#uključi

int granata;

int pin_oglasa;

int reload_pin;

int movement1_pin;

int movement2_pin;

int držanje_pina;

char nightvision_pin;

void setup ()

{

pinMode (7, INPUT);

pinMode (8, INPUT);

pinMode (9, INPUT);

pinMode (10, INPUT);

pinMode (11, INPUT);

pinMode (12, INPUT);

pinMode (A0, INPUT);

pinMode (A1, INPUT);

Keyboard.begin ();

}

void loop ()

{

Grenade_pin = digitalRead (8);

pin_naoružanja = digitalno čitanje (9);

pokret1_pin = analogno čitanje (A1);

motion2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

ako (granata == VISOKO)

{

Keyboard.press ('g');

}

while (oruzje = = VISINA)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (pokret1_pin> 340 && pokret1_pin <420)

{

Keyboard.press ('w');

}

while (pokret1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (pokret2_pin> 340 && pokret2_pin <420)

{

Keyboard.press ('w');

}

while (pokret2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

while (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

while (posture_pin> 420)

{

Keyboard.press ('l');

}

while (post_pin + 340)

{

Keyboard.press ('z');

}

while (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Korak 5: TESTIRAJTE KODOVE

Evo nekoliko kodova podijeljenih od glavnog koda prema funkciji

PUCANJE-

#uključi

int x;

void setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Miš.click ('g');

}

}

CILJ-

#uključi

#uključi

#uključi

#uključi

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {{100} {101}

while (1);

}

}

void loop () {{100} {101}

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300" jer os x žiroskopa daje vrijednosti oko -350 dok se ne pomiče. Promijenite ovu vrijednost ako dobijete nešto drugačije pomoću TEST koda, provjeravajući postoje li vrijednosti daleko od nule.

vy = -(gz_ -100)/200; // isto ovdje o "-100"

PRETOVAR-

#uključi

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Keyboard.press ('r');

}

drugo

{

Keyboard.release ('r');

}

}

NOĆNI VIZIO #uključi

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Keyboard.press ('g');

}

drugo

{

Keyboard.release ('g');

}

}

KROUCH AND PRONE-

#uključi

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {{100} {101}

y = analogno čitanje (A0);

ako (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

inače ako (y> 260 && y <310)

{

Keyboard.press ('c');

}

inače ako (y> 310)

{

Keyboard.press ('p');

}

}

Korak 6: KONTROLE IGRE

promijenite kontrole igre na sljedeći način

čučnuti - x

skloni - l

promjena oružja - q

sprint - str

stajati/skakati - z

noćni vid - n

kretanje prema naprijed - w

granata - g

Korak 7: POSTAVLJANJE

POSTAVLJANJE
POSTAVLJANJE
POSTAVLJANJE
POSTAVLJANJE
POSTAVLJANJE
POSTAVLJANJE

Konačno smo došli do posljednjeg koraka, sada stavite arduino

daske u kutiji i gurnite je u vrećicu

Sada spojite mikro USB arduina na USB priključke prijenosnog računala. Sada povežite senzore prema gore navedenim uputama

*strelice na gornjim slikama predstavljaju smjer prema kojem senzor mora biti okrenut

Ako imate bilo kakvih nedoumica, ne ustručavajte se ostaviti komentar i ne zaboravite podijeliti svoje iskustvo

To je to hvala i

ZBOGOM.

Preporučeni: