Sadržaj:
- Korak 1: Šta će nam trebati:
- Korak 2: Izgradnja…
- Korak 3: Dodatne informacije prije nego nastavimo
- Korak 4: Kôd:
- Korak 5: Testiranje i zaključak
Video: Mjerenje kuta pomoću žiroskopa, akcelerometra i Arduina: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:10
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:
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…
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
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
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:
Mjerenje brzine motora pomoću Arduina: 6 koraka
Mjerenje brzine motora pomoću Arduina: Je li teško mjeriti okretaje motora ??? Mislim da nije. Evo jednog jednostavnog rješenja. Samo jedan IC senzor i Arduino u vašem kompletu to mogu učiniti. U ovom postu dat ću jednostavan vodič koji objašnjava kako mjeriti okretaje bilo kojeg motora pomoću IC senzora i A
Sistem upozorenja o nesreći pomoću GSM -a, GPS -a i akcelerometra: 5 koraka (sa slikama)
Sistem upozorenja o nesreći pomoću GSM -a, GPS -a i akcelerometra: Molimo vas da me glasate za takmičenjeMolim vas, glasajte za takmičenje. Danas mnogi ljudi poginu na cesti zbog nesreće, glavni uzrok je "kašnjenje u spašavanju". Ovaj je problem vrlo velik u zemljama u razvoju pa sam osmislio ovaj projekt za spašavanje
Mjerenje frekvencije i napona napajanja pomoću Arduina: 6 koraka
Mjerenje frekvencije i napona napajanja pomoću Arduina: Uvod: Cilj ovog projekta je mjerenje frekvencije i napona napajanja, koji je ovdje u Indiji između 220 do 240 volti i 50Hz. Koristio sam Arduino za hvatanje signala i izračunavanje frekvencije i napona, možete koristiti bilo koji drugi mikrokontrolnik
Mjerenje istosmjernog napona pomoću Arduina: 5 koraka
Mjerenje istosmjernog napona pomoću Arduina: U ovom projektu pokazat ću vam kako mjeriti DC napon do 50v pomoću arduina i i prikaz na dijelu OLED ekranskog modula treba arduino UNOoled zaslon 10k ohm otpornik1k ohm otpornički kabel
Mjerenje temperature pomoću PT100 i Arduina: 16 koraka
Mjerenje temperature pomoću PT100 i Arduina: Cilj ovog projekta je dizajnirati, izgraditi i testirati sistem osjetljivog na temperaturu. Sistem je dizajniran za mjerenje temperaturnog raspona od 0 do 100 ° C. Za mjerenje temperature korišten je PT100, a radi se o otporniku temperaturnog detektora (RTD)