Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Planche à roulettes en réalité virtuelle DIY

Composants et fournitures

Arduino UNO
× 1
Appareil Android
× 1
Casque VR Google Cardboard
× 1
Câbles de raccordement (générique)
× 1
GY-521 MPU-6050 Gyroscope 3 axes + Module accéléromètre pour Arduino
× 1

Applications et services en ligne

SDK Google Cardboard VR

À propos de ce projet

C'est un projet vraiment amusant et facile qui peut être fait en une heure environ. Au bas de la planche à roulettes se trouve un accéléromètre/gyroscope avec une carte Arduino qui transmet le mouvement angulaire de la planche via Bluetooth à un petit jeu VR que j'ai créé dans Unity pour les téléphones Android. Ainsi, lorsque vous allumez votre Arduino et que le Bluetooth se connecte à votre téléphone, vous commencez à avancer. Penchez-vous à gauche et vous allez à gauche, penchez-vous à droite et vous allez à droite. Soulevez les roues avant et votre personnage sautera. Cela ne fonctionne que pour les téléphones Android et votre téléphone doit être compatible avec Google Cardboard. Donc, si vous avez un vieux skateboard qui traîne, transformez-le en snowboard de réalité virtuelle. Voici comment :

Vous aurez besoin de :

Un casque de réalité virtuelle de style Google Cardboard.

Une planche à roulettes.

4 balles de tennis (pour éviter de rouler)

Un Arduino Leonardo (ou Uno)

Quelques cavaliers

Une mini planche à pain

Un module Bluetooth HC-06

Un accéléromètre/gyroscope MPU-6050

Une batterie 9V avec boîtier de batterie qui a un interrupteur marche/arrêt et une prise barillet (pour alimenter la carte Arduino)

Un fer à souder et peut-être un pistolet à colle chaude

L'application Android, le code Arduino et la liste de pièces avec des liens peuvent être trouvés ici :

http://wirebeings.com/virtual-reality-skateboard.html

Étape 1 :Créez votre périphérique/transmetteur/entrée/objet Arduino

Assemblez votre appareil comme indiqué dans l'image ci-dessus.

Vous devrez souder les broches d'en-tête sur le MPU-6050, si votre fer à souder est neuf et que la panne est propre, cela peut être fait en 11 secondes environ. Si votre panne de fer à souder est sale et vieille, cela deviendra rapidement la chose la plus difficile que vous ayez jamais faite (par expérience).

Assurez-vous que l'orientation de tout est exactement comme indiqué dans les images ci-dessus afin que vous n'ayez pas à entrer dans le code et à modifier quoi que ce soit.

Attachez tout à votre skateboard EXACTEMENT comme indiqué (assurez-vous vraiment que le MPU6050 est orienté dans la même direction que l'image)

Ici, j'ai collé le boîtier de la batterie sur la carte avec de la colle chaude et vissé la carte Arduino. J'ai utilisé un tableau de l'ancienne école parce qu'un tableau plus large est préférable aux fins de cette expérience. Il est assez difficile de se tenir en équilibre sur une planche en réalité virtuelle.

REMARQUE : Le Leonardo fonctionne beaucoup mieux pour cela... cependant...

Si vous utilisez un Arduino Uno, toutes les connexions sont les mêmes sauf :

SDA passe à A4 et SCL à A5

Étape 2 : téléchargez le code Arduino sur votre appareil/transmetteur/objet d'entrée

IMPORTANT :Débranchez les broches RX et TX avant de télécharger le code sur votre carte.  

Étape 3 :Presque terminé ! Téléchargez l'application sur votre téléphone !

Suivez ce lien et téléchargez l'application sur votre téléphone.

Application de skate/snowboard de réalité virtuelle Google Cardboard

Vous devrez accéder à vos paramètres de sécurité et autoriser l'installation d'applications provenant de développeurs inconnus.

Assurez-vous de coupler le module Bluetooth à votre téléphone, ne modifiez pas le nom par défaut (HC-06). Le mot de passe doit être 1234. 

Remarques :

C'est mon premier jeu Unity... donc c'est assez basique.

Si suffisamment de personnes font cela, je peux essayer de faire un meilleur jeu de snowboard, ou faire un vrai jeu de skate en fonction de ce que je reçois de demandes.

Lorsque vous allumez votre appareil Arduino, assurez-vous que la planche à roulettes est à plat sur le sol, puis ouvrez l'application. Dès que le Bluetooth se connecte, vous passerez.

Si le Bluetooth se déconnecte, redémarrez l'application (elle est configurée pour se connecter au démarrage de l'application uniquement, pour le moment).

