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, Novembar
Anonim
Odijelo za virtualnu stvarnost pomoću Arduina
Odijelo za virtualnu stvarnost pomoću Arduina

Napravio sam ovaj projekt za igranje normalnih računarskih igara u punoj VR. Ovaj projekt oponaša vaše pokrete pritiskom ili držanjem tipki na tastaturi

Primjer- pri kretanju naprijed oponaša se radnja pritiskom na tipku 'w'.

Oponašao sam igru Call of Duty 4: Modern Warfare, ali ne birajte igre koje ustuknu tijekom snimanja jer će promijeniti zadanu poziciju miša

Korak 1: Zahtjevi

Uslovi 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 sa vr -om

PC

WiFi pristupna tačka

Pištolj za igračke

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

Žice za hljeb (muško-žensko)

ARDUINO LEONARDO-2

Autonska oplata - 2

Izvor napajanja (lipo)

Rainbow žice

Korak 2: HARDVER

HARDVER
HARDVER
HARDVER
HARDVER
HARDVER
HARDVER

*reload_pin, shoot_pin, pin night night, granade_pin, pin 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) LEGLJENJE

SOLDER MPU 6050, akcelerometar, senzor dodira 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 osa

GND-GND

5v - PWR/VCC

Za motion_pin2-

Pin A2- x osa

GND-GND

5v - PWR/VCC

Za posture_pin-

Pin A0- x osa

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

Lemite žice ploče za hljeb sa ž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 Play trgovine za prebacivanje videozapisa s prijenosnog računala na telefon

2.1) DALJINSKI

Instalirajte aplikaciju REMOTR na računalo i otvorite račun

Evo linka-

remotrapp.com/#download

Instalirajte aplikaciju REMOTR na svom pametnom telefonu

2.2) VIDEO STREAMING

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

sada ručno dodajte igru koju želite prenositi u softver

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

Evo koda, samo ga kopirajte i zalijepite u svoju arduino datoteku

ARDUINO

LEONARDO miš-

Referirao sam Gabry295. Ovaj kôd miša je zasnovan na njegovoj glavi

#include

#include

#include

#include

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; // za više detalja o ovim vrijednostima provjerite kôd miša za glavu od strane Gabry295

Mouse.move (vx, vy);

kašnjenje (20);

while (shoot_pin == HIGH);

{

Mouse.click ();

}

while (aim_pin == HIGH);

{

Mouse.click ();

}

}

Leonardo tastatura

#include

int Grenade;

int weapon_pin;

int reload_pin;

int movement1_pin;

int movement2_pin;

int posture_pin;

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);

arm_pin = digitalRead (9);

pokret1_pin = analogno čitanje (A1);

motion2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

if (granata == HIGH)

{

Keyboard.press ('g');

}

dok (oruzje = = VISINA)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (pokret1_pin> 340 && pokret1_pin <420)

{

Keyboard.press ('w');

}

dok je (motion1_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');

}

dok (posture_pin> 420)

{

Keyboard.press ('l');

}

while (posture_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

STRELJENJE-

#include

int x;

void setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Mouse.click ('g');

}

}

CILJANJE-

#include

#include

#include

#include

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 osa x žiroskopa daje vrijednosti oko -350 dok se ne kreć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"

PONOVNO ČITANJE-

#include

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Keyboard.press ('r');

}

else

{

Keyboard.release ('r');

}

}

NIGHT VISIO #include

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {{100} {101}

x = digitalRead (8);

ako (x == VISOKO)

{

Keyboard.press ('g');

}

else

{

Keyboard.release ('g');

}

}

KROUCH AND PRONE-

#include

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {{100} {101}

y = analogRead (A0);

ako (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

inace if (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

sklon - 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 ih u vrećicu

Sada spojite mikro USB arduina na USB portove 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

BYE.

Preporučuje se: