Innholdsfortegnelse:
Video: Arduino Vr: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Hei Mitt navn er Christian og jeg er 13 år gammel. Jeg elsker arduino og har et talent for det, så her er min instruerbare for en arduino vr.
Rekvisita
Rekvisita:
1. Arduino -bord Mega, Due, Uno eller Yun.
2. Mann til mann (standard jumper ledninger) ledninger.
3. Lite brødbrett
4. USB
5. GY-521 MPU-6050
Valgfri:
6. 5,5 tommer 2560*1440 2K LCD -skjerm HDMI til MIPI
7. Fresnel -objektiv Brennvidde 50 mm
8. 3D-skriver eller 3d-skrivertjeneste
Trinn 1: Monter
Bruk skjematikken til å sette den sammen.
Trinn 2: Hvordan installere bibliotek?
Ta en titt på Github: https://github.com/relativty/Relativ Du kan enten installere den ved hjelp av Git eller direkte nedlasting.
Trinn 3: Kode
// i2cdevlib og MPU6050 er nødvendig:
// Stor takk til den fantastiske Jeff Rowberg <3, sjekk repoen hans for å lære mer MPU6050. // =================================================== ================================
// I2Cdev og MPU6050 må installeres som biblioteker, ellers må.cpp/.h -filene // for begge klasser være i inkluderingsbanen til prosjektet ditt
#include "Relativ.h"
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #inkludere "Wire.h" #endif
MPU6050 mpu; Relativ relativ;
#define INTERRUPT_PIN 2
// IMU -status og kontroll: bool dmpReady = false; // true hvis DMP init var vellykket uint8_t mpuIntStatus; uint8_t devStatus; // 0 = suksess,! 0 = feil uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64];
Kvarternion q; // [w, x, y, z]
flyktig bool mpuInterrupt = false; // angir om MPU -avbruddsnålen har gått høyt tomrom dmpDataReady () {mpuInterrupt = true; }
ugyldig oppsett () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz I2C klokke. Kommenter denne linjen hvis du har problemer med kompilering #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #slutt om
relativ.startNative (); // "startNative" kan brukes til 32-biters ARM-kjernemikrokontroller med Native USB som Arduino DUE // som anbefales. // Relativ.start (); // "start" er for NON-NATIVE USB mikrokontroller, som Arduino MEGA, Arduino UNO.. // De er betydelig tregere. mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection ()? F ("MPU6050 tilkobling vellykket"): F ("MPU6050 tilkobling mislyktes"));
// konfigurer DMP devStatus = mpu.dmpInitialize ();
// ================================== // levere dine egne gyroforskyvninger her: // === ================================ mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus hvis alt fungerte som det skal (devStatus == 0) {// slå på DMP, nå som den er klar mpu.setDMPEnabled (true);
// aktiver Arduino avbruddsdeteksjon attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = true;
// få forventet DMP -pakkestørrelse for senere sammenligning packetSize = mpu.dmpGetFIFOPacketSize (); } annet {// FEIL! }}
void loop () {// Gjør ingenting hvis DMP ikke initialiseres riktig hvis (! dmpReady) returnerer;
// vent på at MPU -avbrudd eller ekstra pakke (r) er tilgjengelig mens (! mpuInterrupt && fifoCount <packetSize) {}
// tilbakestill interrupt flagg og få INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// få gjeldende FIFO -telling fifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // sjekk for avbrudd ellers hvis (mpuIntStatus & 0x02) {while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= packetSize; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "kan brukes til 32-biters ARM-kjernemikrokontroller med Native USB som Arduino DUE // som anbefales. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" er for NON-NATIVE USB mikrokontroller, som Arduino MEGA, Arduino UNO.. // De er betydelig tregere. }}
Trinn 4: Spill
å flytte det lille brødbrettet på et hvilket som helst vr -spill, bør rotere kameraet
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
DIY Arduino robotarm, trinn for trinn: 9 trinn
DIY Arduino robotarm, trinn for trinn: Denne opplæringen lærer deg hvordan du bygger en robotarm selv