İçindekiler:
Video: Arduino Vr: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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
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:
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): 9 Adım
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): Merhaba !Bu Talimatlar, motosiklet kasklarına monte edilmek üzere tasarlanmış bir HUD (Heads-Up Display) platformunu nasıl tasarladığımın ve inşa ettiğimin hikayesidir. "Haritalar" yarışması bağlamında yazılmıştır. Maalesef tamamen bitiremedim
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Arduino Kullanan RC Paletli Robot - Adım Adım: 3 Adım
Arduino Kullanan RC Paletli Robot – Adım Adım: Merhaba arkadaşlar, BangGood'tan başka bir harika Robot kasasıyla geri döndüm. Spinel Crux V1 – Hareket Kontrollü Robot, Spinel Crux L2 – Robotik Kollu Arduino Al ve Yerleştir Robotu ve The Badland Braw
DIY Arduino Robotik Kol, Adım Adım: 9 Adım
Kendin Yap Arduino Robot Kol, Adım Adım: Bu eğitim size kendi başınıza bir Robot Kolunu nasıl oluşturacağınızı öğretiyor