Innehållsförteckning:

Virtual Reality -kostym med Arduino: 7 steg (med bilder)
Virtual Reality -kostym med Arduino: 7 steg (med bilder)

Video: Virtual Reality -kostym med Arduino: 7 steg (med bilder)

Video: Virtual Reality -kostym med Arduino: 7 steg (med bilder)
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, November
Anonim
Virtual Reality -kostym med Arduino
Virtual Reality -kostym med Arduino

Jag har skapat det här projektet för att spela vanliga dataspel i full VR. Detta projekt emulerar dina rörelser till att trycka eller hålla tangenterna på tangentbordet

Exempel- när du går framåt emuleras åtgärden med att trycka på knappen 'w'.

Jag har emulerat spelet Call of Duty 4: Modern Warfare men väljer inte spel som har rekyl under fotografering eftersom det kommer att ändra musens standardposition

Steg 1: Krav

Kraven är-

Det finns en lista med saker du behöver för att göra den här kostymen

Touch-sensorer-5

Kraftsensor-1

GPU 6050 - 4

(eller)

GPU 6050 - 2 och accelerometer - 2

VR glasögon

VR -aktiverad telefon

PC

WiFi -hotspot

En leksakspistol

Ett PC-spel (jag har använt Call of Duty- Modern Warfare 1)

Brödbrädetrådar (Man-Kvinna)

ARDUINO LEONARDO-2

Auton Sheild - 2

Strömkälla (lipo)

Regnbågstrådar

Steg 2: HARDWARE

HÅRDVARA
HÅRDVARA
HÅRDVARA
HÅRDVARA
HÅRDVARA
HÅRDVARA

*reload_pin, shoot_pin, night vision_pin, granate_pin, weapon change_pin är beröringssensorer. aim_pin är kraftsensor och musen emuleras av MPU6050 andra sensorer är accelerometer (hållning, rörelse1 & 2)

1.1) SÄLJNING

SOLDER MPU 6050, Accelerometer, Touch Sensor & kraftsensor med trådarna

1.2) KOPPLING

För MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

För movement_pin1-

Pin A1- x axel

GND-GND

5v - PWR/VCC

För movement_pin2-

Pin A2- x axel

GND-GND

5v - PWR/VCC

För posture_pin-

Pin A0- x axel

GND-GND

5v - PWR/VCC

för vapen_nål -

sig-5v

GND-GND

5v - PWR/VCC

För Reload_pin -

pin12 - 5v

GND-GND

5v - PWR/VCC

För Nightvision_pin -

stift 10 - 5v

GND-GND

5v - PWR/VCC

För shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR/VCC

För aim_pin -

Stift 8 - 5v

5v - PWR/VCC

1.3) SÄLJNINGSKABEL

Löd brödbrädans trådar med regnbågstrådarna

1.4) ISOLERING

Tejpa trådarna med isoleringstejpen på den plats där du har lödt för att undvika kortslutning

Steg 3: PROGRAMVARA

PROGRAMVARA
PROGRAMVARA
PROGRAMVARA
PROGRAMVARA

Jag har använt en app som heter 'Remotr' från Play store för att casta videon från den bärbara datorn till telefonen

2.1) REMOTR-

Installera REMOTR -programmet på din dator och skapa ett konto

Här är länken-

remotrapp.com/#download

Installera REMOTR -appen i din smartphone

2.2) VIDEO STREAMING

Anslut först både datorn och samma WiFi -nätverk och ange ditt REMOTR -konto i båda enheterna

lägg nu till spelet manuellt som du vill strömma i programmet manuellt

nu kommer appen att visa datorn som admin klicka på den för att börja strömma

För att strömma i VR aktivera vr -läge i din smartphone

Om du inte förstår Kontrollera den här länken för detaljerad information

remotrapp.com/en/howto

Steg 4: HUVUDKOD

Koden för detta projekt är inte hård eller komplex utan en lång

Här är koden, bara kopiera den och klistra in den i din arduino -fil

ARDUINO

