Mündəricat:

Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə: 5 addım
Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə: 5 addım

Video: Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə: 5 addım

Video: Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə: 5 addım
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Noyabr
Anonim
Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə
Gyro, Accelerometer və Arduino istifadə edərək Açı Ölçmə

Cihaz, nəticədə özünü tarazlaşdıran bir robot olacaq şeyin kobud bir prototipidir, bu deşik işinin ikinci hissəsidir (akselerometr oxuyun və motoru özünü tarazlaşdırmaq üçün idarə edin). Yalnız cayro ilə birinci hissəni burada tapa bilərsiniz. Bu təlimatda, həm giroskopu, həm də akselerometrdən istifadə edərək və hamar bir siqnal əldə etmək üçün hər iki sensoru birləşdirən bir texnikadan istifadə edərək ölçəcəyik. Texnikaya "tamamlayıcı filtr" deyilir

Addım 1: Ehtiyacımız olan:

Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan
Ehtiyacımız olan

Bəzi hissələr dəyişdirilə bilər və bəzi dəyişikliklər cihazınıza uyğun olaraq edilməlidir. Bu layihədə istifadə edəcəyik:- Breadboard- Mikro nəzarətçi, Arduinoboard- Tel- Jumper Telləri- Gyroscope XV-8100- Nunchuck Wii (sürətləndirici üçün)- Arduino üçün Nunchuck Wii adapteri

Addım 2: Bina…

Bina…
Bina…
Bina…
Bina…
Bina…
Bina…

Dövrə, arduino -da 0 portuna birbaşa bağlı olan bir giroskopdan və I2C portunda bir nunchuck wii -dən ibarətdir. - çörək taxtasına girrou qoşun2. - telin hər şeyi:- Arduino-da analog port0-a qoşulan cirodan Vo pin (Açıq narıncı tel)- Torpaqla əlaqəli girrodan G pin (Ağ tel)- Vdd-ə qoşulan girodan V+ pin (Narıncı tel) Montaj akselerometr: 1. - adapteri nunchuck2 -ə qoşun. - adapteri istifadə edərək nunchucku arduino -ya qoşun. - Accel sensorunu yuxarıdakı şəkildəki kimi yerləşdirin

Addım 3: Davam etməzdən əvvəl bəzi əlavə məlumatlar

Davam etməzdən əvvəl bəzi əlavə məlumatlar
Davam etməzdən əvvəl bəzi əlavə məlumatlar
Davam etməzdən əvvəl bəzi əlavə məlumatlar
Davam etməzdən əvvəl bəzi əlavə məlumatlar
Davam etməzdən əvvəl bəzi əlavə məlumatlar
Davam etməzdən əvvəl bəzi əlavə məlumatlar

Hər iki sensordan bucağı ölçə bilərik, ancaq iki fərqli texnikadan istifadə edirik. Gyrodan istifadə edərək bucağı ölçmək üçün siqnalı birləşdirməliyik. Amma niyə bunu etməliyik? Gyro bizə bucaq dərəcəsi verdiyindən, bucağı əldə etməyin sadə bir yolu, bucaq nisbətini zamana vurmaqdır [açı = bucaq + w * dt] Bir akselerometrdən istifadə edərək bucağı ölçmək üçün hər bir cazibə qüvvəsini hiss etməliyik. akselerometrin oxu, bunun nə demək olduğunu, cazibə qüvvəsinin sürətlənməsinin sensorun hər istiqamətindəki proyeksiyası bizə bucaq haqqında fikir verir. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))]) Bəs niyə bir sensoru əvəzinə iki sensor istifadə edəcəyik? Hər iki sensor xüsusiyyətindən faydalanmaq üçün. Gyro məlumatlarının davamlı artımına baxsanız, buna drift deyilir və akselerometr məlumatları çox qısa müddətdə çox dəyişir. Bunun arxasında duran dəqiq nəzəriyyəni bilmirəm, amma yaxşı işləyir. İnternetdə bəzi məlumatlar var, daha çox məlumat lazımdırsa google -a daxil olun. Bu linkdə çoxlu məlumatlar var və faydalı ola bilər.filtered_angle = HPF*(filtered_angle + w*dt) + LPF*(angle_accel); burada HPF + LPF = 1 HPF və LPF dəyərlərini filter.pdf faylında bu linkdə tapa bilərsiniz. "DIY Segway" dən sizə təşəkkür edirəm. Test məqsədləri üçün bu dəyərləri bu şəkildə təyin edəcəyik, HPF = 0.98 və LPF = 0.02.

Addım 4: Kod:

Kod, başqa bir layihədə istifadə etdiyim bir koddan bir uyğunlaşmadır. Yəqin ki, istifadə edilməyən bəzi dəyişənlər var. Http://todbot.com/blog/ saytından nunchuck məlumatlarını oxumaq üçün kitabxanadan istifadə etdim. Təşəkkür edirəm Tod E. Kurt. Kod haqqında şərhlər portuqal dilindədir, boş vaxtım olanda onu tərcümə edəcəyəm. Kod xətti ilə bu nümunə olan bəzi nömrələr çıxır: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Beləliklə, bu dəyərləri seriyalı terminalda saxlaya və qrafik qura və ya başqa şeylər üçün bucaqdan istifadə edə bilərsiniz. Kod haqqında hər hansı bir şərhə ehtiyacınız varsa, soruşmaqda çətinlik çəkmisiniz. zipli. Yalnız açın, açın və arduino -ya yükləyin.

Addım 5: Test və Nəticə

Test və Nəticə
Test və Nəticə
Test və Nəticə
Test və Nəticə

Termit adlı bir proqramı istifadə edərək məlumatları saxladığım sistemi sınamaq üçün bu məlumatları excel -ə daxil edin və filtrimin nə qədər yaxşı olduğunu görmək üçün qrafik qurun. Nəticələr inanılmazdır. Əlbəttə ki, bir motoru və ya digər şeyləri idarə etmək üçün siqnaldan istifadə edə bilərsiniz. Hər hansı bir şərh, hər hansı bir şübhə, hər hansı bir məlumat çatışmazlığı varsa, sadəcə mənə deyin və mən düzəldim. Zəhmət olmasa bunu qiymətləndirsəniz, hamınıza təşəkkür edirəm.

Tövsiyə: