Cuprins:
- Pasul 1: Cerințe
- Pasul 2: HARDWARE
- Pasul 3: SOFTWARE
- Pasul 4: CODUL PRINCIPAL
- Pasul 5: CODURI DE TESTARE
- Pasul 6: CONTROLUL JOCULUI
- Pasul 7: CONFIGURARE
Video: Costum de realitate virtuală folosind Arduino: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Am creat acest proiect pentru a juca jocuri normale pe computer în VR complet. Acest proiect emulează mișcările tale prin apăsarea sau menținerea tastelor tastaturii
Exemplu - când vă deplasați înainte se emulează acțiunea de apăsare a tastei „w”.
Am imitat jocul Call of Duty 4: Modern Warfare, dar nu alegeți jocuri care au recul în timp ce fotografiați, deoarece va schimba poziția implicită a mouse-ului
Pasul 1: Cerințe
Cerințele sunt-
Există o listă plină de lucruri de care aveți nevoie pentru a face acest costum
Senzori tactili-5
Senzor de forță-1
GPU 6050 - 4
(sau)
GPU 6050 - 2 și accelerometru - 2
Vr ochelari
Telefon activat Vr
PC
Hotspot WiFi
Un pistol de jucărie
Un joc pentru PC (am folosit Call of Duty - Modern Warfare 1)
Sârme de panouri pentru pâine (masculin-feminin)
ARDUINO LEONARDO-2
Auton sheild - 2
Sursa de alimentare (lipo)
Firele curcubeului
Pasul 2: HARDWARE
* reload_pin, shoot_pin, night_pin, grenade_pin, arma change_pin sunt senzori tactili. aim_pin este senzorul de forță și mouse-ul este emulat de MPU6050 alți senzori sunt accelerometru (postură, mișcare1 și 2)
1.1) SUDARE
SOLDER MPU 6050, accelerometru, senzor tactil și senzor de forță cu firele
1.2) Cablare
Pentru MPU 6050-
Pinul 2 - SDA
Pinul 3- SCL
GND - GND
5v - PWR / VCC
Pentru movement_pin1-
Pinul A1- axa x
GND-GND
5v - PWR / VCC
Pentru movement_pin2-
Pinul A2- axa x
GND-GND
5v - PWR / VCC
Pentru postura_pin-
Pinul A0- axa x
GND-GND
5v - PWR / VCC
pentru arma_pin -
sig-5v
GND-GND
5v - PWR / VCC
Pentru Reload_pin -
pin12 - 5v
GND-GND
5v - PWR / VCC
Pentru Nightvision_pin -
pin 10 - 5v
GND-GND
5v - PWR / VCC
Pentru shoot_pin -
Pin7 - 5v
GND-GND
5v - PWR / VCC
Pentru aim_pin -
Pinul 8 - 5v
5v - PWR / VCC
1.3) SIRURI DE SUDARE
Lipiți firele plăcii de pâine cu firele curcubeu
1.4) ISOLARE
Bandați firele cu banda izolatoare pe locul unde ați lipit pentru a evita scurtcircuitele
Pasul 3: SOFTWARE
Am folosit o aplicație numită „Remotr” din magazinul Play pentru a proiecta videoclipul de pe laptop pe telefon
2.1) REMOTR-
Instalați aplicația REMOTR pe computer și creați un cont
Iată linkul-
remotrapp.com/#download
Instalați aplicația REMOTR în smartphone
2.2) STREAMING VIDEO
Mai întâi conectați computerul și aceeași rețea WiFi și introduceți contul REMOTR în ambele dispozitive
acum adăugați manual jocul pe care doriți să îl transmiteți în software
acum aplicația va afișa computerul ca administrator faceți clic pe el pentru a începe transmisia
Pentru a transmite în flux în VR, activați modul vr pe telefonul smartphone
Dacă nu înțelegeți, verificați acest link pentru informații detaliate
remotrapp.com/en/howto
Pasul 4: CODUL PRINCIPAL
Codul pentru acest proiect nu este dur sau complex, ci unul lung
Iată codul, doar copiați-l și lipiți-l în fișierul dvs. arduino
ARDUINO
Mouse-ul LEONARDO
Am referit Gabry295. Acest cod de mouse se bazează pe capul său
#include
#include
#include
#include
int aim_pin;
int shoot_pin;
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
configurare nulă () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
în timp ce (1);
}
pinMode (7, INPUT);
pinMode (8, INPUT);
}
bucla nulă () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx-300) / 200; // Am pus -300 și +490, deoarece mpu6050 arată aceste valori atunci când nu se deplasează verificare
vy = - (gz + 490) / 200; // verificați codul mouse-ului principal de Gabry295 pentru mai multe detalii despre aceste valori
Mouse.move (vx, vy);
întârziere (20);
while (shoot_pin == HIGH);
{
Mouse.click ();
}
while (aim_pin == HIGH);
{
Mouse.click ();
}
}
Tastatura Leonardo
#include
int Grenade;
int arma_pin;
int reload_pin;
int movement1_pin;
int movement2_pin;
int postura_pin;
char nightvision_pin;
configurare nulă ()
{
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 ();
}
bucla nulă ()
{
Grenade_pin = digitalRead (8);
arma_pin = digitalRead (9);
mișcare1_pin = analogRead (A1);
movement2_pin = analogRead (A2);
postura_pin = analogRead (A0);
reload_pin = digitalRead (12);
nightvision_pin = digitalRead (10);
if (grenadă == HIGH)
{
Keyboard.press ('g');
}
while (arma_pin == HIGH)
{
Keyboard.press ('q');
}
while (reload_pin == HIGH)
{
Keyboard.press ('r');
}
while (movement1_pin> 340 && movement1_pin <420)
{
Keyboard.press ('w');
}
while (movement1_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
while (movement2_pin> 340 && movement2_pin <420)
{
Keyboard.press ('w');
}
while (movement2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
while (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
while (posture_pin> 420)
{
Keyboard.press ('l');
}
while (posture_pin <340)
{
Keyboard.press ('z');
}
while (nightvision_pin == HIGH)
{
Keyboard.press ('n');
}
}
}
Pasul 5: CODURI DE TESTARE
Iată câteva coduri împărțite de codul principal în funcție de funcție
FILMARE-
#include
int x;
configurare nulă () {
pinMode (8, INPUT);
Mouse.begin ();
}
bucla nulă () {
x = digitalRead (8);
if (x == HIGH)
{
Mouse.click („g”);
}
}
OBIECTIV-
#include
#include
#include
#include
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
configurare nulă () {
Serial.begin (9600);
Mouse.begin ();
Wire.begin ();
mpu.initialize ();
if (! mpu.testConnection ()) {
în timp ce (1);
}
}
bucla nulă () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx + 300) / 200; // „+300” deoarece axa x a giroscopului dă valori de aproximativ -350 în timp ce nu se mișcă. Schimbați această valoare dacă obțineți ceva diferit folosind codul TEST, urmărind dacă există valori departe de zero.
vy = - (gz_-100) / 200; // același lucru aici despre „-100”
REÎNCĂRCARE-
#include
int x;
configurare nulă () {
pinMode (8, INPUT);
Keyboard.begin ();
}
bucla nulă () {
x = digitalRead (8);
if (x == HIGH)
{
Keyboard.press ('r');
}
altceva
{
Keyboard.release („r”);
}
}
VISOA DE NOAPTE #include
int x;
configurare nulă () {
pinMode (8, INPUT);
Keyboard.begin ();
}
bucla nulă () {
x = digitalRead (8);
if (x == HIGH)
{
Keyboard.press („g”);
}
altceva
{
Keyboard.release („g”);
}
}
CROUCH ȘI PROCEDURĂ-
#include
int y;
configurare nulă () {
pinMode (A0, INPUT);
Serial.begin (9600);
}
bucla nulă () {
y = analogRead (A0);
dacă (y <260)
{
Keyboard.release („c”);
Keyboard.release („p”);
}
altfel dacă (y> 260 && y <310)
{
Keyboard.press ('c');
}
altfel dacă (y> 310)
{
Keyboard.press ('p');
}
}
Pasul 6: CONTROLUL JOCULUI
schimbați comenzile jocului după cum urmează
ghemuit - x
predispus - l
schimbarea armei - q
sprint - p
stand / jump - z
viziune de noapte - n
mișcare înainte - w
grenadă - g
Pasul 7: CONFIGURARE
În cele din urmă am ajuns la ultimul pas acum pune arduino
scânduri într-o cutie și introduceți-o în pungă
Acum conectați micro USB-ul arduino la porturile USB ale laptopului acum conectați senzorii conform instrucțiunilor de mai sus
* semnele săgeții din imaginile de mai sus reprezintă direcția pe care trebuie să o orienteze senzorul
Dacă aveți îndoieli, nu ezitați să lăsați un comentariu și nu uitați să împărtășiți experiența dvs.
Asta e mulțumesc și
PA.
Recomandat:
Realitate virtuală pe Raspberry Pi cu BeYourHero !: 19 pași (cu imagini)
Realitate virtuală pe Raspberry Pi cu BeYourHero !: Bine ați venit la „Fii eroul tău” proiect! Sper că sunteți gata să intrați în următoarea generație de imersiune în realitate virtuală! Acest proiect vă va oferi un control complet al gesturilor oricărui erou virtual care vă place cu un set simplu de dispozitive ieftine care utilizează se
Mașină RC controlată de realitate virtuală: 9 pași
Mașină RC controlată de realitate virtuală: ți-ai dorit vreodată să fii micșorat și să pilotezi o ambarcațiune precum Innerspace sau Fantastic Voyage? Ei bine, cred că acest lucru este la fel de aproape pe cât veți obține cu o notificare scurtă! Iată terenul: o mașină cu telecomandă din viața reală pilotată de un om de realitate virtuală
A sari inapoi ! Joc de realitate virtuală folosind Arduino și Acclerometer: 9 pași
A sari inapoi ! Joc de realitate virtuală folosind Arduino și Acclerometer: În acest tutorial vom crea un joc de realitate virtuală folosind Arduino și Acclerometer
Ochelari de realitate virtuală și mixtă: 15 pași (cu imagini)
Ochelari de realitate virtuală și mixtă: Introducere: În timpul cursului de master Tehnologie pentru proiectare conceptuală ni s-a cerut să explorăm o tehnologie emergentă care se potrivește proiectului nostru principal și să testăm această tehnologie realizând un prototip. Tehnologiile pe care le-am ales sunt atât realitate virtuală
Realitate virtuală mobilă folosind procesarea pentru Android (TfCD): 7 pași (cu imagini)
Realitatea virtuală mobilă utilizând procesarea pentru Android (TfCD): Realitatea virtuală (VR) este una dintre noile tehnologii care ar putea fi interesante în viitorul produselor. Are o mulțime de oportunități și nici nu aveți nevoie de ochelari VR scumpi (Oculus Rift). Poate părea foarte greu să te faci singur, dar elementele de bază sunt