PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro zu verschenken!!!



Double_A
25.05.2010, 09:38
Hi,

Hab einen Linienfolger programmiert, der auch Linien mit Abzweigungen und Sackgassen folgt.
Dafür muss aber die Linie Breiter sein, als der Abstand der beiden Lichtsensoren zueinander...
Der linke Sensor muss AUF der Linie sein, der rechte NEBEN der Linie.

Der Asuro vegleicht die Sensoren unabhängig voneinander.
Also er vergleicht immer den aktuellen Wert mit dem zuletztgemessenen Wert.
z.B. der Linke Sensor: Der sollte immer auf der schwarzen Linie bleiben, d.h. der Wert ist nurmalerweise "dunkel". Wenn der Wert jetzt aber "heller" als der letztgemessene ist, lenkt der Asuro nach links (die Linienbreite verhindert, dass er je nach rechts lenken müsste).

Das gleiche macht auch der rechte Senson analog dazu...



Naja soweit so gut, aber mein Code macht nicht ganz was er sollte...
Der Asuro dreht sich einfach immer nach rechts im Kreis.

Findet ihr den Fehler?


#include <asuro.h>

int main(void)
{
Init();
FrontLED(ON);
MotorDir(FWD,FWD);

int SPEED = 150;
int lastLeft = 255, lastRight = 0;
int speedLeft, speedRight;
int lineData [2];

int i;
for (i = 0; i < 5; i++) LineData(lineData);


while(1) {
LineData(lineData);
speedLeft = speedRight = SPEED;

if (lineData[LEFT] > 1.05*lastLeft) {
speedRight = SPEED * 1.5;
speedLeft = SPEED * 0.66;
} else {
lastLeft = lineData[LEFT];
}

if (lineData[RIGHT] < 0.95*lastRight) {
speedLeft = SPEED * 1.5;
speedRight = SPEED * 0.66;
} else {
lastRight = lineData[RIGHT];
}

MotorSpeed(speedLeft, speedRight);
}

return 0;
}


Achja... The "Geschenk" is a lie! :-b

josua
26.05.2010, 21:16
also ich find dein titel nich so toll!!!!!!!!!!!!!!
erregt zwar aufmerksamkeit, aber man ärgert sich über so ne verarsche auch!!!

Martinius11
26.05.2010, 21:22
Wir sind hier nette Menschen und helfen auch ohne Anregung!

CsT
26.05.2010, 21:23
Fehler:

Irgendwo im Code, Zeile 1-100

PS: Is a lie