Mündəricat:
Video: Arduino Vr: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Salam Adım Christian, 13 yaşım var. Arduino'yu sevirəm və bunun üçün bir istedadım var, buna görə də bir arduino vr üçün mənim göstərişim budur.
Təchizat
Təchizat:
1. Arduino board Mega, Due, Uno və ya Yun.
2. Kişidən kişiyə (standart tullanan tellər) tellər.
3. Kiçik çörək taxtası
4. USB
5. GY-521 MPU-6050
İsteğe bağlı:
6. 5.5 düymlük 2560*1440 2K LCD Ekrandan HDMI -ya MIPI
7. Fresnel lensi Fokus Uzunluğu 50 mm
8. 3-D printer və ya 3d printer xidməti
Addım 1: yığın
Birləşdirmək üçün sxemdən istifadə edin.
Addım 2: Kitabxananı necə quraşdırmalısınız?
Github -a baxın: https://github.com/relativty/Relativ Git və ya birbaşa Yükləmə istifadə edərək quraşdıra bilərsiniz.
Addım 3: Kod
// i2cdevlib və MPU6050 lazımdır:
// İnanılmaz Jeff Rowberg <3 sayəsində, MPU6050 haqqında daha çox məlumat əldə etmək üçün onun reposunu yoxlayın. // ============================================== ============================
// I2Cdev və MPU6050 kitabxana kimi quraşdırılmalıdır, yoxsa hər iki sinif üçün.cpp/.h faylları // layihənizin daxil edilmə yolunda olmalıdır.
#"Relativ.h" daxil edin
#"I2Cdev.h" daxil edin
#"MPU6050_6Axis_MotionApps20.h" daxil edin
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #"Wire.h" daxil edin #endif
MPU6050 mpu; Nisbi nisbi;
#INTERRUPT_PIN 2 təyin edin
// IMU statusu və nəzarəti: bool dmpReady = false; // doğrudur, əgər DMP init uğurlu olarsa uint8_t mpuIntStatus; uint8_t devStatus; // 0 = uğur,! 0 = səhv uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64];
Quaternion q; // [w, x, y, z]
uçucu bool mpuInterrupt = false; // MPU kəsmə pininin yüksək boşluğa getdiyini göstərir dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz I2C saatı. Kompilyasiya çətinlikləri varsa bu sətiri şərh edin #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // "startNative", tövsiyə olunan Arduino DUE // kimi Yerli USB ilə 32 bitlik ARM əsas mikro nəzarətçi üçün istifadə edilə bilər. // Relativ.start (); // "başlanğıc" Arduino MEGA, Arduino UNO kimi NON-NATIVE USB mikro nəzarətçiləri üçündür.. // Bunlar xeyli yavaşdır. mpu.initialize (); pinMode (INTERRUPT_PIN, GİRİŞ);
SerialUSB.println (mpu.testConnection ()? F ("MPU6050 bağlantısı uğurlu"): F ("MPU6050 bağlantısı uğursuz oldu"));
// DMP qurmaq devStatus = mpu.dmpInitialize ();
// ================================= // burda öz jiro ofsetlərinizi təmin edin: // === =============================== mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus əgər hər şey düzgün işləyirsə (devStatus == 0) {// DMP -ni yandırın, indi hazırdır mpu.setDMPEnabled (doğru);
// Arduino kəsilmə təsbitini əlavə edinInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = doğru;
// sonrakı müqayisə üçün gözlənilən DMP paket ölçüsünü əldə edin packetSize = mpu.dmpGetFIFOPacketSize (); } başqa {// HATA! }}
void loop () {// (! dmpReady) qayıtdıqda DMP düzgün başlamazsa heç nə etməyin;
// (! mpuInterrupt && fifoCount <packetSize) {} zamanı MPU -nun kəsilməsini və ya əlavə paketlərin olmasını gözləyin.
// fasilə bayrağını sıfırlayın və INT_STATUS bayt mpuInterrupt = false alın; mpuIntStatus = mpu.getIntStatus ();
// cari FIFO sayını alın fifoCount = mpu.getFIFOCount ();
əgər ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // başqa halda (mpuIntStatus & 0x02) {while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= paket ölçüsü; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "tövsiyə olunan Arduino DUE // kimi Yerli USB ilə 32 bitlik ARM əsas mikrokontrolör üçün istifadə edilə bilər. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" dir Arduino MEGA, Arduino UNO kimi NON-NATIVE USB mikro nəzarətçi üçün.. // Bunlar xeyli yavaşdır. }}
Addım 4: Oynayın
hər hansı bir vr oyununda kiçik çörək taxtasını hərəkət etdirmək kameranı döndərməlidir
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Arduino istifadə edərək RC İzlənən Robot - Addım -addım: 3 Addım
Arduino istifadə edərək RC İzlənən Robot - Addım -addım: Hey uşaqlar, BangGood -dan başqa bir sərin Robot şassisi ilə geri döndüm. Ümid edirik ki, əvvəlki layihələrimizdən keçdiniz - Spinel Crux V1 - Jestlə İdarə Edilən Robot, Spinel Crux L2 - Arduino Robot Silahlı və Badland Brawlu Robotu Seçin və Yerləşdirin
DIY Arduino Robotik Qol, Addım -addım: 9 addım
DIY Arduino Robotik Kol, Addım -addım: Bu dərslik sizə bir robot qolu necə qurmağı öyrədir