Cuprins:
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Bună Numele meu este Christian și am 13 ani. Îmi place arduino și am un talent pentru el, așa că iată instructivul meu pentru un vr arduino.
Provizii
Provizii:
1. Placa Arduino Mega, Due, Uno sau Yun.
2. Fir de la tată la tată (fire jumper standard).
3. Pană mică
4. USB
5. GY-521 MPU-6050
Opțional:
6. Ecran LCD de 2,5 inci 2560 * 1440 2K HDMI la MIPI
7. Obiectiv Fresnel Lungime focală 50mm
8. Serviciu de imprimantă 3D sau imprimantă 3D
Pasul 1: Asamblați
Utilizați schema pentru ao pune împreună.
Pasul 2: Cum se instalează biblioteca?
Aruncați o privire la Github: https://github.com/relativty/Relativ Puteți să-l instalați utilizând Git sau să descărcați direct.
Pasul 3: Cod
// sunt necesare i2cdevlib și MPU6050:
// Multe mulțumiri uimitorului Jeff Rowberg <3, mergeți să verificați repo pentru a afla mai multe despre MPU6050. // ================================================= ==============================
// I2Cdev și MPU6050 trebuie să fie instalate ca biblioteci sau altfel fișierele.cpp /.h // pentru ambele clase trebuie să fie în calea de includere a proiectului dvs.
#include „Relativ.h”
#include „I2Cdev.h”
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #includeți "Wire.h" #endif
MPU6050 mpu; Relativ relativ;
#define INTERRUPT_PIN 2
// Starea și controlul IMU: bool dmpReady = false; // adevărat dacă inițierea DMP a avut succes uint8_t mpuIntStatus; uint8_t devStatus; // 0 = succes,! 0 = eroare uint16_t pachet Dimensiune; uint16_t fifoCount; uint8_t fifoBuffer [64];
Cuaternion q; // [W x y z]
volatile bool mpuInterrupt = false; // indică dacă pinul de întrerupere a MPU a scăzut ridicat dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // Ceas I2C 400kHz. Comentează această linie dacă ai dificultăți de compilare #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // „startNative” poate fi utilizat pentru microcontrolerul ARM pe 32 de biți cu USB nativ precum Arduino DUE // care este recomandat. // Relativ.start (); // „start” este pentru microcontrolerul USB NATIV, precum Arduino MEGA, Arduino UNO.. // Acestea sunt semnificativ mai lente. mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection ()? F ("conexiunea MPU6050 reușită"): F ("conexiunea MPU6050 a eșuat"));
// configurați DMP devStatus = mpu.dmpInitialize ();
// =================================== // furnizați aici propriile dvs. compensări giroscopice: // === =============================== mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus dacă totul a funcționat corect dacă (devStatus == 0) {// porniți DMP, acum că este gata mpu.setDMPEnabled (adevărat);
// activează detectarea întreruperilor Arduino attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = adevărat;
// obțineți dimensiunea așteptată a pachetului DMP pentru o comparație ulterioară packetSize = mpu.dmpGetFIFOPacketSize (); } altfel {// EROARE! }}
void loop () {// Nu faceți nimic dacă DMP nu inițializează corect dacă (! dmpReady) revine;
// așteptați ca întreruperea MPU sau pachetele suplimentare să fie disponibile în timp ce (! mpuInterrupt && fifoCount <packetSize) {}
// resetează steagul de întrerupere și obține INT_STATUS octet mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// obțineți numărul FIFO curent fifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // verificați dacă există întrerupere altfel dacă (mpuIntStatus & 0x02) {while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (fifoBuffer, pachet Dimensiune); fifoCount - = pachet Dimensiune; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "poate fi utilizat pentru microcontrolerul ARM pe 32 de biți cu USB nativ precum Arduino DUE // ceea ce este recomandat. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" este pentru microcontrolerul USB NATIV, cum ar fi Arduino MEGA, Arduino UNO.. // Acestea sunt semnificativ mai lente. }}
Pasul 4: Joacă
deplasarea micului panou de joc pe orice joc vr ar trebui să rotească camera
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Arduino Halloween Edition - Ecran pop-out Zombies (Pași cu imagini): 6 pași
Ediția Arduino Halloween - Ecran pop-out Zombies (Pași cu imagini): Vrei să-ți sperii prietenii și să faci niște zgomote în Halloween? Sau vrei doar să faci niște farse bune? Acest ecran pop-out Zombies poate face asta! În acest instructabil vă voi învăța cum să creați cu ușurință zombi cu ajutorul Arduino. HC-SR0
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli !: 6 pași
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli! Oamenilor cu pești de companie li s-a prezentat probabil aceeași problemă ca mine: vacanțele și uitarea. Am uitat în permanență să-mi hrănesc peștele și m-am străduit mereu să fac asta înainte să ajungă la s
Levitație acustică cu Arduino Uno pas cu pas (8 pași): 8 pași
Levitație acustică cu Arduino Uno pas cu pas (8 pași): traductoare de sunet cu ultrasunete L298N Sursa de alimentare pentru adaptor femelă DC cu pin DC masculin Arduino UNOBreadboard Cum funcționează: Mai întâi, încărcați codul pe Arduino Uno (este un microcontroler echipat cu sistem digital și porturi analogice pentru a converti codul (C ++)
Sistem de alarmă de incendiu care utilizează Arduino [în câțiva pași simpli]: 3 pași
Sistem de alarmă la incendiu care utilizează Arduino [în câțiva pași simpli]: Căutați să faceți un proiect simplu și interesant cu Arduino care, în același timp, ar putea fi cu adevărat util și potențial salvator de vieți? Dacă da, ați venit la locul potrivit pentru a învăța ceva nou și inovator. În această postare suntem plecați