@inka:
Ich muss demnächst mal wieder die M32 an die MultiIO anschliessen. Dann probiere ich das mal durch.
@Thorben W:
Was hast du nochmal für einen Sensor an der MultiIO am Laufen?
Kalibrierung richtig durchgeführt?
@inka:
Ich muss demnächst mal wieder die M32 an die MultiIO anschliessen. Dann probiere ich das mal durch.
@Thorben W:
Was hast du nochmal für einen Sensor an der MultiIO am Laufen?
Kalibrierung richtig durchgeführt?
Gruß
Dirk
Den MinIMU-9 v2, welche Kalibrierung denn?
Thorben W
könntest du bitte bei der gelegenhet auch an die HDMM denken? Ich habe zwar jetzt auch die minIMU, möchte aber die HDMM nicht ganz außer acht lassen...
noch eine frage zu den X/Y min/max werten: Sollten die werte währen der drehung um 360° einen kontinuierlichen verlauf haben (sinus?) Gilt das für HDMM wie auch für dier minIMU?
gruß inka
@inka:
Ja! Ja!frage zu den X/Y min/max werten: Sollten die werte währen der drehung um 360° einen kontinuierlichen verlauf haben (sinus?) Gilt das für HDMM wie auch für dier minIMU?
Gruß
Dirk
@Dirk: ich komme nicht drauf woran es liegt dass der HDMM immer um ca. 90° cw mehr/falsch anzeigt als er sollte. Habe schon alle möglichen störquellen wie Servos abgebaut, es ändert sich nicht...
Der verlauf der anzeige beim drehen des RP6 ist aber kontinuierlich, ohne außreisser, bzw. eine plötzliche anzeige die zu der vorherigen nicht passt. von 0 bis 359...
Gibt es in der lib irgendwo eine möglichkeit den angezeigten wert durch das hinzufügen eines korrekturfaktors um diese 90° zu verändern?
gruß inka
@inka:
Einen "Korrekturfaktor" könnte man zur Richtungsanzeige hinzufügen, das ist aber nur die zweitbeste Lösung.
Die beste ist:
HDMM01 so anbringen:
- Sensorchip nach OBEN (U1 von oben lesbar)
- SDA/SCL Pins in Fahrtrichtung VORN
Wenn du den Sensor anders angebracht hast, ist das auch kein Drama:
- Nimm dir die Funktion readHDMM01() vor. Darin gibt's die Zeilen:
Durch y_axis2dm *= -1; wird hier z.B. die Y-Achse umgekehrt. Du kannst das probeweise auskommentieren.Code:// xb = y: x_axis2dm = ((readBuf[MSB_X_AXIS] & 0x0f) << 8) + readBuf[LSB_X_AXIS]; // yb = -x: y_axis2dm = ((readBuf[MSB_Y_AXIS] & 0x0f) << 8) + readBuf[LSB_Y_AXIS]; y_axis2dm *= -1;
Genauso kannst du für die X-Achse eine neue Zeile x_axis2dm *= -1; einfügen, um die X-Achse umzukehren.
Damit probierst du alle 4 Kombinationen durch bis die Richtungsangaben passen.
Gruß
Dirk
ist so aufgebaut...
das wars noch nicht, aber vielleicht hilft es bei der fehlersuche:
RP6 steht in fahrtrichtung NORD.
1) y_axis2dm *= -1; auskommentiert, anzeige heading: 90, die sich nur im bereich 88-91 bei 360° drehung verändert
2) x_axis2dm *= -1; hinzugefügt bei auskommentierter umkehrung der y achse: anzeige heading:135, die anzeige verändert sich bei 360° drehung im bereich 135-136
3) beide achsen umgekehrt: anzeige heading 181, verändert sich bei drehung 360° im bereich 179-181
4) ursprünglicher zustand(x auskommentiert, y-achse umgekehrt): heading anzeige 251, verändert sich kontinuierlich bei einer drehung um 360° im bereich 0-360
gruß inka
Wenn der HDMM01 so angebracht ist, wie beschrieben, bringt auch ein Tauschen der Achsen nichts.
Die Anzeige müßte dann mit der Orientierungslib stimmen.
Wenn nicht: Metalleinflüsse von außen reduzieren und neu kalibrieren.
Wenn das auch nicht hilft: ???
Gruß
Dirk
hi Dirk,
da ich weder mit der HDMM noch mit der minIMU weiterkomme, habe ich mich mit meinen Servos im zusammenhang mit dem IO-board beschäftigt...
hat die zeit zu dem test der minIMU mit der M32 schon evtl. gereicht?
gruß inka
@inka:
Die Zeit (Urlaub!) hätte schon gereicht, aber ich habe nur meine Progs auf dem Laptop, komme aber nicht an die Hardware dran.
Vielleicht kann ich ja (via PN) zur MinIMU was sagen, wenn du Lust hast, das Problem damit nochmal zu beschreiben bzw. mit mir einzugrenzen.
Wenn nicht: In der 2. Julihälfte bin ich wohl wieder an Bord.
Gruß
Dirk
Lesezeichen