Optimalisering av ytelse med MPU-6050: Oppsett, kalibrering og applikasjoner
2024-04-25 9217

MPU-6050 er verdens første integrerte 6-aksede bevegelsesbehandlingskomponent, som integrerer et 3-akset gyroskop, 3-akset akselerometer og en skalerbar digital filmprosessor (DMP).Hensikten med å bruke det er å oppnå hellingsvinkelen til objektet som skal måles (for eksempel et quadcopter, en balansegang) på x-, y- og z -aksene, det vil si tonehøyde, rullevinkel og gjesvinkel.Vi leser de seks dataene fra MPU-6050 (tre-akset akselerasjonsannonseverdi og tre-akset vinkelhastighetsannonseverdi) gjennom I2C-grensesnittet.Etter fusjonsbehandling av holdning kan fusjonsbehandlingen, tonehøyde-, rull- og girvinkene beregnes.Som en retningsbestemt referanse for måleverdier er definisjonen av sensorkoordinatretningen som vist på figuren nedenfor, som følger prinsippet om det høyrehendte koordinatsystemet (det vil si at høyre tommel peker på den positive retningen til x-Aksen peker pekefingeren på den positive retningen til y-aksen, og langfingeren peker på den positive retningen til z-aksen.

Katalog


MPU-6050

Med sin dedikerte I2C-sensorbuss, er MPU-6050 i stand til å motta inngang direkte fra et eksternt 3-aksekompass, og gir en full 9-akset MotionFusion ™ -utgang.Det eliminerer avviksproblemet mellom det kombinerte gyroskopet og akseleratorens tidslinje og reduserer emballasjeområdet betydelig sammenlignet med multikomponentløsninger.Når den er koblet til et tre-akset magnetometer, er MPU-60x0 i stand til å gi full 9-akset bevegelsesfusjonsutgang til den viktigste I2C- eller SPI-porten (merk at SPI-porten bare er tilgjengelig på MPU-6000).

Alternativer og ekvivalenter







Produsent av MPU-6050


Produsenten av MPU-6050 er TDK.Etter at de to grunnleggerne av TDK, Dr. Yogoro Kato og Takei Takei, oppfant Ferrite i Tokyo, grunnla de Tokyo Denkikagaku Kogyo K.K.I 1935. Som et globalt merkevare -merkevaremerke har TDK alltid opprettholdt en dominerende stilling innen felt av elektroniske råvarer og elektroniske komponenter.TDKs omfattende og innovasjonsdrevne produktportefølje dekker passive komponenter som keramiske kondensatorer, aluminiumelektrolytiske kondensatorer, filmkondensatorer, magnetiske produkter, høyfrekvente komponenter, piezoelektriske og beskyttelsesanordninger, samt sensorer og sensorsystemer (som temperatur og trykk,Magnetiske og MEMS -sensorer), etc. I tillegg gir TDK også strømforsyninger og energienheter, magnetiske hoder og andre produkter.Produktmerkene inkluderer TDK, EPCOs, Invensense, Micronas, Tronics og TDK-Lambda.

Internt blokkdiagram over MPU-6050


Internal Block Diagram of MPU-6050

Blant dem er SCL og SDA IIC-grensesnittene koblet til MCU, og MCU kontrollerer MPU-6050 gjennom dette IIC-grensesnittet.Det er også et IIC -grensesnitt, nemlig AUX_CL og AUX_DA.Dette grensesnittet kan brukes til å koble eksterne slaveenheter, for eksempel magnetiske sensorer, for å danne en ni-aksesensor.Vlogic er IO -portspenningen.Denne pinnen kan støtte minimum 1,8V.Vi kobler den vanligvis direkte til VDD.AD0 er adressekontrollpinnen til Slave IIC -grensesnittet (koblet til MCU).Denne pinnen kontrollerer den laveste biten av IIC -adressen.Hvis den er koblet til GND, er IIC-adressen til MPU-6050 0x68;Hvis den er koblet til VDD, er den 0x69.Vær oppmerksom på at adressen her ikke inkluderer den laveste biten av dataoverføring (den laveste biten brukes til å representere lese- og skriveoperasjoner).På MWBalancedStc15 er AD0 koblet til GND, så IIC-adressen til MPU-6050 er 0x68 (unntatt den laveste biten).

Initialiser IIC -grensesnittet


MPU-6050 bruker IIC for å kommunisere med STC15, så vi må initialisere SDA- og SCL-datalinjene koblet til MPU-6050 først.

Tilbakestill MPU-6050


Dette trinnet gjenoppretter alle registre i MPU-6050 til standardverdiene, som oppnås ved å skrive 1 til BIT7 i Power Management Register 1 (0x6b).Etter tilbakestilling vil strømstyringsregisteret 1 bli gjenopprettet til standardverdien (0x40), og dette registeret må senere settes til 0x00 for å vekke MPU-6050 og sette det i normal arbeidstilstand.

Angi fullskalaområdet for vinkelhastighetssensoren (gyro) og akselerasjonssensor


I dette trinnet setter vi fullskalaområdet (FSR) til de to sensorene gjennom gyroskopkonfigurasjonsregisteret (0x1b) og henholdsvis akselerasjonssensorkonfigurasjonsregisteret (0x1c).Vanligvis setter vi fullskalaområdet til gyroskopet til ± 2000dps og fullskalaområdet til akselerometeret til ± 2g.

Angi andre parametere


Her må vi også konfigurere følgende parametere: slå av avbrudd, deaktivere AUX I2C-grensesnittet, deaktiver FIFO, angi Gyroskop-samplingshastigheten og konfigurere det digitale lavpassfilteret (DLPF).Siden vi ikke bruker avbrudd for å lese data i dette kapittelet, må avbrytelsesfunksjonen slås av.Samtidig, siden vi ikke bruker AUX I2C -grensesnittet for å koble til andre eksterne sensorer, må vi også lukke dette grensesnittet.Disse funksjonene kan kontrolleres gjennom Interrupt Enable -registeret (0x38) og brukerkontrollregisteret (0x6A).MPU-6050 kan bruke FIFO til å lagre sensordata, men vi har ikke brukt dem i dette kapittelet, så alle FIFO-kanaler må lukkes.Dette kan kontrolleres gjennom FIFO -aktiveringsregisteret (0x23).Som standard er verdien av dette registeret 0 (det vil si at FIFO er deaktivert), så vi kan bruke standardverdien direkte.Samplingshastigheten til gyroskopet styres av prøvetakingshastighetsregisteret (0x19).Normalt setter vi denne prøvetakingshastigheten til 50. Konfigurasjonen av det digitale lavpassfilteret (DLPF) er fullført gjennom konfigurasjonsregisteret (0x1a).Generelt sett vil vi sette DLPF til halvparten av båndbredden for å balansere dataens nøyaktighet og responshastighet.

Konfigurer systemklokkekilden og aktiver vinkelhastighetssensoren og akselerasjonssensoren


Innstillingen av systemklokke -kilden avhenger av strømstyringsregisteret 1 (0x6b), der de laveste tre bitene i dette registeret bestemmer valg av klokkekilde.Som standard er disse tre bitene satt til 0, noe som betyr at systemet bruker den interne 8MHz RC -oscillatoren som klokkekilde.For å forbedre klokkens nøyaktighet, setter vi den imidlertid ofte til 1 og velger x-aksen gyroskop PLL som klokkekilde.I tillegg er det å muliggjøre vinkelhastighetssensoren og akselerasjonssensoren også et viktig trinn i initialiseringsprosessen.Begge operasjoner implementeres gjennom strømstyringsregister 2 (0x6c).Bare sett den tilsvarende biten til 0 for å aktivere den tilsvarende sensoren.Etter å ha fullført trinnene ovenfor, kan MPU-6050 legge inn normal arbeidsstatus.Disse registerene som ikke er spesielt angitt, vil ta i bruk standardverdiene som er forhåndsinnstilt av systemet.

Hvordan fungerer MPU-6050?


Gyro sensor


Sensoren er utstyrt med en gyro inni, som alltid vil forbli parallelt med den innledende retningen på grunn av den gyroskopiske effekten.Derfor kan vi beregne retning og rotasjonsvinkel ved å oppdage gyroavviket fra den første retningen.

Akselerometer sensor


En akselerometer sensor er en enhet som kan måle akselerasjon, og den fungerer basert på prinsippet om piezoelektrisk effekt.Under akselerasjon måler sensoren treghetskraften som brukes på masseblokken og beregner deretter akselerasjonsverdien ved bruk av Newtons andre lov.

Digital Motion Processor (DMP)


DMP er en databehandlingsmodul i MPU6050-brikken som har en innebygd Kalman-filtreringsalgoritme for å skaffe data fra gyroskop- og akselerometer sensorer og behandle utgangskvaternionene.Denne funksjonen reduserer arbeidsmengden til den perifere mikroprosessoren kraftig og unngår den kjedelige filtrerings- og datafusjonsprosessen.

Merknader:

Quaternionions: Quaternions er enkle superkompleks tall.Komplekse tall er sammensatt av reelle tall pluss den imaginære enheten I, der i^2 = -1.

Hvor brukes MPU-6050?


- Leker

- Håndsett og bærbar spill

- Bevegelsesbaserte spillkontrollere

- Blurfree ™ -teknologi (for video/still bildestabilisering)

- AirSign ™ -teknologi (for sikkerhet/autentisering)

- Instantgesture ™ IG ™ Gesture Recognition

- bærbare sensorer for helse, kondisjon og sport

- Bevegelsesaktivert spill- og applikasjonsrammeverk

- MotionCommand ™ -teknologi (for short cuts) for gest)

- Stedsbaserte tjenester, interessepunkter og død regning

- 3D fjernkontroller for Internett -tilkoblede DTV -er og angi toppbokser, 3D -mus

- Touchanywhere ™ -teknologi (for “No Touch” UI Application Control/Navigation)

Pakke med MPU-6050


Package of MPU-6050

Hvordan redusere støyen fra MPU-6050?


Vi kan ta følgende måter å redusere støyen fra MPU-6050.

Bruk kalibrerte sensorer


Kalibrering av akselerometeret og gyroskopet til MPU-6050 kan eliminere skjevheten og feilen til sensorene selv, og dermed redusere effekten av støy.Kalibreringsprosessen består vanligvis av to trinn: statisk kalibrering og bevegelseskalibrering.

Maskinvarefiltreringsprosess


Å legge filterkondensatorer til strømledningen til MPU-6050 kan redusere effekten av strømforsyningsstøy på sensoren.I mellomtiden, under PCB-layout, bør vi prøve å holde MPU-6050 borte fra potensielle kilder til interferens, for eksempel høyfrekvente signallinjer og høyeffektkomponenter.

Programvarefiltreringsbehandling


Etter å ha samlet inn rå data fra MPU-6050, kan vi legge til en programvarefiltreringslenke for å forhåndsbehandle de første dataene for å eliminere støyindusert interferens.Vanlige brukte programvarefiltreringsmetoder inkluderer gjennomsnittlig filtrering, medianfiltrering, Kalman -filtrering og så videre.

