- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 52

Thema: HDMM01 und die orientierungslib von Dirk

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Dirk Beitrag anzeigen
    Aber: Das ist ja genau eine Aufgabe als Programmer des RP6! Nehmen wir an, der Headingwert beträgt aktuell 180° (S), du möchtest aber nach Osten (90°, E) fahren. Dann must du deinem Rotate-Befehl sagen, dass der RP6 um 90° nach links rotieren muss. Danach must du wieder den Headingwert bestimmen und erneut mit Rotate korrigieren oder durch den move-Befehl den neuen Kurs halten, indem du jeweils eine Kette etwas langsamer machst, wenn eine Abweichung von deiner Zielrichtung erkannt wird.
    Das ist schon eine nette Herausforderung!!
    da gib ich dir uneingeschränkt recht!!

    der folgender code soll bewirken, dass sie der RP6 - je nachdem welcher headingwert gemessen wurde - nach norden ausrichtet und das auf dem kürzesten weg, also nicht immer nur rechtsherum. Die headingswerte werden ausserhalb des bereiches für case1 gemessen, deshalb hier auskommentiert...
    Code:
    case 1://richtung NORD
    
                            setLEDs(0b0001);                //LED 1 leuchtet
                            {
                            /*
                            intreg2dm = readHDMM01();        // holt sersorwerte
                            if(!intreg2dm)                  //daten gültig?
                            normalizeHDMM01();                // daten werden "normalisiert"
                            heading2dm = headingHDMM01();    // berechnung der headingwerte
                            */
                            setCursorPosLCD(0, 0);
                            writeStringLCD_P("Heading   ");
                            writeIntegerLCD(heading2dm, DEC);
                            mSleep(1000);
                            setCursorPosLCD(1, 0);
                            writeStringLCD_P("direction  ");
                            calculateDir(dir, heading2dm);  //berechnung der richtung (N,S,W,E)
                            writeStringLCD(dir);            //ausgabe der richtung
                            }
                            if (heading2dm < 180) rotate (100, 2, heading2dm, 1);
                            else rotate (100, 3, 360-heading2dm, 1);
    //                        move(150, FWD, DIST_MM(500), true); //fährt 50cm
                            mSleep(1000);
    //                        rotate(50, 3, 90, 1); //dreht um 90°
                            clearLCD();
    ich habe auch die move befehle hier auskommentiert, ich lasse ihn erstmal nur auf der stelle drehen.

    - nach links funktioniert es, auch wenn sehr ungenau - da müsste ich also die zweite messung und korrektur einbauen, das mache ich noch.

    - hat die genauigkeit etwas mit der geschwindigkeit des drehens zu tun? Ich habe den eindruck, dass er, wenn er schneller ist, weit mehr übers ziel hinausgeht...und wenn er langsammer ist, das ziel nicht erreicht!

    - nach rechts, also wenn der gemessener headingwert > 180° ist, dreht er sich im kreis ohne anzuhalten und ich komme nicht drauf warum!?!?
    Geändert von inka (13.04.2013 um 17:18 Uhr)
    gruß inka

Ähnliche Themen

  1. Kompass-Modul Hdmm01 für den Rp6
    Von Morpheus1997 im Forum Robby RP6
    Antworten: 8
    Letzter Beitrag: 09.08.2012, 17:33
  2. 2 x HDMM01 auf Arduino Mega
    Von arnoa im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 08.02.2012, 16:19
  3. Pollin I2C Kompassmodul HDMM01
    Von malthy im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 15.09.2011, 12:53
  4. Zu Servo anssteuerung von Dirk frage
    Von Christian3 im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 16.06.2009, 12:31
  5. @Dirk Gemeinsames Modul
    Von UweMD im Forum Robby CCRP5
    Antworten: 2
    Letzter Beitrag: 21.09.2004, 06:21

Berechtigungen

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

LiFePO4 Speicher Test