جدول المحتويات:
فيديو: اردوينو الواقع الافتراضي: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
مرحبًا ، اسمي مسيحي وعمري 13 عامًا. أنا أحب اردوينو ولدي موهبة لذلك ، فإليك تعليمي لـ arduino vr.
اللوازم
اللوازم:
1. لوحة اردوينو ميجا أو مستحقة أو أونو أو يون.
2. ذكر إلى ذكر (أسلاك العبور القياسية).
3. اللوح الصغير
4. USB
5. GY-521 MPU-6050
اختياري:
6. 5.5 بوصة 2560 * 1440 2K شاشة LCD HDMI إلى MIPI
7. البعد البؤري لعدسة فرينل 50 مم
8. طابعة ثلاثية الأبعاد أو خدمة طابعة ثلاثية الأبعاد
الخطوة 1: التجميع
استخدم التخطيطي لتجميعه.
الخطوة الثانية: كيفية تثبيت المكتبة؟
ألق نظرة على Github: https://github.com/relativty/Relativ يمكنك إما تثبيته باستخدام Git أو التنزيل المباشر.
الخطوة 3: الكود
مطلوب // i2cdevlib و MPU6050:
// شكرًا جزيلًا لـ Jeff Rowberg <3 المذهل ، اذهب للتحقق من الريبو الخاص به لمعرفة المزيد MPU6050. // ================================================== ==============================
يجب تثبيت // I2Cdev و MPU6050 كمكتبات ، وإلا يجب أن تكون ملفات.cpp /.h // لكلا الفئتين في مسار التضمين الخاص بمشروعك
# تضمين "Relativ.h"
# تضمين "I2Cdev.h"
# تضمين "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif
MPU6050 وحدة معالجة مركزية ؛ نسبي نسبي
#define INTERRUPT_PIN 2
// حالة وتحكم IMU: bool dmpReady = false ؛ // true إذا كان DMP init ناجحًا uint8_t mpuIntStatus؛ uint8_t devStatus؛ // 0 = نجاح ،! 0 = خطأ uint16_t packetSize ؛ uint16_t fifoCount ؛ uint8_t fifoBuffer [64] ؛
رباعي ف ؛ // [w، x، y، z]
متغير منطقي mpuInterrupt = خطأ ؛ // يشير إلى ما إذا كان طرف MPU المقاطعة قد أصبح فارغًا dmpDataReady () {mpuInterrupt = true؛ }
إعداد باطل () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin () ؛ Wire.setClock (400000) ؛ // ساعة 400 كيلو هرتز I2C. علق على هذا السطر إذا واجهت صعوبات في الترجمة #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400، true)؛ #إنهاء إذا
relativ.startNative () ، يمكن استخدام // "startNative" لوحدة التحكم الدقيقة الأساسية ARM ذات 32 بت مع USB الأصلي مثل Arduino DUE // الذي يوصى به. // Relativ.start () ؛ // "start" مخصصة لمتحكم دقيق USB غير أصلي ، مثل Arduino MEGA و Arduino UNO.. // هذه أبطأ بشكل ملحوظ. mpu.initialize () ، pinMode (INTERRUPT_PIN ، INPUT) ؛
SerialUSB.println (mpu.testConnection ()؟ F ("اتصال MPU6050 ناجح"): F ("فشل اتصال MPU6050")) ؛
// تكوين DMP devStatus = mpu.dmpInitialize () ؛
// =================================== // قدم إزاحات الدوران الخاصة بك هنا: // === ================================ mpu.setXGyroOffset (220) ؛ mpu.setYGyroOffset (76) ، mpu.setZGyroOffset (-85) ، mpu.setZAccelOffset (1788) ؛
// devSTatus إذا كان كل شيء يعمل بشكل صحيح إذا (devStatus == 0) {// قم بتشغيل DMP ، الآن أصبح جاهزًا mpu.setDMPEnabled (صحيح) ؛
// تمكين Arduino interrupt Detection attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN) ، dmpDataReady ، RISING) ؛ mpuIntStatus = mpu.getIntStatus () ،
dmpReady = صحيح ؛
// احصل على حجم حزمة DMP المتوقع لحزمة المقارنة اللاحقة = mpu.dmpGetFIFOPacketSize () ؛ } آخر {// ERROR! }}
void loop () {// لا تفعل شيئًا إذا لم تتم تهيئة DMP بشكل صحيح إذا عادت (! dmpReady) ؛
// انتظر مقاطعة MPU أو تكون الحزمة (الحزم) الإضافية متاحة أثناء (! mpuInterrupt && fifoCount <packetSize) {}
// إعادة تعيين إشارة المقاطعة والحصول على INT_STATUS بايت mpuInterrupt = false ؛ mpuIntStatus = mpu.getIntStatus () ،
// الحصول على عدد FIFO الحالي fifoCount = mpu.getFIFOCount () ؛
إذا ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO () ؛ } // تحقق من مقاطعة else if (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، qw، 4) ؛ // updateOrientationNative "يمكن استخدامه لوحدة التحكم الدقيقة الأساسية 32 بت ARM مع USB الأصلي مثل Arduino DUE // الموصى به. //relativ.updateOrientation(qx، qy، qz، qw، 4)؛ // Relativ.updateOrientation" هو بالنسبة إلى متحكم USB غير الأصلي ، مثل Arduino MEGA و Arduino UNO.. // هذه أبطأ بشكل ملحوظ. }}
الخطوة 4: العب
يجب أن يؤدي تحريك اللوح الصغير في أي لعبة الواقع الافتراضي إلى تدوير الكاميرا
موصى به:
خطوة للخلف ! لعبة الواقع الافتراضي باستخدام Arduino & Acclerometer: 9 خطوات
خطوة للخلف ! لعبة الواقع الافتراضي باستخدام Arduino & Acclerometer: في هذا البرنامج التعليمي ، سننشئ لعبة واقع افتراضي باستخدام Arduino و Acclerometer
سماعة الواقع الافتراضي - Google Cardboard: 4 خطوات
سماعة الواقع الافتراضي - Google Cardboard: Hi Guys هنا برنامج تعليمي بسيط حول كيفية صنع Google Cardboard ، وهي سماعة رأس للواقع الافتراضي محلية الصنع. سيكون أمرًا ممتعًا بشكل مؤلم مشاهدة فيلم رعب في هذه السماعة. كما سيكون فيديو ركوب الأفعوانية أيضًا تجربة لا تُنسى. تحذير
بدلة الواقع الافتراضي باستخدام Arduino: 7 خطوات (بالصور)
بدلة الواقع الافتراضي باستخدام Arduino: لقد قمت بإنشاء هذا المشروع للعب ألعاب الكمبيوتر العادية في الواقع الافتراضي الكامل. يحاكي هذا المشروع تحركاتك في الضغط أو الضغط على مفاتيح لوحة المفاتيح. لدي emu
اصنع نظارات الواقع الافتراضي الخاصة بك: 4 خطوات
اصنع نظارات الواقع الافتراضي الخاصة بك: المواد: - صندوق أحذية من الورق المقوى - مقص / سكين X-Acto - عدستان محدبتان مقاس 45 مم - 4 أشرطة من الفيلكرو - جلويستيك
الواقع الافتراضي للجوال باستخدام المعالجة لنظام Android (TfCD): 7 خطوات (بالصور)
الواقع الافتراضي للجوال باستخدام المعالجة لنظام Android (TfCD): تعد تقنية الواقع الافتراضي (VR) إحدى التقنيات الجديدة التي قد تكون مثيرة للاهتمام وهي المنتجات المستقبلية. لديها الكثير من الفرص ولا تحتاج حتى إلى نظارات VR باهظة الثمن (Oculus Rift). قد يبدو من الصعب جدًا أن تفعل ذلك بنفسك ، لكن الأساسيات هي