Taula de continguts:
Vídeo: Arduino Vr: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Hola, em dic Christian i tinc 13 anys. M'encanta l'arduino i tinc talent per a això, així que aquí és el meu instructable per a un arduino vr.
Subministraments
Subministraments:
1. Taula Arduino Mega, Due, Uno o Yun.
2. Cables masculins a masculins (cables de pont estàndard).
3. Tauleta reduïda
4. USB
5. GY-521 MPU-6050
Opcional:
6. Pantalla LCD 2,5 5,5 polzades 2560 * 1440 HDMI a MIPI
7. Lent Fresnel Distància focal 50 mm
8. Servei d'impressora 3D o impressora 3D
Pas 1: Muntatge
Utilitzeu l’esquema per ajuntar-lo.
Pas 2: Com instal·lar la biblioteca?
Mireu el Github: https://github.com/relativty/Relativ Podeu instal·lar-lo mitjançant Git o bé baixar-lo directament.
Pas 3: Codi
// Calen i2cdevlib i MPU6050:
// Gràcies a l’increïble Jeff Rowberg <3, consulteu la seva reposició per obtenir més informació sobre MPU6050. // ================================================= ==============================
// I2Cdev i MPU6050 s'han d'instal·lar com a biblioteques, o bé, els fitxers.cpp /.h // per a les dues classes han d'estar al camí d'inclusió del vostre projecte.
#include "Relativ.h"
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #inclou "Wire.h" #endif
MPU6050 mpu; Relativ relativ;
#define INTERRUPT_PIN 2
// Estat i control de l’IMU: bool dmpReady = false; // cert si DMP init va tenir èxit uint8_t mpuIntStatus; uint8_t devStatus; // 0 = èxit,! 0 = error uint16_t paquetSize; uint16_t fifoCount; uint8_t fifoBuffer [64];
Quaternió q; // [w, x, y, z]
bool volàtil mpuInterrupt = fals; // indica si el pin d'interrupció de la MPU s'ha anotat alt void dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // Rellotge I2C de 400 kHz. Comenteu aquesta línia si teniu dificultats de compilació #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // "startNative" es pot utilitzar per a un microcontrolador ARM de 32 bits amb Native USB com Arduino DUE // que es recomana. // Relativ.start (); // "start" és per a microcontroladors USB NO NATIUS, com Arduino MEGA, Arduino UNO.. // Aquests són significativament més lents. mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection ()? F ("connexió MPU6050 satisfactòria"): F ("connexió MPU6050 fallida"));
// configureu el DMP devStatus = mpu.dmpInitialize ();
// ================================== // subministri les vostres pròpies compensacions giroscòpiques aquí: // === =============================== mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus si tot ha funcionat correctament si (devStatus == 0) {// activeu el DMP, ara que està preparat mpu.setDMPEnabled (true);
// habilita la detecció d'interrupcions Arduino attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = cert;
// obtenir la mida esperada del paquet DMP per a una comparació posterior packetSize = mpu.dmpGetFIFOPacketSize (); } else {// ERROR! }}
void loop () {// No feu res si DMP no inicialitza correctament si (! dmpReady) torna;
// espereu que la interrupció de la MPU o els paquets addicionals estiguin disponibles mentre (! mpuInterrupt && fifoCount <packetSize) {}
// restablir el senyal d'interrupció i obtenir INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// obtenir el recompte FIFO actual fifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // comproveu si hi ha alguna interrupció si (mpuIntStatus & 0x02) {while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (fifoBuffer, mida del paquet); fifoCount - = mida del paquet; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "es pot utilitzar per a un microcontrolador ARM de 32 bits amb Native USB com Arduino DUE // que es recomana. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" és per a microcontroladors USB NO NATIUS, com Arduino MEGA, Arduino UNO.. // Aquests són significativament més lents. }}
Pas 4: Juga
si moveu la petita taula de jocs en qualsevol joc de vr, hauríeu de girar la càmera
Recomanat:
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): 6 passos
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): voleu espantar els vostres amics i fer soroll a Halloween? O simplement voleu fer una bona broma? Aquesta pantalla emergent de Zombies ho pot fer! En aquest instructiu us ensenyaré a fer zombis fàcilment amb Arduino. L'HC-SR0
Alimentador de peix Arduino Uno en 6 passos fàcils i econòmics: 6 passos
Alimentador de peixos Arduino Uno en 6 passos econòmics i senzills! Les persones amb peixos mascotes probablement tenien el mateix problema que jo: les vacances i l’oblit. Oblidava constantment d’alimentar els meus peixos i sempre em vaig esforçar per fer-ho abans que passés a s
Levitació acústica amb Arduino Uno pas a pas (8 passos): 8 passos
Levitació acústica amb Arduino Uno Step-by-Step (8 passos): transductors de so ultrasònics L298N Dc adaptador femella d'alimentació d'alimentació amb pin DC macho Arduino UNOBreadboard Com funciona: primer, pengeu codi a Arduino Uno (és un microcontrolador equipat amb i ports analògics per convertir codi (C ++)
Robot Mecanum Omni Wheels amb escut Arduino per motors passos GRBL: 4 passos
Robot Mecanum Omni Wheels amb motors passos GRBL Arduino Shield: Mecanum Robot: un projecte que volia construir des que el vaig veure al bloc de mecatrònica de Dejan: howtomechatronics.com Dejan realment va fer un bon treball abastant tots els aspectes del maquinari i la impressió 3D , electrònica, codi i una aplicació per a Android (MIT
Sistema d'alarma contra incendis que utilitza Arduino [en pocs passos fàcils]: 3 passos
Sistema d'alarma contra incendis que utilitza Arduino [en pocs passos fàcils]: voleu fer un projecte senzill i interessant amb Arduino que al mateix temps pugui ser realment útil i potencialment salvavides? Si és així, heu vingut al lloc adequat per aprendre quelcom nou i innovador. En aquest post ja anem