Bruk internt lavpassfilter


MPU-6050 har et internt integrert digitalt lavpassfilter, som kan brukes til å redusere høyfrekvent støy ved å stille inn avskjæringsfrekvensen.Spesifikt kan vi angi avskjæringsfrekvensen til det digitale filteret ved å endre konfigurasjonsregisteret til MPU-6050 for å eliminere høyfrekvensstøyen forårsaket av A/D-prøvetaking.

MPU-6050-basert bevegelse av bevegelsesbaner


MPU-6050 er et seks-akset akselerometer og gyroskopsensor som kan brukes til å måle bevegelse og holdning til objekter.Bevegelsesbanen beregning basert på MPU-6050 kan realiseres med følgende trinn:

Det første trinnet er å lese sensordataene.Vi må lese akselerometer- og gyroskopdata fra MPU-6050-sensorene ved hjelp av passende drivere og bibliotekfunksjoner.Disse dataene sendes vanligvis ut i et digitalt format, så noe konvertering og kalibreringsarbeid er nødvendig for å konvertere dem til faktiske målinger i fysiske enheter.

Det andre trinnet er å beregne akselerasjonen.Først må vi behandle dataene fra akselerometeret for å utlede akselerasjonen av objektet i hver akse.Deretter, for å beregne hastigheten og forskyvningen av objektet i hver akse, må vi integrere akselerasjonsdataene.Numeriske integrasjonsteknikker, for eksempel Eulers metode eller Lunger-Kutta-metoden, brukes ofte i denne prosessen for å sikre nøyaktigheten av forskyvningsberegningene.

