Hallo,

jetzt habe ich auch mal die Messkurven erstellt, um zu zeigen, was ich unter Vollausschlag verstehe.

Ich war selbst überrascht, daß die Schürze unter myIrAsuro jetzt 5mm über dem Untergrund war -- das kam wohl daher, daß ich auf der RobotChallenge nicht hängenbleiben wollte
Bild hier  

Hier nun meine Messungen, die trotz der 5mm Höhe der weißen Schürze über dem Boden fast keinen Außenlichteinfluß zulassen!
<table border=1><tr><td>Untergrund</td><td>hell</td><td>dunkel</td></tr><tr><td>weiß</td><td>1957</td><td>1954</td></tr><tr><td>schwarz</td><td>497</td><td>496</td></tr></table>
Die dunklen Bilder rechts kann man verifizieren, indem man sehr viel Kontrast rausnimmt ...
Bild hier   Bild hier  
Bild hier   Bild hier  

Hier das Messprogramm (SPEED: myAsuro hat Untersetzung 1:12.5)
Code:
#include <asuro.h>

#define SPEED 0x90

#define LOW  600
#define HIGH 1900

int main(void)
{
  unsigned int data[2],cnt,sum,mode;

  Init();

  StatusLED(OFF);

  FrontLED(ON);   

  MotorDir(OFF,FWD);
  MotorSpeed(0,SPEED);

  cnt=0;
  mode=0;
  
  for(;;) {
    LineData(data);
    sum=data[LEFT]+data[RIGHT];
    ++cnt;

    if ((mode==0) && (sum<LOW))
      mode=1;

    if ((mode==1) && (sum>HIGH))
      break;

    PrintInt(data[LEFT]);
    SerPrint(";");
    PrintInt(data[RIGHT]);
    SerPrint("\r\n");

    MotorSpeed(0,255);
    Msleep(12);
    MotorSpeed(0,0);
  }

  MotorSpeed(0,0);

  PrintInt(cnt);
  SerPrint("\r\n");

  while (1);

  return 0;
}
Das linke Rad dreht nicht mit, da ich meine Motorbrücke immer noch nicht repariert habe ...

Und hier das Messvideo (3gp / mpeg).

Hier die Meßwerte zum selber Auswerten:
Code:
990;968       
984;968       
985;962       
981;966       
985;968       
976;963       
984;966       
985;962       
981;967       
985;968       
976;965       
984;967       
984;960       
980;965       
983;952       
976;956       
980;959       
979;942       
976;950       
971;944       
868;924       
744;914       
643;901       
522;866       
458;835       
392;785       
362;755       
331;710       
307;657       
299;622       
275;566       
275;514       
262;393       
271;289       
281;235       
287;205       
343;183       
450;178       
543;183
675;185
748;179
848;183
944;186
973;202
972;213
980;250
972;283
980;326
983;353
980;403
984;460
984;555
982;644
984;734
984;772
982;820
985;822
972;860
984;883
985;896
Und hier das Diagramm der Summe und Differenz der Meßwerte des linken und rechten Fototransistors bei IR-FrontLED:
Bild hier  
Die Asymmetrie der Differenzen kann ich nicht direkt erklären (unterschiedliche Anbringung der Fototransistoren?), aber der Wertebereich von 500 bis über 1950 ist doch Klasse, oder?


Zitat Zitat von stochri
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".
Das mag für einen ganz normalen PID-Regler gelten, aber:

Ich bin zwar erst am Anfang des Verstehens der Regelungstechnik, und ich finde den Artikel in RN-Wissen (hier) sehr informativ!

Im Thread RobotChallenge-Linienfolgeprogramm von "myIrAsuro" habe ich einen Linienfolger mit einem ganz anderen Funktionsprinzip vorgestellt (state machine).

Wenn man jetzt einen Hybridalgorithmus aus PID-Regler und state (ON_LINE / OFF_LEFT / OFF_RIGHT) konstruiert, dann kann die Linie auch außerhalb des Fangbereichs wiedergefunden werden, oder nicht?