สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ประกอบ
- ขั้นตอนที่ 2: วิธีการติดตั้งไลบรารี่?
- ขั้นตอนที่ 3: รหัส
- ขั้นตอนที่ 4: เล่น
วีดีโอ: Arduino Vr: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สวัสดี ฉันชื่อคริสเตียน และฉันอายุ 13 ปี ฉันรัก Arduino และมีความสามารถดังนั้นนี่คือคำแนะนำของฉันสำหรับ Arduino vr
เสบียง
เสบียง:
1. บอร์ด Arduino Mega, Due, Uno หรือ Yun
2. สายตัวผู้ถึงตัวผู้ (สายจัมเปอร์มาตรฐาน)
3. เขียงหั่นขนมขนาดเล็ก
4. USB
5. GY-521 MPU-6050
ไม่จำเป็น:
6. 5.5 นิ้ว 2560*1440 2K หน้าจอ LCD HDMI เป็น MIPI
7. เลนส์ Fresnel ความยาวโฟกัส 50mm
8. บริการเครื่องพิมพ์ 3 มิติหรือเครื่องพิมพ์ 3 มิติ
ขั้นตอนที่ 1: ประกอบ
ใช้แผนผังเพื่อประกอบเข้าด้วยกัน
ขั้นตอนที่ 2: วิธีการติดตั้งไลบรารี่?
ดูที่ Github: https://github.com/relativty/Relativ คุณสามารถติดตั้งโดยใช้ Git หรือดาวน์โหลดโดยตรง
ขั้นตอนที่ 3: รหัส
// ต้องการ i2cdevlib และ MPU6050:
// ขอบคุณมากสำหรับ Jeff Rowberg ที่น่าทึ่ง <3 ไปตรวจสอบ repo ของเขาเพื่อเรียนรู้เพิ่มเติม MPU6050 //=============================================== =============================
// ต้องติดตั้ง I2Cdev และ MPU6050 เป็นไลบรารี มิฉะนั้น ไฟล์.cpp/.h // สำหรับทั้งสองคลาสต้องอยู่ในเส้นทางรวมของโปรเจ็กต์ของคุณ
#include "Relativ.h"
#รวม "I2Cdev.h"
#include "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];
ควอเทอร์เนียน q; // [w, x, y, z]
บูลผันผวน mpuInterrupt = false; // ระบุว่าพินขัดจังหวะ MPU นั้นเป็นโมฆะสูงหรือไม่ dmpDataReady () { mpuInterrupt = true; }
การตั้งค่าเป็นโมฆะ () { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock(400000); // นาฬิกา 400kHz I2C แสดงความคิดเห็นบรรทัดนี้หากมีปัญหาในการรวบรวม #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif
relativ.startNative(); // "startNative" สามารถใช้กับไมโครคอนโทรลเลอร์ ARM หลัก 32 บิตพร้อม Native USB เช่น Arduino DUE // ซึ่งแนะนำ // Relativ.start(); // "start" ใช้สำหรับไมโครคอนโทรลเลอร์ USB ที่ไม่ใช่ NON-NATIVE เช่น Arduino MEGA, Arduino UNO.. // สิ่งเหล่านี้ช้ากว่าอย่างเห็นได้ชัด mpu.initialize(); โหมดพิน (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 AttachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = จริง;
// รับขนาดแพ็คเก็ต DMP ที่คาดไว้สำหรับการเปรียบเทียบในภายหลัง packetSize = mpu.dmpGetFIFOPacketSize(); } อื่น ๆ { // ข้อผิดพลาด! } }
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 (); } // ตรวจสอบการขัดจังหวะอื่น if (mpuIntStatus & 0x02) { while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= ขนาดแพ็คเก็ต; mpu.dmpGetQuaternion(&q, fifoBuffer); relativ.updateOrientationNative(q.x, q.y, q.z, q.w, 4); // updateOrientationNative" สามารถใช้กับไมโครคอนโทรลเลอร์ ARM หลัก 32 บิตพร้อม Native USB เช่น Arduino DUE // ซึ่งแนะนำ //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" คือ สำหรับไมโครคอนโทรลเลอร์ USB ที่ไม่ใช่ NON-NATIVE เช่น Arduino MEGA, Arduino UNO.. // สิ่งเหล่านี้ช้ากว่ามาก } }
ขั้นตอนที่ 4: เล่น
การย้ายเขียงหั่นขนมขนาดเล็กในเกม vr ควรหมุนกล้อง
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino