Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Einstellung Encoderscheibe Kategorie: Pro-Bot128 (von Mansfeld - 24.03.2010 16:22)
Als Antwort auf Einstellung Encoderscheibe von Dietrich Diebel - 23.10.2009 12:27
Ich nutze:
Pro-Bot128
> Hallo liebe Gemeinde der Probot-Anwender,
> nach mehreren Versuchen mit der achtgeteilten Encodserscheibe war mir die Präzision nicht gut
> genug und habe deshalb die zwölfgeteilte eingesetzt.
> Das bedeutet aber, dass die Bibliothek nun entsprechend angepasst werden muss, um die Vorgaben
> weiterhin in cm und Grad machen zu können.
> in der Datei PRO-BOT128_Lib.cbas Befindet sich ein Eintrag:
> #define Encoder_IR 8

  Encoder_IR wird benutzt, um die Encoder-Dioden an X1_8 zu schalten. Siehe PRO_BOT128_INIT()
  Port_DataDirBit(Encoder_IR, 1); und ENC_LED_ON(void).

> Hier vermutete ich, dass damit die Wechsel der Encoderscheibe pro Umdrehung eingestellt werden.
> Deshalb habe ich diesen Wert auf 12 gesetzt. Das hat nun aber zur Folge, dass die TURN-Funktion
> nun gar nicht mehr funktioniert, also habe ich den Wert wieder zurücksgesetzt.
> Die Werte für Wegstrecke und Drehwinkel habe ich nun um 1,5 nach oben korrigiert.
> Damit funktioniert im Prinzip alles so, wie ich es mir vorgestellt habe.
> Was muss ich aber in der .lib-Datgei änsderen, damit ich wieder cm und Grad einsetzen kann?

  Verantwortlich für die Umrechnung von distance(degrees) in Encoder-ticks sind die Zeilen:
  //Calculate "cm" in ticks          
  encoder_cnt=ABS_INT((distance-3))*UNIT_TICK;

  und

  //calculate degree
  encoder_cnt=ABS_INT(degree)*10;
  encoder_cnt=(encoder_cnt/37)-3;

> Noch eine Frage zum Drehwinkel:
> Die Ausführung dieser Funktion wird ja offensichtlich auch über den Encoder gesteuert. Der Winkel
> ist aber immer kleiner, als erwartet, so dass ich nun statt 90*1,5 =135 einen korrigierten Wert von
> 145 eintragen muss, damit halbwegs eine Drehung im rechten Winkel erfolgt.
> Da der Probat aber im Wesentlichen gradeaus fahren kann, gehe ich davon aus, dass die
> Justierung der LED-s an Encoderscheiben halbwegs korrekt ist.
> Kann es sein, dass das sich ein Motor bei der Drehrichtung Rückwärts anders verhält,
> als bei Vorwärts?

  Ich habe keine praktische Erfahrung, aber in der Literatur wird das behauptet. Das kann
  hier aber keine Rolle spielen, denn der Regler in GO_TURN() versucht die Geschwindigkeits-
  differenz der beiden Motoren auf Null zu regeln. (Wenn der BOT vorwärts fährt, dreht der
  eine Motor rechts und der andere Motor links - bedingt durch die Einbaulage.)
 
< Wie kann ich das kalibrieren?
> Besten Dank im Voraus
> Dietrich


    Antwort schreiben


Antworten: