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, Decembar
Anonim
Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina
Mjerenje kuta 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č akcelerometra i kontrolirajte motor 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: Šta će nam trebati:

Šta će nam trebati
Šta će nam trebati
Šta će nam trebati
Šta će nam trebati
Šta će nam trebati
Šta će nam trebati
Šta će nam trebati
Šta ć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…

Izgradnja…
Izgradnja…
Izgradnja…
Izgradnja…
Izgradnja…
Izgradnja…

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 sa žiroskopa spojen na analogni port0 na arduinu (svijetlo narančasta žica)- G pin sa žiroskopa spojen na masu (bijela žica)- V+ pin sa ž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

Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo
Nekoliko dodatnih informacija prije nego nastavimo

Iz oba senzora možemo mjeriti kut, ali koristeći dvije različite tehnike. Da bismo mjerili kut 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 da dobijete kut da kutnu brzinu pomnožite s vremenom [kut = kut + w * dt] Za mjerenje ugla pomoću akcelerometra moramo osjetiti gravitaciju u svakom osa akcelerometra, što to znači, projekcija gravitacijskog ubrzanja u svakom smjeru senzora daje nam ideju o kutu. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Pa zašto ćemo koristiti dva senzora umjesto jednog? Da biste iskoristili prednosti oba svojstva senzora. Ako pogledate grafiku kontinuiranog povećanja žiro podataka, to se naziva drift i podaci akcelerometra se jako mijenjaju u malom vremenu. A kako spojiti oba signala? Koristit ćemo tehniku koja se zove komplementarni filter. Ne znam tačnu teoriju iza ovoga, ali dobro funkcionira. Na internetu postoje neke informacije, samo ih potražite na Google -u ako vam je potrebno više informacija. Ova veza sadrži mnogo 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 vezi, u datoteci filter.pdf. Hvala vam momci iz "DIY Segwaya". Samo u svrhu testiranja ove vrijednosti ćemo postaviti ovako, HPF = 0,98 i LPF = 0,02.

Korak 4: Kôd:

Kôd je adaptacija koda koji sam koristio na drugom projektu. Vjerojatno postoje neke varijable koje se ne koriste. Koristio sam biblioteku za čitanje nunchuck podataka sa 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 red neke brojeve sa 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 ziped. Samo raspakirajte, otvorite i postavite 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

Da bih testirao sistem, sačuvao sam podatke pomoću programa pod nazivom Termite, zatim uvezim ove podatke u excel i iscrtaj grafiku da vidim koliko je dobar moj filter. Rezultati su nevjerovatni. Naravno da možete koristiti signal za vožnju motora ili druge stvari. Svaki komentar, bilo kakva sumnja, bilo koja informacija nedostaje, samo mi recite i ispravit ću je. Molim vas, ocijenite to. Hvala vam svima.

Preporučuje se: