فهرست مطالب:

آردوینو Vr: 4 مرحله
آردوینو Vr: 4 مرحله

تصویری: آردوینو Vr: 4 مرحله

تصویری: آردوینو Vr: 4 مرحله
تصویری: Amazing arduino project 2024, نوامبر
Anonim
آردوینو Vr
آردوینو Vr

سلام اسم من مسیحی است و 13 ساله هستم. من عاشق آردوینو هستم و استعداد آن را دارم ، بنابراین در اینجا برای آردوینو vr آموزش داده می شود.

تدارکات

تدارکات:

1. برد Arduino Mega ، Due ، Uno یا Yun.

2. سیمهای نر به نر (سیمهای جامپر استاندارد).

3. تخته نان کوچک

4. USB

5. GY-521 MPU-6050

اختیاری:

6. 5.5 اینچ صفحه نمایش LCD 2560*1440 2K HDMI تا MIPI

7. لنز فرنل فاصله کانونی 50 میلی متر

8. خدمات چاپگر سه بعدی یا چاپگر سه بعدی

مرحله 1: جمع آوری

جمع کنید
جمع کنید

برای ترکیب آن از طرحواره استفاده کنید.

مرحله 2: چگونه کتابخانه را نصب کنیم؟

به Github نگاه کنید: https://github.com/relativty/Relativ شما می توانید آن را با استفاده از Git یا بارگیری مستقیم نصب کنید.

مرحله 3: کد

// i2cdevlib و MPU6050 مورد نیاز است:

// با تشکر فراوان از جف روبرگ شگفت انگیز <3 ، برای آشنایی بیشتر با MPU6050 ، نمایندگی وی را بررسی کنید. // ============================================= =============================

// I2Cdev و MPU6050 باید به عنوان کتابخانه نصب شوند ، در غیر این صورت فایل های.cpp/.h // برای هر دو کلاس باید در مسیر شامل پروژه شما باشد

#شامل "Relativ.h"

#شامل "I2Cdev.h"

#شامل "MPU6050_6Axis_MotionApps20.h"

#اگر I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #شامل "Wire.h" #endif

MPU6050 mpu ؛ نسبی نسبی ؛

#تعریف 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]؛

کواترنیون q؛ // [w ، x ، y ، z]

bool فرار mpuInterrupt = false؛ // نشان می دهد که آیا پین وقفه MPU بسیار void شده است dmpDataReady () {mpuInterrupt = true؛ }

void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin ()؛ Wire.setClock (400000) ؛ // ساعت 400kHz I2C. در صورت داشتن مشکلات کامپایل ، این خط را کامنت کنید #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400 ، true) ؛ #اندیف

relativ.startNative ()؛ // "startNative" را می توان برای میکروکنترلر 32 بیتی ARM با USB بومی مانند Arduino DUE // که توصیه می شود استفاده کرد. // Relativ.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.setDMPE فعال (درست) ؛

// فعال سازی Arduino interrupt detection attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN) ، dmpDataReady ، RISING) ؛ mpuIntStatus = mpu.getIntStatus ()؛

dmpReady = true؛

// اندازه بسته مورد انتظار DMP را برای مقایسه packetSize = mpu.dmpGetFIFOPacketSize () دریافت کنید؛ } else {// ERROR! }}

void loop () {// اگر DMP در صورت بازگشت (! dmpReady) درست انجام ندهد ، هیچ کاری نکنید.

// منتظر بمانید تا قطع کننده MPU یا بسته های اضافی در دسترس باشند (! mpuInterrupt && fifoCount <packetSize) {}

// بازنشانی پرچم قطع و دریافت INT_STATUS بایت mpuInterrupt = false؛ mpuIntStatus = mpu.getIntStatus ()؛

// دریافت تعداد فعلی FIFO fifoCount = mpu.getFIFOCount ()؛

if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO ()؛ } // بررسی وقفه if 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 ، q.w ، 4) ؛ // updateOrientationNative "می تواند برای میکروکنترلر 32 بیتی ARM با USB بومی مانند Arduino DUE // که توصیه می شود استفاده شود. //relativ.updateOrientation(qx، qy، qz، qw، 4) ؛ // Relativ.updateOrientation" برای میکروکنترلر USB غیر طبیعی ، مانند Arduino MEGA ، Arduino UNO.. // اینها به طور قابل توجهی کندتر هستند. }}

مرحله 4: بازی کنید

حرکت دادن تخته نان کوچک در هر بازی vr باید دوربین را بچرخاند

توصیه شده: