wenn alle ähnliche werte bringen, würde ich spontan keine ir-led verwenden: bei den anderen sieht man wenigstens ob sie grade ein- oder ausgeschaltet sind =)
Hallo radbruch, hallo stochri!
Eure beiden Messungen sind schöne Beispiele. Die superhelle rote LED hat ungefähr die Werte, die ich auch gemessen habe und die IR-LED bringt ähnliche Werte wie meine superhelle weiße LED. Alle 3 sind aus meiner Sicht gut geeignet.
Waste
wenn alle ähnliche werte bringen, würde ich spontan keine ir-led verwenden: bei den anderen sieht man wenigstens ob sie grade ein- oder ausgeschaltet sind =)
Klar, aber in erster Linie sollte das Programm erkennen, ob die LED an oder aus ist. Und dabei ist es egal, ob das Licht für uns sichtbar ist oder nicht.bei den anderen sieht man wenigstens ob sie grade ein- oder ausgeschaltet sind =)
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo Radbruch,
wenn die IR-LED funktioniert ist es ja OK. In meinem Diagramm oben wird sichtbar, dass die Linienfolgesensorik einen Fangbereich von +-10mm hat ( aus der Differenzmessung ersichtlich).
Für eine schnelle Linienverfolgung wäre es natürlich von Vorteil, wenn der Fangberiech noch viel größer wäre. Deshalb werden bei den schnellen Robotern manchmal ganze Reflexlichtschrankenarrays vorne angebaut.
Mich würde der Fangbereich Deines Aufbaus interessieren.
Gruss,
stochri
Hallo
Mmmh, blöderweise weis ich nicht, was ein "Fangbereich" ist. Aus dem Zusammenhang würde ich mal tippen, es ist der Bereich, in dem der asuro erkennt, dass hier was ist. Meine Messung dafür startet mit dem Strich links neben der asuro-Platine und endet, wenn der Strich rechts wieder komplett neben der Platine ist. Schrittweite 0,5 cm:Mich würde der Fangbereich Deines Aufbaus interessieren.
409 399
390 384
390 380
386 379
373 377
322 370
120 350
40 233
67 79
249 37
365 123
381 266
382 292
384 358
381 369
381 374
382 374
Zwischen den jeweiligen Messwerten liegen also 0,5 cm, d.h. die Linie wird ab ca. 3 cm außerhalb der Mitte "gesehen". Das muss ich nochmal besser machen, ist "von Hand" viel zu fummelig. (17 Messungen ergibt 8 cm, asuroplatine 7,5 + Strichstärke 1,5 cm ergibt aber 9cm. Irgendwo habe ich mich vertan, aber die Werte passen trotzdem gut)
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
ich muß Waste vollkommen recht geben, es kommt auf die Maximierung der Differenz der Meßwerte auf schwarzem bzw. auf weißem Untergrund an.
Wahrscheinlich habe ich mich in meinem ersten Posting nicht klar genug ausgedrückt, deshalb wiederhole ich noch einmal meine Meßergebnisse:
Mit (innen weißer) Abschirmung (Fotos weiter oben im Thread, myIrAsuro und Robertor haben gleichartige Schürzen):Das macht für einen Fotosensor fast den maximalen Wertebereich aus.
- auf schwarzem Untergrund mit eingeschalteter IR-LED 70
- auf weißem Untergrund mit eingeschalteter IR-LED 980
Für die Summe beider Fotosensoren habe ich gemessen:Durch die geringe Höhe der IR-Schürze von 1mm über dem Untergrund gibt es fast keinen Außenlicheinfluß!
- auf schwarzem Untergrund mit eingeschalteter IR-LED 150
- auf weißem Untergrund mit eingeschalteter IR-LED 1955
- bei schwarzem Untergrund gehen die Summen-Werte um maximal +30 herauf
- bei weißem Untergrund habe ich keine Erhöhung größer als +2 gesehen, egal wieviel (helles) Licht ich noch eingeschaltet habe
Zusammenfassend erhalte ich also einen Summenwertebereich von 150 (schwarz) bis 1955 (weiß), bei einem maximalen Außenlichteinfluß von +30 (bei Schwarz).
Deshalb hat ein fester (Summen-)Schwellwert von 1100 für dunkel/hell bisher ohne Justierung auf den meisten Untergründen funktioniert.
Versuch zur Erklärung des Schürzen-Phänomens:
Der Wert für Weiß bei einem abgesenkten Asuro mit roter LED und alles Dunkel ist 100, mittels weißer Schürze stieg der bei mir auf 320, also knapp mehr als Faktor 3.
Der Wert für Weiß bei einem abgesenkten Asuro mit IR-LED und alles Dunkel ist 320, mittels weißer Schürze stieg der bei mir auf 980, also auch knapp mehr als Faktor 3.
Also scheint die weiße Schürze mehr als einen Faktor 3 zu geben, egal für welches Licht ...
Hier eine bessere Messung. asuro steppt von links nach rechts über die Linie. Startposition ist Drehpunkt der Räder über der Linie mit rechte Platinenkante links neben der Linie. In der Endposition ist der Drehpunkt immer noch unverändert über der Linie (wir zirkeln mit MotorDir(FWD,RWD)) und linke Platinenkante rechts neben Linie. Nur wenn sich nach einem Step einer der Werte verändert hatte, wurden beide Werte gelogt:
(erste Messung mit FrontLED aus)Code:0 ; 0 ; 0 1 ; 343 ; 340 2 ; 343 ; 341 3 ; 343 ; 339 4 ; 342 ; 339 5 ; 341 ; 338 6 ; 342 ; 340 7 ; 339 ; 340 8 ; 340 ; 341 9 ; 337 ; 340 10 ; 337 ; 341 11 ; 336 ; 339 12 ; 337 ; 338 13 ; 338 ; 326 14 ; 338 ; 313 15 ; 337 ; 292 16 ; 336 ; 255 17 ; 334 ; 222 18 ; 331 ; 137 19 ; 314 ; 91 20 ; 295 ; 66 21 ; 266 ; 47 22 ; 232 ; 38 23 ; 197 ; 39 24 ; 121 ; 48 25 ; 71 ; 66 26 ; 56 ; 83 27 ; 41 ; 135 28 ; 37 ; 217 29 ; 40 ; 237 30 ; 53 ; 273 31 ; 86 ; 314 32 ; 103 ; 325 33 ; 126 ; 332 34 ; 210 ; 336 35 ; 252 ; 337 36 ; 298 ; 338 37 ; 318 ; 336 38 ; 329 ; 337 39 ; 333 ; 337 40 ; 336 ; 338 41 ; 336 ; 337 42 ; 336 ; 338 43 ; 336 ; 337 44 ; 336 ; 339 45 ; 336 ; 338 46 ; 338 ; 337 47 ; 338 ; 336 48 ; 339 ; 337 49 ; 338 ; 336
Ich vermute den schwachen Akku als Ursache für die immer kleiner werdenden Werte. Es wäre nett, wenn da jemand ein Diagramm draus machen könnte. *liebschaut*
Der Code des Messprogramms (für 80mm-Räder):
GrußCode:#include "../inc/asuro.h" #include "../inc/asuro.c" #define limit 50 #define NewLine SerWrite("\n\r",2) #define Trenner SerWrite("; ",2) unsigned int data[2], data_old[2], d_l[limit], d_r[limit], zeiger; int main( void ){ Init(); zeiger=0; LineData(data_old); d_l[zeiger]=data_old[0]; d_r[zeiger]=data_old[1]; zeiger++; FrontLED(ON); Msleep(500); MotorDir(BREAK,BREAK); MotorSpeed(255,255); while(zeiger<limit) { if (zeiger & 1) StatusLED(YELLOW); else StatusLED(RED); MotorDir(FWD,RWD); Msleep(10); MotorDir(FREE,FREE); Msleep(100); LineData(data); if ((data[0]!=data_old[0]) || (data[1]!=data_old[1])) { d_l[zeiger]=data[0]; d_r[zeiger]=data[1]; data_old[0]=data[0]; data_old[1]=data[1]; zeiger++; } } MotorDir(BREAK,BREAK); MotorSpeed(0,0); FrontLED(OFF); Msleep(500); while(!PollSwitch()) { StatusLED(GREEN); Msleep(200); StatusLED(OFF); Msleep(600);} NewLine; NewLine; SerWrite("Gespeicherte Linedatas (10.3.2007)",34); NewLine; NewLine; for (zeiger=0; zeiger<limit; zeiger++) { NewLine; PrintInt(zeiger); Trenner; PrintInt(d_l[zeiger]); Trenner; PrintInt(d_r[zeiger]); } while(1); return 0; }
mic
Edit: Diagramm hinzugefügt.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
.Mmmh, blöderweise weis ich nicht, was ein "Fangbereich" ist. Aus dem Zusammenhang würde ich mal tippen, es ist der Bereich, in dem der asuro erkennt, dass hier was ist
Ja, so stelle ich mir das auch vor. Der Fangbereich ist der Bereich, in dem der ASURO sich zur Linie hin drehen kann. Wenn die Linie ausserhalb seines Sichtfeldes liegt, kann er die Linie nicht mehr "fangen".
Ich vermute, dass das nur bis zu dem Abstand geht, bei dem die Differenz der beiden Sensoren maximal wird. Deshalb habe ich die Daten aus Deinen 1.ten Messungen auch mal graphisch dargestellt, um einen Vergleich zu haben. Was mir dabei auffält, ist das auf der rechten Seite der Bereich Deiner Sensoren weiter ausläuft. Ich habe aber noch keine Idee, wie das zustande kommt und was es bedeutet.
Das kann man folgendermaßen machen: Einfach die Daten in die Zwischenablage kopieren und dann z.B. mit OpenOffice "Einfügen->Inhalte Einfügen".Ich vermute den schwachen Akku als Ursache für die immer kleiner werdenden Werte. Es wäre nett, wenn da jemand ein Diagramm draus machen könnte. *liebschaut*
Gruss,
stochri
Die Frage ist jetzt, ob mit weißer Schürze der min. Wert, wenn man die Linie durchzieht, auch nur um den Faktor 3 ansteigt oder um mehr? Wenn nur Faktor 3 oder kleiner, dann ist es gut. Wenn der Faktor höher ist, dann kann man mit einer schwarzen Schürze und einer helleren LED bessere Ergebnisse erreichen.Zitat von HermannSW
Die seitliche Schürze reflektiert das Licht. Es ist vergleichbar mit einem konstanten Umgebungslicht von der Seite. Es ist die Frage, ob diese Reflektion einen Beitrag zur Erkennung der Linie bringt oder nur Störlicht ist, weil es direkt seitlich auf die Fototransistoren wirkt? Es kann durchaus sein, dass es was bringt, vielleicht sogar einen größeren Fangbereich (Stochri Definition).
Waste
Lesezeichen