Sommario:
- Forniture
- Passaggio 1: assemblare
- Passaggio 2: come installare la libreria?
- Passaggio 3: codice
- Passaggio 4: gioca
Video: Arduino Vr: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Salve, mi chiamo Christian e ho 13 anni. Adoro arduino e ho un talento per questo, quindi ecco il mio istruibile per un arduino vr.
Forniture
Forniture:
1. Scheda Arduino Mega, Due, Uno o Yun.
2. Cavi maschio-maschio (cavi di collegamento standard).
3. Tagliere piccolo
4. USB
5. GY-521 MPU-6050
Opzionale:
6. Schermo LCD da 5,5 pollici 2560 * 1440 2K da HDMI a MIPI
7. Lente di Fresnel Lunghezza focale 50 mm
8. Servizio stampante 3D o stampante 3D
Passaggio 1: assemblare
Usa lo schema per assemblarlo.
Passaggio 2: come installare la libreria?
Dai un'occhiata a Github: https://github.com/relativty/Relativ Puoi installarlo usando Git o il download diretto.
Passaggio 3: codice
// sono necessari i2cdevlib e MPU6050:
// Grazie mille al fantastico Jeff Rowberg <3, vai a controllare il suo repository per saperne di più MPU6050. //================================================ =============================
// I2Cdev e MPU6050 devono essere installati come librerie, oppure i file.cpp/.h // per entrambe le classi devono essere nel percorso di inclusione del tuo progetto
#include "Relativ.h"
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif
MPU6050 MPU; Relativo relativo;
#define INTERRUPT_PIN 2
// Stato e controllo IMU: bool dmpReady = false; // true se l'inizializzazione DMP ha avuto successo uint8_t mpuIntStatus; uint8_t devStatus; // 0 = successo, !0 = errore uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer[64];
Quaternione q; // [W x y Z]
volatile bool mpuInterrupt = false; // indica se il pin di interruzione MPU è andato alto void dmpDataReady() { mpuInterrupt = true; }
void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); Wire.setClock(400000); // Orologio I2C a 400kHz. Commenta questa riga se hai difficoltà di compilazione #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #finisci se
relativo.startNative(); // "startNative" può essere utilizzato per microcontrollori core ARM a 32 bit con USB nativo come Arduino DUE // consigliato. // Relativ.start(); // "start" è per microcontrollori USB NON NATIVE, come Arduino MEGA, Arduino UNO.. // Quelli sono significativamente più lenti. mpu.initialize(); pinMode(INTERRUPT_PIN, INPUT);
SerialUSB.println(mpu.testConnection() ? F("Connessione MPU6050 riuscita"): F("Connessione MPU6050 fallita"));
// configura il DMP devStatus = mpu.dmpInitialize();
// ================================== // fornire i propri offset giroscopici qui: // === =============================== mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788);
// devSTatus se tutto ha funzionato correttamente if (devStatus == 0) { // attiva il DMP, ora che è pronto mpu.setDMPEnabled(true);
// abilita il rilevamento degli interrupt di Arduino attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus();
dmpReady = vero;
// ottiene la dimensione del pacchetto DMP prevista per un confronto successivo packetSize = mpu.dmpGetFIFOPacketSize(); } else { // ERRORE! } }
void loop() { // Non fa nulla se DMP non si inizializza correttamente if (!dmpReady) return;
// attende che siano disponibili interrupt MPU o pacchetti aggiuntivi mentre (!mpuInterrupt && fifoCount < packetSize) { }
// resetta il flag di interrupt e ottiene INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus();
// ottiene il conteggio FIFO corrente fifoCount = mpu.getFIFOCount();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) { mpu.resetFIFO(); } // controlla l'interruzione else if (mpuIntStatus & 0x02) { while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); mpu.getFIFOBytes(fifoBuffer, packetSize); fifoCount -= dimensione pacchetto; mpu.dmpGetQuaternion(&q, fifoBuffer); relativ.updateOrientationNative(q.x, q.y, q.z, q.w, 4); // updateOrientationNative" può essere utilizzato per microcontrollori core ARM a 32 bit con USB nativo come Arduino DUE // consigliato. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" è per microcontrollori USB NON NATIVE, come Arduino MEGA, Arduino UNO.. // Questi sono significativamente più lenti. } }
Passaggio 4: gioca
spostando la piccola breadboard su qualsiasi gioco vr dovrebbe ruotare la telecamera
Consigliato:
Come realizzare un'antenna doppia biQuade 4G LTE Semplici passaggi: 3 passaggi
Come realizzare un'antenna doppia biQuade 4G LTE Semplici passaggi: La maggior parte delle volte che ho affrontato, non ho una buona potenza del segnale per i miei lavori quotidiani. Così. Cerco e provo diversi tipi di antenna ma non funziona. Dopo aver perso tempo ho trovato un'antenna che spero di realizzare e testare, perché è principio costruttivo non
Mangiatoia per pesci Arduino Uno in 6 passaggi economici e facili!: 6 passaggi
Arduino Uno Fish Feeder in 6 passaggi economici e facili!: Quindi potrebbe essere necessario un po' di retroscena per questo progetto. Le persone con i pesci da compagnia hanno probabilmente avuto il mio stesso problema: vacanze e dimenticanze. Dimenticavo costantemente di dare da mangiare ai miei pesci e mi affrettavo sempre a farlo prima che andasse a s
Levitazione acustica con Arduino Uno passo dopo passo (8 passaggi): 8 passaggi
Levitazione acustica con Arduino Uno Step-by Step (8 passaggi): trasduttori di suoni ad ultrasuoni L298N Alimentatore adattatore CC femmina con pin CC maschio Arduino UNOBreadboardCome funziona: Innanzitutto, carichi il codice su Arduino Uno (è un microcontrollore dotato di e porte analogiche per convertire codice (C++)
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: 3 passaggi
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: stai cercando di realizzare un progetto semplice e interessante con Arduino che allo stesso tempo possa essere davvero utile e potenzialmente salvavita? Se sì, sei arrivato nel posto giusto per imparare qualcosa di nuovo e innovativo. In questo post andiamo
Arduino più economico -- Arduino più piccolo -- Arduino Pro Mini -- Programmazione -- Arduino Neno: 6 passaggi (con immagini)
Arduino più economico || Arduino più piccolo || Arduino Pro Mini || Programmazione || Arduino Neno:……………………………. ISCRIVITI al mio canale YouTube per altri video……. .Questo progetto riguarda come interfacciare un arduino più piccolo ed economico di sempre. L'arduino più piccolo ed economico è arduino pro mini. È simile ad arduino