विषयसूची:

Arduino Vr: 4 कदम
Arduino Vr: 4 कदम

वीडियो: Arduino Vr: 4 कदम

वीडियो: Arduino Vr: 4 कदम
वीडियो: Arduino in 100 Seconds 2024, जुलाई
Anonim
Arduino Vr
Arduino Vr

नमस्ते मेरा नाम क्रिश्चियन है और मेरी उम्र 13 साल है। मैं arduino से प्यार करता हूँ और इसके लिए एक प्रतिभा है इसलिए यहाँ एक arduino vr के लिए मेरा निर्देश है।

आपूर्ति

आपूर्ति:

1. Arduino बोर्ड मेगा, ड्यू, यूनो, या यूं।

2. नर से नर (मानक जम्पर तार) तार।

3. छोटा ब्रेडबोर्ड

4. यूएसबी

5. GY-521 MPU-6050

वैकल्पिक:

6. 5.5 इंच 2560*1440 2K LCD स्क्रीन HDMI से MIPI

7. फ्रेस्नेल लेंस फोकल लंबाई 50 मिमी

8. 3-डी प्रिंटर या 3डी प्रिंटर सेवा

चरण 1: इकट्ठा

इकट्ठा
इकट्ठा

इसे एक साथ रखने के लिए योजनाबद्ध का उपयोग करें।

चरण 2: पुस्तकालय कैसे स्थापित करें?

Github पर एक नज़र डालें: https://github.com/relativty/Relativ आप इसे या तो Git या डायरेक्ट डाउनलोड का उपयोग करके इंस्टॉल कर सकते हैं।

चरण 3: कोड

// i2cdevlib और MPU6050 की जरूरत है:

// अद्भुत जेफ रोवबर्ग के लिए बहुत धन्यवाद <3, अधिक एमपीयू 6050 जानने के लिए अपने रेपो की जांच करें। //========================================== ============================

// I2Cdev और MPU6050 को पुस्तकालयों के रूप में स्थापित किया जाना चाहिए, अन्यथा दोनों वर्गों के लिए.cpp/.h फ़ाइलें // आपके प्रोजेक्ट के शामिल पथ में होनी चाहिए

#शामिल "Relativ.h"

#शामिल "I2Cdev.h"

#शामिल "MPU6050_6Axis_MotionApps20.h"

#अगर I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif

एमपीयू 6050 एमपीयू; सापेक्ष सापेक्ष;

#परिभाषित करें INTERRUPT_PIN 2

// IMU स्थिति और नियंत्रण: बूल dmpReady = false; // सच है अगर DMP init सफल uint8_t mpuIntStatus था; uint8_t देवस्टैटस; // 0 = सफलता, !0 = त्रुटि uint16_t पैकेट आकार; uint16_t फीफोकाउंट; uint8_t फीफोबफर [64];

चतुर्धातुक क्यू; // [डब्ल्यू एक्स वाई जेड]

अस्थिर बूल एमपीयूइंटरप्ट = झूठा; // इंगित करता है कि क्या एमपीयू इंटरप्ट पिन उच्च शून्य हो गया है dmpDataReady () {mpuInterrupt = true; }

शून्य सेटअप () { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); वायर.सेटक्लॉक (400000); // 400kHz I2C घड़ी। संकलन में कठिनाई होने पर इस पंक्ति पर टिप्पणी करें #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #अगर अंत

रिलेटिव.स्टार्टनेटिव (); // "स्टार्टनेटिव" का उपयोग 32-बिट एआरएम कोर माइक्रोकंट्रोलर के लिए किया जा सकता है जिसमें मूल यूएसबी जैसे Arduino DUE // जो अनुशंसित है। // रिलेटिव.स्टार्ट (); // "स्टार्ट" नॉन-नेटिव USB माइक्रोकंट्रोलर के लिए है, जैसे Arduino MEGA, Arduino UNO..//वे काफी धीमे हैं। mpu.initialize (); पिनमोड (INTERRUPT_PIN, INPUT);

SerialUSB.println(mpu.testConnection() ? F("MPU6050 कनेक्शन सफल"): F("MPU6050 कनेक्शन विफल"));

// डीएमपी देवस्टैटस को कॉन्फ़िगर करें = mpu.dmpInitialize ();

// =============================== // यहां अपने स्वयं के जाइरो ऑफसेट की आपूर्ति करें: // === ============================= mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788);

// devStatus अगर सब कुछ ठीक से काम करता है अगर (devStatus == 0) {// DMP चालू करें, अब यह तैयार है mpu.setDMPEnabled(true);

// Arduino इंटरप्ट डिटेक्शन अटैचमेंट को सक्षम करें (डिजिटलपिनटोइंटरप्ट (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();

डीएमपीरेडी = सच;

// बाद में तुलना के लिए अपेक्षित डीएमपी पैकेट आकार प्राप्त करें पैकेट आकार = mpu.dmpGetFIFOPacketSize (); } और {//त्रुटि! } }

शून्य लूप () {// कुछ भी न करें यदि डीएमपी सही ढंग से प्रारंभ नहीं होता है अगर (! dmpReady) वापस आ जाता है;

// एमपीयू इंटरप्ट या अतिरिक्त पैकेट के उपलब्ध होने की प्रतीक्षा करें जबकि (!mpuInterrupt && fifoCount <पैकेटसाइज) { }

// इंटरप्ट फ्लैग को रीसेट करें और INT_STATUS बाइट mpuInterrupt = false प्राप्त करें; mpuIntStatus = mpu.getIntStatus ();

// वर्तमान फीफो गणना प्राप्त करें फीफोकाउंट = एमपीयू.गेटफिफोकाउंट ();

अगर ((mpuIntStatus और 0x10) || फीफोकाउंट == 1024) {mpu.resetFIFO (); } // अगर (mpuIntStatus और 0x02) {जबकि (फीफोकाउंट <पैकेटसाइज) फीफोकाउंट = mpu.getFIFOCount (); mpu.getFIFOBytes (फीफोबफर, पैकेटसाइज); फीफोकाउंट - = पैकेटसाइज; mpu.dmpGetQuaternion(&q, फीफोबफर); relativ.updateOrientationNative(q.x, q.y, q.z, q.w, 4); // updateOrientationNative" का उपयोग 32-बिट ARM कोर माइक्रोकंट्रोलर के लिए मूल USB जैसे Arduino DUE // के लिए किया जा सकता है, जिसकी अनुशंसा की जाती है। गैर-देशी USB माइक्रोकंट्रोलर के लिए, जैसे Arduino MEGA, Arduino UNO..//वे काफी धीमे हैं। } }

चरण 4: खेलें

किसी भी वीआर गेम पर छोटे ब्रेडबोर्ड को घुमाने से कैमरे को घुमाना चाहिए

सिफारिश की: