Мазмуну:
Video: Arduino Vr: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Саламатсызбы Менин атым Кристиан, мен 13 жаштамын. Мен ардуинону жакшы көрөм жана анын таланты бар, бул жерде менин arduino vr үчүн көрсөтмөм бар.
Жабдуулар
Берилиштер:
1. Arduino board Mega, Due, Uno же Yun.
2. Эркектен эркекке (стандарттуу секирүүчү зымдар) зымдар.
3. Кичинекей нан
4. USB
5. GY-521 MPU-6050
Кошумча:
6. 5.5 дюйм 2560*1440 2K ЖК Экран HDMI MIPIге
7. Френель линзасы Фокус аралыгы 50мм
8. 3-D принтер же 3d принтер кызматы
1 -кадам: чогултуу
Аны бириктирүү үчүн схеманы колдонуңуз.
2 -кадам: Китепкана кантип орнотулат?
Githubду карап көрүңүз: https://github.com/relativty/Relativ Сиз аны Git же түз жүктөө аркылуу орното аласыз.
3 -кадам: Код
// i2cdevlib жана MPU6050 керек:
// Укмуш Jeff Rowberg <3 үчүн чоң рахмат, MPU6050 жөнүндө көбүрөөк билүү үчүн анын репосун текшериңиз. // =============================================== =============================
// I2Cdev жана MPU6050 китепканалар катары орнотулушу керек, же болбосо.cpp/.h файлдары // эки класс үчүн долбооруңуздун кошуу жолунда болушу керек.
#"Relativ.h" кошуу
#"I2Cdev.h" кошуу
#кошуу "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #incire "Wire.h" #endif
MPU6050 мпу; Relativ relativ;
#аныктоо INTERRUPT_PIN 2
// ӨИКтин абалы жана көзөмөлү: 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]
туруксуз бол mpuInterrupt = false; // MPU үзгүлтүк пини жогорку боштукка кеткенин көрсөтөт dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400 кГц I2C сааты. Компиляцияда кыйынчылыктар болсо, бул сапка комментарий жазыңыз #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // "startNative" сунушталат Arduino DUE // сыяктуу Native USB менен 32 биттик ARM негизги микроконтроллери үчүн колдонулушу мүмкүн. // Relativ.start (); // "баштоо" Arduino MEGA, Arduino UNO сыяктуу ТҮПКҮ эмес USB микроконтроллери үчүн.. // Булар кыйла жайыраак. 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 эгер баары туура иштесе if (devStatus == 0) {// DMPти күйгүзүңүз, азыр ал даяр mpu.setDMPEnabled (чыныгы);
// иштетүү Arduino үзүлүүнү аныктоо attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = чын;
// кийинчерээк салыштыруу үчүн күтүлгөн DMP пакетинин өлчөмүн алуу packetSize = mpu.dmpGetFIFOPacketSize (); } башка {// КАТА! }}
void loop () {// (! dmpReady) кайтып келсе, DMP туура башталбаса эч нерсе кылбаңыз;
// MPU үзгүлтүгүн же кошумча пакеттерди (! mpuInterrupt && fifoCount <packetSize) {} жеткиликтүү болушун күтө туруңуз
// үзгүлтүк желегин баштапкы абалга келтирүү жана INT_STATUS байтты алуу mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// учурдагы FIFO санын алыңыз fifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) {mpu.resetFIFO (); } // үзгүлтүккө учурабаганын текшериңиз эгер (mpuIntStatus & 0x02) {while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (fifoBuffer, packetSize); fifoCount -= packetSize; mpu.dmpGetQuaternion (& q, fifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "сунушталган Arduino DUE // сыяктуу Native USB менен 32 биттик ARM негизги микроконтроллери үчүн колдонулушу мүмкүн. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" болуп саналат ТУУРА эмес USB микроконтроллери үчүн, Arduino MEGA, Arduino UNO.. // Булар кыйла жайыраак. }}
4 -кадам: Play
кичинекей нан тактасын каалаган vr оюнунда жылдыруу камераны бурушу керек
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
RC Tracked роботу Arduino аркылуу - Кадам менен: 3 кадам
Arduino аркылуу RC Tracked роботу - Кадам менен: Эй балдар, мен BangGoodдан дагы бир сонун робот шасси менен кайтып келдим. Сиз мурунку долбоорлорубуздан өттүңүз деп үмүттөнөбүз - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotik Arms and The Badland Braw
Arduino автоматташтырылган көлөкө экраны долбоору үчүн кадам моторун жана драйверди тандоо: 12 кадам (сүрөттөр менен)
Arduino автоматташтырылган көлөкө экраны долбоору үчүн тепкич моторун жана драйверди тандоо: Бул Нускамада мен Automated Shade Screen долбоорунун прототипине Step Motor жана Driver тандоо үчүн жасаган кадамдарымдан өтөм. Көлөкөлүү экрандар - бул популярдуу жана арзан Coolaroo кол менен жасалган моделдер, мен аны алмаштыргым келди
DIY Arduino робот колу, Кадам менен: 9 кадам
DIY Arduino Robotic Arm, Step by Step: Бул окуу куралы сизге робот колун кантип курууну үйрөтөт