Mundarija:
- 1 -qadam: Bizga nima kerak:
- 2 -qadam: qurilish …
- 3 -qadam: Davom etishdan oldin ba'zi qo'shimcha ma'lumotlar
- 4 -qadam: Kod:
- 5 -qadam: Sinov va xulosa
Video: Gyro, akselerometr va Arduino yordamida burchakni o'lchash: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:29
Qurilma - bu o'z -o'zidan muvozanatli robotga aylanadigan prototip, bu teshikning ikkinchi qismi (akselerometrni o'qing va dvigatelni o'z balansida boshqaring). Bu erda biz faqat gyro bilan birinchi qismni topamiz, bu ko'rsatmada biz burchakni gyro va akselerometr yordamida o'lchaymiz va har ikkala sensorni birlashtiradigan uskuna yordamida silliq signal olamiz. Texnika "qo'shimcha filtr" deb ataladi. Oldingi
1 -qadam: Bizga nima kerak:
Ba'zi bir qismlarni o'zgartirish mumkin, va ba'zi o'zgartirishlar sizning dasturingizga mos bo'lishi kerak. Ushbu loyihada biz quyidagilarni ishlatamiz:- Breadboard- Mikrokontroller, men Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (akselerometr uchun)- Arduino uchun Nunchuck Wii adapteri
2 -qadam: qurilish …
O'chirish arduino -ning 0 -portiga to'g'ridan -to'g'ri ulangan giroskopdan va I2C portidagi nunchuck wii -dan iborat. - gyrosni non taxtasiga ulang2. - simli narsa:- Arduino-dagi analog portga ulangan gyrodan ovozli pin (och to'q sariq sim)- erga ulangan gyrodan pin (oq sim)- Vdd ga ulangan girodan V+ pin (to'q sariq sim) yig'ish akselerometr: 1. - adapterni nunchuck2 ga ulang. - adapter3 yordamida nunchukni arduino -ga ulang. - aksel sensorini yuqoridagi rasmga joylashtiring
3 -qadam: Davom etishdan oldin ba'zi qo'shimcha ma'lumotlar
Ikkala sensordan ham biz burchakni o'lchashimiz mumkin, lekin ikkita alohida usuldan foydalanamiz. Burchakni gyro yordamida o'lchash uchun biz signalni birlashtirishimiz kerak, lekin nima uchun buni qilishimiz kerak? Jiroskop bizga burchak tezligini bergani uchun, burchak olishning oddiy usuli - burchak tezligini vaqtga ko'paytirishi [burchak = burchak + w * dt] Akselerometr yordamida burchakni o'lchash uchun biz har birining tortishish kuchini sezishimiz kerak. akselerometr o'qi, bu nimani anglatadi, tortishish tezlanishining sensorning har bir yo'nalishi bo'yicha proektsiyasi bizga burchak haqida tasavvur beradi. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Xo'sh, nega biz bitta sensor o'rniga ikkita sensorni ishlatamiz? Sensorning ikkala xususiyatidan ham foydalanish uchun. Agar siz gyro ma'lumotlarining uzluksiz o'sishiga qarasangiz, bu drift deb ataladi va akselerometr ma'lumotlari qisqa vaqt ichida tez o'zgaradi va ikkala signalni qanday birlashtirish mumkin? Biz qo'shimcha filtr deb nomlangan texnikadan foydalanamiz. Men buning aniq nazariyasini bilmayman, lekin u yaxshi ishlaydi. Internetda ba'zi ma'lumotlar bor, agar qo'shimcha ma'lumot kerak bo'lsa, uni google -ga kiriting. Bu havola juda ko'p ma'lumotlarga ega va foydali bo'lishi mumkin.filtered_angle = HPF*(filtered_angle + w*dt) + LPF*(angle_accel); bu erda HPF + LPF = 1 HPF va LPF qiymatlarini filter.pdf faylidagi havolada topish mumkin. Sizga "DIY Segway" dan rahmat. Faqat sinov maqsadida biz bu qiymatlarni shunday o'rnatamiz: HPF = 0.98 va LPF = 0.02.
4 -qadam: Kod:
Kod - bu men boshqa loyihada ishlatgan koddan moslashtirish. Ehtimol, ishlatilmagan ba'zi o'zgaruvchilar bor, men kutubxonadan https://todbot.com/blog/ saytidagi nunchuck ma'lumotlarini o'qish uchun foydalanardim. Rahmat, Tod E. Kurt. Kodga sharhlar portugal tilida, bo'sh vaqtim bo'lgach, uni tarjima qilaman. Kod ketma -ket chiziq orqali shunday naqshli ba'zi raqamlarni chiqaradi: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Shunday qilib, siz bu qiymatlarni ketma -ket terminalda saqlashingiz va grafik chizishingiz yoki boshqa narsalar uchun burchakdan foydalanishingiz mumkin. ziplangan Faqat oching, oching va uni arduino -ga yuklang.
5 -qadam: Sinov va xulosa
Tizimni sinab ko'rish uchun men ma'lumotlarni Termit deb nomlangan dastur yordamida saqladim, keyin bu ma'lumotlarni excel -ga import qilib, filtrimni qanchalik yaxshi ekanligini aniqlash uchun grafikni tuzing. Natijalar ajoyib. Albatta, siz signalni motorni yoki boshqa narsalarni haydash uchun ishlatishingiz mumkin. Har qanday izoh, shubhasiz, har qanday ma'lumot yo'qolsa, menga ayting va men uni tuzataman. Agar sizga bu yoqsa, baho bering. Barchangizga rahmat.
Tavsiya:
MPU 6050 Gyro, Arduino bilan akselerometr aloqasi (Atmega328p): 5 qadam
MPU 6050 Gyro, Arduino bilan akselerometr aloqasi (Atmega328p): MPU6050 IMU 3 o'qli akselerometr va bitta o'qga o'rnatilgan 3 o'qli giroskopga ega. X, Y va Z o'qlari. Gyroskopning natijalari
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: Go'zallik bizni o'rab oladi, lekin odatda biz buni bilish uchun bog'da yurishimiz kerak. - Biz o'qimishli guruh sifatida biz energiyamizning katta qismini kompyuter va mobil telefonlarimizdan oldin sarflaymiz. Shuning uchun, biz tez -tez o'z sog'ligimizga ruxsat beramiz
MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: 3 qadam
MPU-6050 (GY-521) yordamida burchakni qanday o'lchash mumkin: Ushbu yo'riqnomada biz burchakni Arduino yordamida o'lchaymiz. Burchakni o'lchash uchun bizga Arduino UNO va GY-521 (MPU-6050) kabellari kerak
Smartfon o'yini simulyatori- IMU, akselerometr, giroskop, magnitometr yordamida imo-ishorali boshqaruv yordamida Windows o'yinlarini o'ynang: 5 qadam
SmartPhone O'yin Simulyatori- Imo-ishora nazorati yordamida Windows o'yinlarini o'ynang, akselerometr, giroskop, magnitometr: Ushbu loyihani qo'llab-quvvatlang: https://www.paypal.me/vslcreations ochiq kodli kodlarga xayriya qilish orqali & yanada rivojlanishini qo'llab -quvvatlash
Akselerometr va Gyro qo'llanmasi: 3 qadam
Akselerometr va Gyro darsligi: Kirish Ushbu qo'llanma elektronika loyihalarida akselerometr va giroskoplarni, shuningdek, IMU kombinatsiyali qurilmalarini (inertial o'lchov birligi) ishlatishni istagan har bir kishiga mo'ljallangan. Biz akselerometr nimani o'lchaydi?