- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: MultiIO & RP6M256 - GYRO-Demo

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Hi Dirk,

    danke für die M32-files,es liess mir doch keine ruhe noch ein paar tage zu warten:

    bei der demo_1 werden im LCD x/y/z werte angezeigt, die sich im sekundenrhythmus verändern und um 0 im der größenordnung von 0,1 bis 0,2 schwanken. Daraus würde ich schliessen, dass die kalibrationswerte stimmen...

    bei der demo_2 wird nur für x/y/z unverändert 0,0 angezeigt...

    sonst passiert bei beiden demos nichts, auch wenn der RP6 gedreht wird...

    hätte ich an den dateien noch etwas verändern sollen?
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,

    bei der 1. Demo sollte die Winkelgeschwindigkeit angezeigt werden. Wenn du den RP6 also in der Hand hältst und rechts herum drehst, müßte die Z-Anzeige einen positiven Wert [Grad/Sekunde] zeigen. Nach links gedreht wäre der Wert negativ. Die Höhe des Werts hängt ab von der Geschwindigkeit, in der du die Drehung machst: Drehst du also in einer Sekunde um 90°, müßte der Wert auch maximal 90 anzeigen. Natürlich geht der wieder auf 0 zurück, wenn der RP6 nicht mehr bewegt wird. Ein Wert <> 0 wird also nur WÄHREND der Drehung angezeigt.

    Bei der 2. Demo wird der Winkel angezeigt, um den du drehst. Wenn du also den RP6 ruhig stehen läßt, müßten alle Werte bei 0 bleiben, wenn die Kalibrierung ok ist. Drehst du den RP6 dann z.B. um 90° nach rechts, müßte die Z-Achse wieder 90 anzeigen, wobei der Wert nicht genau zu erreichen ist, kann also auch 87 oder 95° zeigen. Der Wert bleibt auch erhalten, während der RP6 nicht mehr bewegt wird. Wenn du also den RP6 nicht mehr anfasst, bleibt die Z-Achse bei 90° stehen. Drehst du jetzt wieder auf die Ursprungsposition zurück (also 90° nach links), wird der Z-Achsen Wert ungefähr wieder bei 0° liegen.

    Das funktioniert so bei beiden Demos auf allen Achsen, also bei der Neigung nach rechts/links (Roll) und Nase rauf/runter (Pitch).

    An den Demos muss nichts verändert werden.
    Geändert von Dirk (17.08.2013 um 18:25 Uhr)
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi Dirk,

    nach dem kompilieren mit make (code:blocks hat wohl immer noch ne macke) habe ich bei demo 1 folgende werte:

    x -31,7
    y -3,2
    z -9,3

    diese verändern sich in der ersten stelle hinterm koma, reagieren aber nicht auf drehung (weder nach links, noch nach rechts)

    bei demo 2 driften die werte sehr schnell weg, reagieren nicht auf eine drehung...

    das hängt wohl mit der kalibrierung zusammen, ich werde dann in diesem thread weitermachen...
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,

    ja, da spricht alles dafür, dass die Kalibrierung noch nicht ok ist.

    Übrigens:
    Du kannst die Kalibrierung des Gyro auch gut mit diesen Demos machen:
    Wenn du in der Demo die "//" vor #define CALIBRATION wegmachst, kannst du mit der Demo die Rohwerte ausgeben.
    Also so (z.B. Demo GYRO_02,- die ist am besten geeignet!):
    1. In RP6Control_Orientation.h:
    a) #define IMU_9D aktivieren, die beiden anderen Definitionen (GPS, COMPASS_2D) auskommentieren
    b) #define GET_TEMP auskommentieren: //#define GET_TEMP
    c) OFFSET_X, OFFSET_Y, OFFSET_Z auf 0 setzen
    d) Datei speichern

    2. Demo neu kompilieren (.st und .o der Orientation-Lib und alle Hilfsdateien der Demo VORHER LÖSCHEN!)

    3. In Ruhelage des RP6 die Werte beobachten: Schwanken sie z.B. bei X zwischen +20 und +140, also im Mittel um den Wert +80, dann in OFFSET_X -80 eintragen. Das so für alle 3 Achsen machen. Noch ein Beispiel: Schwanken die Werte bei Y zwischen -50 und +30, also im Mittel um -10, dann in OFFSET_Y +10 eintragen. Am Ende RP6Control_Orientation.h speichern.

    4. In der Demo die "//" vor normalizeL3GD20(); wegmachen

    5. Demo neu kompilieren (.st und .o der Orientation-Lib und alle Hilfsdateien der Demo VORHER LÖSCHEN!)

    6. Ausgabewerte ansehen: Sie müßten jetzt um den Nullpunkt schwanken,- jedenfalls viel besser um 0 gemittelt sein. Gibt es da noch konstante Abweichungen, dann mit Punkt 3. weitermachen, dabei die neuen Offsets nur zu den vorhandenen addieren, also nicht bei 0 wieder anfangen. (Dabei bleibt die Zeile normalizeL3GD20(); immer mit drin!) Das so lange machen, bis du zufrieden bist, dann Kalibrierung ENDE!!!

    7. Jetzt KANN es noch mit der Demo GYRO_02 ans "Feintuning" gehen:
    a) In der Demo die "//" vor #define CALIBRATION wieder hinmachen (Messbetrieb, keine Kalibrierung mehr!).
    b) Demo neu kompilieren (.st und .o der Orientation-Lib und alle Hilfsdateien der Demo VORHER LÖSCHEN!)
    c) Idealerweise bleiben in Ruhelage des RP6 jetzt alle Achsen dauerhaft bei 0.0, dann Feintuning ENDE!!!
    d) Ist das nicht der Fall und wandert eine Anzeige langsam immer weiter in den negativen oder positiven Bereich, kann man in der RP6Control_Orientation.h die OFFSET_X, _Y, _Z Werte vorsichtig korrigieren: Ich würde um max. +- 5 korrigieren, die Datei speichern und bei 7.b) weiter machen.

    Noch ein Hinweis für ganz Exakte: Man kann jetzt noch den Wert OFFSET_ZERO der Demo kleiner machen (z.B. auf 60 oder 50 reduzieren). Dann driften die schön kalibrierten Werte evtl. wieder weg und man kann bei 7.b) weiter machen. Ende des Feintuning, wenn man das mehr als 2 Jahre gemacht hat oder wegen Vernachlässigung seiner sonstigen Aufgaben in der Psychiatrie liegt
    Gruß
    Dirk

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    @Dirk,

    tolle anleitung...

    irgendwie funktioniert sie aber hier bei mir nicht. Hier die daten aus der RP6control_orientation.h

    ursprüngliche werte:

    Code:
    // L3GD20 gyroscope: 
    #define I2C_MULTIIO_L3GD20_ADR        0xd6        // Default (SDO -> VCC) 
    //#define I2C_MULTIIO_L3GD20_ADR        0xd4        // SDO -> GND 
     
    // L3GD20 gyroscope calibration data: 
    #define MAX_X                        20000        // Max. X-axis value 
    #define MIN_X                        -20000        // Min. X-axis value 
    #define OFFSET_X                    0        // Offset X-axis 
    #define MAX_Y                        20000        // Max. Y-axis value 
    #define MIN_Y                        -20000        // Min. Y-axis value 
    #define OFFSET_Y                    0        // Offset Y-axis 
    #define MAX_Z                        20000        // Max. Z-axis value 
    #define MIN_Z                        -20000        // Min. Z-axis value 
    #define OFFSET_Z                    0        // Offset Z-axis 
     
    // L3GD20 temperature sensor definitions: 
    //#define GET_TEMP                            // Use temperature sensor 
    //#define OFFSET_TEMP


    werte nach der kalibrierung mittels der demo_05_02:

    Code:
    // L3GD20 gyroscope: 
    #define I2C_MULTIIO_L3GD20_ADR        0xd6        // Default (SDO -> VCC) 
    //#define I2C_MULTIIO_L3GD20_ADR        0xd4        // SDO -> GND 
     
    // L3GD20 gyroscope calibration data: 
    #define MAX_X                        20000        // Max. X-axis value 
    #define MIN_X                        -20000        // Min. X-axis value 
    #define OFFSET_X                    3625        // Offset X-axis 
    #define MAX_Y                        20000        // Max. Y-axis value 
    #define MIN_Y                        -20000        // Min. Y-axis value 
    #define OFFSET_Y                    364        // Offset Y-axis 
    #define MAX_Z                        20000        // Max. Z-axis value 
    #define MIN_Z                        -20000        // Min. Z-axis value 
    #define OFFSET_Z                    1073        // Offset Z-axis 
     
    // L3GD20 temperature sensor definitions: 
    //#define GET_TEMP                            // Use temperature sensor 
    //#define OFFSET_TEMP
    nach der kompilierung der demo_05_02 mit den originalwerten driften alle drei achsen recht schnell weg, nach der kompilierung mit den werten nach der kalibration stehen die werte dauerhaft bei

    (normalize L3GD20() ist in der demo_05_02 auskomentiert, also mit"//" versehen)

    x -31,7
    y -3,2
    z -9,3

    wenn ich die "//" bei normalize L3GD20() in der demo_05_02 entferne, stehen alle drei werte bei 0.0


    /#define CALIBRATION ist in beiden fällen auskomentiert


    was läuft da schief?
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,

    nach der kompilierung der demo_05_02 mit den originalwerten driften alle drei achsen recht schnell weg,
    Soweit ok.

    nach der kompilierung mit den werten nach der kalibration stehen die werte dauerhaft bei
    (normalize L3GD20() ist in der demo_05_02 auskomentiert, also mit"//" versehen)
    x -31,7
    y -3,2
    z -9,3
    Nach dem ERSTEN Eintragen der OFFSET-Werte (Punkte 1 bis 3) wird die Neukompilierung MIT der Funktion normalizeL3GD20() in der Demo gemacht, um die 1. Kalibrierung zu prüfen (Punkte 4 bis 6, auch beim Wiederholen der Kalibrierung ab Punkt 3).

    wenn ich die "//" bei normalize L3GD20() in der demo_05_02 entferne, stehen alle drei werte bei 0.0
    Das ist gut und sollte nach erfolgreicher Kalibrierung bei ruhig stehendem RP6 auch so sein.

    /#define CALIBRATION ist in beiden fällen auskomentiert
    Nein, CALIBRATION sollte zur Kalibrierung NICHT auskommentiert, also definiert sein.

    was läuft da schief?
    Anleitung evtl. nicht 1:1 nachvollzogen?
    Gruß
    Dirk

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Zitat Zitat von Dirk Beitrag anzeigen
    Nach dem ERSTEN Eintragen der OFFSET-Werte (Punkte 1 bis 3) wird die Neukompilierung MIT der Funktion normalizeL3GD20() in der Demo gemacht, um die 1. Kalibrierung zu prüfen (Punkte 4 bis 6, auch beim Wiederholen der Kalibrierung ab Punkt 3).
    habe den rp6 jetzt nicht zu hand, werde es morgen aber überprüfen


    Zitat Zitat von Dirk Beitrag anzeigen
    Das ist gut und sollte nach erfolgreicher Kalibrierung bei ruhig stehendem RP6 auch so sein.
    Aber die anzeige verändert sich auch beim drehen des rp6 nicht!


    Zitat Zitat von Dirk Beitrag anzeigen
    Nein, CALIBRATION sollte zur Kalibrierung NICHT auskommentiert, also definiert sein.
    hier war es so gemeint, dass die kalibration abgeschlosseh ist, daher wieder auskomentiert


    Zitat Zitat von Dirk Beitrag anzeigen
    Anleitung evtl. nicht 1:1 nachvollzogen?
    s.o.

    seit wann geht das "doppelquoten"(man sieht auch das was der vor/vor autor geschrieben ha) im forum nicht? Zu verständlichkeit trägt es nicht gerade bei...
    gruß inka

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. MultiIO - Wetter Library und Demo V1.0
    Von Dirk im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 18.07.2013, 13:39
  2. RP6M256 SD-Karte
    Von Gerhard M im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 28.10.2012, 19:37
  3. Verkaufe [V] IC's & Diverse Platinen & SPS & Thin Clients & Display 6.4" Touch
    Von Noy im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 14.01.2012, 01:43
  4. Bascom & RN-Control Demo funzt nicht
    Von lineage im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 10.02.2010, 21:59
  5. MD22 I2C Demo für C-Control I v1.1 & v2.02
    Von Windt H.J. im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 0
    Letzter Beitrag: 29.07.2005, 22:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test