Përmbajtje:
Video: Kostumi i realitetit virtual duke përdorur Arduino: 7 hapa (me fotografi)
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Unë e kam krijuar këtë projekt për të luajtur lojëra kompjuterike normale në VR të plotë. Ky projekt imiton lëvizjet tuaja duke shtypur ose mbajtur tastet e tastierës suaj
Shembull- kur ecni përpara emulohet veprimi i shtypjes së tastit 'w'.
Unë kam imituar lojën Call of Duty 4: Modern Warfare por mos zgjidhni lojëra që kanë zmbrapsje gjatë xhirimit sepse do të ndryshojë pozicionin e paracaktuar të miut
Hapi 1: Kërkesat
Kërkesat janë-
Ekziston një listë plot me gjëra që ju nevojiten për të bërë këtë kostum
Sensorë prekës-5
Sensori i forcës-1
GPU 6050 - 4
(ose)
GPU 6050 - 2 & Përshpejtues - 2
Vr syze
Telefoni i aktivizuar me Vr
PC
Pikë e nxehtë WiFi
Një armë lodër
Një lojë kompjuterike (kam përdorur Call of Duty- Modern Warfare 1)
Telat e bordit të bukës (Mashkull-Femër)
ARDUINO LEONARDO-2
Mbështjellës Auton - 2
Burimi i energjisë (lipo)
Tela ylberi
Hapi 2: HARDWARE
*kunja e rimbushjes, kunja e gjuajtjes, kunja e shikimit të natës, kunja e granatës, kunja e ndryshimit të armës janë sensorë prekjeje. syn_pin është sensori i forcës dhe miu emulohet nga MPU6050 sensorë të tjerë janë përshpejtues (qëndrimi, lëvizja 1 & 2)
1.1) SHTRIM
SOLDER MPU 6050, Accelerometer, Touch Sensor & sensor i forcës me tela
1.2) TELIMI
Për MPU 6050-
Pin 2- SDA
Pin 3- SCL
GND - GND
5v - PWR/VCC
Për lëvizjen_kunja1-
Boshti A1- x bosht
GND-GND
5v - PWR/VCC
Për lëvizjen_pin2-
Pin A2- boshti x
GND-GND
5v - PWR/VCC
Për qëndrimin_kunjë-
Boshti A0- x bosht
GND-GND
5v - PWR/VCC
për majën e armës -
sig-5v
GND-GND
5v - PWR/VCC
Për Reload_pin -
pin12 - 5v
GND-GND
5v - PWR/VCC
Për Nightvision_pin -
pin 10 - 5v
GND-GND
5v - PWR/VCC
Për kunjin e xhirimit -
Pin7 - 5v
GND-GND
5v - PWR/VCC
Për pin_ qëllimi -
Pin 8 - 5v
5v - PWR/VCC
1.3) LIDHJA E TELAVE
Lidhni telat e bordit të bukës me telat e ylberit
1.4) Izolimi
Ngjitini telat me shirit izolues në vendin ku jeni ngjitur për të shmangur qarqet e shkurtra
Hapi 3: SOFTUER
Unë kam përdorur një aplikacion të quajtur 'Remotr' nga Play store për të hedhur videon nga laptopi në telefon
2.1) REMOTR-
Instaloni aplikacionin REMOTR në kompjuterin tuaj dhe krijoni një llogari
Këtu është lidhja-
remotrapp.com/#download
Instaloni aplikacionin REMOTR në smartphone tuaj
2.2) VIDEO STRAMING
Së pari lidhni kompjuterin dhe të njëjtin rrjet WiFi dhe futni llogarinë tuaj REMOTR në të dyja pajisjet
tani shtoni me dorë lojën që dëshironi të transmetoni në softuer
tani aplikacioni do të tregojë kompjuterin si administrator klikoni atë për të filluar transmetimin
Për të transmetuar në VR aktivizoni modalitetin vr në smartphone tuaj
Nëse nuk mund ta kuptoni, kontrolloni këtë lidhje për informacion të detajuar
remotrapp.com/sq/howto
Hapi 4: KODI KRYESOR
Kodi për këtë projekt nuk është i ashpër ose kompleks, por i gjatë
Këtu është kodi thjesht kopjoni dhe ngjiteni në skedarin tuaj arduino
ARDUINO
Mouse LEONARDO-
Unë i kam referuar Gabry295. Ky kod miu bazohet në kokën e tij Mouse udhëzues
#përfshi
#përfshi
#përfshi
#përfshi
int syn_pin;
int shoot_pin;
MPU6050 mpu;
int16_t sëpatë, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.filloj (9600);
Mouse.filloj ();
Wire.begin ();
mpu.initialize ();
nëse (! mpu.testConnection ()) {
ndërsa (1);
}
pinMode (7, INPUT);
pinMode (8, INPUT);
}
lak void () {
shoot_pin = digitalRead (7);
synimi_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx-300)/200; // Unë kam vënë -300 dhe +490 pasi mpu6050 tregojnë këto vlera kur nuk lëviz kontroll
vy = -(gz+490)/200; // kontrolloni kodin e miut të kokës nga Gabry295 për më shumë detaje mbi këto vlera
Miu. Lëviz (vx, vy);
vonesa (20);
ndërsa (pin_ shoot == LART);
{
Mouse.click ();
}
ndërsa (syn_pin == LART);
{
Mouse.click ();
}
}
Tastiera Leonardo
#përfshi
int granatë;
int arma_kunga;
int reload_pin;
int lëvizja1_pin;
int lëvizja2_pin;
int posture_pin;
karikues 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);
Tastiera.filloj ();
}
lak void ()
{
Grenada_pin = digitalRead (8);
kunja e armës = digitalRead (9);
lëvizja1_pin = analogRead (A1);
lëvizje2_pin = analogRead (A2);
posture_pin = analogRead (A0);
ringarkoni_pin = digitalRead (12);
nightvision_pin = digitalRead (10);
nëse (granatë == LART)
{
Keyboard.press ('g');
}
ndërsa (kunja e armës == LART)
{
Keyboard.press ('q');
}
ndërsa (ringarkimi_pin == LART)
{
Keyboard.press ('r');
}
ndërsa (lëvizja1_pin> 340 && lëvizja1_pin <420)
{
Keyboard.press ('w');
}
ndërsa (lëvizja_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
ndërsa (lëvizja2_pin> 340 && lëvizja2_pin <420)
{
Keyboard.press ('w');
}
ndërsa (lëvizja2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
ndërsa (kunja e posturës> 340 && kunja e posturës <420)
{
Keyboard.press ('c');
}
ndërsa (kunja e qëndrimit> 420)
{
Keyboard.press ('l');
}
ndërsa (kunja e qëndrimit <340)
{
Keyboard.press ('z');
}
ndërsa (kopja e shikimit të natës == LART)
{
Keyboard.press ('n');
}
}
}
Hapi 5: KODET E TESTIMIT
Këtu janë disa kode të ndara nga kodi kryesor sipas funksionit
Xhirimi-
#përfshi
int x;
void setup () {
pinMode (8, INPUT);
Mouse.filloj ();
}
lak void () {
x = digitalRead (8);
nëse (x == LART)
{
Mouse.kliko ('g');
}
}
Q ALLIMI-
#përfshi
#përfshi
#përfshi
#përfshi
MPU6050 mpu;
int16_t sëpatë, ay, az, gx, gy, gz;
int vx, vy;
void setup () {
Serial.filloj (9600);
Mouse.filloj ();
Wire.begin ();
mpu.initialize ();
nëse (! mpu.testConnection ()) {
ndërsa (1);
}
}
lak void () {
shoot_pin = digitalRead (7);
synimi_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300" sepse boshti x i xhiroskopit jep vlera rreth -350 ndërsa nuk lëviz. Ndryshoni këtë vlerë nëse merrni diçka të ndryshme duke përdorur kodin TEST, duke kontrolluar nëse ka vlera larg zeros.
vy = -(gz_ -100)/200; // e njëjta këtu për "-100"
NGARJA-
#përfshi
int x;
void setup () {
pinMode (8, INPUT);
Tastiera.filloj ();
}
lak void () {
x = digitalRead (8);
nëse (x == LART)
{
Keyboard.press ('r');
}
tjeter
{
Keyboard.release ('r');
}
}
VIZIONI I NET #përfshini
int x;
void setup () {
pinMode (8, INPUT);
Tastiera.filloj ();
}
lak void () {
x = digitalRead (8);
nëse (x == LART)
{
Keyboard.press ('g');
}
tjeter
{
Keyboard.release ('g');
}
}
CROUCH DHE PRON-
#përfshi
int y;
void setup () {
pinMode (A0, INPUT);
Serial.filloj (9600);
}
lak void () {
y = analogRead (A0);
nëse (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
ndryshe nëse (y> 260 && y <310)
{
Keyboard.press ('c');
}
ndryshe nëse (y> 310)
{
Keyboard.press ('p');
}
}
Hapi 6: KONTROLLET E LOJS
ndryshoni kontrollet e lojës si më poshtë
strukem - x
i prirur - l
ndryshimi i armës - q
sprint - f
qëndrim/kërcej - z
vizion nate - n
lëvizje përpara - w
granatë - g
Hapi 7: P SRDORIMI
Së fundi ne kemi ardhur në hapin e fundit tani vënë arduino
dërrasat në një kuti dhe futeni në thes
Tani lidhni mikro USB e arduino me portat USB të laptopit, tani lidhni sensorët siç udhëzohet më sipër
*shenjat e shigjetave në fotografitë e mësipërme përfaqësojnë drejtimin që sensori duhet të ketë
Nëse keni ndonjë dyshim mos hezitoni të lini një koment dhe mos harroni të ndani përvojën tuaj
Kjo është ajo faleminderit dhe
POR