Innehållsförteckning:
Video: Arduino Vr: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Hej Jag heter Christian och är 13 år. Jag älskar arduino och har en talang för det så här är min instruerbara för en arduino vr.
Tillbehör
Tillbehör:
1. Arduino board Mega, Due, Uno eller Yun.
2. Man till han (standard jumper trådar).
3. Liten brödbräda
4. USB
5. GY-521 MPU-6050
Frivillig:
6. 5,5 tum 2560*1440 2K LCD -skärm HDMI till MIPI
7. Fresnel -objektiv Brännvidd 50 mm
8. 3D-skrivare eller 3d-skrivartjänst
Steg 1: Montera
Använd schemat för att sätta ihop det.
Steg 2: Hur installerar jag biblioteket?
Ta en titt på Github: https://github.com/relativty/Relativ Du kan antingen installera den med Git eller direktnedladdning.
Steg 3: Kod
// i2cdevlib och MPU6050 behövs:
// Stort tack till den fantastiska Jeff Rowberg <3, kolla in hans repo för att lära dig mer MPU6050. // =================================================== =================================
// I2Cdev och MPU6050 måste installeras som bibliotek, annars måste.cpp/.h -filerna // för båda klasserna finnas i inkluderingsvägen för ditt projekt
#inkludera "Relativ.h"
#inkludera "I2Cdev.h"
#inkludera "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #inkludera "Wire.h" #endif
MPU6050 mpu; Relativ relativ;
#define INTERRUPT_PIN 2
// IMU -status och kontroll: bool dmpReady = false; // true om DMP init lyckades uint8_t mpuIntStatus; uint8_t devStatus; // 0 = framgång,! 0 = fel uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64];
Kvarternion q; // [W x y z]
flyktig bool mpuInterrupt = false; // anger om MPU -avbrottsstiftet har gått högt tomrum dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz I2C klocka. Kommentera den här raden om du har problem med sammanställning #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // "startNative" kan användas för 32-bitars ARM-mikrokontroller med Native USB som Arduino DUE // vilket rekommenderas. // Relativ.start (); // "start" är för NON-NATIVE USB-mikrokontroller, som Arduino MEGA, Arduino UNO.. // De är betydligt långsammare. mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection ()? F ("MPU6050 -anslutningen lyckades"): F ("MPU6050 -anslutningen misslyckades"));
// konfigurera DMP devStatus = mpu.dmpInitialize ();
// ================================== // ange dina egna gyrokompensationer här: // === ================================ mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus om allt fungerade korrekt om (devStatus == 0) {// slå på DMP, nu när det är klart mpu.setDMPEnabled (true);
// aktivera Arduino interrupt -detektering attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = true;
// få förväntad DMP -paketstorlek för senare jämförelse packetSize = mpu.dmpGetFIFOPacketSize (); } annat {// FEL! }}
void loop () {// Gör ingenting om DMP inte initieras korrekt om (! dmpReady) returnerar;
// vänta tills MPU -avbrott eller extra paket (er) är tillgängliga medan (! mpuInterrupt && fifoCount <packetSize) {}
// återställ avbrottsflagga och få INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// få aktuell FIFO -räkning fifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // kolla efter avbrott annars om (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 användas för 32-bitars ARM-kärnmikrocontroller med Native USB som Arduino DUE // vilket rekommenderas. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" är för NON-NATIVE USB-mikrokontroller, som Arduino MEGA, Arduino UNO.. // De är betydligt långsammare. }}
Steg 4: Spela
flytta den lilla brödbrädan på alla vr -spel bör rotera kameran
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
RC -spårad robot med Arduino - Steg för steg: 3 steg
RC -spårad robot med Arduino - Steg för steg: Hej killar, jag är tillbaka med ett annat häftigt robotchassi från BangGood. Hoppas att du har gått igenom våra tidigare projekt - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot med Robotic Arms och The Badland Braw
DIY Arduino robotarm, steg för steg: 9 steg
DIY Arduino robotarm, steg för steg: Denna handledning lär dig hur du bygger en robotarm själv