-
        

Ergebnis 1 bis 5 von 5

Thema: Kompaß CMPS03 an Rn-Control

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.05.2005
    Beiträge
    16

    Kompaß CMPS03 an Rn-Control

    Anzeige

    Hallo,

    ich versuche gerade den Kompaß hier aus dem Shop (CMPS03) mit dem RN-Control Board zum funktionieren zu bringen. Bis her leider nur mit mäßigem Erfolg. Ich kann zwar mit dem mitgeliefertem Sample Programm Werte auslesen, allerdingen springen diese in einem Winkel von ca 20 Grad (immer die selbe Richtung) wild hin und her (1000-9000). Ansonsten sehen die Werte ganz gut aus.

    Hat jemand ne Idee wie das angehen kann?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    ... allerdingen springen diese in einem Winkel von ca 20 Grad (immer die selbe Richtung) wild hin und her (1000-9000).
    Wenn man den 16-bit Wert des CMPS03 via I2C ausliest, liegen die Werte zwischen 0 und 3599. Dann können sie eigentlich nicht zwischen 1000 und 9000 hin und herspringen. Die Werte sehen dann auch nicht wirklich gut aus.

    Gruß Dirk

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.05.2005
    Beiträge
    16
    Also zur Zeit benutzen wir diesen Code:

    Code:
    Function Rn_cmps_himmelsrichtung() As Word
    Local Msb As Byte
    Local Lsb As Byte
    
    I2cstart
    I2cwbyte 192                                                'I2C Slaveadresse C0
    I2cwbyte 2                                                  'Register 2 und 3 auswählen
    I2cstart
    I2cwbyte 193                                                'Slaveadresse+1 (C1)
    I2crbyte Msb , Ack
    I2crbyte Lsb , Nack
    I2cstop
    Rn_cmps_himmelsrichtung = Makeint(lsb , Msb)                'Word aus 2 Byte machen
    End Function
    Ich meine das ich die aus irgendeinen Tutorial habe, ich weiß allerdings nichtmehr genau woher.

    Was ich mir auch noch eventuell vorstellen könnte ist, dass das irgendwie mit der Firmware zusammenhängt. Ich meine das unser Kompass als Firmware 16 ausgibt. Kann es daran liegen? Wenn ja, wie kriege ich auf das Ding eine neue Firmware rauf und wo kriege ich die her?

    Kalibriert haben ich das Ding wie gesagt schon. Muss man dabei eventuell auch irgendwas beachten? Ich hab den Pin jetzt einfach immer mit dem RN-Control Board auf GND gezogen für 100ms und dann das Ding um 90° Grad gedreht.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo flammenvogel,

    probier 'mal:
    Code:
    Function Rn_cmps_himmelsrichtung() As Word 
    Local Msb As Byte 
    Local Lsb As Byte 
    
    I2cstart 
    I2cwbyte 192 , Ack                                               'I2C Slaveadresse C0 
    I2cwbyte 2                                                  'Register 2 und 3 auswählen
    Waitms 10 
    I2cstart 
    I2cwbyte 193 , Ack                                               'Slaveadresse+1 (C1) 
    I2crbyte Msb , Ack 
    I2crbyte Lsb , Nack 
    I2cstop 
    Rn_cmps_himmelsrichtung = Makeint(lsb , Msb)                'Word aus 2 Byte machen 
    End Function
    Gruß Dirk

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.05.2005
    Beiträge
    16
    ok, der Kompass funktioniert.

    Der Fehler war ganz trivial, auf dem LCD haben wir den alten Wert nicht mit Leerstellen überschrieben. Daher hatten wir immer noch die alten Werte mit auf dem LCD Display und deswegen sah die Zahl so seltsam aus.

    Trotzdem danke für die Hilfe!

Berechtigungen

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