- 3D-Druck Einstieg und Tipps         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 48

Thema: RP6 Kompass

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

    Powerstation Test
    Oh ja ganz vergessen ^^

    Habe das ganze mal umgeschrieben, aber ob ich das so:


    Code:
    I2CTWI_transmitByte(0x3D, OUT_X_H_M); 
    I2CTWI_readBytes(0x3D, ACC_Data, 6);

    oder so:

    Code:
    ACC_Data[0] = I2CTWI_readByte(OUT_X_H_M);
    ACC_Data[1] = I2CTWI_readByte(OUT_X_L_M);
    ACC_Data[2] = I2CTWI_readByte(OUT_Y_H_M);
    ACC_Data[3] = I2CTWI_readByte(OUT_Y_L_M);
    ACC_Data[4] = I2CTWI_readByte(OUT_Z_H_M);
    ACC_Data[5] = I2CTWI_readByte(OUT_Z_L_M);
    Es bleibt immer beim lesen hängen...
    irgend etwas mache ich wohl falsch ^^

  2. #22
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Verwenden sie die M32 als Master ? Die I2C Schnittstelle zwischen M32 und Base functioniert also ? Nach verbinden von das Kompass functioniert noch immer die M32-Base Schnittstelle ? (muss normal so sein). Gibt diese I2C_Transmission_error() immer eine Failure ?

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Ja ich verwende die M32 Platine als Master. Die Kommunikation funktioniert so wie immer, es kommen zumindest auch keine Fehler.

  4. #24
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Berghuhn:
    Du machst es dir aber echt schwer, indem du alle Ratschläge jeweils nur zu 50% umsetzt und sonst wieder eigene Wege gehst...

    Probier doch einfach mal das Beispiel, das ich als Post #17 verlinkt habe, auf der RP6Base aus, so wie es ist. Wenn das funktioniert, ist schonmal die Hardware ok.
    Wenn du die M32 anstelle der RP6Base benutzen willst, müßte die Demo nur leicht angepaßt werden.
    Gruß
    Dirk

  5. #25
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Verwenden sie fur Lesen und Schreiben ein anders Adress ? Aus den Datasheet :
    For magnetic sensor, the default (factory) 7-bit slave address is 0011110b(0x3C) for write operations, or 00111101b (0x3D) for read operations.
    Moglich ist das schon in die I2Clib forgesehen, muss du mal nachshauen.

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    So ich habe wie empfohlen den Kompass nun erstmal an die Base angeschlossen.

    Hier mal mein Code (testweise nur für X Werte):

    Code:
    void LSM303Init()
        {
            I2CTWI_transmitByte(MAG_ADDRESS, 0x3C);
            I2CTWI_transmitByte(MAG_ADDRESS, 0x02);
            I2CTWI_transmitByte(MAG_ADDRESS, 0x00);
        }
    
    int main(void)
    {
        initRobotBase();
        
        I2CTWI_initMaster(400);  // 400kHz
        
        I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
    
        setLEDs(0b111111);
        mSleep(500);       
        setLEDs(0b000000);
            
        powerON();
    
        LSM303Init(); 
        
        PORTC &=~SCL;
        PORTC &=~SDA;
        DDRC  &=~SDA;
        DDRC  &=~SCL; 
        
        unsigned char ACC_Data[6];
        
        
        while(true)  
        {
            task_I2CTWI(); // Call I2C Management routine
            task_RP6System();
            
            I2CTWI_transmitByte(MAG_ADDRESS, 0x3C);  
            I2CTWI_transmitByte(MAG_ADDRESS, OUT_X_H_M); 
             
            ACC_Data[0] = I2CTWI_readByte(0x3D);
            
            I2CTWI_transmitByte(MAG_ADDRESS, 0x3C);
            I2CTWI_transmitByte(MAG_ADDRESS, OUT_X_L_M);
            
            ACC_Data[1] = I2CTWI_readByte(0x3D);
    
            writeString_P("--------------------------- \n");
            writeString_P("X High: \n");
            writeIntegerLength(ACC_Data[0], DEC, 10);
            writeString_P("\nX Low: \n");
            writeIntegerLength(ACC_Data[1], DEC, 10);
            writeString_P("\n--------------------------- \n");
            
            mSleep(5000);
            
        }
    So das ganze funktioniert nun schonmal (zumindest bekommen ich erste Werte ).
    für X High:
    0000000000

    X Low:
    0000000032

    Egal wie der Kompass geneigt ist es kommen immer die selben. (Bei Y Werten kommen ebenfalls die selben daten wie bei den x Werten)
    Geändert von Berghuhn (21.12.2011 um 23:08 Uhr) Grund: etwas hinzugefügt

  7. #27
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Dirk schrieb:
    Probier doch einfach mal das Beispiel, das ich als Post #17 verlinkt habe, auf der RP6Base aus, so wie es ist.
    Gruß
    Dirk

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Da ich in letzter Zeit etwas viel zu tun hatte kann ich nun endlich die Arbeit mit dem Kompass fortsetzen .
    Ich habe das Beispiel so wie es ist einfach mal so übernommen und die Speicheradressen angepasst.
    Nun bekomme ich in unregelmäßigen abständen folgende Werte:

    819.2 Grad
    003.2 Grad
    000.0 Grad

    immerhin nicht immer das gleiche aber wirklich Sinn ergibt das ganze noch nicht Bild hier  
    Geändert von Berghuhn (06.02.2012 um 07:12 Uhr)

  9. #29
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Edit: Okay die Werte kommen doch in einem regelmäßigen Abstand. Kann es sein, dass der Kompass defekt ist?

  10. #30
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Was sind die Register Werte die du auslest ? Kann es sein das die Berechnung nach Graden nicht stimmt ?

Seite 3 von 5 ErsteErste 12345 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
  •  

Labornetzteil AliExpress