Përmbajtje:

Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: 5 hapa
Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: 5 hapa

Video: Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: 5 hapa

Video: Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino: 5 hapa
Video: Huawei Watch GT3 Review completa ¿merece la pena? ¿qué le falta? 2024, Nëntor
Anonim
Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino
Matja e këndit duke përdorur Gyro, Accelerometer dhe Arduino

Pajisja është një prototip i përafërt i asaj që përfundimisht do të bëhet një robot vetë -ekuilibër, kjo është pjesa e dytë e gjërave të vrimës (lexoni akselerometrin dhe kontrolloni një motor për të balancuar veten). Pjesa e parë me vetëm xhiro mund të gjendet këtu. Në këtë udhëzues ne do të matim këndin duke përdorur xhiro dhe akselerometër, dhe duke përdorur një teknikë për të bashkuar të dy sensorët për të marrë një sinjal të qetë. Teknika quhet "filtër plotësues".paraardhës

Hapi 1: Ajo që do të na duhet:

Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet
Ajo që do të na duhet

Disa pjesë mund të zëvendësohen, dhe disa modifikime në kod duhet të bëhen për t’iu përshtatur harduerit tuaj. Në këtë projekt ne do të përdorim:- Breadboard- Mikrokontrollues, kam përdorur Arduinoboard- Wire- Jumper Wires- Xhiroskop XV-8100- Nunchuck Wii (për përshpejtuesin)- Përshtatës Nunchuck Wii për Arduino

Hapi 2: Ndërtimi…

Ndërtimi…
Ndërtimi…
Ndërtimi…
Ndërtimi…
Ndërtimi…
Ndërtimi…

Qarku përbëhet nga një xhiroskop i lidhur drejtpërdrejt me portin 0 në arduino tuaj dhe një nunchuck wii lidheni në portin I2C. Montimi i xhiros: 1. - lidheni xhiron në pjatën e bukës2. - tela ndonjëherë gjë:- Vo pin nga gyro i lidhur me portën analoge0 në arduino (tela portokalli e lehtë)- G pin nga gyro i lidhur me tokën (Teli i bardhë)- V+ pin nga xhiro i lidhur me Vdd (3.3V) (Teli portokalli) Montimi përshpejtuesi: 1. - lidhni përshtatësin në nunchuck2. - lidhni nunchuck në arduino duke përdorur përshtatësin3. - vendosni sensorin accel si fotografia e mësipërme

Hapi 3: Disa informacion shtesë para se të vazhdojmë

Disa informacion shtesë para se të vazhdojmë
Disa informacion shtesë para se të vazhdojmë
Disa informacion shtesë para se të vazhdojmë
Disa informacion shtesë para se të vazhdojmë
Disa informacion shtesë para se të vazhdojmë
Disa informacion shtesë para se të vazhdojmë

Nga të dy sensorët mund të matim këndin, por duke përdorur dy teknika të dallueshme. Për të matur këndin duke përdorur xhiro, duhet të integrojmë sinjalin. Por pse duhet ta bëjmë këtë? Për shkak se xhiro na jep shkallën këndore, kështu që një mënyrë e thjeshtë për të marrë këndin është që shpejtësia këndore të shumëzohet me kohën [këndi = këndi + w * dt] Për të matur këndin duke përdorur një akselerometër, ne duhet të ndiejmë gravitetin në secilën boshti i akcelerometrit, çfarë do të thotë, projeksioni i nxitimit të gravitetit në secilin drejtim të sensorit na jep një ide rreth këndit. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Pra, pse ne do të përdorim dy sensorë në vend të një? Për të përfituar nga të dy vetitë e sensorit. Nëse shikoni grafikisht të dhënat xhiro rriten vazhdimisht, kjo quhet drift dhe të dhënat e akselerometrit ndryshojnë shumë në një kohë të vogël. Dhe si të bashkohen të dy sinjalet? Ne do të përdorim një teknikë të quajtur filtër plotësues. Unë nuk e di teorinë e saktë pas kësaj, por funksionon mirë. Ka disa informacione në internet, thjesht kërkoni në Google nëse keni nevojë për më shumë informacion. Kjo lidhje ka shumë informacion dhe mund të jetë e dobishme.filtruar_angle = HPF*(filtruar_kënd + w*dt) + LPF*(angle_accel); ku HPF + LPF = 1Vlerat e HPF dhe LPF mund të gjenden në këtë lidhje, në skedarin filter.pdf. Faleminderit djema nga "The DIY Segway". Vetëm për qëllimin e provës ne do t'i vendosim këto vlera si kjo, HPF = 0.98 dhe LPF = 0.02.

Hapi 4: Kodi:

Kodi është një përshtatje nga një kod që kam përdorur në një projekt tjetër. Ndoshta ka disa ndryshore të papërdorura. Kam përdorur një bibliotekë për të lexuar të dhënat nunchuck nga https://todbot.com/blog/. Faleminderit Tod E. Kurt. Komentet mbi kodin janë në portugalisht, sapo të kem një kohë të lirë, do ta përkthej. Kodi që del përmes linjës seriale disa numra me këtë model: dt: w: teta: pitch: filter_teta $ kohë: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Kështu që ju mund t'i ruani këto vlera në një terminal serial dhe të vizatoni një grafik ose të përdorni këndin për gjëra të tjera. Nëse keni nevojë për ndonjë shpjegim në lidhje me kodin, është e lirë të pyesni. Kodi është i zipuar Thjesht hapeni, hapeni dhe ngarkoni atë në arduino tuaj.

Hapi 5: Testimi dhe Përfundimi

Testimi dhe Përfundimi
Testimi dhe Përfundimi
Testimi dhe Përfundimi
Testimi dhe Përfundimi

Për të testuar sistemin, i ruaj të dhënat duke përdorur një program të quajtur Termite, pastaj importoj këto të dhëna në excel dhe vizatoni grafikun për të parë se sa i mirë është filtri im. Rezultatet janë të mahnitshme. Sigurisht që mund të përdorni sinjalin për të drejtuar një motor, ose gjëra të tjera. Çdo koment, çdo dyshim, çdo informacion që mungon, vetëm më tregoni dhe unë e korrigjoj atë. Ju lutemi, nëse ju pëlqen kjo, vlerësoni. Faleminderit të gjithëve.

Recommended: