Përmbajtje:

Kostumi i realitetit virtual duke përdorur Arduino: 7 hapa (me fotografi)
Kostumi i realitetit virtual duke përdorur Arduino: 7 hapa (me fotografi)

Video: Kostumi i realitetit virtual duke përdorur Arduino: 7 hapa (me fotografi)

Video: Kostumi i realitetit virtual duke përdorur Arduino: 7 hapa (me fotografi)
Video: CS50 2015 - Week 8, continued 2024, Nëntor
Anonim
Padia e realitetit virtual duke përdorur Arduino
Padia e realitetit virtual duke përdorur Arduino

Unë e kam krijuar këtë projekt për të luajtur lojëra kompjuterike normale në VR të plotë. Ky projekt imiton lëvizjet tuaja duke shtypur ose mbajtur tastet e tastierës suaj

Shembull- kur ecni përpara emulohet veprimi i shtypjes së tastit 'w'.

Unë kam imituar lojën Call of Duty 4: Modern Warfare por mos zgjidhni lojëra që kanë zmbrapsje gjatë xhirimit sepse do të ndryshojë pozicionin e paracaktuar të miut

Hapi 1: Kërkesat

Kërkesat janë-

Ekziston një listë plot me gjëra që ju nevojiten për të bërë këtë kostum

Sensorë prekës-5

Sensori i forcës-1

GPU 6050 - 4

(ose)

GPU 6050 - 2 & Përshpejtues - 2

Vr syze

Telefoni i aktivizuar me Vr

PC

Pikë e nxehtë WiFi

Një armë lodër

Një lojë kompjuterike (kam përdorur Call of Duty- Modern Warfare 1)

Telat e bordit të bukës (Mashkull-Femër)

ARDUINO LEONARDO-2

Mbështjellës Auton - 2

Burimi i energjisë (lipo)

Tela ylberi

Hapi 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*kunja e rimbushjes, kunja e gjuajtjes, kunja e shikimit të natës, kunja e granatës, kunja e ndryshimit të armës janë sensorë prekjeje. syn_pin është sensori i forcës dhe miu emulohet nga MPU6050 sensorë të tjerë janë përshpejtues (qëndrimi, lëvizja 1 & 2)

1.1) SHTRIM

SOLDER MPU 6050, Accelerometer, Touch Sensor & sensor i forcës me tela

1.2) TELIMI

Për MPU 6050-

Pin 2- SDA

Pin 3- SCL

GND - GND

5v - PWR/VCC

Për lëvizjen_kunja1-

Boshti A1- x bosht

GND-GND

5v - PWR/VCC

Për lëvizjen_pin2-

Pin A2- boshti x

GND-GND

5v - PWR/VCC

Për qëndrimin_kunjë-

Boshti A0- x bosht

GND-GND

5v - PWR/VCC

për majën e armës -

sig-5v

GND-GND

5v - PWR/VCC

Për Reload_pin -

pin12 - 5v

GND-GND

5v - PWR/VCC

Për Nightvision_pin -

pin 10 - 5v

GND-GND

5v - PWR/VCC

Për kunjin e xhirimit -

Pin7 - 5v

GND-GND

5v - PWR/VCC

Për pin_ qëllimi -

Pin 8 - 5v

5v - PWR/VCC

1.3) LIDHJA E TELAVE

Lidhni telat e bordit të bukës me telat e ylberit

1.4) Izolimi

Ngjitini telat me shirit izolues në vendin ku jeni ngjitur për të shmangur qarqet e shkurtra

Hapi 3: SOFTUER

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

Unë kam përdorur një aplikacion të quajtur 'Remotr' nga Play store për të hedhur videon nga laptopi në telefon

2.1) REMOTR-

Instaloni aplikacionin REMOTR në kompjuterin tuaj dhe krijoni një llogari

Këtu është lidhja-

remotrapp.com/#download

Instaloni aplikacionin REMOTR në smartphone tuaj

2.2) VIDEO STRAMING

Së pari lidhni kompjuterin dhe të njëjtin rrjet WiFi dhe futni llogarinë tuaj REMOTR në të dyja pajisjet

tani shtoni me dorë lojën që dëshironi të transmetoni në softuer

tani aplikacioni do të tregojë kompjuterin si administrator klikoni atë për të filluar transmetimin

Për të transmetuar në VR aktivizoni modalitetin vr në smartphone tuaj

Nëse nuk mund ta kuptoni, kontrolloni këtë lidhje për informacion të detajuar

remotrapp.com/sq/howto

Hapi 4: KODI KRYESOR

Kodi për këtë projekt nuk është i ashpër ose kompleks, por i gjatë

Këtu është kodi thjesht kopjoni dhe ngjiteni në skedarin tuaj arduino

ARDUINO

Mouse LEONARDO-

Unë i kam referuar Gabry295. Ky kod miu bazohet në kokën e tij Mouse udhëzues

#përfshi

#përfshi

#përfshi

#përfshi

int syn_pin;

int shoot_pin;

MPU6050 mpu;

int16_t sëpatë, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.filloj (9600);

Mouse.filloj ();

Wire.begin ();

mpu.initialize ();

nëse (! mpu.testConnection ()) {

ndërsa (1);

}

pinMode (7, INPUT);

pinMode (8, INPUT);

}

lak void () {

shoot_pin = digitalRead (7);

synimi_pin = digitalRead (8);

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

vx = (gx-300)/200; // Unë kam vënë -300 dhe +490 pasi mpu6050 tregojnë këto vlera kur nuk lëviz kontroll

vy = -(gz+490)/200; // kontrolloni kodin e miut të kokës nga Gabry295 për më shumë detaje mbi këto vlera

Miu. Lëviz (vx, vy);

vonesa (20);

ndërsa (pin_ shoot == LART);

{

Mouse.click ();

}

ndërsa (syn_pin == LART);

{

Mouse.click ();

}

}

Tastiera Leonardo

#përfshi

int granatë;

int arma_kunga;

int reload_pin;

int lëvizja1_pin;

int lëvizja2_pin;

int posture_pin;

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

Tastiera.filloj ();

}

lak void ()

{

Grenada_pin = digitalRead (8);

kunja e armës = digitalRead (9);

lëvizja1_pin = analogRead (A1);

lëvizje2_pin = analogRead (A2);

posture_pin = analogRead (A0);

ringarkoni_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

nëse (granatë == LART)

{

Keyboard.press ('g');

}

ndërsa (kunja e armës == LART)

{

Keyboard.press ('q');

}

ndërsa (ringarkimi_pin == LART)

{

Keyboard.press ('r');

}

ndërsa (lëvizja1_pin> 340 && lëvizja1_pin <420)

{

Keyboard.press ('w');

}

ndërsa (lëvizja_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

ndërsa (lëvizja2_pin> 340 && lëvizja2_pin <420)

{

Keyboard.press ('w');

}

ndërsa (lëvizja2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

ndërsa (kunja e posturës> 340 && kunja e posturës <420)

{

Keyboard.press ('c');

}

ndërsa (kunja e qëndrimit> 420)

{

Keyboard.press ('l');

}

ndërsa (kunja e qëndrimit <340)

{

Keyboard.press ('z');

}

ndërsa (kopja e shikimit të natës == LART)

{

Keyboard.press ('n');

}

}

}

Hapi 5: KODET E TESTIMIT

Këtu janë disa kode të ndara nga kodi kryesor sipas funksionit

Xhirimi-

#përfshi

int x;

void setup () {

pinMode (8, INPUT);

Mouse.filloj ();

}

lak void () {

x = digitalRead (8);

nëse (x == LART)

{

Mouse.kliko ('g');

}

}

Q ALLIMI-

#përfshi

#përfshi

#përfshi

#përfshi

MPU6050 mpu;

int16_t sëpatë, ay, az, gx, gy, gz;

int vx, vy;

void setup () {

Serial.filloj (9600);

Mouse.filloj ();

Wire.begin ();

mpu.initialize ();

nëse (! mpu.testConnection ()) {

ndërsa (1);

}

}

lak void () {

shoot_pin = digitalRead (7);

synimi_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300" sepse boshti x i xhiroskopit jep vlera rreth -350 ndërsa nuk lëviz. Ndryshoni këtë vlerë nëse merrni diçka të ndryshme duke përdorur kodin TEST, duke kontrolluar nëse ka vlera larg zeros.

vy = -(gz_ -100)/200; // e njëjta këtu për "-100"

NGARJA-

#përfshi

int x;

void setup () {

pinMode (8, INPUT);

Tastiera.filloj ();

}

lak void () {

x = digitalRead (8);

nëse (x == LART)

{

Keyboard.press ('r');

}

tjeter

{

Keyboard.release ('r');

}

}

VIZIONI I NET #përfshini

int x;

void setup () {

pinMode (8, INPUT);

Tastiera.filloj ();

}

lak void () {

x = digitalRead (8);

nëse (x == LART)

{

Keyboard.press ('g');

}

tjeter

{

Keyboard.release ('g');

}

}

CROUCH DHE PRON-

#përfshi

int y;

void setup () {

pinMode (A0, INPUT);

Serial.filloj (9600);

}

lak void () {

y = analogRead (A0);

nëse (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

ndryshe nëse (y> 260 && y <310)

{

Keyboard.press ('c');

}

ndryshe nëse (y> 310)

{

Keyboard.press ('p');

}

}

Hapi 6: KONTROLLET E LOJS

ndryshoni kontrollet e lojës si më poshtë

strukem - x

i prirur - l

ndryshimi i armës - q

sprint - f

qëndrim/kërcej - z

vizion nate - n

lëvizje përpara - w

granatë - g

Hapi 7: P SRDORIMI

NDRYSHIMI
NDRYSHIMI
NDRYSHIMI
NDRYSHIMI
NDRYSHIMI
NDRYSHIMI

Së fundi ne kemi ardhur në hapin e fundit tani vënë arduino

dërrasat në një kuti dhe futeni në thes

Tani lidhni mikro USB e arduino me portat USB të laptopit, tani lidhni sensorët siç udhëzohet më sipër

*shenjat e shigjetave në fotografitë e mësipërme përfaqësojnë drejtimin që sensori duhet të ketë

Nëse keni ndonjë dyshim mos hezitoni të lini një koment dhe mos harroni të ndani përvojën tuaj

Kjo është ajo faleminderit dhe

POR

Recommended: