Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Jag har skapat det här projektet för att spela vanliga dataspel i full VR. Detta projekt emulerar dina rörelser till att trycka eller hålla tangenterna på tangentbordet
Exempel- när du går framåt emuleras åtgärden med att trycka på knappen 'w'.
Jag har emulerat spelet Call of Duty 4: Modern Warfare men väljer inte spel som har rekyl under fotografering eftersom det kommer att ändra musens standardposition
Steg 1: Krav
Kraven är-
Det finns en lista med saker du behöver för att göra den här kostymen
Touch-sensorer-5
Kraftsensor-1
GPU 6050 - 4
(eller)
GPU 6050 - 2 och accelerometer - 2
VR glasögon
VR -aktiverad telefon
PC
WiFi -hotspot
En leksakspistol
Ett PC-spel (jag har använt Call of Duty- Modern Warfare 1)
Brödbrädetrådar (Man-Kvinna)
ARDUINO LEONARDO-2
Auton Sheild - 2
Strömkälla (lipo)
Regnbågstrådar
Steg 2: HARDWARE
*reload_pin, shoot_pin, night vision_pin, granate_pin, weapon change_pin är beröringssensorer. aim_pin är kraftsensor och musen emuleras av MPU6050 andra sensorer är accelerometer (hållning, rörelse1 & 2)
1.1) SÄLJNING
SOLDER MPU 6050, Accelerometer, Touch Sensor & kraftsensor med trådarna
1.2) KOPPLING
För MPU 6050-
Pin 2- SDA
Pin 3- SCL
GND - GND
5v - PWR/VCC
För movement_pin1-
Pin A1- x axel
GND-GND
5v - PWR/VCC
För movement_pin2-
Pin A2- x axel
GND-GND
5v - PWR/VCC
För posture_pin-
Pin A0- x axel
GND-GND
5v - PWR/VCC
för vapen_nål -
sig-5v
GND-GND
5v - PWR/VCC
För Reload_pin -
pin12 - 5v
GND-GND
5v - PWR/VCC
För Nightvision_pin -
stift 10 - 5v
GND-GND
5v - PWR/VCC
För shoot_pin -
Pin7 - 5v
GND-GND
5v - PWR/VCC
För aim_pin -
Stift 8 - 5v
5v - PWR/VCC
1.3) SÄLJNINGSKABEL
Löd brödbrädans trådar med regnbågstrådarna
1.4) ISOLERING
Tejpa trådarna med isoleringstejpen på den plats där du har lödt för att undvika kortslutning
Steg 3: PROGRAMVARA
Jag har använt en app som heter 'Remotr' från Play store för att casta videon från den bärbara datorn till telefonen
2.1) REMOTR-
Installera REMOTR -programmet på din dator och skapa ett konto
Här är länken-
remotrapp.com/#download
Installera REMOTR -appen i din smartphone
2.2) VIDEO STREAMING
Anslut först både datorn och samma WiFi -nätverk och ange ditt REMOTR -konto i båda enheterna
lägg nu till spelet manuellt som du vill strömma i programmet manuellt
nu kommer appen att visa datorn som admin klicka på den för att börja strömma
För att strömma i VR aktivera vr -läge i din smartphone
Om du inte förstår Kontrollera den här länken för detaljerad information
remotrapp.com/en/howto
Steg 4: HUVUDKOD
Koden för detta projekt är inte hård eller komplex utan en lång
Här är koden, bara kopiera den och klistra in den i din arduino -fil
ARDUINO
LEONARDO Mus-
Jag har refererat Gabry295. Denna muskod är baserad på hans huvud Mus instruerbar
#omfatta
#omfatta
#omfatta
#omfatta
int aim_pin;
int shoot_pin;
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
medan (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; // Jag har satt -300 och +490 eftersom min mpu6050 visar dessa värden när jag inte flyttar check
vy = -(gz+490)/200; // kolla koden för huvudmus från Gabry295 för mer information om dessa värden
Mouse.move (vx, vy);
fördröjning (20);
medan (shoot_pin == HIGH);
{
Mus.klick ();
}
medan (aim_pin == HIGH);
{
Mus.klick ();
}
}
Leonardo -tangentbord
#omfatta
int Granat;
int vapen_nål;
int reload_pin;
int movement1_pin;
int movement2_pin;
int posture_pin;
char 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);
Keyboard.begin ();
}
void loop ()
{
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);
om (granat == HÖG)
{
Tangentbord. Tryck ('g');
}
medan (vapen_nål == HÖG)
{
Keyboard.press ('q');
}
medan (reload_pin == HIGH)
{
Keyboard.press ('r');
}
medan (movement1_pin> 340 && movement1_pin <420)
{
Keyboard.press ('w');
}
medan (rörelse1_nål> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
medan (movement2_pin> 340 && movement2_pin <420)
{
Keyboard.press ('w');
}
medan (rörelse2_nål> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
medan (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
medan (posture_pin> 420)
{
Keyboard.press ('l');
}
medan (posture_pin <340)
{
Keyboard.press ('z');
}
medan (nightvision_pin == HIGH)
{
Keyboard.press ('n');
}
}
}
Steg 5: TESTKODER
Här är de få koder som är uppdelade från huvudkoden enligt funktionen
SKYTTE-
#omfatta
int x;
void setup () {
pinMode (8, INPUT);
Mouse.begin ();
}
void loop () {
x = digitalRead (8);
om (x == HIGH)
{
Mus.klick ('g');
}
}
SIKTER-
#omfatta
#omfatta
#omfatta
#omfatta
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
medan (1);
}
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300" eftersom gyroskopets x -axel ger värden om -350 medan den inte rör sig. Ändra detta värde om du får något annat med hjälp av TEST -koden, chacking om det finns värden långt från noll.
vy = -(gz_ -100)/200; // samma här om "-100"
OMLADNING-
#omfatta
int x;
void setup () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
om (x == HIGH)
{
Keyboard.press ('r');
}
annan
{
Keyboard.release ('r');
}
}
NIGHT VISIO #include
int x;
void setup () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
om (x == HIGH)
{
Keyboard.press ('g');
}
annan
{
Keyboard.release ('g');
}
}
KRYCH OCH NÖJD-
#omfatta
int y;
void setup () {
pinMode (A0, INPUT);
Serial.begin (9600);
}
void loop () {
y = analogRead (A0);
om (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
annars om (y> 260 && y <310)
{
Keyboard.press ('c');
}
annars om (y> 310)
{
Keyboard.press ('p');
}
}
Steg 6: SPELKONTROLLER
ändra spelkontrollerna enligt följande
huka - x
benägen - l
vapenbyte - q
sprint - sid
stå/hoppa - z
nattsyn - n
rörelse framåt - w
granat - g
Steg 7: INSTÄLLNING
Äntligen har vi kommit till det sista steget nu sätta arduino
brädor i en låda och skjut in den i påsen
Anslut nu arduinoens mikro -USB till USB -portarna på den bärbara datorn. Anslut nu sensorerna enligt ovan
*pilmärken i bilderna ovan representerar den riktning sensorn måste vända
Om du har några tvivel tveka inte att lämna en kommentar och glöm inte att dela din erfarenhet
Det är det tack och
HEJDÅ.