Obsah:

Oblek pro virtuální realitu pomocí Arduina: 7 kroků (s obrázky)
Oblek pro virtuální realitu pomocí Arduina: 7 kroků (s obrázky)

Video: Oblek pro virtuální realitu pomocí Arduina: 7 kroků (s obrázky)

Video: Oblek pro virtuální realitu pomocí Arduina: 7 kroků (s obrázky)
Video: ŽIL JSEM 24 HODIN VE VIRTUÁLNÍ REALITĚ! 😱 **challenge** 2024, Červenec
Anonim
Oblek pro virtuální realitu pomocí Arduina
Oblek pro virtuální realitu pomocí Arduina

Vytvořil jsem tento projekt pro hraní normálních počítačových her v plné VR. Tento projekt emuluje vaše pohyby do stisknutí nebo podržení kláves na klávesnici

Příklad- při pohybu vpřed se emuluje akce stisknutí klávesy 'w'.

Napodobil jsem hru Call of Duty 4: Modern Warfare, ale nevybírejte hry, které mají při střelbě zpětný ráz, protože změní výchozí polohu myši

Krok 1: Požadavky

Požadavky jsou-

Existuje seznam plný věcí, které potřebujete k výrobě tohoto obleku

Dotykové senzory-5

Senzor síly-1

GPU 6050 - 4

(nebo)

GPU 6050 - 2 a akcelerometr - 2

Vr brýle

Telefon s povolenou funkcí Vr

PC

WiFi hotspot

Hračková pistole

Hra pro PC (použil jsem Call of Duty- Modern Warfare 1)

Dráty na prkénko (samec-samice)

ARDUINO LEONARDO-2

Auton Sheild - 2

Zdroj energie (lipo)

Duhové dráty

Krok 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*reload_pin, shoot_pin, night vision_pin, granát_pin, zbraň change_pin jsou dotykové senzory. aim_pin je senzor síly a myš je emulována MPU6050, ostatní senzory jsou akcelerometr (držení těla, pohyb1 a 2)

1.1) PÁJENÍ

SOLDER MPU 6050, akcelerometr, dotykový senzor a senzor síly s vodiči

1.2) ZAPOJENÍ

Pro MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Pro pohyb_pin1-

Kolík A1- osa x

GND-GND

5v - PWR/VCC

Pro pohyb_pin2-

Kolík A2- osa x

GND-GND

5v - PWR/VCC

Pro posture_pin-

Kolík A0- osa x

GND-GND

5v - PWR/VCC

pro gun_pin -

sig-5v

GND-GND

5v - PWR/VCC

Pro Reload_pin -

pin12 - 5v

GND-GND

5v - PWR/VCC

Pro Nightvision_pin -

kolík 10 - 5v

GND-GND

5v - PWR/VCC

Pro shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR/VCC

Pro aim_pin -

Kolík 8 - 5v

5v - PWR/VCC

1.3) PÁJECÍ DRÁTY

Pájejte dráty prkénka s duhovými dráty

1.4) IZOLACE

Na místo, kde jste pájili, přilepte vodiče izolační páskou, aby nedošlo ke zkratu

Krok 3: SOFTWARE

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

K přenosu videa z notebooku do telefonu jsem použil aplikaci s názvem „Remotr“z Obchodu Play

2.1) DÁLKOVÉ

Nainstalujte si do počítače aplikaci REMOTR a vytvořte si účet

Tady je odkaz-

remotrapp.com/#download

Nainstalujte si do svého smartphonu aplikaci REMOTR

2.2) VIDEO STREAMOVÁNÍ

Nejprve připojte počítač i stejnou WiFi síť a do obou zařízení zadejte svůj účet REMOTR

nyní ručně přidejte do softwaru hru, kterou chcete streamovat

nyní aplikace zobrazí počítač jako správce, kliknutím na něj spustíte streamování

Chcete -li streamovat ve VR, ve svém smartphonu povolte režim vr

Pokud nerozumíte, podívejte se na tento odkaz, kde najdete podrobné informace

remotrapp.com/en/howto

Krok 4: HLAVNÍ KÓD

Kód pro tento projekt není těžký ani složitý, ale dlouhý

Zde je kód, stačí jej zkopírovat a vložit do souboru arduino

ARDUINO

Myš LEONARDO

Doporučil jsem Gabry295. Tento kód myši je založen na instrukci jeho myši

#zahrnout

#zahrnout

#zahrnout

#zahrnout

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

neplatné nastavení () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

zatímco (1);

}

pinMode (7, VSTUP);

pinMode (8, VSTUP);

}

