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







Zitieren

Lesezeichen