Cuprins:

Costum de realitate virtuală folosind Arduino: 7 pași (cu imagini)
Costum de realitate virtuală folosind Arduino: 7 pași (cu imagini)

Video: Costum de realitate virtuală folosind Arduino: 7 pași (cu imagini)

Video: Costum de realitate virtuală folosind Arduino: 7 pași (cu imagini)
Video: Trucul pentru a face o persoana sa se îndragosteasca de tine 2024, Iulie
Anonim
Costum de realitate virtuală folosind Arduino
Costum de realitate virtuală folosind Arduino

Am creat acest proiect pentru a juca jocuri normale pe computer în VR complet. Acest proiect emulează mișcările tale prin apăsarea sau menținerea tastelor tastaturii

Exemplu - când vă deplasați înainte se emulează acțiunea de apăsare a tastei „w”.

Am imitat jocul Call of Duty 4: Modern Warfare, dar nu alegeți jocuri care au recul în timp ce fotografiați, deoarece va schimba poziția implicită a mouse-ului

Pasul 1: Cerințe

Cerințele sunt-

Există o listă plină de lucruri de care aveți nevoie pentru a face acest costum

Senzori tactili-5

Senzor de forță-1

GPU 6050 - 4

(sau)

GPU 6050 - 2 și accelerometru - 2

Vr ochelari

Telefon activat Vr

PC

Hotspot WiFi

Un pistol de jucărie

Un joc pentru PC (am folosit Call of Duty - Modern Warfare 1)

Sârme de panouri pentru pâine (masculin-feminin)

ARDUINO LEONARDO-2

Auton sheild - 2

Sursa de alimentare (lipo)

Firele curcubeului

Pasul 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

* reload_pin, shoot_pin, night_pin, grenade_pin, arma change_pin sunt senzori tactili. aim_pin este senzorul de forță și mouse-ul este emulat de MPU6050 alți senzori sunt accelerometru (postură, mișcare1 și 2)

1.1) SUDARE

SOLDER MPU 6050, accelerometru, senzor tactil și senzor de forță cu firele

1.2) Cablare

Pentru MPU 6050-

Pinul 2 - SDA

Pinul 3- SCL

GND - GND

5v - PWR / VCC

Pentru movement_pin1-

Pinul A1- axa x

GND-GND

5v - PWR / VCC

Pentru movement_pin2-

Pinul A2- axa x

GND-GND

5v - PWR / VCC

Pentru postura_pin-

Pinul A0- axa x

GND-GND

5v - PWR / VCC

pentru arma_pin -

sig-5v

GND-GND

5v - PWR / VCC

Pentru Reload_pin -

pin12 - 5v

GND-GND

5v - PWR / VCC

Pentru Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR / VCC

Pentru shoot_pin -

Pin7 - 5v

GND-GND

5v - PWR / VCC

Pentru aim_pin -

Pinul 8 - 5v

5v - PWR / VCC

1.3) SIRURI DE SUDARE

Lipiți firele plăcii de pâine cu firele curcubeu

1.4) ISOLARE

Bandați firele cu banda izolatoare pe locul unde ați lipit pentru a evita scurtcircuitele

Pasul 3: SOFTWARE

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

Am folosit o aplicație numită „Remotr” din magazinul Play pentru a proiecta videoclipul de pe laptop pe telefon

2.1) REMOTR-

Instalați aplicația REMOTR pe computer și creați un cont

Iată linkul-

remotrapp.com/#download

Instalați aplicația REMOTR în smartphone

2.2) STREAMING VIDEO

Mai întâi conectați computerul și aceeași rețea WiFi și introduceți contul REMOTR în ambele dispozitive

acum adăugați manual jocul pe care doriți să îl transmiteți în software

acum aplicația va afișa computerul ca administrator faceți clic pe el pentru a începe transmisia

Pentru a transmite în flux în VR, activați modul vr pe telefonul smartphone

Dacă nu înțelegeți, verificați acest link pentru informații detaliate

remotrapp.com/en/howto

Pasul 4: CODUL PRINCIPAL

Codul pentru acest proiect nu este dur sau complex, ci unul lung

Iată codul, doar copiați-l și lipiți-l în fișierul dvs. arduino

ARDUINO

Mouse-ul LEONARDO

Am referit Gabry295. Acest cod de mouse se bazează pe capul său

#include

#include

#include

#include

int aim_pin;

int shoot_pin;

MPU6050 mpu;

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

int vx, vy;

