Indholdsfortegnelse:
- Trin 1: Krav
- Trin 2: HARDWARE
- Trin 3: SOFTWARE
- Trin 4: HOVEDKODE
- Trin 5: TESTKODER
- Trin 6: SPILKONTROLLER
- Trin 7: OPSÆTNING
Video: Virtual Reality Suit Brug af Arduino: 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Jeg har oprettet dette projekt for at spille normale computerspil i fuld VR. Dette projekt efterligner dine bevægelser ved at trykke på eller holde tasterne på dit tastatur nede
Eksempel- når du bevæger dig frem, efterlignes handlingen med at trykke på tasten 'w'.
Jeg har efterlignet spillet Call of Duty 4: Modern Warfare, men vælg ikke spil, der har rekyl under optagelse, fordi det vil ændre musens standardposition
Trin 1: Krav
Krav er-
Der er en liste fuld af ting, du har brug for til at lave denne dragt
Berøringssensorer-5
Force sensor-1
GPU 6050 - 4
(eller)
GPU 6050 - 2 og accelerometer - 2
Vr briller
Vr aktiveret telefon
PC
WiFi hotspot
En legetøjspistol
Et pc-spil (jeg har brugt Call of Duty- Modern Warfare 1)
Brødtavledninger (Mand-Kvinde)
ARDUINO LEONARDO-2
Auton sheild - 2
Strømkilde (lipo)
Regnbue ledninger
Trin 2: HARDWARE
*reload_pin, shoot_pin, night vision_pin, granate_pin, weapon change_pin er berøringssensorer. aim_pin er kraftsensor og mus efterlignes af MPU6050 andre sensorer er accelerometer (kropsholdning, bevægelse1 og 2)
1.1) SÆLGNING
SOLDER MPU 6050, Accelerometer, Touch Sensor & kraftsensor med ledningerne
1.2) KOBLING
Til MPU 6050-
Pin 2- SDA
Pin 3- SCL
GND - GND
5v - PWR/VCC
Til movement_pin1-
Pin A1- x akse
GND-GND
5v - PWR/VCC
Til movement_pin2-
Pin A2- x akse
GND-GND
5v - PWR/VCC
Til posture_pin-
Pin A0- x akse
GND-GND
5v - PWR/VCC
til weapon_pin -
sig-5v
GND-GND
5v - PWR/VCC
Til Reload_pin -
pin12 - 5v
GND-GND
5v - PWR/VCC
Til Nightvision_pin -
pin 10 - 5v
GND-GND
5v - PWR/VCC
Til shoot_pin -
Pin7 - 5v
GND-GND
5v - PWR/VCC
Til aim_pin -
Pin 8 - 5v
5v - PWR/VCC
1.3) SÆLTNINGSLEDNING
Lod lodbrættrådene med regnbuetrådene
1.4) ISOLERING
Tape ledningerne med isoleringstapen på det sted, hvor du har loddet for at undgå kortslutninger
Trin 3: SOFTWARE
Jeg har brugt en app kaldet 'Remotr' fra Play store til at caste videoen fra den bærbare computer til telefonen
2.1) REMOTR-
Installer REMOTR -applikationen på din computer, og opret en konto
Her er linket-
remotrapp.com/#download
Installer REMOTR -appen på din smartphone
2.2) VIDEO STREAMING
Tilslut først både computeren og det samme WiFi -netværk, og indtast din REMOTR -konto på begge enheder
tilføj nu manuelt det spil, du vil streame i softwaren
nu viser appen computeren som admin, klik på den for at starte streaming
Aktiver vr -tilstand i din smartphone for at streame i VR
Hvis du ikke kan forstå Kontroller dette link for detaljerede oplysninger
remotrapp.com/da/howto
Trin 4: HOVEDKODE
Koden til dette projekt er ikke hård eller kompleks, men lang
Her er koden, bare kopier den og indsæt den i din arduino -fil
ARDUINO
LEONARDO Mus-
Jeg har refereret Gabry295. Denne musekode er baseret på hans hoved Mus instruerbar
#omfatte
#omfatte
#omfatte
#omfatte
int aim_pin;
int shoot_pin;
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
ugyldig opsætning () {
Serial.begin (9600);
Mus.begynd ();
Wire.begin ();
mpu.initialize ();
hvis (! mpu.testConnection ()) {
mens (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; // Jeg har sat -300 og +490, da min mpu6050 viser disse værdier, når check ikke flyttes
vy = -(gz+490)/200; // tjek koden til hovedmus af Gabry295 for flere detaljer om disse værdier
Mus.move (vx, vy);
forsinkelse (20);
mens (shoot_pin == HIGH);
{
Mus. Klik ();
}
mens (aim_pin == HIGH);
{
Mus. Klik ();
}
}
Leonardo tastatur
#omfatte
int Granat;
int weapon_pin;
int reload_pin;
int bevægelse1_pin;
int bevægelse2_pin;
int posture_pin;
char nightvision_pin;
ugyldig opsætning ()
{
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 ();
}
hulrum ()
{
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);
hvis (granat == HØJ)
{
Tastatur. Tryk ('g');
}
mens (våbenpind == HØJ)
{
Tastatur. Tryk ('q');
}
mens (reload_pin == HIGH)
{
Keyboard.press ('r');
}
mens (movement1_pin> 340 && movement1_pin <420)
{
Keyboard.press ('w');
}
mens (bevægelse1_nål> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
mens (movement2_pin> 340 && movement2_pin <420)
{
Keyboard.press ('w');
}
mens (bevægelse2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
mens (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
mens (posture_pin> 420)
{
Keyboard.press ('l');
}
mens (posture_pin <340)
{
Keyboard.press ('z');
}
mens (nightvision_pin == HIGH)
{
Keyboard.press ('n');
}
}
}
Trin 5: TESTKODER
Her er de få koder opdelt fra hovedkoden i henhold til funktionen
SKYDNING-
#omfatte
int x;
ugyldig opsætning () {
pinMode (8, INPUT);
Mus.begynd ();
}
void loop () {
x = digitalRead (8);
hvis (x == HIGH)
{
Mus. Klik ('g');
}
}
MÅL-
#omfatte
#omfatte
#omfatte
#omfatte
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
ugyldig opsætning () {
Serial.begin (9600);
Mus.begynd ();
Wire.begin ();
mpu.initialize ();
hvis (! mpu.testConnection ()) {
mens (1);
}
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300", fordi gyroskopets x -akse giver værdier omkring -350, mens det ikke bevæger sig. Skift denne værdi, hvis du får noget anderledes ved hjælp af TEST -koden, chacking hvis der er værdier langt fra nul.
vy = -(gz_ -100)/200; // samme her om "-100"
OMLADNING-
#omfatte
int x;
ugyldig opsætning () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
hvis (x == HIGH)
{
Keyboard.press ('r');
}
andet
{
Keyboard.release ('r');
}
}
NIGHT VISIO #include
int x;
ugyldig opsætning () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
hvis (x == HIGH)
{
Keyboard.press ('g');
}
andet
{
Keyboard.release ('g');
}
}
CROUCH OG udsat-
#omfatte
int y;
ugyldig opsætning () {
pinMode (A0, INPUT);
Serial.begin (9600);
}
void loop () {
y = analogRead (A0);
hvis (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
ellers hvis (y> 260 && y <310)
{
Keyboard.press ('c');
}
ellers hvis (y> 310)
{
Keyboard.press ('p');
}
}
Trin 6: SPILKONTROLLER
ændre spilkontrolerne som følger
huk - x
tilbøjelig - l
våbenskift - q
sprint - s
stå/hoppe - z
nattesyn - n
bevægelse fremad - w
granat - g
Trin 7: OPSÆTNING
Endelig er vi kommet til det sidste trin nu sætte arduino
brædder i en kasse og læg den i posen
Tilslut nu arduinoens mikro -USB til bærbarens USB -porte. Tilslut nu sensorerne som beskrevet ovenfor
*pilemærker på ovenstående billeder repræsenterer den retning, sensoren skal vende
Hvis du er i tvivl, tøv ikke med at efterlade en kommentar, og glem ikke at dele din oplevelse
Det er det tak og
FARVEL.
Anbefalede:
Virtual Reality på Raspberry Pi med BeYourHero !: 19 trin (med billeder)
Virtual Reality på Raspberry Pi med BeYourHero !: Velkommen til " Vær din helt " projekt! Jeg håber, at du er klar til at gå ind i den næste generation af Virtual Reality -fordybelse! Dette projekt giver dig fuld gestus -kontrol over enhver virtuel helt, du kan lide med et simpelt sæt billige enheder, der bruger se
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
Augmented Reality (AR) til Dragonboard410c eller Dragonboard820c Brug af OpenCV og Python 3.5: 4 trin
Augmented Reality (AR) til Dragonboard410c eller Dragonboard820c Brug af OpenCV og Python 3.5: Denne vejledning beskriver, hvordan du installerer OpenCV, Python 3.5 og afhængigheder for Python 3.5 for at køre augmented reality -applikationen
Virtual og Mixed Reality -briller: 15 trin (med billeder)
Virtual and Mixed Reality Glasses: Introduktion: Under kandidatuddannelsen Technology for Concept Design blev vi bedt om at udforske en ny teknologi, der passer til vores hovedprojekt og teste denne teknologi ved at lave en prototype. De teknologier, vi valgte, er begge virtuelle reali