Von der Softwareseite sieht das so aus:Er kann Gyro, Beschleunigung und Kompass in allen drei Raumrichtungen und ist daher von seiner Ausgangslage unabhängig.
1. Man kann zwar das Sensorboard in beliebiger Lage anbringen, allerdings geht die Software von einer BESTIMMTEN Lage der Sensor-Achsen aus.
Wenn man das Board anders anbringt, muss man wahrscheinlich die Lib ändern.
2. Das Board von exp-tech hat zwar dieselben Sensor-Chips (ist also kompatibel zur MinIMU), scheint aber etwas anders im Layout zu sein. Das bedeutet: Nur wenn die Chips auf dem exp-tech Board genauso angeordnet sind, wie auf dem MinIMU-Board, klappt das 1:1 mit der Lib, sonst müßte man auch anpassen.
Gruß
Dirk
Hi inka:
Gute Nachricht: Das Modul, was du gekauft hast, ist die MinIMU-9 v2!
Für die Lib ist sie so angebracht:
1. Bedruckte Seite nach OBEN (Chips nach unten)
2. Y-Achse nach VORN (Aufdruck ist in Fahrtrichtung lesbar)
Gruß
Dirk
hi Dirk:
wie beschrieben aufgebaut, angeschlossen, in der orientation.h den HDMM auskomentiert, bei der minIMU die "// entfernt...
folgende anzeigen laufen beim start durch:
RP6 CONTROL 1.4b
>READY TO GO!
----------------------------
#############
#############
--------------------------
RP6 Control M32
Example program
---------------------------
RP6 Multi IO
Selftest 5
--------------------------
X-3625 Y-363
Z-1074 T-18
-------------------------
X5 Y-31 Z-1025
P 0.0 R -1.8
-----------------------------
jetzt scheint sich das programm (RP6Control_MultiIO_05.c) zu beenden...
RP6 CONTROL 1.4b
>READY TO GO
------------------------------
startbutton 1x gedrückt:
RP6 CONTROL 1.4b
>BOOTLOAD
------------------------------
RP6 CONTROL 1.4b
>READY TO GO!
------------------------------
erst hier ist ein neustart durch ein erneutes drücken des startbuttons möglich
gruß inka
Nur zur Vollständigkeit...
Fragen:
1. "GPS" ist auch auskommentiert?
2. Vor dem Neu-Kompilieren: Make clean (.lst und .o der OrientationLib entfernt?)
3. Hardwaretechnischer Anschluß ok, wie von fabqu beschrieben?
Gruß
Dirk
1) ja, habe es noch einmal mit nicht auskommentiertem GPS probiert - die LCD bleibt nach den ersten textmeldungen leer
2) ja
3) ja
gruß inka
Ok, dann kannst du nur testen, welche Teile funktionieren:
1. Die Definitionen "GET_TEMP" und "GET_TEMP_M" auskommentieren (und auskommentiert lassen).
2. In der Demo den Teil unter "// L3GD20 gyroscope:" probeweise auskommentieren.
3. ALTERNATIV in der Demo den Teil unter "// LSM303DLHC magnetometer:" ...
UND den Teil unter "// LSM303DLHC accelerometer:" probeweise auskommentieren.
Nach den Änderungen das Ergebnis hier posten.
Gruß
Dirk
habe auch die "#define OFFSET_TEMP" auskommentiert, die anzeige der temperatur erscheint nun nicht
auskommentiert:
programm zeigt die werte des Accelerometers und des magnetometers und beendet sichCode:/* // L3GD20 gyroscope: task_I2CTWI(); readL3GD20(); // Get sensor values normalizeL3GD20(); task_I2CTWI(); setCursorPosLCD(0, 0); // line 1 writeStringLCD_P("X"); writeIntegerLCD(x_axisg, DEC); writeStringLCD_P(" "); setCursorPosLCD(0, 8); // line 1 pos 9 writeStringLCD_P("Y"); writeIntegerLCD(y_axisg, DEC); writeStringLCD_P(" "); setCursorPosLCD(1, 0); // line 2 writeStringLCD_P("Z"); writeIntegerLCD(z_axisg, DEC); writeStringLCD_P(" ");*/
auskommentiert:
programm zeigt die werte des gyros und beendet sichCode:/* // LSM303DLHC accelerometer: task_I2CTWI(); readLSM303DLHC_A(); // Get sensor values task_I2CTWI(); setCursorPosLCD(0, 0); // line 1 writeStringLCD_P("X"); writeIntegerLCD(x_axisa, DEC); writeStringLCD_P(" "); setCursorPosLCD(0, 5); // line 1 pos 6 writeStringLCD_P("Y"); writeIntegerLCD(y_axisa, DEC); writeStringLCD_P(" "); setCursorPosLCD(0, 10); // line 1 pos 11 writeStringLCD_P("Z"); writeIntegerLCD(z_axisa, DEC); writeStringLCD_P(" "); normalizeLSM303DLHC_A(); // Normalize data positionLSM303DLHC_A(); // Calculate position setCursorPosLCD(1, 0); // line 2 writeStringLCD_P("P"); writeDoubleLCD(pitch, 6, 1); writeStringLCD_P(" "); setCursorPosLCD(1, 8); // line 2 pos 9 writeStringLCD_P("R"); writeDoubleLCD(roll, 6, 1); writeStringLCD_P(" "); task_I2CTWI(); mSleep(3000); // LSM303DLHC magnetometer: task_I2CTWI(); readLSM303DLHC_M(); // Get sensor values task_I2CTWI(); setCursorPosLCD(0, 0); // line 1 writeStringLCD_P("X"); writeIntegerLCD(x_axism, DEC); writeStringLCD_P(" "); setCursorPosLCD(0, 5); // line 1 pos 6 writeStringLCD_P("Y"); writeIntegerLCD(y_axism, DEC); writeStringLCD_P(" "); setCursorPosLCD(0, 10); // line 1 pos 11*/
gruß inka
@Dirk: Wenn der Kompass bei mir nach Osten zeigt wird Süden angezeigt und wenn ich dann den RP6 um 180° drehe er also nach Westen guckt dann wird Osten angezeigt. Richtung Norden angezeigt: NE und Richtung Süden angezeigt SE
Thorben W
@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
Lesezeichen