## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### Re: [ct-bot] GP2D12

Absender: Peter Jonas
Datum: Mi, 29.03.2006 08:49:08

    Hallo Herr Thiele,
    zunächst einmal vielen Dank für Ihre Bemühungen, den Sensorproblemen auf die
    Spur zu kommen. Dazu einige Bermerkungen:

    1. Spikes im Ausgang
    Hier wäre es interessant, das Ausgangssignal der Sensoren in realer
    Bot-Umgebung zu sehen, und zwar für unterschiedliche Abstände und für
    reflektierenden Boden (Parkett) und nicht reflektierenden Boden (Teppich).

    2. Betrieb über BS250
    Mich würde interessieren, ob es überhaupt einmal eine sinnvolle Anwendung
    geben wird, bei der die Sensoren ein- und ausgeschaltet werden (soweit ich
    mich erinnere, benötigen die Sensoren deutlich mehr als 50 ms, um zu
    ?booten?). Ansonsten ist das Überbrücken des BS250 eine wirkungsvolle
    Maßnahme, die bei meinem Bot auch in Ergänzung zu den 100 uF-Elkos noch eine
    deutliche Verbesserung brachte.

    3. Messzyklen
    Ich gehe davon aus, dass das PSD-Element aufgrund der Scheibendrehung eine
    Rechteckspannung liefert, deren Flanken nicht steil, sondern schräg sind.
    Wenn der Sensor dieses empfangene Signal abtastet, wird es auch
    Abtastzeitpunkte während dieser Flanken geben. Dadurch entstehen dann die
    schmalen Stufen zwischen den eigentlichen breiteren Werten. Da die Drehung
    der Scheibe und die Taktung des Sensors asynchron zueinander sind, variiert
    der Meßwert dieser zusätzlichen Stufe in der Höhe natürlich.
    Schaltungstechnisch könnte man das evt. in den Griff kriegen, indem man am
    Sensor detektiert, wann die LED pulst, und davon abhängig dann den
    AD-Wandler des Bots steuert, so dass Messungen nur während der richtigen
    Sensorwerte stattfinden. Dafür könnte man am Sensor den Meßpunkt verwenden,
    der im Steckerbereich neben dem Vcc-Anschluß liegt (siehe hierzu
    http://people.ee.ethz.ch/~althaufe/robots/8bit/) . Ich bezweifele jedoch,
    dass im realen ?Botleben? diese Zwischenwerte eine Rolle spielen, denn die
    zappelnden Messwerte treten ja auch auf, wenn sich der Abstand nicht ändert.

    4. Abstrahlwinkel (und optische Interferenzen)
    Dies scheint mir der wichtigste Einflußfaktor zu sein, wenn man bereits die
    Versorgungsspannung durch die einschlägigen Maßnahmen geeignet geglättet
    hat. Hier spielt ein evt. stark reflektierender Boden (Parkett) eine große
    Rolle:
    So weisen linker und rechter Sensor z.B. unterschiedliche maximal messbare
    Distanzen auf, weil das Licht des linken Sensors auf dem Parkettboden
    reflektiert wird und in einem anderen Winkel am PSD-Element auftrifft als es
    beim rechten Sensor der Fall ist. Hier hilft es, den linken Sensor um 180
    Grad zu drehen, und evt. (wie ich es gemacht habe) den Anschlußstecker und
    dazugehörendes Platinenstückchen vom Sensor zu entfernen, damit diese nicht
    ins Transportfach des Bots hineinragen.
    Auch die Wirkung der ?Scheuklappen? hängt stark von der Umgebung und dem
    Boden ab. Ich konnte die Störungen z.B. deutlich vermindern, indem ich auf
    der einen Seite einen Pappstreifen oberhalb des Sensors und auf der anderen
    Seite unterhalb des Sensors anbrachte. Wenn ich dann allerdings den Sensor
    drehte, waren die Störungen wieder da, weil nun das Streulicht von ganz
    anderer Seite kam.

    Die unregelmäßigen niederfrequenten Störungen haben m.E. die Ursache darin,
    dass das Licht des einen Sensors den jeweils anderen Sensor beeinflußt. Da
    beide Sensoren asynchron zueinander arbeiten, gibt es Zeitpunkte, wo der
    andere Sensor blind für dieses Streulicht ist, und andere Zeiten, wo er es
    als Messwert interpretiert. Man erhält eine Schwebung, die von der
    Frequenzdifferenz beider Sensoren abhängt. Denkbar ist, dass bei manchen
    Anwendern diese Schwebungen weniger störend sind, weil hier die Differenz
    der Frequenzen anders ist.
    Hier müsste man also einen Weg finden, die beiden Sensoren zu synchronieren.
    Evt. könnte man auch hier den oben beschriebenen Messpunkt beider Sensoren
    verwenden, um zumindest ?unschöne? Messungen zu verwerfen, die sich aus
    einer bestimmten Lage der Sendeimpulse zueinander ermitteln lassen.
    Da Sie ja die technischen Meßmöglichkeiten haben, würde mich interessieren,
    wie sich diese Störungen über die Zeit (abhängig vom Boden und Distanz)
    zeigen (Speicheroszilloskop).

    Eine weitere unschöne Wirkung hat auch die Linearisierung der
    Sensorkennlinie: Da die Kennlinie ja gerade bei größeren Distanzen deutlich
    abflacht, muss hier durch einen entsprechend großen Korrekturfaktor versucht
    werden, die Kurve zu begradigen. Dass heißt aber auch, dass die Störsignale
    gerade in diesem Bereich zusätzlich verstärkt werden. Der Störabstand bei
    großen Distanzen ist ja besonders klein, weil der Sensor hier sowieso die
    kleinste Ausgangsspannung liefert und alle Störungen relativ stark wirken
    können.

    Beim weiteren Vorgehen sollte man sich vielleicht mit einer empfindlichen
    Infrot- oder SW-Kamera mal die Reflexionen anschauen, die auf die Sensor
    zurückfallen. Evt. kann man dadurch die Scheuklappen weiter optimieren.
    Ausgehend von den diversen Oszilloskopmessungen und -aufzeichnungen sollte
    man dann gezielt in der Software versuchen, das Preoblem zu mindern.

    Ganz interessant in diesem Zusammenhang ist übrigens der Thread im
    ctbot-Forum (insbesondere die Bilder):
    http://www.ctbot.de/forum/probleme-mit-den-sharp-gp2d12-t115.html
    http://www.ctbot.de/forum/linker-abstandssensor-umgebaut-t295.html

    Beste Grüße
    Peter Jonas

    --
    Bis zu 70% Ihrer Onlinekosten sparen: GMX SmartSurfer!
    Kostenlos downloaden: http://www.gmx.net/de/go/smartsurfer

- Voriger (Datum): [ct-bot] Datentyp int, Frank Menzel
- Nächster (Datum): Re: [ct-bot] Datentyp int, Peter König
- Voriger (Thread): Re: [ct-bot] GP2D12, U. Scheffler
- Nächster (Thread): [ct-bot] Datentyp int, Frank Menzel
- Indizes:
  - Datum
  - Thread