configurare nulă () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

în timp ce (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

bucla nulă () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300) / 200; // Am pus -300 și +490, deoarece mpu6050 arată aceste valori atunci când nu se deplasează verificare

vy = - (gz + 490) / 200; // verificați codul mouse-ului principal de Gabry295 pentru mai multe detalii despre aceste valori

Mouse.move (vx, vy);

întârziere (20);

while (shoot_pin == HIGH);

{

Mouse.click ();

}

while (aim_pin == HIGH);

{

Mouse.click ();

}

}

Tastatura Leonardo

#include

int Grenade;

int arma_pin;

int reload_pin;

int movement1_pin;

int movement2_pin;

int postura_pin;

char nightvision_pin;

configurare nulă ()

{

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

}

bucla nulă ()

{

Grenade_pin = digitalRead (8);

arma_pin = digitalRead (9);

mișcare1_pin = analogRead (A1);

movement2_pin = analogRead (A2);

postura_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

if (grenadă == HIGH)

{

Keyboard.press ('g');

}

while (arma_pin == HIGH)

{

Keyboard.press ('q');

}

while (reload_pin == HIGH)

{

Keyboard.press ('r');

}

while (movement1_pin> 340 && movement1_pin <420)

{

Keyboard.press ('w');

}

while (movement1_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 == HIGH)

{

Keyboard.press ('n');

}

}

}

Pasul 5: CODURI DE TESTARE

Iată câteva coduri împărțite de codul principal în funcție de funcție

FILMARE-

#include

int x;

configurare nulă () {

pinMode (8, INPUT);

Mouse.begin ();

}

bucla nulă () {

x = digitalRead (8);

if (x == HIGH)

{

Mouse.click („g”);

}

}

OBIECTIV-

#include

#include

#include

#include

MPU6050 mpu;

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

int vx, vy;

configurare nulă () {

Serial.begin (9600);

Mouse.begin ();

Wire.begin ();

mpu.initialize ();

if (! mpu.testConnection ()) {

în timp ce (1);

}

}

bucla nulă () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx + 300) / 200; // „+300” deoarece axa x a giroscopului dă valori de aproximativ -350 în timp ce nu se mișcă. Schimbați această valoare dacă obțineți ceva diferit folosind codul TEST, urmărind dacă există valori departe de zero.

vy = - (gz_-100) / 200; // același lucru aici despre „-100”

REÎNCĂRCARE-

#include

int x;

configurare nulă () {

pinMode (8, INPUT);

Keyboard.begin ();

}

bucla nulă () {

x = digitalRead (8);

if (x == HIGH)

{

Keyboard.press ('r');

}

altceva

{

Keyboard.release („r”);

}

}

VISOA DE NOAPTE #include

int x;

configurare nulă () {

pinMode (8, INPUT);

Keyboard.begin ();

}

bucla nulă () {

x = digitalRead (8);

if (x == HIGH)

{

Keyboard.press („g”);

}

altceva

{

Keyboard.release („g”);

}

}

CROUCH ȘI PROCEDURĂ-

#include

int y;

configurare nulă () {

pinMode (A0, INPUT);

Serial.begin (9600);

}

bucla nulă () {

y = analogRead (A0);

dacă (y <260)

{

Keyboard.release („c”);

Keyboard.release („p”);

}

altfel dacă (y> 260 && y <310)

{

Keyboard.press ('c');

}

altfel dacă (y> 310)

{

Keyboard.press ('p');

}

}

Pasul 6: CONTROLUL JOCULUI

schimbați comenzile jocului după cum urmează

ghemuit - x

predispus - l

schimbarea armei - q

sprint - p

stand / jump - z

viziune de noapte - n

mișcare înainte - w

grenadă - g

Pasul 7: CONFIGURARE

CONFIGURARE
CONFIGURARE
CONFIGURARE
CONFIGURARE
CONFIGURARE
CONFIGURARE

În cele din urmă am ajuns la ultimul pas acum pune arduino

scânduri într-o cutie și introduceți-o în pungă

Acum conectați micro USB-ul arduino la porturile USB ale laptopului acum conectați senzorii conform instrucțiunilor de mai sus

* semnele săgeții din imaginile de mai sus reprezintă direcția pe care trebuie să o orienteze senzorul

Dacă aveți îndoieli, nu ezitați să lăsați un comentariu și nu uitați să împărtășiți experiența dvs.

Asta e mulțumesc și

PA.

Recomandat: