Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Olen selle projekti loonud tavaliste arvutimängude mängimiseks täies VR -is. See projekt jäljendab teie liigutusi klaviatuuri klahvide vajutamisel või hoidmisel
Näide- kui liigute edasi, jäljendatakse klahvi "w" vajutamist.
Olen jäljendanud mängu Call of Duty 4: Modern Warfare, kuid ärge valige mänge, millel on pildistamise ajal tagasilöök, sest see muudab hiire vaikeasendit
Samm: nõuded
Nõuded on-
Seal on nimekiri täis asju, mida vajate selle ülikonna valmistamiseks
Puuteandurid-5
Jõuandur-1
GPU 6050 - 4
(või)
GPU 6050 - 2 ja kiirendusmõõtur - 2
Vr prillid
Vr toega telefon
PC
WiFi leviala
Mängupüstol
Arvutimäng (olen kasutanud Call of Duty- Modern Warfare 1)
Leivaplaadi juhtmed (mees-naine)
ARDUINO LEONARDO-2
Autonoomne kilp - 2
Toiteallikas (lipo)
Vikerkaare juhtmed
2. samm: RIISTVARA
*reload_pin, shoot_pin, night vision_pin, grenade_pin, relva change_pin on puutetundlikud andurid. aim_pin on jõuandur ja hiirt emuleerib MPU6050, teised andurid on kiirendusmõõtur (asend, liikumine1 ja 2)
1.1) JUOTMINE
SOLDER MPU 6050, kiirendusmõõtur, puutetundlik andur ja juhtmetega jõuandur
1.2) TREENING
MPU 6050- jaoks
Pin 2- SDA
Tihvt 3- SCL
GND - GND
5v - PWR/VCC
Liikumise_pin1- jaoks
Tihvt A1- x telg
GND-GND
5v - PWR/VCC
Liikumise_pin2- jaoks
Tihvt A2- x telg
GND-GND
5v - PWR/VCC
Posture_pin- jaoks
Tihvt A0- x telg
GND-GND
5v - PWR/VCC
jaoks gun_pin -
sig-5v
GND-GND
5v - PWR/VCC
Reload_pin jaoks -
pin 12 - 5v
GND-GND
5v - PWR/VCC
Nightvision_pin jaoks -
tihvt 10 - 5 V.
GND-GND
5v - PWR/VCC
Shoot_pin jaoks -
Pin 7 - 5v
GND-GND
5v - PWR/VCC
Aim_pin jaoks -
Pin 8 - 5v
5v - PWR/VCC
1.3) JUOTMISJUHENDID
Jootage leivaplaadi juhtmed vikerkaare juhtmetega
1.4) Isolatsioon
Kleepige juhtmed isoleerlindiga kohale, kus olete jootnud, et vältida lühiseid
3. samm: TARKVARA
Olen kasutanud Play poe rakendust nimega „Remotr” video edastamiseks sülearvutist telefoni
2.1) REMOTR-
Installige oma arvutisse rakendus REMOTR ja looge konto
Siin on link-
remotrapp.com/#download
Installige nutitelefoni rakendus REMOTR
2.2) VIDEO STREAMING
Esmalt ühendage arvuti ja sama WiFi -võrk ning sisestage oma REMOTR -konto mõlemasse seadmesse
lisage nüüd tarkvara, mida soovite voogesitada, käsitsi
nüüd näitab rakendus arvutit administraatorina, et seda voogesituse alustamiseks klõpsata
VR -is voogesitamiseks lubage nutitelefonis VR -režiim
Kui te ei saa aru, vaadake üksikasjalikku teavet sellelt lingilt
remotrapp.com/en/howto
4. samm: PÕHIKOOD
Selle projekti kood ei ole raske ega keeruline, kuid pikk
Siin on kood, lihtsalt kopeerige see ja kleepige see oma arduino -faili
ARDUINO
LEONARDO hiir-
Olen viitanud Gabry295 -le. See hiirekood põhineb tema peaga Hiir juhendatav
#kaasake
#kaasake
#kaasake
#kaasake
int aim_pin;
int shoot_pin;
MPU6050 mpu;
int16_t kirves, ay, az, gx, gy, gz;
int vx, vy;
tühine seadistus () {
Seriaalne algus (9600);
Hiir.algus ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
samas (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; // Olen pannud -300 ja +490, kuna minu mpu6050 näitab neid väärtusi, kui tšekki ei liigutata
vy = -(gz+490)/200; // nende väärtuste kohta lisateabe saamiseks kontrollige peahiire koodi Gabry295 poolt
Hiir.move (vx, vy);
viivitus (20);
while (shoot_pin == HIGH);
{
Hiir.klõps ();
}
while (aim_pin == HIGH);
{
Hiir.klõps ();
}
}
Leonardo klaviatuur
#kaasake
int Granaat;
int relva_nõel;
int reload_pin;
int liikumine1_pin;
int liikumine2_pin;
int posture_pin;
char nightvision_pin;
tühine seadistus ()
{
pinMode (7, INPUT);
pinMode (8, INPUT);
pinMode (9, INPUT);
pinMode (10, INPUT);
pinMode (11, INPUT);
pinMode (12, INPUT);
pinMode (A0, INPUT);
pinMode (A1, INPUT);
Klaviatuur.begin ();
}
tühine tsükkel ()
{
Grenade_pin = digitalRead (8);
relvapulk = digitalRead (9);
motion1_pin = analogRead (A1);
motion2_pin = analogRead (A2);
poos_pin = analoogLoe (A0);
reload_pin = digitalRead (12);
nightvision_pin = digitalRead (10);
kui (granaat == KÕRGE)
{
Keyboard.press ('g');
}
samas (relvapulk == KÕRGE)
{
Keyboard.press ('q');
}
samas (reload_pin == HIGH)
{
Keyboard.press ('r');
}
samas (motion1_pin> 340 && motion1_pin <420)
{
Keyboard.press ('w');
}
samas (liikumine1_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
samas (motion2_pin> 340 && motion2_pin <420)
{
Keyboard.press ('w');
}
samas (liikumine2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
samas (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
samas (posture_pin> 420)
{
Keyboard.press ('l');
}
samas (poos_pin <340)
{
Keyboard.press ('z');
}
samas (nightvision_pin == HIGH)
{
Keyboard.press ('n');
}
}
}
5. samm: TESTIKOODID
Siin on mõned koodid jagatud põhikoodist vastavalt funktsioonile
Tulistamine-
#kaasake
int x;
tühine seadistus () {
pinMode (8, INPUT);
Hiir.algus ();
}
void loop () {
x = digitalRead (8);
kui (x == KÕRGE)
{
Hiir.klõps ('g');
}
}
EESMÄRK-
#kaasake
#kaasake
#kaasake
#kaasake
MPU6050 mpu;
int16_t kirves, ay, az, gx, gy, gz;
int vx, vy;
tühine seadistus () {
Seriaalne algus (9600);
Hiir.algus ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
samas (1);
}
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300", sest güroskoobi x -telg annab väärtusi umbes -350, kui see ei liigu. Muutke seda väärtust, kui saate TEST -koodi abil midagi muud, kontrollides, kas väärtused on nullist kaugel.
vy = -(gz_ -100)/200; // sama siin "-100" kohta
LAADIMINE-
#kaasake
int x;
tühine seadistus () {
pinMode (8, INPUT);
Klaviatuur.begin ();
}
void loop () {
x = digitalRead (8);
kui (x == KÕRGE)
{
Keyboard.press ('r');
}
muidu
{
Keyboard.release ('r');
}
}
ÖÖVISIOON #kaasas
int x;
tühine seadistus () {
pinMode (8, INPUT);
Klaviatuur.begin ();
}
void loop () {
x = digitalRead (8);
kui (x == KÕRGE)
{
Keyboard.press ('g');
}
muidu
{
Keyboard.release ('g');
}
}
KROUTS JA KALTUS-
#kaasake
int y;
tühine seadistus () {
pinMode (A0, INPUT);
Seriaalne algus (9600);
}
void loop () {
y = analooglugemine (A0);
kui (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
muidu kui (y> 260 && y <310)
{
Keyboard.press ('c');
}
muidu kui (y> 310)
{
Keyboard.press ('p');
}
}
6. samm: MÄNGU JUHTIMINE
muutke mängu juhtelemente järgmiselt
kükitama - x
altid - l
relva vahetus - q
sprint - lk
seista/hüpata - z
öine nägemine - n
ettepoole liikumine - w
granaat - g
Samm 7: SEADISTAMINE
Lõpuks oleme jõudnud viimase sammu juurde, pannes nüüd arduino
lauad kasti ja libistage see kotti
Nüüd ühendage arduino mikro -USB sülearvuti USB -portidega ja ühendage andurid, nagu eespool kirjeldatud
*Ülaltoodud piltidel olevad noolemärgid tähistavad suunda, mida andur peab vaatama
Kui teil on kahtlusi, jätke julgelt kommentaar ja ärge unustage oma kogemusi jagada
See on aitäh ja
BYE.