Kazalo:

Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom: 5 korakov
Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom: 5 korakov

Video: Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom: 5 korakov

Video: Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom: 5 korakov
Video: Поддерживаем японское производство! 5 страшных процессов кастинга! 2024, November
Anonim
Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom
Merjenje kota z žiroskopom, merilnikom pospeška in Arduinom

Naprava je grob prototip tistega, kar bo sčasoma postal robot za samoravnovesje, to je drugi del luknje (preberite merilnik pospeška in nadzorite motor do lastnega ravnovesja). Prvi del s samo žiroskopom najdete tukaj. V tem navodilu bomo kot izmerili s pomočjo žiroskopa in merilnika pospeška ter s tehniko združevanja obeh senzorjev za nemoten signal. Tehnika se imenuje "komplementarni filter".prejšnja

1. korak: Kaj potrebujemo:

Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali
Kaj bomo potrebovali

Nekatere dele je mogoče zamenjati, nekatere kode pa je treba prilagoditi glede na vašo strojno opremo. Pri tem projektu bomo uporabili:- Breadboard- Mikrokontroler, uporabil sem Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (za merilnik pospeška)- Nunchuck Wii adapter za Arduino

2. korak: Gradnja…

Gradnja…
Gradnja…
Gradnja…
Gradnja…
Gradnja…
Gradnja…

Vezje je sestavljeno iz žiroskopa, priključenega neposredno na vrata 0 na vašem arduinu, in nunchuck wii priključka na vratih I2C. Sestavljanje žiroskopa: 1. - priključite žiroskop na ploščo2. - žična stvar:- Vo pin iz žiroskopa, priključen na analogna vrata 0 na arduinu (svetlo oranžna žica)- G pin iz žiroskopa, priključen na maso (bela žica)- V+ pin iz žiroskopa, priključen na Vdd (3,3 V) (oranžna žica) Sestavljanje merilnik pospeška: 1. - priključite adapter na nunchuck2. - priključite nunchuck na arduino z adapterjem3. - senzor pospeška postavite kot zgornjo fotografijo

Korak: Nekaj dodatnih informacij, preden nadaljujemo

Nekaj dodatnih informacij, preden nadaljujemo
Nekaj dodatnih informacij, preden nadaljujemo
Nekaj dodatnih informacij, preden nadaljujemo
Nekaj dodatnih informacij, preden nadaljujemo
Nekaj dodatnih informacij, preden nadaljujemo
Nekaj dodatnih informacij, preden nadaljujemo

Iz obeh senzorjev lahko izmerimo kot, vendar z uporabo dveh ločenih tehnik. Za merjenje kota z žiroskopom moramo integrirati signal. Toda zakaj moramo to narediti? Ker nam žiroskop daje kotno hitrost, je preprost način, da dobimo kot, tako, da kotno hitrost pomnožimo s časom [kot = kot + w * dt] Za merjenje kota s pomočjo merilnika pospeška moramo zaznati težo v vsakem osi merilnika pospeška, kaj to pomeni, projekcija pospeška gravitacije na vsako smer senzorja nam daje predstavo o kotu. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Zakaj bomo torej namesto enega uporabili dva senzorja? Izkoristite prednosti obeh lastnosti senzorja. Če pogledate grafiko nenehnega povečevanja podatkov o žiroskopih, se to imenuje premik in podatki merilnika pospeška se v zelo kratkem času zelo spremenijo. In kako združiti oba signala? Uporabili bomo tehniko, imenovano komplementarni filter. Ne vem natančne teorije za to, vendar deluje dobro. Na internetu je nekaj informacij, če jih potrebujete, jih poiščite na Googlu. Ta povezava vsebuje veliko informacij in je lahko koristna.filtered_angle = HPF*(filtriran_okotnik + w*dt) + LPF*(kot_scena); kjer je HPF + LPF = 1Vrednosti HPF in LPF najdete na tej povezavi v datoteki filter.pdf. Hvala vam, fantje iz "DIY Segway". Samo za testne namene bomo te vrednosti nastavili tako, HPF = 0,98 in LPF = 0,02.

4. korak: Koda:

Koda je prilagoditev kode, ki sem jo uporabil pri drugem projektu. Verjetno obstaja nekaj neuporabljenih spremenljivk. Uporabil sem knjižnico za branje podatkov o nunchucku s spletnega mesta https://todbot.com/blog/. Hvala Tod E. Kurt. Komentarji na kodo so v portugalščini, takoj ko bom imel prosti čas, jo bom prevedel. Koda bo skozi serijsko vrstico dala nekaj številk s tem vzorcem: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Tako lahko te vrednosti shranite na serijski terminal in narišete grafiko ali uporabite kot za druge stvari. z zadrgo. Samo razpakirajte, odprite in naložite na svoj arduino.

5. korak: Preizkus in zaključek

Testiranje in zaključek
Testiranje in zaključek
Testiranje in zaključek
Testiranje in zaključek

Za preizkus sistema sem podatke shranil s programom, imenovanim Termite, nato pa te podatke uvozim v excel in narisal grafiko, da vidim, kako dober je moj filter. Rezultati so neverjetni. Seveda lahko signal uporabite za pogon motorja ali druge stvari. Kakršne koli pripombe, kakršen koli dvom, manjkajoče informacije, mi samo povejte, da jih popravim. Prosim, če vam je to všeč, ocenite. Hvala vsem.

Priporočena: