Arduino Vr: 4 Adım
Arduino Vr: 4 Adım
arduino vr
arduino vr

Merhaba benim adım Christian ve 13 yaşındayım. Arduino'yu seviyorum ve bunun için bir yeteneğim var, bu yüzden işte bir arduino vr için talimatım.

Gereçler

Gereçler:

1. Arduino kartı Mega, Due, Uno veya Yun.

2. Erkekten erkeğe (standart atlama telleri) teller.

3. Küçük devre tahtası

4. USB

5. GY-521 MPU-6050

İsteğe bağlı:

6. 5.5 inç 2560*1440 2K LCD Ekran HDMI'dan MIPI'ye

7. Fresnel lens Odak Uzaklığı 50mm

8. 3 boyutlu yazıcı veya 3 boyutlu yazıcı hizmeti

Adım 1: Birleştirin

Birleştirmek
Birleştirmek

Bir araya getirmek için şemayı kullanın.

Adım 2: Kütüphane Nasıl Kurulur?

Github'a bir göz atın: https://github.com/relativty/Relativ Git'i kullanarak kurabilir veya doğrudan İndirebilirsiniz.

3. Adım: Kodlayın

// i2cdevlib ve MPU6050 gereklidir:

// Harika Jeff Rowberg'e çok teşekkürler <3, daha fazla MPU6050 öğrenmek için deposunu kontrol edin. //=============================================== =============================

// I2Cdev ve MPU6050 kitaplık olarak kurulmalı, yoksa.cpp/.h dosyaları // her iki sınıf için projenizin içerme yolunda olmalıdır

#include "Relativ.h"

#include "I2Cdev.h"

#include "MPU6050_6Axis_MotionApps20.h"

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif

MPU6050 mpu; göreli göreli;

#define INTERRUPT_PIN 2

// IMU durumu ve kontrolü: bool dmpReady = false; // DMP başlatma başarılıysa true uint8_t mpuIntStatus; uint8_t devStatus; // 0 = başarı, !0 = hata uint16_t packageSize; uint16_t fifoCount; uint8_t fifoBuffer[64];

Kuaterniyon q; // [w, x, y, z]

uçucu bool mpuInterrupt = false; // MPU kesme pininin yüksek void olup olmadığını gösterir dmpDataReady() { mpuInterrupt = true; }

void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); Wire.setClock(400000); // 400kHz I2C saati. Derleme sorunları yaşıyorsanız bu satırı yorumlayın #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif

relativ.startNative(); // "startNative", önerilen Arduino DUE // gibi Native USB'li 32-bit ARM çekirdekli mikro denetleyici için kullanılabilir. // Göreceli.start(); // "start", Arduino MEGA, Arduino UNO gibi YEREL OLMAYAN USB mikro denetleyici içindir. // Bunlar önemli ölçüde daha yavaştır. mpu.initialize(); pinMode(KESME_PIN, GİRİŞ);

SerialUSB.println(mpu.testConnection() ? F("MPU6050 bağlantısı başarılı"): F("MPU6050 bağlantısı başarısız"));

// DMP'yi yapılandır devStatus = mpu.dmpInitialize();

// ================================= // burada kendi gyro ofsetlerinizi sağlayın: // === =============================== mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788);

// devSTatus eğer her şey düzgün çalıştıysa if (devStatus == 0) { // DMP'yi açın, artık hazır mpu.setDMPEnabled(true);

// Arduino kesinti tespitini etkinleştirin AttachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus();

dmpReady = doğru;

// sonraki karşılaştırma için beklenen DMP paket boyutunu al packageSize = mpu.dmpGetFIFOPacketSize(); } başka { // HATA! } }

void loop() { // (!dmpReady) dönerse DMP doğru başlatılmazsa hiçbir şey yapmayın;

// (!mpuInterrupt && fifoCount < packageSize) { } sırasında MPU kesmesi veya fazladan paket(ler)in hazır olmasını bekleyin

// kesme bayrağını sıfırla ve INT_STATUS baytını al mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus();

// mevcut FIFO sayısını al fifoCount = mpu.getFIFOCount();

if ((mpuIntStatus & 0x10) || fifoCount == 1024) { mpu.resetFIFO(); } // else kesme olup olmadığını kontrol et if (mpuIntStatus & 0x02) { while (fifoCount < packageSize) fifoCount = mpu.getFIFOCount(); mpu.getFIFOBytes(fifoBuffer, packageSize); fifoCount -= paketSize; mpu.dmpGetQuaternion(&q, fifoBuffer); relativ.updateOrientationNative(q.x, q.y, q.z, q.w, 4); // updateOrientationNative", Arduino DUE gibi Yerel USB'li 32-bit ARM çekirdekli mikro denetleyici için kullanılabilir // önerilir. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" Arduino MEGA, Arduino UNO gibi DOĞAL OLMAYAN USB mikrodenetleyici için. // Bunlar önemli ölçüde daha yavaştır. } }

4. Adım: Oynat

küçük devre tahtasını herhangi bir sanal gerçeklik oyununda hareket ettirmek kamerayı döndürmelidir

Önerilen: