- Akku Tests und Balkonkraftwerk Speicher         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 48

Thema: RP6 Kompass

  1. #31
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Anzeige

    Praxistest und DIY Projekte
    Dass die Berechnung nach Graden nicht stimmt, kann gut sein. Aber es müssten doch trozdem verschiedene Werte kommen wenn ich den Kompass nieige/kippe.

  2. #32
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    Kompass wurde kalibriert?
    s. CMPS Anleitung

  3. #33
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Kompass wurde kalibriert?
    s. CMPS Anleitung
    ouu
    Ja das hab ich vergessen ^^ werd ich dann mal so schnell wie möglich machen.

  4. #34
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    @SlyD: Ich habe den LSM303DLH und nicht den CMPS ^^


    Also ich habe den Kompass wie in diesem beispiel Kalibriert:

    Code:
    // Returns a set of acceleration and raw magnetic readings from the cmp01a.
    void read_data_raw(vector *a, vector *m)
    {
        // read accelerometer values
        i2c_start();
        i2c_write_byte(0x30); // write acc
        i2c_write_byte(0xa8); // OUT_X_L_A, MSB set to enable auto-increment
        i2c_start();          // repeated start
        i2c_write_byte(0x31); // read acc
        unsigned char axl = i2c_read_byte();
        unsigned char axh = i2c_read_byte();
        unsigned char ayl = i2c_read_byte();
        unsigned char ayh = i2c_read_byte();
        unsigned char azl = i2c_read_byte();
        unsigned char azh = i2c_read_last_byte();
        i2c_stop();
    
        // read magnetometer values
        i2c_start(); 
        i2c_write_byte(0x3C); // write mag
        i2c_write_byte(0x03); // OUTXH_M
        i2c_start();          // repeated start
        i2c_write_byte(0x3D); // read mag
        unsigned char mxh = i2c_read_byte();
        unsigned char mxl = i2c_read_byte();
        unsigned char myh = i2c_read_byte();
        unsigned char myl = i2c_read_byte();
        unsigned char mzh = i2c_read_byte();
        unsigned char mzl = i2c_read_last_byte();
        i2c_stop();
    
        a->x = axh << 8 | axl;
        a->y = ayh << 8 | ayl;
        a->z = azh << 8 | azl;
        m->x = mxh << 8 | mxl;
        m->y = myh << 8 | myl;
        m->z = mzh << 8 | mzl;
    }
    
    // Returns a set of acceleration and adjusted magnetic readings from the cmp01a.
    void read_data(vector *a, vector *m)
    {
        read_data_raw(a, m);
    
        // shift and scale
        m->x = (m->x - m_min.x) / (m_max.x - m_min.x) * 2 - 1.0;
        m->y = (m->y - m_min.y) / (m_max.y - m_min.y) * 2 - 1.0;
        m->z = (m->z - m_min.z) / (m_max.z - m_min.z) * 2 - 1.0;
    }
    
    ...
    
    read_data_raw(&a, &m);
    if (m.x < cal_m_min.x) cal_m_min.x = m.x
    if (m.x > cal_m_max.x) cal_m_max.x = m.x;
    if (m.y < cal_m_min.y) cal_m_min.y = m.y;
    if (m.y > cal_m_max.y) cal_m_max.y = m.y;
    if (m.z < cal_m_min.z) cal_m_min.z = m.z;
    if (m.z > cal_m_max.z) cal_m_max.z = m.z;
    Das Problem bei dieser Methode ist, dass ich zum Teil falsche Werte schon beim lesen der "raw" daten wirre Sachen wie 0 oder so bekomme. Daher bringt die Kalibrierung nicht wirklich etwas.
    Nach dem Kalibrieren verwende ich natürlich die read_data Methode sonst würde das Kalibrieren nichts bringen.

  5. #35
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    Hallo,

    Wo kalibrierst Du den Kompass?
    Auf dem RP6 oder irgendwo weit daneben?
    (die Motoren erzeugen ein Magnetfeld - kann ja sein das Du den Kompass zu nah dran hast... )

    Das Teil ist ja 3.3V also 3.3V<->5V Levelshifter hast Du drin bzw. sind auf der fertigen Platine die Du verwendest?


    MfG,
    SlyD

  6. #36
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Hallo,

    Die sind schon auf der Platine genau so wie die Pull-Up Wiederstände.
    Der Kompass ist etwa 11-12 cm über der RP6 Platine und die Motoren steuere ich nicht an, gerade wegen dem Magnetfeld.

    MFG,
    Berghuhn

  7. #37
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Also ich habe einen Rundungsfehler gefunden und bekomme nun folgende Werte:

    x: 130.15
    y: 211.51
    z: 154.95

    diese verändern sich aber wie zuvor nicht.

    MfG Berghuhn

  8. #38
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    (gelöscht)

  9. #39
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Nur mal so nebenbei eine Frage.
    Wir sprechen schon von den auf dem Bild Grün markierten I²C Port, oder sind die Ports für z.B. die Experemetierplatine gemeint (XBUS)?

    http://imageshack.us/photo/my-images/716/rp6u.jpg/

    Die Grün markierten spreche ich trozdem über PC1 und PC0 an richtig?

  10. #40
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    Hallo,

    der I2C Bus ist natürlich mit allen Pads verbunden die auf dem Mainboard mit SCL und SDA beschriftet sind.
    Pullup Widerstände sind schon auf dem Mainboard vorhanden (4K7).

    Beim anderen Problem kann ich leider wenig helfen da ich diesen Typ Kompass noch nie verwendet habe.

    Funktioniert der I2C Bus denn allgemein noch problemlos?
    Also mal mit RP6Base_I2CSlave und dem RP6-M32 mit einem der normalen Beispielprogramme laufen lassen...

    MfG,
    SlyD

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Ähnliche Themen

  1. Kompass für RP6
    Von axel88 im Forum Robby RP6
    Antworten: 40
    Letzter Beitrag: 04.08.2008, 19:01
  2. Kompass für nur 5€?
    Von Rohbotiker im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 03.07.2007, 22:11
  3. Kompass
    Von sulu im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 15.08.2005, 11:06
  4. Kompass???
    Von Static im Forum Sensoren / Sensorik
    Antworten: 30
    Letzter Beitrag: 19.01.2005, 00:58
  5. !!!KOMPASS!!!
    Von phönix im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 17.05.2004, 18:14

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress