Sadržaj:

Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina: 5 koraka
Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina: 5 koraka

Video: Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina: 5 koraka

Video: Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina: 5 koraka
Video: ❓ Обязательно к просмотру начинающему в Arduino IDE (ошибка компилятора) 2024, Srpanj
Anonim
Mjerenje kutova pomoću žiroskopa, akcelerometra i Arduina
Mjerenje kutova pomoću žiroskopa, akcelerometra i Arduina

Uređaj je grubi prototip onoga što će na kraju postati robot za automatsku ravnotežu, ovo je drugi dio rupe (pročitajte mjerač ubrzanja i upravljajte motorom do ravnoteže). Prvi dio sa samo žiroskopom možete pronaći ovdje. Na ovom uputstvu mjerit ćemo kut pomoću žiroskopa i akcelerometra te pomoću tehnike za spajanje oba senzora kako bismo dobili glatki signal. Tehnika se naziva "komplementarni filter".prethodna

Korak 1: Ono što će nam trebati:

Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati
Ono što će nam trebati

Neki se dijelovi mogu zamijeniti, a neke izmjene u kodu moraju biti napravljene kako bi odgovarale vašem hardveru. U ovom projektu ćemo koristiti:- Breadboard- Mikrokontroler, koristio sam Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (za akcelerometar)- Nunchuck Wii adapter za Arduino

Korak 2: Izgradnja…

Zgrada…
Zgrada…
Zgrada…
Zgrada…
Zgrada…
Zgrada…

Krug se sastoji od žiroskopa spojenog izravno na priključak 0 na vašem arduinu i nunchuck wii spoja na priključku I2C. Sastavljanje žiroskopa: 1. - priključite žiroskop na matičnu ploču2. - žičana stvar:- Vo pin s žiroskopa spojen na analogni port0 na arduinu (svijetlo narančasta žica)- G pin s žiroskopa spojen na masu (bijela žica)- V+ pin s žiroskopa spojen na Vdd (3.3V) (narančasta žica) Sklapanje akcelerometar: 1. - priključite adapter na nunchuck2. - priključite nunchuck na arduino pomoću adaptera3. - postavite senzor ubrzanja kao na gornjoj fotografiji

Korak 3: Dodatne informacije prije nego nastavimo

Neke dodatne informacije prije nego nastavimo
Neke dodatne informacije prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Neke dodatne informacije prije nego nastavimo
Neke dodatne informacije prije nego nastavimo

S oba senzora možemo mjeriti kut, ali koristeći dvije različite tehnike. Za mjerenje kuta pomoću žiroskopa moramo integrirati signal. Ali zašto to moramo učiniti? Budući da nam žiroskop daje kutnu brzinu, pa je jednostavan način dobivanja kuta kutna brzina pomnožena s vremenom [kut = kut + w * dt] Za mjerenje kuta pomoću akcelerometra moramo osjetiti gravitaciju u svakom os akcelerometra, što to znači, projekcija ubrzanja gravitacije u svakom smjeru senzora daje nam ideju o kutu. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Pa zašto ćemo umjesto jednog koristiti dva senzora? Kako biste iskoristili prednosti oba svojstva senzora. Ako pogledate grafiku kontinuiranog povećanja podataka o žiroskopima, to se naziva zanošenje i podaci akcelerometra se jako mijenjaju u malom vremenu. A kako spojiti oba signala? Upotrijebit ćemo tehniku koja se zove komplementarni filter. Ne znam točnu teoriju iza ovoga, ali radi dobro. Na internetu postoje neke informacije, samo ih potražite na Googleu ako vam je potrebno više informacija. Ova veza ima puno informacija i može biti korisna.filtered_angle = HPF*(filtrirani_angle + w*dt) + LPF*(angle_accel); gdje je HPF + LPF = 1 Vrijednosti HPF i LPF mogu se pronaći na ovoj poveznici, u datoteci filter.pdf. Hvala vam momci iz "DIY Segwaya". Samo u svrhu testiranja postavit ćemo ove vrijednosti ovako, HPF = 0,98 i LPF = 0,02.

Korak 4: Kôd:

Kôd je prilagodba koda koji sam koristio na drugom projektu. Vjerojatno postoje neke varijable koje se ne koriste. Koristio sam knjižnicu za čitanje nunchuck podataka s https://todbot.com/blog/. Hvala vam Tod E. Kurt. Komentari na kôd su na portugalskom, čim budem imao slobodnog vremena, prevest ću ga. Kôd izlazi kroz serijski redak neke brojeve s ovim uzorkom: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Dakle, možete spremiti ove vrijednosti na serijski terminal i iscrtati grafiku ili upotrijebiti kut za druge stvari. Ako trebate bilo kakvo objašnjenje o kodu, slobodno pitajte. Kôd je zatvarač. Samo raspakirajte, otvorite i učitajte na svoj arduino.

Korak 5: Testiranje i zaključak

Testiranje i zaključak
Testiranje i zaključak
Testiranje i zaključak
Testiranje i zaključak

Za testiranje sustava spremio sam podatke pomoću programa pod nazivom Termite, zatim uvezim te podatke u excel i iscrtaj grafiku da vidim koliko je moj filter dobar. Rezultati su nevjerojatni. Naravno da možete upotrijebiti signal za vožnju motora ili druge stvari. Svaki komentar, svaka sumnja, bilo koja informacija nedostaje, samo mi recite i ispravit ću je. Molim vas, ocijenite. Hvala vam svima.

Preporučeni: