PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linienverfolgung Mehr Spass mit Asuro Band 1



Nixbilder
28.03.2010, 14:58
Hallöle,

ich versuche dieses Programm zu verstehen, warum wird die Variable i mit 4 und -4 verglichen?

i = (lineData[0] - lineData[1]) - ADOffset;
if (i > 4)
{
StatusLED(GREEN);
LineLeft();
}
else if (i < -4)

Woraus resultiert die 4?

liebe Grüße
Nixbilder

Thund3r
28.03.2010, 16:15
Hallo

Ich kenn den Rest des Programms nich denke aber das ADOffset ein Wert ist der zu Anfangs ermittelt wird also der Umgebungswert((lineData[0] - lineData[1])).Mit diesem Umgebungswert werden die neu ermittelten Werte (also wenn der Asuro die Linie sucht) verglichen um zu gucken ob sich was verändert hat.
Die beiden Linienwerte werden beim Liniensuchen dann voneinander abgezogen (nennen wir ihn "WertNeu"). Der Umgebungswert wird dann von "WertNeu" abgezogen.

Der ADOffset dient dazu Ungenauigkeiten zu Beginn auszuschließen wenn zB ein Fototrans. etwas "stärker" misst oder so
Der Umgebungswert eicht quasi die Liniensensoren (natürlich nur im Programm)

zB sei dann:


ADOffset =3;
lineData[0] =302
lineData[1] =299
dann ist i =0 --> es passiert nichts da die Abweichung zu gering ist

ist dann zB

lineData[0] =315
lineData[1] =299

dann ist i = 13 und if (i > 4) wird ausgeführt

wenn zB

lineData[0] =301
lineData[1] =344

ist

dann ist i= -40 und else if (i < -4) wird abgearbeitet.

Der Wert 4 wurde also gewählt um den Asuro nich auf minimal Abweichungen der Liniensensoren reagieren zu lassen sondern ihn etwas abzustumpfen um ihn erst ab einer Veränderung(Differnez) von mind. 4 Einheiten reagieren zu lassen da dann deutlich ist das eine Veränderung der Farbe auf dem Boden vorliegen muss.
Den Wert 4 kann man dann anpassen. Wenn man ihn vergrößert wird der Asuro unempfindlicher gegenüber Veränderungen verkleinert man ihn wird er empfindlicher (damit wird der Asuro aber auch empfindlicher gegenüber exterene Lichteinflüsse oder Bauteilunterschiede(kein Bauteil ist identisch mit dem anderen obwohl das gleiche draufsteht es gibt immer minimale Abweichungen die sich aber summieren können und zu veränderten Messergebnissen führen können))

Ich hoffe ich konnte dir da weiterhelfen ;)

Gruß Thund3r

Bääääär
29.03.2010, 22:37
Hi Nixbilder!

Ich habe im Rahmen meiner Seminarfacharbeit auch ein Linienfolgeprogramm geschrieben, welches im Kern sogar noch einfacher ist. Es orientiert sich an Neuronalen Netzen, auch wenn ich weite Teile dieses Themengebietes außer Acht gelassen habe. Hier gibt's nen Video und den Quelltext:
http://johannesneumann.net/index.php?page=asuro-und-die-linien
Nur so als Anregung, wie man's auch noch machen könnte.

Bääääär