Code

  • Code Arduino
Code ArduinoArduino
#include "I2Cdev.h"#include "MPU6050_6Axis_MotionApps20.h"#if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE #include "Wire.h"#endifMPU6050 mpu;bool dmpReady =false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize ; uint16_t fifoCount; uint8_t fifoBuffer[64] ; quaternion q; VectorInt16 aa ; VectorInt16 aaReal; VectorInt16 aaWorld ; Gravité vectorielle flottante ; float euler[3]; flottant ypr[3] ; volatile bool mpuInterrupt =false; void setup() { #if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE Wire.begin(); TWBR =24 ; #elif I2CDEV_IMPLEMENTATION ==I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif Serial.begin(9600); //Pour une utilisation avec Arduino Uno Serial1.begin(9600); //À utiliser avec Leonardo Serial.println(F("Initializing I2C devices...")); mpu.initialize(); Serial.println(F("Test des connexions de l'appareil...")); Serial.println(mpu.testConnection() ? F("Connexion MPU6050 réussie") :F("Connexion MPU6050 échouée")); Serial.println(F("Initialisation DMP...")); devStatus =mpu.dmpInitialize(); mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788) ; if (devStatus ==0) { Serial.println(F("Activation DMP...")); mpu.setDMPEnabled(true); Serial.println(F("Activation de la détection d'interruption (interruption externe Arduino 0)...")); attachInterrupt(0, dmpDataReady, RISING); mpuIntStatus =mpu.getIntStatus(); Serial.println(F("DMP prêt ! En attente de la première interruption...")); dmpPrêt =vrai ; packetSize =mpu.dmpGetFIFOPacketSize(); } else { Serial.print(F("Échec de l'initialisation DMP (code ")); Serial.print(devStatus); Serial.println(F(")")); } }void sendData(int x, int y, int z){ if(z <-10){ //forward Serial1.write("f"); // Écrire à Leonardo Serial1.write(10); //Stop Bit Serial.write("f"); // Écrire dans Uno Serial.write(10); //Bit d'arrêt } else if (z> 0){ //backward Serial1.write("b"); Serial1.write(10); Serial.write("b"); Serial.write(10); } else if (y> 5){ //Pour rendre la valeur plus sensible à 4 ou moins //right Serial1.write("r"); Serial1.write(10); Serial.write("r"); Serial.write(10); } else if (y <-5){ //Pour apporter une modification plus sensible à -4 ou plus //left Serial1.write("l"); Serial1.write(10); Serial.write("l"); Serial.write(10); } else // arrête Serial1.write("s"); Serial1.write(10); Serial.write("s"); Serial.write(10); }boucle vide() { if (!dmpReady) return ; mpuInterruption =faux ; mpuIntStatus =mpu.getIntStatus(); fifoCount =mpu.getFIFOCount(); if ((mpuIntStatus &0x10) || fifoCount ==1024) { mpu.resetFIFO(); Serial.println(F("FIFO Overflow")); } else if (mpuIntStatus &0x02) { while (fifoCount  

Schémas


Processus de fabrication

  1. Visualiseur de musique Arduino DIY LUMAZOID
  2. Capturer les gouttes d'eau avec Arduino
  3. Voltmètre DIY utilisant Arduino et Smartphone
  4. Générateur d'ondes JX
  5. J.A.R.V.I.S avec DIY Arc Reactor
  6. Traitement DIY Arduino RADIONICS MMachine
  7. Simulateur DIY 2D Motion Racing
  8. Module Arduino + GPS - Notification de destination
  9. Réveil ArduRadio