Um den Abstand in [mm] eingeben zu können, kanst Du deine Sensorik ganz einfach normieren.

1) Nimm ein Maßband von ca. einem Meter länge

2) Schreib ein Proggi das genau n encoderschritte fährt ( siehe Beispiel )

3) Setz Robbi an den Anfang des Massbandes und "Engage..."

4) Miss den Abstand(Ln) den er zurückgelegt hat und normiere auf 1mm
z.B. für n = 1000
vex = Ln / n
Ln = 80cm ==> vex = 800mm/1000 = 0.8mm ==> 8 Einheiten für 10mm in diesem Beispiel.

6) Schreibe eine Routine die unter Beruecksichtigung von diesem Faktor die Werte mit der
Einheit [mm] multipliziert.

Das wars...


Code:
/* Normierungstest für Einheitsvektor Längenbestimmung 
   ohne Ausgleich der Gangunterschiede der angeschlossenen
   GS-Motoren.
*/
#include "asuro.h"
int main(void)
{
  int diff;
  Init();

  Encoder_Init();
  MotorDir(FWD,FWD);

  MotorSpeed(170,170);
  while( encoder[RIGHT] < 900 ) {}

  MotorSpeed(110,110);
  while( encoder[RIGHT] < 1000 ) {}

  MotorDir(BREAK,BREAK);
  

  while(1){} 
  return 0;

}