Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Ta projekt sem ustvaril za igranje običajnih računalniških iger v polni VR. Ta projekt posnema vaša gibanja s pritiskom ali držanjem tipk na tipkovnici
Primer- ko se premaknete naprej, se posnema dejanje pritiska na tipko 'w'.
Imuriral sem igro Call of Duty 4: Modern Warfare, vendar ne izberite iger, ki med streljanjem odmikajo, ker bo spremenila privzeti položaj miške
1. korak: Zahteve
Zahteve so-
Seznam stvari, ki jih potrebujete za izdelavo te obleke, je poln
Senzorji na dotik-5
Senzor sile-1
GPU 6050 - 4
(ali)
GPU 6050 - 2 in merilnik pospeška - 2
Vr kozarci
Telefon z vrtom
Osebni računalnik
Dostopna točka WiFi
Pištola za igrače
PC igra (uporabljal sem Call of Duty-Modern Warfare 1)
Žice za kruh (moški-ženski)
ARDUINO LEONARDO-2
Autonova ponjava - 2
Napajanje (lipo)
Mavrične žice
2. korak: HARDWARE
*reload_pin, shoot_pin, pin of night vision, grenade_pin, weapon change_pin so senzorji na dotik. aim_pin je senzor sile in miško posnema MPU6050, drugi senzorji so merilnik pospeška (drža, gibanje 1 in 2)
1.1) SPAJANJE
SOLDER MPU 6050, merilnik pospeška, senzor na dotik in senzor sile z žicami
1.2) OŽIČENJE
Za MPU 6050-
Pin 2- SDA
Pin 3- SCL
GND - GND
5v - PWR/VCC
Za motion_pin1-
Pin A1- x os
GND-GND
5v - PWR/VCC
Za motion_pin2-
Pin A2- x os
GND-GND
5v - PWR/VCC
Za posture_pin-
Pin A0-x os
GND-GND
5v - PWR/VCC
za pištolo za orožje -
sig-5v
GND-GND
5v - PWR/VCC
Za Reload_pin -
pin12 - 5v
GND-GND
5v - PWR/VCC
Za Nightvision_pin -
pin 10 - 5v
GND-GND
5v - PWR/VCC
Za shoot_pin -
Pin7 - 5v
GND-GND
5v - PWR/VCC
Za aim_pin -
Pin 8 - 5v
5v - PWR/VCC
1.3) SPAJALNE Žice
Spajite žice plošče za kruh z mavričnimi žicami
1.4) IZOLACIJA
Žice z izolacijskim trakom prilepite na mesto, kjer ste spajkali, da se izognete kratkemu stiku
3. korak: PROGRAMSKA OPREMA
Za predvajanje videoposnetka iz prenosnega računalnika v telefon sem uporabil aplikacijo Remotr
2.1) DALJINSKI
Namestite aplikacijo REMOTR v računalnik in ustvarite račun
Tukaj je povezava-
remotrapp.com/#download
Namestite aplikacijo REMOTR v pametni telefon
2.2) VIDEO POTIČANJE
Najprej povežite računalnik in isto omrežje WiFi ter v obeh napravah vnesite svoj račun REMOTR
zdaj ročno dodajte igro, ki jo želite pretočno predvajati v programski opremi
zdaj bo aplikacija prikazala računalnik kot skrbnik, kliknite za začetek pretakanja
Za pretakanje v VR omogočite način vr v pametnem telefonu
Če ne razumete, za podrobne informacije preverite to povezavo
remotrapp.com/en/howto
4. korak: GLAVNA KODA
Koda za ta projekt ni težka ali zapletena, ampak dolga
Tukaj je koda, ki jo preprosto kopirajte in prilepite v datoteko arduino
ARDUINO
Miška LEONARDO-
Predlagal sem Gabry295. Ta koda miške temelji na njegovi glavi Miška, ki jo je mogoče naročiti
#vključi
#vključi
#vključi
#vključi
int aim_pin;
int shoot_pin;
MPU6050 mpu;
int16_t sekira, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
medtem ko (1);
}
pinMode (7, INPUT);
pinMode (8, VHOD);
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx-300)/200; // Postavil sem -300 in +490, saj moj mpu6050 prikazuje te vrednosti, ko se ne premika
vy = -(gz+490)/200; // za več podrobnosti o teh vrednostih preveri kodo glave miške Gabry295
Mouse.move (vx, vy);
zamuda (20);
medtem ko (ustreli_pin == VISOKO);
{
Mouse.click ();
}
medtem ko (aim_pin == HIGH);
{
Mouse.click ();
}
}
Leonardo tipkovnica
#vključi
int granata;
int weapon_pin;
int reload_pin;
int motion1_pin;
int motion2_pin;
int posture_pin;
char nightvision_pin;
void setup ()
{
pinMode (7, VHOD);
pinMode (8, VHOD);
pinMode (9, VHOD);
pinMode (10, INPUT);
pinMode (11, INPUT);
pinMode (12, VHOD);
pinMode (A0, INPUT);
pinMode (A1, INPUT);
Keyboard.begin ();
}
void loop ()
{
Grenade_pin = digitalRead (8);
gun_pin = digitalno branje (9);
move1_pin = analogRead (A1);
move2_pin = analogRead (A2);
posture_pin = analogRead (A0);
reload_pin = digitalRead (12);
nightvision_pin = digitalRead (10);
če (granata == VISOKO)
{
Keyboard.press ('g');
}
medtem ko (orožni_pin == VISOKO)
{
Keyboard.press ('q');
}
medtem ko (reload_pin == HIGH)
{
Keyboard.press ('r');
}
medtem ko (motion1_pin> 340 && motion1_pin <420)
{
Keyboard.press ('w');
}
medtem ko (motion1_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
medtem ko (motion2_pin> 340 && motion2_pin <420)
{
Keyboard.press ('w');
}
medtem ko (motion2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
medtem ko (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
medtem ko (posture_pin> 420)
{
Keyboard.press ('l');
}
medtem ko (posture_pin <340)
{
Keyboard.press ('z');
}
medtem ko (nightvision_pin == HIGH)
{
Keyboard.press ('n');
}
}
}
5. korak: PRESKUSNE KODE
Tu je nekaj kod, ločenih od glavne kode glede na funkcijo
Streljanje-
#vključi
int x;
void setup () {
pinMode (8, VHOD);
Mouse.begin ();
}
void loop () {
x = digitalno branje (8);
če (x == VISOKO)
{
Mouse.click ('g');
}
}
CILJ-
#vključi
#vključi
#vključi
#vključi
MPU6050 mpu;
int16_t sekira, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
medtem ko (1);
}
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300", ker os x žiroskopa daje vrednosti okoli -350, medtem ko se ne premika. Spremenite to vrednost, če s kodo TEST dobite kaj drugega, če preverite, ali so vrednosti daleč od nič.
vy = -(gz_ -100)/200; // enako tukaj glede "-100"
PONOVNO NAČITANJE-
#vključi
int x;
void setup () {
pinMode (8, VHOD);
Keyboard.begin ();
}
void loop () {
x = digitalno branje (8);
če (x == VISOKO)
{
Keyboard.press ('r');
}
drugače
{
Keyboard.release ('r');
}
}
NIGHT VISIO #include
int x;
void setup () {
pinMode (8, VHOD);
Keyboard.begin ();
}
void loop () {
x = digitalno branje (8);
če (x == VISOKO)
{
Keyboard.press ('g');
}
drugače
{
Keyboard.release ('g');
}
}
CROCHCH AND PRONE-
#vključi
int y;
void setup () {
pinMode (A0, INPUT);
Serial.begin (9600);
}
void loop () {
y = analogno branje (A0);
če (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
drugače če (y> 260 && y <310)
{
Keyboard.press ('c');
}
drugače če (y> 310)
{
Keyboard.press ('p');
}
}
6. korak: NADZOR IGRE
nadzor igre spremenite na naslednji način
počep - x
nagnjen - l
menjava orožja - q
sprint - str
stoj/skok - z
nočni vid - n
gibanje naprej - w
granata - g
7. korak: NASTAVITEV
Končno smo prišli do zadnjega koraka, zdaj postavimo arduino
deske v škatli in jih spravite v vrečko
Zdaj priključite mikro USB arduina na vrata USB prenosnega računalnika. Zdaj povežite senzorje, kot je opisano zgoraj
*puščice na zgornjih slikah predstavljajo smer, kamor mora biti obrnjen senzor
Če dvomite, ne oklevajte in pustite komentar in ne pozabite deliti svoje izkušnje
To je to hvala in
Adijo.