Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang Kailangan Namin:
- Hakbang 2: Pagbuo…
- Hakbang 3: Ilang Dagdag na Impormasyon Bago Kami Magpatuloy
- Hakbang 4: Code:
- Hakbang 5: Pagsubok at Konklusyon
Video: Pagsukat ng Angle Gamit ang Gyro, Accelerometer at Arduino: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:16
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:
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…
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
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
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:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Isang Device ng Pagsukat sa UV-index na Pagsusukat, Gamit ang VEML6075 Sensor at ang Little Buddy Talker: 5 Hakbang
Isang Talking UV-index na Pagsukat sa Device, Gamit ang VEML6075 Sensor at ang Little Buddy Talker: Mga tag-init darating! Ang araw ay nagniningning! Alin ang mahusay. Ngunit habang lumalakas ang radiation ng ultraviolet (UV), ang mga taong katulad ko ay nagkakaroon ng mga pekas, maliit na kayumanggi na mga isla na lumalangoy sa isang dagat na pula, sunog, nangangati na balat. Ang pagkakaroon ng real-time na impormasyon
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
Arduino Nano at Visuino: I-convert ang Acceleration sa Angle Mula sa Accelerometer at Gyroscope MPU6050 I2C Sensor: 8 Hakbang (na may Mga Larawan)
Arduino Nano at Visuino: I-convert ang Acceleration sa Angle Mula sa Accelerometer at Gyroscope MPU6050 I2C Sensor: Kaninang nag-post ako ng isang tutorial sa kung paano mo maiugnay ang MPU9250 Accelerometer, Gyroscope at Compass Sensor sa Arduino Nano at iprogram ito sa Visuino upang magpadala ng packet data at ipakita ito sa isang Saklaw at Mga Visual Instrument. Ang Accelerometer ay nagpapadala ng X, Y,