Det tredje trinnet er å beregne vinkelhastigheten.Ved bruk av gyroskopdata kan objektets vinkelhastighet i hver akse beregnes.Igjen må disse dataene kalibreres og konverteres for å oppnå vinkelhastigheten i faktiske fysiske enheter.

Det fjerde trinnet er å beregne rotasjonen.Ved å integrere vinkelhastighetsdataene, kan rotasjonsvinkelen beregnes.Dette kan gjøres ved bruk av numeriske integrasjonsteknikker som Eulers metode eller Longe-Kutta-metoden for å beregne vinkelen.

Det femte trinnet er å slå sammen dataene.Vi kombinerer dataene fra akselerometre og gyroskop for å oppnå fullstendig holdnings- og posisjonsinformasjon til objektet.Dette kan gjøres ved bruk av algoritmer som Quaternion-basert holdningsløsning eller Euler Angle Solver.

Det sjette trinnet er å visualisere resultatene.Vi konverterer den beregnede objektbevegelsesbanen til et sett med punkter i et 3D -koordinatsystem og viser det ved hjelp av passende visualiseringsverktøy for en mer intuitiv forståelse av objektets bevegelsesbane og holdningsendringer.






Ofte stilte spørsmål [FAQ]


1. Hvor nøyaktig er MPU6050?


De ervervede resultatene viste tilstrekkelig nøyaktighet på mindre enn 1 % og pålitelighet, og sikret riktig dimensjonering av heisakselen og de høye standardene for heisindustrien.

2. Hvordan lese data fra MPU6050?


For å lese de interne MPU6050 -registerene, sender mesteren en startbetingelse, etterfulgt av I2C -slaveadressen og en skrivebit, og deretter registeradressen som kommer til å bli lest.

3. Hvor brukes MPU6050?


I bærbare helsetrekking, kondisjonssporingsenheter.I droner og quadcopters brukes MPU6050 til posisjonskontroll.Brukes til å kontrollere robotarmen.Håndbevegelseskontrollenheter.

4. Er MPU6050 en IMU?


MPU6050 IMU-sensorblokken leser data fra MPU-6050-sensoren som er koblet til maskinvaren.Blokken gir akselerasjon, vinkelhastighet og temperatur langs sensorenes akser.

5. Hva er behandlingen av MPU6050?


Dette er MPU6050s ombordprosessor som kombinerer dataene som kommer fra akselerometeret og gyroskopet.DMP er nøkkelen til å bruke MPU6050 og blir forklart i detalj senere.Som med alle mikroprosessorer trenger DMP firmware for å kjøre.

OM OSS Kundetilfredshet hver gang.Gjensidig tillit og felles interesser. ARIAT Tech har etablert langsiktig og stabilt samarbeidsforhold til mange produsenter og agenter. "Behandle kunder med ekte materiale og ta service som kjernen", vil all kvalitet bli sjekket uten problemer og bestått profesjonell
funksjonstest.De høyeste kostnadseffektive produktene og den beste tjenesten er vårt evige engasjement.

E-post: Info@ariat-tech.comHK TEL: +00 852-30501966LEGG TIL: Rm 2703 27F Ho King Comm Center 2-16,
Fa Yuen St MongKok Kowloon, Hong Kong.