LEONARDO Mus-

Jag har refererat Gabry295. Denna muskod är baserad på hans huvud Mus instruerbar

#omfatta

#omfatta

#omfatta

#omfatta

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

medan (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; // Jag har satt -300 och +490 eftersom min mpu6050 visar dessa värden när jag inte flyttar check

vy = -(gz+490)/200; // kolla koden för huvudmus från Gabry295 för mer information om dessa värden

Mouse.move (vx, vy);

fördröjning (20);

medan (shoot_pin == HIGH);

{

Mus.klick ();

}

medan (aim_pin == HIGH);

{

Mus.klick ();

}

}

Leonardo -tangentbord

#omfatta

int Granat;

int vapen_nål;

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

weapon_pin = digitalRead (9);

movement1_pin = analogRead (A1);

movement2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

om (granat == HÖG)

{

Tangentbord. Tryck ('g');

}

medan (vapen_nål == HÖG)

{

Keyboard.press ('q');

}

medan (reload_pin == HIGH)

{

Keyboard.press ('r');

}

medan (movement1_pin> 340 && movement1_pin <420)

{

Keyboard.press ('w');

}

medan (rörelse1_nål> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

medan (movement2_pin> 340 && movement2_pin <420)

{

Keyboard.press ('w');

}

medan (rörelse2_nål> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

medan (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

medan (posture_pin> 420)

{

Keyboard.press ('l');

}

medan (posture_pin <340)

{

Keyboard.press ('z');

}

medan (nightvision_pin == HIGH)

{

Keyboard.press ('n');

}

}

}

Steg 5: TESTKODER

Här är de få koder som är uppdelade från huvudkoden enligt funktionen

SKYTTE-

#omfatta

int x;

void setup () {

pinMode (8, INPUT);

Mouse.begin ();

}

void loop () {

x = digitalRead (8);

om (x == HIGH)

{

Mus.klick ('g');

}

}

SIKTER-

#omfatta

#omfatta

#omfatta

#omfatta

MPU6050 mpu;

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

int vx, vy;

void setup () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

medan (1);

}

}

void loop () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300" eftersom gyroskopets x -axel ger värden om -350 medan den inte rör sig. Ändra detta värde om du får något annat med hjälp av TEST -koden, chacking om det finns värden långt från noll.

vy = -(gz_ -100)/200; // samma här om "-100"

OMLADNING-

#omfatta

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

om (x == HIGH)

{

Keyboard.press ('r');

}

annan

{

Keyboard.release ('r');

}

}

NIGHT VISIO #include

int x;

void setup () {

pinMode (8, INPUT);

Keyboard.begin ();

}

void loop () {

x = digitalRead (8);

om (x == HIGH)

{

Keyboard.press ('g');

}

annan

{

Keyboard.release ('g');

}

}

KRYCH OCH NÖJD-

#omfatta

int y;

void setup () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

void loop () {

y = analogRead (A0);

om (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

annars om (y> 260 && y <310)

{

Keyboard.press ('c');

}

annars om (y> 310)

{

Keyboard.press ('p');

}

}

Steg 6: SPELKONTROLLER

ändra spelkontrollerna enligt följande

huka - x

benägen - l

vapenbyte - q

sprint - sid

stå/hoppa - z

nattsyn - n

rörelse framåt - w

granat - g

Steg 7: INSTÄLLNING

INSTÄLLNING
INSTÄLLNING
INSTÄLLNING
INSTÄLLNING
INSTÄLLNING
INSTÄLLNING

Äntligen har vi kommit till det sista steget nu sätta arduino

brädor i en låda och skjut in den i påsen

Anslut nu arduinoens mikro -USB till USB -portarna på den bärbara datorn. Anslut nu sensorerna enligt ovan

*pilmärken i bilderna ovan representerar den riktning sensorn måste vända

Om du har några tvivel tveka inte att lämna en kommentar och glöm inte att dela din erfarenhet

Det är det tack och

HEJDÅ.

Rekommenderad: