So Leute,
Ich habe heute auch mal etwas probiert, und hier ist meine Linienverfolgung:
Die Klappt recht gut, der Asuro fährt noch etwas unsicher, aber bleibt auf der Linie.Code:#include "asuro.h"
int main(void) {
#define SPEED 150
Init();
FrontLED(ON);
/*char ergebnis[10];*/
int links ;
int rechts;
int ADCoffset;
unsigned int daten[2];
int a;
MotorDir(FWD,FWD);
for (a = 0; a < 254; a++) {
LineData(daten);
}
LineData(daten);
ADCoffset = daten[0] - daten[1];
links = SPEED;
rechts = SPEED;
while (1) {
int b;
LineData(daten);
b=daten[0] - daten[1] -ADCoffset;
/*itoa(b,ergebnis,10);
SerWrite(ergebnis,strlen(ergebnis));
SerWrite("\n\r",2);*/
if (b > 4) {
StatusLED(RED);
rechts = rechts - 2 ;
if (rechts < 1) rechts = 0;
}
else if (b < -4) {
StatusLED(GREEN);
links = links - 2 ;
if (links < 1) links = 0;
}
else{
StatusLED(OFF);
links = SPEED;
rechts = SPEED;
}
MotorSpeed(links,rechts);
}
return 0;
}
Man sollte allerdings schonmal drauf achten, daß der beim Kalibrieren ziemlich genau auf dem Klebeband steht.
P.S. Meine Frau hat mich schon für bekloppt erklärt, weil ich die ganze Diele mit Isolierband vollgepappt habe; Brauche mehr Isoband!!
O:)
Gruß Sebastian