Բովանդակություն:
Video: Arduino Vr: 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Բարև Իմ անունը Քրիստիան է և ես 13 տարեկան եմ: Ես սիրում եմ arduino- ն և դրա տաղանդն ունեմ, ուստի ահա իմ հրահանգը arduino vr- ի համար:
Պարագաներ
Պարագաներ:
1. Arduino տախտակ Mega, Due, Uno կամ Yun:
2. Արականից արական (ստանդարտ jumper լարեր) լարեր:
3. Փոքր հացաթուղթ
4. USB
5. GY-521 MPU-6050
Լրացուցիչ:
6. 5,5 դյույմ 2560*1440 2K LCD էկրան HDMI դեպի MIPI
7. Ֆրենելի ոսպնյակ Ֆոկուսային երկարություն 50 մմ
8. 3D տպիչ կամ 3D տպիչի ծառայություն
Քայլ 1: Հավաքեք
Օգտագործեք սխեմատիկը `այն միասին հավաքելու համար:
Քայլ 2: Ինչպե՞ս տեղադրել գրադարանը:
Նայեք Github- ին ՝ https://github.com/relativty/Relativ Կարող եք տեղադրել այն Git- ի միջոցով կամ ուղղակի ներբեռնում:
Քայլ 3: Կոդ
// անհրաժեշտ են i2cdevlib և MPU6050 ՝
// Շնորհակալություն զարմանալի ffեֆ Ռոբերգին <3, գնացեք ստուգեք նրա ռեպոը ՝ ավելի շատ MPU6050 իմանալու համար: // ================================================ ==============================
// I2Cdev- ը և MPU6050- ը պետք է տեղադրվեն որպես գրադարաններ, հակառակ դեպքում.cpp/.h ֆայլերը // երկու դասերի համար պետք է լինեն ձեր նախագծի ներառման ուղու մեջ:
#ներառել «Relativ.h»
#ներառել «I2Cdev.h»
#ներառել "MPU6050_6Axis_MotionApps20.h"
#եթե I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #ներառել "Wire.h" #endif
MPU6050 մպ; Հարաբերական հարաբերականություն;
#սահմանել INTERRUPT_PIN 2
// IMU կարգավիճակ և վերահսկում. Bool dmpReady = false; // ճշմարիտ, եթե DMP init- ը հաջող էր uint8_t mpuIntStatus; uint8_t devStatus; // 0 = հաջողություն,! 0 = սխալ uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64];
Quaternion q; // [w, x, y, z]
անկայուն bool mpuInterrupt = կեղծ; // ցույց է տալիս, արդյոք MPU- ի ընդհատման քորոցը բարձր է անվավեր dmpDataReady () {mpuInterrupt = true; }
void setup () { #եթե 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 միջուկային միկրոկառավարիչի համար ՝ Arduino DUE- ի նման բնիկ USB- ով, ինչը խորհուրդ է տրվում: // Relativ.start (); // «սկիզբը» ոչ-USB 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.setDMPEnabled (true);
// միացնել 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 (); } // ստուգեք, թե արդյոք այլևս (եթե mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= packetSize; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative «կարող է օգտագործվել 32-բիթանոց ARM միջուկային միկրոկառավարիչի համար ՝ Arduino DUE- ի նման բնիկ USB- ով, որը խորհուրդ է տրվում: //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" is ոչ բնիկ USB միկրոկառավարիչի համար, ինչպես Arduino MEGA- ն, Arduino UNO.. // Դրանք զգալիորեն ավելի դանդաղ են: }}
Քայլ 4: Խաղալ
Փոքր տախտակի տեղափոխումը ցանկացած vr խաղի վրա պետք է պտտել տեսախցիկը
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
RC Tracked Robot- ը Arduino- ի միջոցով ՝ քայլ առ քայլ ՝ 3 քայլ
RC Tracked Robot- ը Arduino- ի միջոցով. Հուսով եմ, որ դուք անցել եք մեր նախորդ նախագծերի միջով `Spinel Crux V1 - The Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms և The Badland Braw
DIY Arduino Robotic Arm, Քայլ առ քայլ ՝ 9 քայլ
DIY Arduino Robotic Arm, Քայլ առ քայլ. Այս ձեռնարկը սովորեցնում է ձեզ, թե ինչպես ինքնուրույն կառուցել ռոբոտ -բազուկ