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

Thema: CMPS10 Genauigkeit

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich habe jetzt die Auswertung der Rohdaten (Register 10-13) für x und y (atan2(y,x) damit Werte im Kompasswinkel rauskommen) hinzugefügt:
    Damit wird der aktuelle Kompasswinkel schnell und sicher berechnet, die Werte werden 4x pro Sekunde abgefragt und sind jedesmal aktualisiert. Kalibriert ist da in der Auswertung noch gar nichts.

    Der vom CMPS10 selbst berechnete Winkel (Register 2+3) dagegen stimmt nur im Bereich zwischen 0 und PI/2, und kommt mit neuer und zurückgestellt auf Werkskalibrierung nie über PI hinaus. Und bis sich hier ein stabiler neuer Wert einstellt vergehen schon mal ein 1-2 Sekunden, da wie oben erwähnt die Auswertung der Beschleunigungssensoren 640ms dauert, und ein paar Durchläufe für stabile Werte benötigt werden.

    Also ich bleib mal bei der Auswertung der Rohdaten, keine Ahnung warum mein CMPS10 selbst so falsche Werte berechnet.

    LG!
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.09.2007
    Beiträge
    211
    Kannst du deinen Code anfügen? Würde mich interessieren

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Hier der Code der Funktion, die Ergänzung ist schnell hingepfuscht. Ich verwende als Winkel Radiant*1000, dh PI/2 ist hier 3141 um in weiteren Berechnungen die schnelleren Integervariablen verweden zu können.

    Code:
    static inline void Kompass()
    {
    
    unsigned short h,l;
    short x,y,xx,yy,kompass_x;//,offset_x,offset_y;
    double temp;
    
    //offset_x=-125;offset_y=15;
    
        if(!(i2c_start(Adresse_Kompass)))    
                {
                i2c_write(2);      // register  
                i2c_rep_start(Adresse_Kompass+I2C_READ);      // restart        
                h=i2c_readAck();
                l=i2c_readAck();
                kompass_akt=uniq(l,h);    
                l=i2c_readAck();//4
                l=i2c_readAck();//5
                l=i2c_readAck();//6
                l=i2c_readAck();//7
                l=i2c_readAck();//8
                l=i2c_readAck();//9
                h=i2c_readAck();//10
                l=i2c_readAck();//11
                xx=uniq(l,h);
                h=i2c_readAck();//12
                l=i2c_readNak();//13    
                yy=uniq(l,h);
                i2c_stop();
    
                x=xx-(-125); // Offset Test
                y=yy-15; // Offset Test
    
                temp=1000*atan2(y,x); // für Kompasswinkel            
    
                kompass_x=(short)temp;
                if (kompass_x<0) kompass_x=kompass_x+6282;
    
    richtung_kom=(kompass_akt/10); // Umrechnen rad*1000
    richtung_kom=(richtung_kom*35)/2;
    // für Testauswertung debug_eins=richtung_kom; debug_zwei=kompass_x;
    debug_fuenf=xx; debug_sechs=yy;
    } else richtung_kom= (-9999); // verwerfen wenn keine neuen Daten vorhanden }
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. CMPS10 defekt?
    Von avlbger im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 24.07.2012, 22:29
  2. CMPS10 E-I2C Example v1.1 for C-Control I V2.0
    Von Windt H.J. im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 1
    Letzter Beitrag: 09.11.2011, 13:11
  3. Timer 1 Genauigkeit
    Von asunn im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 27.06.2008, 23:51
  4. AD Genauigkeit erhöhen
    Von philiph im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 01.10.2006, 17:02
  5. AD-Wandler Genauigkeit
    Von Arexx-Henk im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 17.03.2006, 16:23

Berechtigungen

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

Labornetzteil AliExpress