Hier mal ein Film vom Linienfolgen. das ist das Programm:
Code:
//****************************************************************************************************
// Liniefolgeprogramm
// entwickelt aus dem mitglieferten Demoprogramm
//
// Geschwindigkeiten wurden geändert, das Verhalten invertiert (Bei Verlassen der Ideallinie wird abgebremst statt beschleunigt)
//
// letzte Änderung 29.11.2004
#include "asuro.h"
#define SPEED 0xBF
int speedLeft,speedRight;
unsigned int lineData[2];
int ADOffset;
void LineLeft (void)
{
speedRight -=2;
if (speedRight < 0x5F) speedRight = 0x5F;
}
void LineRight (void)
{
speedLeft -=2;
if (speedLeft < 0x5F) speedLeft = 0x5F;
}
void LineDemo(void)
{
int i;
unsigned char j;
FrontLED(ON);
for (j = 0; j < 0xFF; j++) LineData(lineData);
LineData(lineData);
ADOffset = lineData[0] - lineData[1];
speedLeft = speedRight = SPEED;
MotorSpeed(speedLeft,speedRight);
for(;;) {
LineData(lineData);
i = (lineData[0] - lineData[1]) - ADOffset;
if ( i > 4) {
StatusLED(GREEN);
LineLeft();
}
else if ( i < -4) {
StatusLED(RED);
LineRight();
}
else {
StatusLED(YELLOW);
speedLeft = speedRight = SPEED;
}
MotorSpeed(speedLeft,speedRight);
}
}
int main(void)
{
Init();
LineDemo ();
while(1);
return 0;
}
Die Qualität ist supermies, da das Filmchen so klein gekloppt werden mußte. Sorry.
Der Linenfolgeplan ist von RealRobots.
Die in Code angegebenen Geschwindigkeiten hängen vermutlich vom Exemplar ab. Schon wenn ich Alkaline statt Akkus verwende ist das Tempo so verschieden, daß die Linie leicht verloren geht.
Gruß
Torsten
Lesezeichen