prázdná smyčka () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // Dal jsem -300 a +490, protože můj mpu6050 zobrazuje tyto hodnoty, když se nepohybuje

vy = -(gz+490)/200; // podívejte se na kód hlavní myši od Gabry295, kde najdete další podrobnosti o těchto hodnotách

Mouse.move (vx, vy);

zpoždění (20);

while (shoot_pin == VYSOKÉ);

{

Mouse.click ();

}

while (aim_pin == VYSOKÝ);

{

Mouse.click ();

}

}

Klávesnice Leonardo

#zahrnout

int Grenade;

int zbraňový_pin;

int reload_pin;

int hnutí1_pin;

int hnutí2_pin;

int posture_pin;

char nightvision_pin;

neplatné nastavení ()

{

pinMode (7, VSTUP);

pinMode (8, VSTUP);

pinMode (9, VSTUP);

pinMode (10, VSTUP);

pinMode (11, VSTUP);

pinMode (12, VSTUP);

pinMode (A0, INPUT);

pinMode (A1, VSTUP);

Keyboard.begin ();

}

prázdná smyčka ()

{

Grenade_pin = digitalRead (8);

gun_pin = digitalRead (9);

move1_pin = analogRead (A1);

move2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

if (granát == VYSOKÝ)

{

Keyboard.press ('g');

}

while (gun_pin == VYSOKÝ)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (pohyb1_pin> 340 && pohyb1_pin <420)

{

Keyboard.press ('w');

}

while (hnutí1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

while (movement2_pin> 340 && movement2_pin <420)

{

Keyboard.press ('w');

}

while (movement2_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 (posture_pin <340)

{

Keyboard.press ('z');

}

while (nightvision_pin == VYSOKÉ)

{

Keyboard.press ('n');

}

}

}

Krok 5: TESTOVACÍ KÓDY

Zde je několik kódů rozdělených od hlavního kódu podle funkce

STŘÍLENÍ-

#zahrnout

int x;

neplatné nastavení () {

pinMode (8, VSTUP);

Mouse.begin ();

}

prázdná smyčka () {

x = digitalRead (8);

pokud (x == VYSOKÉ)

{

Mouse.click ('g');

}

}

MÍŘENÍ-

#zahrnout

#zahrnout

#zahrnout

#zahrnout

MPU6050 mpu;

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

int vx, vy;

neplatné nastavení () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

zatímco (1);

}

}

prázdná smyčka () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300", protože osa x gyroskopu dává hodnoty asi -350, zatímco se nepohybuje. Změňte tuto hodnotu, pokud pomocí kódu TEST získáte něco jiného, pokud jsou hodnoty daleko od nuly.

vy = -(gz_ -100)/200; // to samé zde o "-100"

PŘEBÍJENÍ-

#zahrnout

int x;

neplatné nastavení () {

pinMode (8, VSTUP);

Keyboard.begin ();

}

prázdná smyčka () {

x = digitalRead (8);

pokud (x == VYSOKÉ)

{

Keyboard.press ('r');

}

jiný

{

Keyboard.release ('r');

}

}

NIGHT VISIO #include

int x;

neplatné nastavení () {

pinMode (8, VSTUP);

Keyboard.begin ();

}

prázdná smyčka () {

x = digitalRead (8);

pokud (x == VYSOKÉ)

{

Keyboard.press ('g');

}

jiný

{

Keyboard.release ('g');

}

}

CROUCH AND PRONE-

#zahrnout

int y;

neplatné nastavení () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

prázdná smyčka () {

y = analogRead (A0);

pokud (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

else if (y> 260 && y <310)

{

Keyboard.press ('c');

}

jinak pokud (y> 310)

{

Keyboard.press ('p');

}

}

Krok 6: OVLÁDÁNÍ HRY

změňte ovládací prvky hry následujícím způsobem

přikrčit - x

náchylný - l

změna zbraně - q

sprint - str

stoj/skok - z

noční vidění - n

pohyb vpřed - š

granát - g

Krok 7: NASTAVENÍ

NASTAVENÍ
NASTAVENÍ
NASTAVENÍ
NASTAVENÍ
NASTAVENÍ
NASTAVENÍ

Konečně jsme se dostali k poslednímu kroku, nyní položte arduino

desky v krabici a zasuňte ji do tašky

Nyní připojte micro USB arduina k USB portům notebooku a nyní připojte senzory podle pokynů výše

*šipky na výše uvedených obrázcích představují směr, kterému musí senzor směřovat

Pokud máte nějaké pochybnosti, neváhejte zanechat komentář a nezapomeňte se podělit o své zkušenosti

To je vše, děkuji a

SBOHEM.

Doporučuje: