Talaan ng mga Nilalaman:

Virtual Reality Suit Gamit ang Arduino: 7 Hakbang (na may Mga Larawan)
Virtual Reality Suit Gamit ang Arduino: 7 Hakbang (na may Mga Larawan)

Video: Virtual Reality Suit Gamit ang Arduino: 7 Hakbang (na may Mga Larawan)

Video: Virtual Reality Suit Gamit ang Arduino: 7 Hakbang (na may Mga Larawan)
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Nobyembre
Anonim
Virtual Reality Suit Gamit ang Arduino
Virtual Reality Suit Gamit ang Arduino

Nilikha ko ang proyektong ito upang maglaro ng normal na mga laro sa computer sa buong VR. Ginaya ng proyektong ito ang iyong mga paggalaw sa pagpindot o pagpindot sa mga key ng iyong keyboard

Halimbawa- kapag isinulong mo ang aksyon ng pagpindot sa key na 'w' ay ginaya.

Ginaya ko ang laro Call of Duty 4: Modern Warfare ngunit huwag pumili ng mga larong may recoil habang nag-shoot dahil mababago nito ang default na posisyon ng mouse

Hakbang 1: Mga Kinakailangan

Ang mga kinakailangan ay-

Mayroong isang listahan na puno ng mga bagay na kailangan mo upang magawa ang suit na ito

Pindutin ang mga sensor-5

Pilit na sensor-1

GPU 6050 - 4

(o)

GPU 6050 - 2 at Accelerometer - 2

Vr na baso

Vr pinagana ang telepono

PC

WiFi hotspot

Isang laruang baril

Isang laro ng pc (ginamit ko ang Call of Duty- Modern Warfare 1)

Mga wires board ng tinapay (Lalaki-Babae)

ARDUINO LEONARDO-2

Auton sheild - 2

Pinagmulan ng kuryente (lipo)

Wire ng bahaghari

Hakbang 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

* reload_pin, shoot_pin, night vision_pin, granada_pin, pagbabago ng sandata ay mga sensor ng touch. Ang target_pin ay force sensor at ang mouse ay ginaya ng MPU6050 iba pang mga sensor ay accelerometer (pustura, paggalaw1 & 2)

1.1) SOLDERING

SOLDER MPU 6050, Accelerometer, Touch Sensor at force sensor gamit ang mga wires

1.2) WIRING

Para sa MPU 6050-

I-pin ang 2- SDA

Pin 3- SCL

GND - GND

5v - PWR / VCC

Para sa movement_pin1-

I-pin ang A1- x axis

GND-GND

5v - PWR / VCC

Para sa movement_pin2-

I-pin ang A2- x axis

GND-GND

5v - PWR / VCC

Para sa posture_pin-

I-pin ang A0- x axis

GND-GND

5v - PWR / VCC

para sa sand_pin -

sig-5v

GND-GND

5v - PWR / VCC

Para sa Reload_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Para sa Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR / VCC

Para sa shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Para sa aim_pin -

Pin 8 - 5v

5v - PWR / VCC

1.3) SOLDERING WIRES

Paghinang ang mga wire board ng tinapay gamit ang mga wire ng bahaghari

1.4) INSULASYON

I-tape ang mga wire gamit ang insulate tape sa lugar kung saan ka nag-solder upang maiwasan ang mga maikling circuit

Hakbang 3: SOFTWARE

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

Gumamit ako ng isang app na tinatawag na 'Remotr' mula sa Play store upang maipadala ang video mula sa laptop patungo sa telepono

2.1) REMOTR-

Mag-install ng application ng REMOTR sa iyong computer at lumikha ng isang account

Nandito ang link-

remotrapp.com/#download

I-install ang REMOTR app sa iyong smartphone

2.2) VIDEO STREAMING

Una ikonekta ang parehong computer at ang parehong WiFi network at ipasok ang iyong RemOTR account sa parehong mga aparato

ngayon manu-manong idagdag ang laro na nais mong i-stream sa software

ngayon ay ipapakita ng app ang computer habang na-click ito ng admin upang simulang mag-streaming

Upang mag-stream sa VR paganahin ang vr mode sa iyong smartphone

Kung hindi mo maintindihan Suriin ang link na ito para sa detalyadong impormasyon

remotrapp.com/en/howto

Hakbang 4: MAIN CODE

Ang code para sa proyektong ito ay hindi matigas o kumplikado ngunit mahaba

Narito ang code kopyahin lamang ito at i-paste ito sa iyong arduino file

ARDUINO

LEONARDO Mouse-

Pinatunayan ko si Gabry295. Ang code ng mouse na ito ay batay sa kanyang utos na itinuturo sa mouse

# isama

# isama

# isama

# isama

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

walang bisa ang pag-setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

kung (! mpu.testConnection ()) {

habang (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; // Naglagay ako ng -300 at +490 bilang aking mpu6050 ipakita ang mga halagang ito kapag hindi gumagalaw na tseke

vy = - (gz + 490) / 200; // suriin ang code ng head mouse ni Gabry295 para sa higit pang mga detalye sa mga halagang ito

Mouse.move (vx, vy);

pagkaantala (20);

habang (shoot_pin == TAAS);

{

Mouse.click ();

}

habang (aim_pin == TAAS);

{

Mouse.click ();

}

}

Leonardo Keyboard

# isama

int Grenade;

int armas_pin;

int reload_pin;

int movement1_pin;

int movement2_pin;

int posture_pin;

char nightvision_pin;

walang bisa ang pag-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 ();

}

walang bisa loop ()

{

Grenade_pin = digitalRead (8);

armas_pin = digitalRead (9);

movement1_pin = analogRead (A1);

movement2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

kung (granada == TAAS)

{

Keyboard.press ('g');

}

habang (armas_pin == TAAS)

{

Keyboard.press ('q');

}

habang (reload_pin == TAAS)

{

Keyboard.press ('r');

}

habang (movement1_pin> 340 && movement1_pin <420)

{

Keyboard.press ('w');

}

habang (movement1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

habang (movement2_pin> 340 && movement2_pin <420)

{

Keyboard.press ('w');

}

habang (movement2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

habang (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

habang (posture_pin> 420)

{

Keyboard.press ('l');

}

habang (posture_pin <340)

{

Keyboard.press ('z');

}

habang (nightvision_pin == TAAS)

{

Keyboard.press ('n');

}

}

}

Hakbang 5: MGA CODES SA PAGSUSULIT

Narito ang ilang mga code na hinati mula sa pangunahing code ayon sa pagpapaandar

SHOOTING-

# isama

int x;

walang bisa ang pag-setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {

x = digitalRead (8);

kung (x == TAAS)

{

Mouse.click ('g');

}

}

AIMING-

# isama

# isama

# isama

# isama

MPU6050 mpu;

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

int vx, vy;

walang bisa ang pag-setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

kung (! mpu.testConnection ()) {

habang (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx + 300) / 200; // "+300" dahil ang x axis ng gyroscope ay nagbibigay ng mga halagang tungkol sa -350 habang hindi ito gumagalaw. Baguhin ang halagang ito kung makakakuha ka ng ibang bagay gamit ang TEST code, chacking kung may mga halagang malayo sa zero.

vy = - (gz_-100) / 200; // pareho dito tungkol sa "-100"

Pag-reload-

# isama

int x;

walang bisa ang pag-setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

kung (x == TAAS)

{

Keyboard.press ('r');

}

iba pa

{

Keyboard.release ('r');

}

}

GABING VISIO # isama

int x;

walang bisa ang pag-setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

kung (x == TAAS)

{

Keyboard.press ('g');

}

iba pa

{

Keyboard.release ('g');

}

}

CROUCH AT PRONE-

# isama

int y;

walang bisa ang pag-setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogRead (A0);

kung (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

kung hindi man (y> 260 && y <310)

{

Keyboard.press ('c');

}

kung hindi man (y> 310)

{

Keyboard.press ('p');

}

}

Hakbang 6: KONTROL ng LARO

baguhin ang mga kontrol ng laro tulad ng sumusunod

yumuko - x

madaling kapitan - l

pagbabago ng sandata - q

sprint - p

tumayo / tumalon - z

night vision - n

paggalaw ng pasulong - w

granada - g

Hakbang 7: PAG-SET up

INAAYOS
INAAYOS
INAAYOS
INAAYOS
INAAYOS
INAAYOS

Sa wakas nakarating kami sa huling hakbang ngayon ilagay ang arduino

board sa isang kahon at isulid ito sa bag

Ngayon ikonekta ang micro USB ng arduino sa mga USB port ng laptop ngayon ikonekta ang mga sensor tulad ng nakadirekta sa itaas

* Ang mga marka ng arrow sa mga larawan sa itaas ay kumakatawan sa direksyon na dapat harapin ng sensor

Kung mayroon kang anumang mga pagdududa huwag mag-atubiling mag-iwan ng isang komento at huwag kalimutang ibahagi ang iyong karanasan

Yun lang salamat at

BYE.

Inirerekumendang: