Gebruik MPU-9250 9-DOF Gyro

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 29 Jan 2017, 18:09

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?
Software engineer industriële automatisering

Advertisement

Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 30 Jan 2017, 22:58

Nog helemaal geen reacties... niemand die hier praktische ervaring mee heeft?
Software engineer industriële automatisering

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor Koepel » 31 Jan 2017, 01:43

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.

Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 31 Jan 2017, 10:41

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 ;)
Software engineer industriële automatisering

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor Koepel » 31 Jan 2017, 11:01

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).

Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 31 Jan 2017, 12:49

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

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor Koepel » 31 Jan 2017, 16:10

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.

Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 31 Jan 2017, 17:59

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

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor Koepel » 31 Jan 2017, 18:24

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 :roll: 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.

Gebruikers-avatar
Berichten: 39
Geregistreerd: 04 Dec 2016, 22:32

Re: Gebruik MPU-9250 9-DOF Gyro

Berichtdoor ruud-572 » 31 Jan 2017, 19:09

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... ;)
Software engineer industriële automatisering

Volgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten