Talaan ng mga Nilalaman:

Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino: 5 Hakbang
Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino: 5 Hakbang

Video: Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino: 5 Hakbang

Video: Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino: 5 Hakbang
Video: How does an Accelerometer work? | 3D Animation 2024, Nobyembre
Anonim
Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino
Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino

Ang aparato ay isang magaspang na prototype ng kung ano sa paglaon ay magiging isang self balanse robot, ito ang pangalawang bahagi ng butas na bagay (basahin ang accelerometer at kontrolin ang isang motor sa balanse ng sarili). Ang unang bahagi na may lamang gyro ay matatagpuan dito. Sa pagtuturo na ito susukatin namin ang anggulo gamit ang parehong gyro at accelerometer, at paggamit ng isang diskarte upang pagsamahin ang parehong sensor upang makakuha ng isang makinis na signal. Ang pamamaraan ay tinatawag na "komplementaryong filter".pauna

Hakbang 1: Ano ang Kailangan Namin:

Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin
Ano ang Kailangan Namin

Ang ilang bahagi ay maaaring mapalitan, at ang ilang pagbabago sa code ay kailangang gawin upang magkasya ang iyong hardware. Sa proyektong ito gagamitin namin: - Breadboard- Microcontroller, ginamit ko ang Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii (para sa accelerometer) - Nunchuck Wii adapter para sa Arduino

Hakbang 2: Pagbuo…

Pagbuo…
Pagbuo…
Pagbuo…
Pagbuo…
Pagbuo…
Pagbuo…

Ang circuit ay binubuo ng isang gyroscope na konektado direkta sa port 0 sa iyong arduino at isang nunchuck wii kumonekta sa I2C port. Pagtitipon ng gyro: 1. - isaksak ang gyro sa breadboard2. - Wire ever thing: - Vo pin mula sa gyro na konektado sa analog port0 at arduino (Light orange wire) - G pin mula sa gyro na konektado sa ground (White wire) - V + pin mula sa gyro na konektado sa Vdd (3.3V) (Orange wire) Assembling ang accelerometer: 1. - plug ang adapter sa nunchuck2. - I-plug ang nunchuck sa arduino gamit ang adapter3. - ilagay ang accel sensor tulad ng larawan sa itaas

Hakbang 3: Ilang Dagdag na Impormasyon Bago Kami Magpatuloy

Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
Ilang Dagdag na Impormasyon Bago Kami Magpatuloy

Mula sa parehong sensor maaari nating masukat ang anggulo ngunit gumagamit ng dalawang magkakaibang pamamaraan. Upang masukat ang anggulo gamit ang gyro kailangan nating isama ang signal. Ngunit bakit kailangan nating gawin ito? Dahil binibigyan tayo ng gyro ng angular rate, kaya ang isang simpleng paraan upang makuha ang anggulo ay ang angular rate na pinarami ng oras [anggulo = anggulo + w * dt] Upang sukatin ang anggulo gamit ang isang accelerometer kailangan nating maunawaan ang gravity sa bawat axis ng accelerometer, kung ano ang ibig sabihin nito, ang projection ng pagbilis ng gravity sa bawat direksyon ng sensor ay nagbibigay sa amin ng isang ideya tungkol sa anggulo. [anggulo_accel = arctg (Ay / sqrt (Ax ^ 2 + Az ^ 2))] Kaya bakit gagamitin namin ang dalawang sensor sa halip isa? Upang samantalahin ang parehong mga katangian ng sensor. Kung titingnan mo ang graphic na tuloy-tuloy na pagtaas ng data ng gyro, tinatawag itong drift at ang data ng accelerometer ay nagbabago nang malaki sa isang maliit na oras. At kung paano pagsamahin ang parehong signal? Gumagamit kami ng isang pamamaraan na tinatawag na komplimentaryong filter. Hindi ko alam ang eksaktong teorya sa likod nito, ngunit gumagana ito ng maayos. Mayroong ilang impormasyon sa internet, i-google mo lang ito kung kailangan mo ng karagdagang impormasyon. Ang link na ito ay may maraming impormasyon at maaaring maging kapaki-pakinabang.filtered_angle = HPF * (sinala_angle + w * dt) + LPF * (anggulo_accel); kung saan ang HPF + LPF = 1Ang mga halaga ng HPF at LPF ay matatagpuan sa link na ito, sa filter.pdf file. Salamat sa iyo mula sa "The DIY Segway". Para lamang sa layunin ng pagsubok ilalagay namin ang mga halagang ito tulad nito, HPF = 0.98 at LPF = 0.02.

Hakbang 4: Code:

Ang code ay isang pagbagay mula sa isang code na ginamit ko sa ibang proyekto. Marahil ay may ilang mga variable na hindi nagamit. Gumamit ako ng isang silid-aklatan upang basahin ang data ng nunchuck mula sa https://todbot.com/blog/. Salamat Tod E. Kurt. Ang mga komento sa code ay nasa portuguese, sa sandaling mayroon akong libreng oras, isasalin ko ito. Ang output code ay dumaan sa serial line ilang mga numero sa pattern na ito: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Kaya't mai-save mo ang mga halagang ito sa isang serial terminal at magplano ng isang graphic o gamitin ang anggulo para sa iba pang mga bagay. Kung kailangan mo ng anumang paliwanag tungkol sa code ay malayang magtanong. Ang code ay naka-zip Mag-unzipe lamang, buksan at i-upload ito sa iyong arduino.

Hakbang 5: Pagsubok at Konklusyon

Pagsubok at Konklusyon
Pagsubok at Konklusyon
Pagsubok at Konklusyon
Pagsubok at Konklusyon

Upang subukan ang system na na-save ko ang data gamit ang isang program na tinatawag na Termite, pagkatapos ay i-import ang data na ito sa excel at balangkas ang graphic upang makita kung gaano kahusay ang aking filter. Ang mga resulta ay kamangha-mangha. Siyempre maaari mong gamitin ang signal upang magmaneho ng motor, o iba pang mga bagay. Anumang mga komento, anumang pagdududa, anumang impormasyon na nawawala, sabihin mo lang sa akin at itatama ko ito. Mangyaring kung gusto mo ito, mag-rate. Salamat sa inyong lahat.

Inirerekumendang: