Sisukord:
- Samm: mida me vajame:
- 2. samm: ehitamine…
- Samm: enne jätkamist lisateavet
- 4. samm: kood:
- Samm: testimine ja järeldused
Video: Nurga mõõtmine güroskoobi, kiirendusmõõturi ja Arduino abil: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:51
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:
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…
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
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
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:
Isetegemine Servomootori nurga juhtimine Visuino jada komponendi abil: 10 sammu
DIY Kuidas juhtida servomootori nurka Visuino järjestuskomponendi abil: selles õpetuses kasutame servomootorit ja Arduino UNO ning Visuino servomootori nurga juhtimiseks järjestuskomponendi abil. Järjekomponent sobib ideaalselt olukordadeks, kus soovime käivitada mitu sündmust järjest meie puhul servomootori degr
Nurga mõõtmine MPU-6050 (GY-521) abil: 3 sammu
Kuidas mõõta nurka MPU-6050 (GY-521) abil: selles juhendis mõõdame nurka Arduino abil. Nurga mõõtmiseks vajame mõningaid kaableid, Arduino UNO ja GY-521 (MPU-6050)
Nutitelefoni mängusimulaator- mängige Windowsi mänge žestikontrolli IMU, kiirendusmõõturi, güroskoobi, magnetomeetri abil: 5 sammu
Nutitelefoni mängusimulaator- mängige Windowsi mänge žestikontrolli IMU, kiirendusmõõturi, güroskoobi, magnetomeetri abil: toetage seda projekti: https://www.paypal.me/vslcreations, annetades avatud lähtekoodidele ja & toetus edasiseks arenguks
Arduino Nano ja Visuino: teisendage kiirendus kiirendusmõõturi ja güroskoobi MPU6050 I2C anduri nurgaks: 8 sammu (piltidega)
Arduino Nano ja Visuino: teisendage kiirendus kiirendusnurgaks kiirendusmõõturilt ja güroskoobilt MPU6050 I2C andur: mõni aeg tagasi postitasin õpetuse selle kohta, kuidas saate MPU9250 kiirendusmõõturi, güroskoobi ja kompassianduri ühendada Arduino Nanoga ja programmeerida selle Visuinoga, et saata pakettandmeid ja kuvada see ulatus ja visuaalsed instrumendid. Kiirendusmõõtur saadab X, Y
Arduino Nano: kiirendusmõõturi güroskoobi kompass MPU9250 I2C andur koos Visuinoga: 11 sammu
Arduino Nano: kiirendusmõõturi güroskoobi kompass MPU9250 I2C sensor Visuinoga: MPU9250 on üks kõige arenenumaid kombineeritud kiirendusmõõturi, güroskoobi ja kompassi andureid, mis praegu saadaval on. Neil on palju täiustatud funktsioone, sealhulgas madalpääsfiltreerimine, liikumistuvastus ja isegi programmeeritav spetsialiseeritud protsessor