Inhoudsopgave:

Virtual Reality Suit met Arduino 7 stappen (met afbeeldingen)
Virtual Reality Suit met Arduino 7 stappen (met afbeeldingen)

Video: Virtual Reality Suit met Arduino 7 stappen (met afbeeldingen)

Video: Virtual Reality Suit met Arduino 7 stappen (met afbeeldingen)
Video: Wanneer een douche nemen te duur is... 2024, Juli-
Anonim
Virtual Reality Suit met Arduino
Virtual Reality Suit met Arduino

Ik heb dit project gemaakt om normale computergames in volledige VR te spelen. Dit project emuleert je bewegingen door de toetsen van je toetsenbord in te drukken of vast te houden

Voorbeeld - wanneer u vooruit gaat, wordt de actie van het indrukken van de toets 'w' geëmuleerd.

Ik heb de game Call of Duty 4: Modern Warfare geëmuleerd, maar kies geen games die terugslag hebben tijdens het fotograferen, omdat dit de standaardpositie van de muis zal veranderen

Stap 1: Vereisten

Vereisten zijn-

Er is een lijst vol dingen die je nodig hebt om dit pak te maken

Aanraaksensoren-5

Krachtsensor-1

GPU 6050 - 4

(of)

GPU 6050 - 2 & versnellingsmeter - 2

VR-bril

Vr ingeschakelde telefoon

pc

Wifi hotspot

Een speelgoedpistool

Een pc-game (ik heb Call of Duty- Modern Warfare 1 gebruikt)

Broodplankdraden (mannelijk-vrouwelijk)

ARDUINO LEONARDO-2

Auton schild - 2

Stroombron (lipo)

Regenboog draden

Stap 2: HARDWARE

HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE
HARDWARE

*reload_pin, shoot_pin, night vision_pin, grenade_pin, wapen change_pin zijn aanraaksensoren. aim_pin is krachtsensor en muis wordt geëmuleerd door MPU6050 andere sensoren zijn versnellingsmeter (houding, beweging1 & 2)

1.1) SOLDEREN:

SOLDEER MPU 6050, versnellingsmeter, aanraaksensor & krachtsensor met de draden

1.2) BEDRADING:

Voor MPU 6050-

Pin 2-SDA

Pin 3-SCL

GND - GND

5v - PWR/VCC

Voor beweging_pin1-

Pin A1-x-as

GND-GND

5v - PWR/VCC

Voor beweging_pin2-

Pin A2-x-as

GND-GND

5v - PWR/VCC

Voor houding_pin-

Pin A0- x-as

GND-GND

5v - PWR/VCC

voor wapen_pin -

sig-5v

GND-GND

5v - PWR/VCC

Voor Reload_pin -

pin12 – 5v

GND-GND

5v - PWR/VCC

Voor Nightvision_pin -

pin 10 – 5v

GND-GND

5v - PWR/VCC

Voor shoot_pin -

Pin7 – 5v

GND-GND

5v - PWR/VCC

Voor aim_pin -

Pin 8 – 5v

5v - PWR/VCC

1.3) SOLDEERDRADEN:

Soldeer de broodplankdraden met de regenboogdraden

1.4) ISOLATIE

Plak de draden vast met de isolatietape op de plaats waar je hebt gesoldeerd om kortsluiting te voorkomen

Stap 3: SOFTWARE

SOFTWARE
SOFTWARE
SOFTWARE
SOFTWARE

Ik heb een app met de naam 'Remotr' uit de Play Store gebruikt om de video van de laptop naar de telefoon te casten

2.1) AFSTANDSBEDIENING-

Installeer de REMOTR-toepassing op uw computer en maak een account aan

Hier is de link-

remotrapp.com/#download

Installeer de REMOTR-app op uw smartphone

2.2) VIDEO STREAMING

Verbind eerst zowel de computer als hetzelfde WiFi-netwerk en voer uw REMOTR-account in op beide apparaten

voeg nu handmatig de game toe die je wilt streamen in de software

nu toont de app de computer als beheerder klik erop om te beginnen met streamen

Om in VR te streamen, schakel je de vr-modus in op je smartphone

Als je het niet begrijpt, kijk dan op deze link voor gedetailleerde informatie

remotrapp.com/en/howto

Stap 4: HOOFDCODE

De code voor dit project is niet moeilijk of complex, maar lang

Hier is de code, kopieer hem en plak hem in je arduino-bestand

ARDUINO

LEONARDO Muis-

Ik heb Gabry295 doorverwezen. Deze muiscode is gebaseerd op zijn hoofd Muis instructable

#erbij betrekken

#erbij betrekken

#erbij betrekken

#erbij betrekken

int aim_pin;

int shoot_pin;

MPU6050mpu;

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

int vx, vy;

ongeldige setup() {

Serieel.begin(9600);

Muis.begin();

Draad.begin();

mpu.initialiseren();

if (!mpu.testConnection()) {

terwijl (1);

}

pinMode (7, INGANG);

pinMode (8, INGANG);

}

lege lus() {

shoot_pin = digitalRead (7);

aim_pin = digitalRead(8);

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

vx = (gx-300)/200; // Ik heb -300 en +490 gezet omdat mijn mpu6050 deze waarden laat zien als ik de cheque niet verplaatst

vy = -(gz+490)/200; // controleer de code van de hoofdmuis van Gabry295 voor meer informatie over deze waarden

Mouse.move(vx, vy);

vertraging(20);

while(shoot_pin == HOOG);

{

Muis klik();

}

while(aim_pin == HOOG);

{

Muis klik();

}

}

Leonardo-toetsenbord

#erbij betrekken

int Granaat;

int wapen_pin;

int reload_pin;

int beweging1_pin;

int beweging2_pin;

int houding_pin;

char nightvision_pin;

ongeldige setup()

{

pinMode (7, INGANG);

pinMode (8, INGANG);

pinMode(9, INPUT);

pinMode (10, INGANG);

pinMode (11, INGANG);

pinMode (12, INGANG);

pinMode (A0, INGANG);

pinMode (A1, INGANG);

Toetsenbord.begin();

}

lege lus()

{

Grenade_pin=digitalRead(8);

wapen_pin = digitalRead (9);

beweging1_pin = analoog lezen (A1);

beweging2_pin = analoog lezen (A2);

houding_pin = analoog lezen (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

if(granaat==HOOG)

{

Toetsenbord.press('g');

}

terwijl (weapon_pin == HOOG)

{

Toetsenbord.press('q');

}

while(reload_pin == HOOG)

{

Toetsenbord.press('r');

}

while (beweging1_pin>340&&beweging1_pin<420)

{

Toetsenbord.press('w');

}

terwijl (beweging1_pin>420)

{

Toetsenbord.press('w');

Toetsenbord.press('p');

}

while (beweging2_pin>340&&beweging2_pin<420)

{

Toetsenbord.press('w');

}

terwijl (beweging2_pin>420)

{

Toetsenbord.press('p');

Toetsenbord.press('w');

}

while (posture_pin>340&&posture_pin<420)

{

Toetsenbord.press('c');

}

terwijl (posture_pin>420)

{

Toetsenbord.press('l');

}

terwijl (posture_pin<340)

{

Toetsenbord.press('z');

}

terwijl (nightvision_pin==HIGH)

{

Toetsenbord.press('n');

}

}

}

Stap 5: TESTCODES

Hier zijn de paar codes gescheiden van de hoofdcode volgens de functie:

SCHIETEN-

#erbij betrekken

int x;

ongeldige setup() {

pinMode (8, INGANG);

Muis.begin();

}

lege lus() {

x=digitalRead(8);

if(x==HOOG)

{

Muis.klik('g');

}

}

MIDDELEN-

#erbij betrekken

#erbij betrekken

#erbij betrekken

#erbij betrekken

MPU6050mpu;

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

int vx, vy;

ongeldige setup() {

Serieel.begin(9600);

Muis.begin();

Draad.begin();

mpu.initialiseren();

if (!mpu.testConnection()) {

terwijl (1);

}

}

lege lus() {

shoot_pin = digitalRead (7);

aim_pin = digitalRead(8);

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

vx = (gx+300)/200; // "+300" omdat de x-as van de gyroscoop waarden geeft van ongeveer -350 terwijl hij niet beweegt. Wijzig deze waarde als u iets anders krijgt met behulp van de TEST-code, en controleer of er waarden zijn die ver van nul liggen.

vy = -(gz_-100)/200; // hetzelfde hier over "-100"

HERLADEN-

#erbij betrekken

int x;

ongeldige setup() {

pinMode (8, INGANG);

Toetsenbord.begin();

}

lege lus() {

x=digitalRead(8);

if(x==HOOG)

{

Toetsenbord.press('r');

}

anders

{

Toetsenbord.release('r');

}

}

NACHT VISIO #include

int x;

ongeldige setup() {

pinMode (8, INGANG);

Toetsenbord.begin();

}

lege lus() {

x=digitalRead(8);

if(x==HOOG)

{

Toetsenbord.press('g');

}

anders

{

Toetsenbord.release('g');

}

}

KRUIK EN GEVOELIG-

#erbij betrekken

int y;

ongeldige setup() {

pinMode (A0, INGANG);

Serieel.begin(9600);

}

lege lus() {

y=analoogLees(A0);

als(y<260)

{

Toetsenbord.release('c');

Toetsenbord.release('p');

}

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

{

Toetsenbord.press('c');

}

anders als (y>310)

{

Toetsenbord.press('p');

}

}

Stap 6: SPELBEDIENING

verander de spelbesturing als volgt:

hurken - x

vatbaar - ik

wapenwissel - q

sprint - p

staan/springen - z

nachtzicht - n

voorwaartse beweging - w

granaat - g

Stap 7: INSTELLEN

OPZETTEN
OPZETTEN
OPZETTEN
OPZETTEN
OPZETTEN
OPZETTEN

Eindelijk zijn we bij de laatste stap gekomen, zet nu de arduino

planken in een doos en schuif het in de zak

Sluit nu de micro-USB van de arduino aan op de USB-poorten van de laptop en sluit nu de sensoren aan zoals hierboven beschreven

*pijlmarkeringen in de bovenstaande afbeeldingen geven de richting aan waarin de sensor moet kijken

Als je twijfels hebt, aarzel dan niet om een reactie achter te laten en vergeet niet om je ervaring te delen

Dat is het, bedankt en

DOEI.

Aanbevolen: