Sisukord:

Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil: 5 sammu
Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil: 5 sammu

Video: Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil: 5 sammu

Video: Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil: 5 sammu
Video: Malliga nurga suuruse mõõtmine, kui mallil on välimise skaala null vasakul pool. 2024, Juuli
Anonim
Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil
Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil

Seade on ligikaudne prototüüp sellest, millest saab lõpuks isetasakaalu robot, see on aukude teine osa (lugege kiirendusmõõturit ja juhtige mootorit enese tasakaalustamiseks). Esimese osa, kus on ainult güroskoop, leiate siit. Selle juhendi järgi mõõdame nurka nii güroskoobi kui ka kiirendusmõõturi abil ning kasutades tehnikat, mis ühendab mõlemad andurid sujuva signaali saamiseks. Seda tehnikat nimetatakse "täiendavaks filtriks".eelne

Samm: mida me vajame:

Mida me vajame
Mida me vajame
Mida me vajame
Mida me vajame
Mida me vajame
Mida me vajame
Mida me vajame
Mida me vajame

Mõnda osa saab asendada ja mõningaid muudatusi koodis tuleb teha vastavalt teie riistvarale. Selles projektis kasutame:- Leivaplaati- Mikrokontrollerit, ma kasutasin Arduinoboardi- Traadi- Jumperi juhtmeid- Güroskoop XV-8100- Nunchuck Wii (kiirendusmõõturi jaoks)- Nunchuck Wii adapter Arduino jaoks

2. samm: ehitamine…

Ehitamine…
Ehitamine…
Ehitamine…
Ehitamine…
Ehitamine…
Ehitamine…

Vooluahel koosneb güroskoobist, mis on ühendatud otse teie arduino pordiga 0, ja nunchuck wii ühendusega I2C pordis. Güroskoobi kokkupanek: 1. - ühendage güroskoop leivaplaadiga2. - juhtme kunagi asi:- Vo pin güroskoopist ühendatud analoogpordiga 0 at arduino (heleoranž juhe)- G pin güroskoopist maandusega ühendatud (valge traat)- V+ pin güroskoopist ühendatud Vdd-ga (3.3 V) (oranž traat) kiirendusmõõtur: 1. - ühendage adapter nunchuck2 külge. - ühendage adapteri abil arduino juures olev nunchuck3. - asetage kiirendusandur nagu ülaltoodud foto

Samm: enne jätkamist lisateavet

Lisateavet enne jätkamist
Lisateavet enne jätkamist
Lisateavet enne jätkamist
Lisateavet enne jätkamist
Lisateavet enne jätkamist
Lisateavet enne jätkamist

Mõlema anduri abil saame nurka mõõta, kuid kasutades kahte erinevat tehnikat. Güroskoobi abil nurga mõõtmiseks peame signaali integreerima. Aga miks me peame seda tegema? Kuna güroskoop annab meile nurgakiiruse, on nurga saamiseks lihtne viis nurgakiirus korrutada ajaga [nurk = nurk + w * dt] Nurga kiirendusmõõturiga mõõtmiseks peame tajuma kummagi raskusastet kiirendusmõõturi telg, mida see tähendab, gravitatsioonikiirenduse projektsioon anduri igas suunas annab meile aimu nurga kohta. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Miks peaksime ühe asemel kasutama kahte andurit? Mõlema anduri omaduse ärakasutamiseks. Kui vaatate graafikat, siis güroskoopiliste andmete pidevat suurenemist nimetatakse seda triivimiseks ja kiirendusmõõturi andmed muutuvad väikese ajaga palju. Ja kuidas ühendada mõlemad signaalid? Kasutame tehnikat, mida nimetatakse täiendavaks filtriks. Ma ei tea selle taga olevat täpset teooriat, kuid see töötab hästi. Internetis on natuke teavet, lisage Google, kui vajate lisateavet. Sellel lingil on palju teavet ja see võib olla kasulik.filter_nurk = HPF*(filtreeritud_nurk + w*dt) + LPF*(nurk_tükk); kus HPF + LPF = 1 HPF ja LPF väärtused leiate sellelt lingilt, faililt filter.pdf. Aitäh teile "The DIY Segway". Lihtsalt testi eesmärgil määrame need väärtused nii, HPF = 0,98 ja LPF = 0,02.

4. samm: kood:

Kood on kohandus koodist, mida kasutasin teises projektis. Tõenäoliselt on mõned muutujad kasutamata. Ma kasutasin raamatukogu, et lugeda nunchucki andmeid saidilt https://todbot.com/blog/. Aitäh Tod E. Kurt. Kommentaarid koodi kohta on portugali keeles, niipea kui mul on vaba aega, tõlgin selle. Koodiväljundi kaudu jadajoone kaudu on mõned selle mustriga numbrid: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Nii saate salvestada need väärtused jadaterminalis ja joonistada graafika või kasutada nurka muudeks asjadeks. Kui vajate koodi kohta mingit selgitust, küsige seda vabalt. Kood on tõmblukuga. Lihtsalt pakkige lahti, avage ja laadige see oma arduino -sse üles.

Samm: testimine ja järeldused

Testimine ja järeldused
Testimine ja järeldused
Testimine ja järeldused
Testimine ja järeldused

Süsteemi testimiseks salvestasin andmed programmiga Termite, seejärel importisin need andmed Excelisse ja joonistasin graafika, et näha, kui hea minu filter on. Tulemused on hämmastavad. Muidugi saate signaali kasutada mootori või muude asjade juhtimiseks. Kõik kommentaarid, kahtlused, puuduv teave, lihtsalt öelge mulle ja ma parandan seda. Palun, kui see teile meeldib, hinnake. Tänan teid kõiki.

Soovitan: