Table des matières:

Costume de réalité virtuelle utilisant Arduino: 7 étapes (avec photos)
Costume de réalité virtuelle utilisant Arduino: 7 étapes (avec photos)

Vidéo: Costume de réalité virtuelle utilisant Arduino: 7 étapes (avec photos)

Vidéo: Costume de réalité virtuelle utilisant Arduino: 7 étapes (avec photos)
Vidéo: Faire de l’intelligence artificielle en 5min avec ça ! 2024, Juillet
Anonim
Combinaison de réalité virtuelle utilisant Arduino
Combinaison de réalité virtuelle utilisant Arduino

J'ai créé ce projet pour jouer à des jeux informatiques normaux en VR complet. Ce projet émule vos mouvements en appuyant ou en maintenant les touches de votre clavier

Exemple - lorsque vous avancez, l'action d'appuyer sur la touche « w » est émulée.

J'ai émulé le jeu Call of Duty 4: Modern Warfare mais ne choisissez pas les jeux qui ont du recul lors du tir car cela changera la position par défaut de la souris

Étape 1: Exigences

Les exigences sont-

Il y a une liste pleine de choses dont vous avez besoin pour faire ce costume

Capteurs tactiles-5

Capteur de force-1

GPU 6050 - 4

(ou)

GPU 6050 - 2 & Accéléromètre - 2

lunettes de réalité virtuelle

Téléphone compatible VR

ordinateur

Borne wifi

Un pistolet jouet

Un jeu pc (j'ai utilisé Call of Duty - Modern Warfare 1)

Fils de planche à pain (Mâle-Femelle)

ARDUINO LEONARDO-2

Bouclier Auton - 2

Source d'alimentation (lipo)

Fils arc-en-ciel

Étape 2: MATÉRIEL

MATÉRIEL
MATÉRIEL
MATÉRIEL
MATÉRIEL
MATÉRIEL
MATÉRIEL

*reload_pin, shoot_pin, night vision_pin, grenade_pin, Weapon change_pin sont des capteurs tactiles. aim_pin est un capteur de force et la souris est émulée par MPU6050 d'autres capteurs sont un accéléromètre (posture, mouvement1 & 2)

1.1) SOUDURE

SOUDURE MPU 6050, accéléromètre, capteur tactile et capteur de force avec les fils

1.2) CABLAGE

Pour MPU 6050-

Broche 2- SDA

Broche 3- SCL

GND - GND

5v - PWR/VCC

Pour mouvement_pin1-

Broche A1- axe x

GND-GND

5v - PWR/VCC

Pour mouvement_pin2-

Broche A2- axe x

GND-GND

5v - PWR/VCC

Pour posture_pin-

Broche A0- axe x

GND-GND

5v - PWR/VCC

pour arme_pin -

sig-5v

GND-GND

5v - PWR/VCC

Pour Reload_pin -

broche12 – 5v

GND-GND

5v - PWR/VCC

Pour Nightvision_pin -

broche 10 - 5v

GND-GND

5v - PWR/VCC

Pour shoot_pin –

Broche 7 – 5v

GND-GND

5v - PWR/VCC

Pour aim_pin –

Broche 8 - 5v

5v - PWR/VCC

1.3) FILS À SOUDER

Soudez les fils de la planche à pain avec les fils arc-en-ciel

1.4) ISOLATION

Collez les fils avec le ruban isolant à l'endroit où vous avez soudé pour éviter les courts-circuits

Étape 3: LOGICIEL

LOGICIEL
LOGICIEL
LOGICIEL
LOGICIEL

J'ai utilisé une application appelée "Remotr" de Play Store pour diffuser la vidéo de l'ordinateur portable vers le téléphone

2.1) TÉLÉCOMMANDE-

Installez l'application REMOTR sur votre ordinateur et créez un compte

Voici le lien-

remotrapp.com/#download

Installez l'application REMOTR sur votre smartphone

2.2) STREAMING VIDÉO

Connectez d'abord l'ordinateur et le même réseau WiFi et entrez votre compte REMOTR dans les deux appareils

ajoutez maintenant manuellement le jeu que vous souhaitez diffuser dans le logiciel

maintenant, l'application affichera l'ordinateur en tant qu'administrateur, cliquez dessus pour commencer à diffuser

Pour diffuser en VR, activez le mode vr sur votre smartphone

Si vous ne comprenez pas, consultez ce lien pour des informations détaillées

remotrapp.com/en/howto

Étape 4: CODE PRINCIPAL

Le code de ce projet n'est ni difficile ni complexe mais long

Voici le code il suffit de le copier et de le coller dans votre fichier arduino

ARDUINO

LEONARDO Souris-

J'ai référé Gabry295. Ce code de souris est basé sur sa tête Mouse instructable

#comprendre

#comprendre

#comprendre

#comprendre

int aim_pin;

int shoot_pin;

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

void setup() {

Serial.begin(9600);

Souris.begin();

Fil.begin();

mpu.initialize();

si (!mpu.testConnection()) {

tandis que (1);

}

pinMode(7, ENTRÉE);

pinMode(8, ENTREE);

}

boucle vide() {

shoot_pin = digitalRead (7);

aim_pin = digitalRead(8);

mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

vx = (gx-300)/200; // J'ai mis -300 et +490 car mon mpu6050 affiche ces valeurs lorsqu'il ne bouge pas.

vy = -(gz+490)/200; // vérifier le code de head mouse by Gabry295 pour plus de détails sur ces valeurs

Mouse.move(vx, vy);

retard(20);

while(shoot_pin == HAUT);

{

Clic de souris();

}

while(aim_pin == HAUT);

{

Clic de souris();

}

}

Clavier Léonard

#comprendre

int Grenade;

int arm_pin;

int reload_pin;

int mouvement1_pin;

int mouvement2_pin;

int posture_pin;

char nightvision_pin;

void setup()

{

pinMode(7, ENTRÉE);

pinMode(8, ENTREE);

pinMode(9, ENTRÉE);

pinMode(10, ENTRÉE);

pinMode(11, ENTREE);

pinMode(12, ENTRÉE);

pinMode (A0, ENTREE);

pinMode (A1, ENTREE);

Keyboard.begin();

}

boucle vide()

{

Grenade_pin=digitalRead(8);

arme_pin = digitalRead(9);

mouvement1_pin = analogRead(A1);

mouvement2_pin = analogRead(A2);

posture_pin = analogRead(A0);

reload_pin = digitalRead(12);

nightvision_pin = digitalRead(10);

si(grenade==ÉLEVÉ)

{

Keyboard.press('g');

}

tandis que (weapon_pin == HAUT)

{

Keyboard.press('q');

}

while(reload_pin == HAUT)

{

Keyboard.press('r');

}

tandis que (mouvement1_pin>340&&movement1_pin<420)

{

Keyboard.press('w');

}

tandis que (mouvement1_pin>420)

{

Keyboard.press('w');

Keyboard.press('p');

}

tandis que (mouvement2_pin>340&&movement2_pin<420)

{

Keyboard.press('w');

}

tandis que (movement2_pin>420)

{

Keyboard.press('p');

Keyboard.press('w');

}

tandis que (posture_pin>340&&posture_pin<420)

{

Keyboard.press('c');

}

tandis que (posture_pin>420)

{

Keyboard.press('l');

}

tandis que (posture_pin<340)

{

Keyboard.press('z');

}

tandis que (nightvision_pin==HIGH)

{

Keyboard.press('n');

}

}

}

Étape 5: TESTER LES CODES

Voici les quelques codes séparés du code principal selon la fonction

TOURNAGE-

#comprendre

entier x;

void setup() {

pinMode(8, ENTREE);

Souris.begin();

}

boucle vide() {

x=digitalRead(8);

si(x==ÉLEVÉ)

{

Mouse.click('g');

}

}

VISÉE-

#comprendre

#comprendre

#comprendre

#comprendre

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

void setup() {

Serial.begin(9600);

Souris.begin();

Fil.begin();

mpu.initialize();

si (!mpu.testConnection()) {

tandis que (1);

}

}

boucle vide() {

shoot_pin = digitalRead (7);

aim_pin = digitalRead(8);

mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

vx = (gx+300)/200; // "+300" car l'axe x du gyroscope donne des valeurs d'environ -350 alors qu'il ne bouge pas. Modifiez cette valeur si vous obtenez quelque chose de différent en utilisant le code TEST, en vérifiant s'il y a des valeurs loin de zéro.

vy = -(gz_-100)/200; // idem ici à propos de "-100"

RECHARGEMENT-

#comprendre

entier x;

void setup() {

pinMode(8, ENTRÉE);

Keyboard.begin();

}

boucle vide() {

x=digitalRead(8);

si(x==ÉLEVÉ)

{

Keyboard.press('r');

}

autre

{

Keyboard.release('r');

}

}

VISIO DE NUIT #include

entier x;

void setup() {

pinMode(8, ENTREE);

Keyboard.begin();

}

boucle vide() {

x=digitalRead(8);

si(x==ÉLEVÉ)

{

Keyboard.press('g');

}

autre

{

Keyboard.release('g');

}

}

accroupi et couché-

#comprendre

int y;

void setup() {

pinMode (A0, ENTREE);

Serial.begin(9600);

}

boucle vide() {

y=analogiqueLecture(A0);

si(y<260)

{

Keyboard.release('c');

Keyboard.release('p');

}

sinon si(y>260&&y<310)

{

Keyboard.press('c');

}

sinon si(y>310)

{

Keyboard.press('p');

}

}

Étape 6: COMMANDES DE JEU

modifiez les commandes du jeu comme suit

accroupi - x

enclin - l

changement d'arme - q

sprint - p

se tenir debout/sauter - z

vision nocturne - m

mouvement vers l'avant - w

grenade - g

Étape 7: CONFIGURATION

MISE EN PLACE
MISE EN PLACE
MISE EN PLACE
MISE EN PLACE
MISE EN PLACE
MISE EN PLACE

Enfin, nous sommes arrivés à la dernière étape maintenant mettre l'arduino

planches dans une boîte et glissez-le dans le sac

Connectez maintenant le micro USB de l'arduino aux ports USB de l'ordinateur portable, connectez maintenant les capteurs comme indiqué ci-dessus

*les flèches dans les images ci-dessus représentent la direction dans laquelle le capteur doit faire face

Si vous avez des doutes n'hésitez pas à laisser un commentaire et n'oubliez pas de partager votre expérience

Voilà merci et

AU REVOIR.

Conseillé: