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;
}
Lesezeichen