Gebruik MPU-9250 9-DOF Gyro
49 berichten
• Pagina 1 van 5 • 1, 2, 3, 4, 5
Gebruik MPU-9250 9-DOF Gyro
Ik heb de hierboven genoemde sensor gekocht, een library er bij gezocht (https://github.com/kriswiner/MPU-9250) en de boel aan de praat gekregen. Dat ging op zich heel snel.
Toch ben ik niet tevreden. De waarden die ik terug krijg van de sensor (b)lijken niet erg stabiel, en ook het initialiseren is me niet helemaal duidelijk. Dat laatste lijkt hij zelf te doen (met de gekozen library), maar dat lukt om e.o.a. reden niet altijd even goed.
Ik wil de pitch en rol waarden gebruiken om een digitaal waterpas in de x en y richting te maken. Dat is mijn primaire doel. Maar behalve dat de initialisatie vaak niet goed lukt (soms wel trouwens), zijn die waarden dus ook niet erg stabiel.
Wie kan mij op weg helpen in deze materie?
Toch ben ik niet tevreden. De waarden die ik terug krijg van de sensor (b)lijken niet erg stabiel, en ook het initialiseren is me niet helemaal duidelijk. Dat laatste lijkt hij zelf te doen (met de gekozen library), maar dat lukt om e.o.a. reden niet altijd even goed.
Ik wil de pitch en rol waarden gebruiken om een digitaal waterpas in de x en y richting te maken. Dat is mijn primaire doel. Maar behalve dat de initialisatie vaak niet goed lukt (soms wel trouwens), zijn die waarden dus ook niet erg stabiel.
Wie kan mij op weg helpen in deze materie?
Software engineer industriële automatisering
Advertisement
Re: Gebruik MPU-9250 9-DOF Gyro
Nog helemaal geen reacties... niemand die hier praktische ervaring mee heeft?
Software engineer industriële automatisering
Re: Gebruik MPU-9250 9-DOF Gyro
Helaas heb ik geen MPU-9250 liggen (ik denk dat ik nog wel ergens een MPU-6050 heb). Ik weet wel iets van de (zeer verwarrende) voorschiedenis van die sensor en de software.
Deze code lijkt sterk op code die Sparkfun gebruikt: https://github.com/kriswiner/MPU-9250/blob/master/MPU9250BasicAHRS.ino
Waarschijnlijk is de ene van de andere gekopieerd.
Ik zie dat de sensor vanuit setup() een selftest doet en dat de waarden gecalibreerd worden. Maar volgens mij maakt dat niet uit of de waarden stabiel zijn.
Wanneer het initialiseren niet goed gaat, dan is er misschien iets mis met je I2C bus. Dat moet altijd goed gaan. Misschien is dat ook de reden dat het resultaat niet stabiel is.
Er wordt geen Kalman filter gebruikt, in "quaternionFilters.ino" staat: "The performance of the orientation filter is at least as good as conventional Kalman-based filtering algorithms but is much less computationally intensive".
Maar of dat echt zo is ?
Om mezelf een voorstelling te kunnen maken van jij hebt, heb ik duizend-en-één vragen: Welk Arduino board gebruik je ? Welke MPU-9250 module ? Welke andere libraries ? Welke sketch van kriswiner ? Wat bedoel je met niet erg stabiel ? Welke voltages gebruik je ? Heb je I2C door een kabel ? Wat voor kabel ? Enzovoorts, enzovoorts.
Deze code lijkt sterk op code die Sparkfun gebruikt: https://github.com/kriswiner/MPU-9250/blob/master/MPU9250BasicAHRS.ino
Waarschijnlijk is de ene van de andere gekopieerd.
Ik zie dat de sensor vanuit setup() een selftest doet en dat de waarden gecalibreerd worden. Maar volgens mij maakt dat niet uit of de waarden stabiel zijn.
Wanneer het initialiseren niet goed gaat, dan is er misschien iets mis met je I2C bus. Dat moet altijd goed gaan. Misschien is dat ook de reden dat het resultaat niet stabiel is.
Er wordt geen Kalman filter gebruikt, in "quaternionFilters.ino" staat: "The performance of the orientation filter is at least as good as conventional Kalman-based filtering algorithms but is much less computationally intensive".
Maar of dat echt zo is ?
Om mezelf een voorstelling te kunnen maken van jij hebt, heb ik duizend-en-één vragen: Welk Arduino board gebruik je ? Welke MPU-9250 module ? Welke andere libraries ? Welke sketch van kriswiner ? Wat bedoel je met niet erg stabiel ? Welke voltages gebruik je ? Heb je I2C door een kabel ? Wat voor kabel ? Enzovoorts, enzovoorts.
Re: Gebruik MPU-9250 9-DOF Gyro
Om met een paar antwoorden te beginnen:
- de sensor: https://www.bitsandparts.eu/product/MPU9250
- Aduino Mega
- Nextion TFT
- RTC
- Wire
- voeding via usb pc (zolang ik test)
- test-opstelling (korte verbindingen)
Initialiseren lukt eigenlijk altijd wel, maar niet alle waarden komen dan op 0 (pitch en roll). En bij het bewegen van de sensor schieten de waarden soms heen en weer, reageert dus niet zo als je zou verwachten.
Nogmaals, ik wil er een horizontaal (water)kompas mee maken. E.e.a. bedoeld als hulp om mijn camper mee waterpas te kunnen zetten
- de sensor: https://www.bitsandparts.eu/product/MPU9250
- Aduino Mega
- Nextion TFT
- RTC
- Wire
- voeding via usb pc (zolang ik test)
- test-opstelling (korte verbindingen)
Initialiseren lukt eigenlijk altijd wel, maar niet alle waarden komen dan op 0 (pitch en roll). En bij het bewegen van de sensor schieten de waarden soms heen en weer, reageert dus niet zo als je zou verwachten.
Nogmaals, ik wil er een horizontaal (water)kompas mee maken. E.e.a. bedoeld als hulp om mijn camper mee waterpas te kunnen zetten
Software engineer industriële automatisering
Re: Gebruik MPU-9250 9-DOF Gyro
De Arduino Mega is het enige board dat 10k pullup weerstanden naar de 5V heeft. Het heeft daarom een 5V I2C bus.
De MPU-9250 is een 3.3V chip. De module heeft 10k pullup weerstanden naar 3.3V. De MPU-9250 krijgt nu via SDA en SCL teveel spanning, waardoor waarschijnlijk de VCC van de MPU-9250 omhoog wordt gelicht richting de 5V.
Ik zou er een i2c level shifter tussen zetten.
Heeft die RTC ook pullup weerstanden naar de 5V ? Dat maakt het nog erger voor de MPU-9250.
Stel dat de RTC inderdaad 10k pullup weerstanden heeft. Verder heeft ATmega2560 nog interne pullup weerstanden van 50k. Dan totaal bij elkaar staat er een spanningsbron van 4.5V met een interne weerstand van 3k op de SDA en SCL (als mijn berekening een beetje klopt).
De MPU-9250 is een 3.3V chip. De module heeft 10k pullup weerstanden naar 3.3V. De MPU-9250 krijgt nu via SDA en SCL teveel spanning, waardoor waarschijnlijk de VCC van de MPU-9250 omhoog wordt gelicht richting de 5V.
Ik zou er een i2c level shifter tussen zetten.
Heeft die RTC ook pullup weerstanden naar de 5V ? Dat maakt het nog erger voor de MPU-9250.
Stel dat de RTC inderdaad 10k pullup weerstanden heeft. Verder heeft ATmega2560 nog interne pullup weerstanden van 50k. Dan totaal bij elkaar staat er een spanningsbron van 4.5V met een interne weerstand van 3k op de SDA en SCL (als mijn berekening een beetje klopt).
Re: Gebruik MPU-9250 9-DOF Gyro
Zowel de RTC als de Gyro boardjes die ik heb zijn zowel geschikt voor 3V als voor 5V. Dit lijkt me dus geen probleem...?
Software engineer industriële automatisering
Re: Gebruik MPU-9250 9-DOF Gyro
Toch is het zoals ik beschreef. Je zet zo'n 4.5V op de SDA en SCL pinnetjes van de MPU-9250 chip (dus de chip zelf). Daar kan de MPU-9250 waarschijnlijk niet zo goed tegen. Ik weet eigenlijk niet wat ik verder nog kan uitleggen. Laat me maar weten wat jij wilt.
Re: Gebruik MPU-9250 9-DOF Gyro
Volgens de leverancier is dit bortje met sensor geschikt om rechtstreeks op een Arduino (Mega) aan te sluiten. Er zit dus al een level shifter op?
Software engineer industriële automatisering
Re: Gebruik MPU-9250 9-DOF Gyro
Dit is de link naar het product die jij gaf: https://www.bitsandparts.eu/product/MPU9250.
Dat circuit wordt het meest gebruikt op Chinese modules. Er zit een voltage regulator op voor 3.3V, maar de SDA en SCL van de chip zijn rechtstreeks verbonden met de SDA en SCL aansluitingen van de module.
Dit is zo'n board voor onder de drie euro: https://www.aliexpress.com/item/1-pcs-SPI-IIC-GY-9250-MPU-9250-MPU-9250-9-Axis-Attitude-Gyro-Accelerator-Magnetometer/32789580858.html
De leverancier heeft het verkeerd.
Meestal gaat het (net) goed bij boarden zoals een Arduino Uno. Maar de Arduino Mega is de enige die de 10k pullup resistors naar 5V op het board heeft.
Dit is een voorbeeld van een module die zowel een voltage regulator heeft alsook de SDA en SCL kan aanpassen voor een 3.3V en 5V I2C bus: https://www.adafruit.com/products/2019. Het staat er dan ook nadrukkelijk bijgeschreven dat zowel het voltage als de logic geschikt zijn voor 3.3V en 5V.
Ik zit nu al drie keer hetzelfde te vertellen Het is mogelijk de de MPU-9250 al beschadigd is (waarschijnlijk niet), maar ik zou dit graag eerst in orde willen hebben. Daarna kunnen we pas echt gaan kijken of het dan nog steeds onstabiel is.
Dat circuit wordt het meest gebruikt op Chinese modules. Er zit een voltage regulator op voor 3.3V, maar de SDA en SCL van de chip zijn rechtstreeks verbonden met de SDA en SCL aansluitingen van de module.
Dit is zo'n board voor onder de drie euro: https://www.aliexpress.com/item/1-pcs-SPI-IIC-GY-9250-MPU-9250-MPU-9250-9-Axis-Attitude-Gyro-Accelerator-Magnetometer/32789580858.html
De leverancier heeft het verkeerd.
Meestal gaat het (net) goed bij boarden zoals een Arduino Uno. Maar de Arduino Mega is de enige die de 10k pullup resistors naar 5V op het board heeft.
Dit is een voorbeeld van een module die zowel een voltage regulator heeft alsook de SDA en SCL kan aanpassen voor een 3.3V en 5V I2C bus: https://www.adafruit.com/products/2019. Het staat er dan ook nadrukkelijk bijgeschreven dat zowel het voltage als de logic geschikt zijn voor 3.3V en 5V.
Ik zit nu al drie keer hetzelfde te vertellen Het is mogelijk de de MPU-9250 al beschadigd is (waarschijnlijk niet), maar ik zou dit graag eerst in orde willen hebben. Daarna kunnen we pas echt gaan kijken of het dan nog steeds onstabiel is.
Re: Gebruik MPU-9250 9-DOF Gyro
Ik was er van overtuigd dat het geen issue was, op aangeven van de leverancier. Jij klinkt vrij zeker, dus ik ga het nogmaals checken.
Bedankt voor het meedenken, en je geduld...
Bedankt voor het meedenken, en je geduld...
Software engineer industriële automatisering
49 berichten
• Pagina 1 van 5 • 1, 2, 3, 4, 5
Wie is er online?
Gebruikers in dit forum: Majestic-12 [Bot] en 25 gasten