-         
Ergebnis 1 bis 3 von 3

Thema: Eine Frage zu der Go() Funktion

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.09.2008
    Beiträge
    10

    Eine Frage zu der Go() Funktion

    Anzeige

    wie funktioniert die in der Go() Funktion angegebene Umformung ?

    enc_count=abs(distance)*10000L;
    enc_count/=MY_GO_ENC_COUNT_VALUE;

    wie berechnet man den Wert für MY_GO_ENC_COUNT_VALUE?
    warum distance * 10000L?

    Danke im voraus.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    02.09.2008
    Beiträge
    10
    Ich wäre euch sehr dankbar, wenn mir jemand die Lösung sagen würde. Da mein Asuro mit der Go() Funktion nicht geradeaus fährt.

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo,

    in der Go Funktion wird aus dem Parameter distance die Anzahl der benötigten Ticks berechnet. Um nicht mit floating Point Zahlen rechnen zu müssen, wird der Faktor 10000 verwendet. Der Wert für MY_GO_ENC_COUNT_VALUE wurde empirisch ermittelt, und gilt nur für die Encoderscheiben mit 12 Segmenten. Für die 8er Scheiben ist ein Wert von ca. 30000 notwendig.

    Das alles hat aber nichts damit zu tun, das dein Asuro nicht geradaus läuft. Das liegt eher daran, das Encoder Ticks nicht erkannt werden, weil:

    * Die MY_ODO_DARK.. LIGHT Werte Werte nicht stimmen und angepasst werden müssen. Das geht mit dem Testprogramm von Sternthaler sehr gut. Siehe folgenden Thread
    * Die Zahhnräder mit den Encoderscheiben auf den Achsen rumeiern, und sich der Abstand zu den Foto Transistoren ändert. Dagegen helfen auf die Achsen geklebte Unterlagscheiben.
    * Die Fototransistoren reagieren auf Fremdlicht mit Fehlmessungen. Dagegen helfen Abschirmungen aus Pappe/Papier.
    * Evtl. hast du auch unterschiedliche Encoderscheiben verwendet.

Berechtigungen

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