NIBO 2/Bodensensoren: Unterschied zwischen den Versionen

Aus Nibo Wiki
Wechseln zu: Navigation, Suche
(Kalibrierung der Bodensensoren)
(Kalibrierung der Bodensensoren)
 
Zeile 7: Zeile 7:
 
Für die Kalibrierung muss zuerst das Programm [http://www.roboter.cc/index.php?option=com_nicaiwci&view=project&Itemid=61&projectid=127 NIBO2 - Kalibrierung] von der RoboterCC Webseite (bzw. „calibration.hex“ aus dem Verzeichnis „examples2/calibration“ der [[NIBO 2/Software|Bibliothek]]) auf den Roboter übertragen werden.
 
Für die Kalibrierung muss zuerst das Programm [http://www.roboter.cc/index.php?option=com_nicaiwci&view=project&Itemid=61&projectid=127 NIBO2 - Kalibrierung] von der RoboterCC Webseite (bzw. „calibration.hex“ aus dem Verzeichnis „examples2/calibration“ der [[NIBO 2/Software|Bibliothek]]) auf den Roboter übertragen werden.
  
Nach Übertragung des Programms sollte die rechte hintere LED (LED0) rot leuchten. Der Roboter wird nun mit allen Bodensensoren auf einer '''schwarzen Fläche''' platziert und der Taster S3 geedrückt.
+
# Nach Übertragung des Programms sollte die rechte hintere LED (LED0) rot leuchten. Der Roboter wird nun mit allen Bodensensoren auf einer '''schwarzen Fläche''' platziert und der Taster S3 geedrückt.
Danach leuchtet die hintere linke LED (LED1) rot. Der Roboter muss jetzt auf eine '''weisse Fläche''' gestellt werden, anschliessend wird wieder der Taster S3 gedrückt.
+
# Danach leuchtet die hintere linke LED (LED1) rot. Der Roboter muss jetzt auf eine '''weisse Fläche''' gestellt werden, anschliessend wird wieder der Taster S3 gedrückt.
 +
# Die Werte im Display werden jetzt schon nach den neu berechneten Parametern angezeigt, die Parameter sind jedoch noch nicht im EEPROM des ATmega128 gespeichert (LED0 und LED1 leuchten rot). Um die Parameter permanent im EEPROM zu speichern, muss der Taster S3 erneut betätigt werden.
  
 
Alle Aktionen werden mit einem kurzen roten Aufleuchten der vorderen LEDs (LED3 - LED6) quittiert.
 
Alle Aktionen werden mit einem kurzen roten Aufleuchten der vorderen LEDs (LED3 - LED6) quittiert.
 
Die Werte im Display werden jetzt schon nach den neu berechneten Parametern angezeigt, die Parameter sind jedoch noch nicht im EEPROM des ATmega128 gespeichert (LED0 und LED1 leuchten rot).
 
Um die Parameter permanent im EEPROM zu speichern, muss der Taster S3 erneut betätigt werden.
 
  
 
Die gespeicherten Parameter werden dann bei der Berechnung der floor_relative Werte (bei Aufruf der floor_update() Funktion) berücksichtigt.
 
Die gespeicherten Parameter werden dann bei der Berechnung der floor_relative Werte (bei Aufruf der floor_update() Funktion) berücksichtigt.

Aktuelle Version vom 3. März 2011, 12:17 Uhr

Die Bodensensoren des NIBO 2 bestehen aus vier CNY70 IR-Reflexlichtschranken. Mit den Sensoren kann die Bodenbeschaffenheit (Reflexionsfaktor für IR Licht) analysiert werden, um beispielsweise einer Linie zu folgen oder Abgründe zu erkennen.


Kalibrierung der Bodensensoren

Um die Bodensensoren des NIBO 2 zu kalibrieren müssen die Eigenschaften der optoelektronischen Bauteile (IR LEDs und Phototransistoren der CNY70) aufeinander abgestimmt werden. Für die Kalibrierung muss zuerst das Programm NIBO2 - Kalibrierung von der RoboterCC Webseite (bzw. „calibration.hex“ aus dem Verzeichnis „examples2/calibration“ der Bibliothek) auf den Roboter übertragen werden.

  1. Nach Übertragung des Programms sollte die rechte hintere LED (LED0) rot leuchten. Der Roboter wird nun mit allen Bodensensoren auf einer schwarzen Fläche platziert und der Taster S3 geedrückt.
  2. Danach leuchtet die hintere linke LED (LED1) rot. Der Roboter muss jetzt auf eine weisse Fläche gestellt werden, anschliessend wird wieder der Taster S3 gedrückt.
  3. Die Werte im Display werden jetzt schon nach den neu berechneten Parametern angezeigt, die Parameter sind jedoch noch nicht im EEPROM des ATmega128 gespeichert (LED0 und LED1 leuchten rot). Um die Parameter permanent im EEPROM zu speichern, muss der Taster S3 erneut betätigt werden.

Alle Aktionen werden mit einem kurzen roten Aufleuchten der vorderen LEDs (LED3 - LED6) quittiert.

Die gespeicherten Parameter werden dann bei der Berechnung der floor_relative Werte (bei Aufruf der floor_update() Funktion) berücksichtigt.

Normalisierung durch die NIBO Library

Die Bodenbeschaffenheit wird durch ein modulierendes Verfahren gemessen, um den Umgebungslicheinfluss zu minimieren. Die NIBO Library verwendet zusätzlich die Werte aus dem EEPROM zur Normalisierung der Sensorwerte. Durch dieses Verfahren liefern alle drei Phototransistoren bei gleicher Bodenbeschaffenheit weitestgehend ähnliche Werte.

Die Bodenbeschaffenheit wird dazu einmal mit ausgeschalteter und einmal mit eigeschalteter IR-LED gemessen. Der Unterschied zwischen beiden Messungen entspricht dem reflektierten Anteil des IR-Lichts.

(Umgebungslicht + reflektiertes Licht) - (Umgebungslicht) = (reflektiertes Licht)

Das Kalibrierprogramm macht folgendes: Die Differenzen für einen weissen (Kw) und für einen schwarzen (Kb) Untergrund werden gemessen und gespeichert. Die Werte werden bei Aufruf der line_get Funktion nach folgender Formel normalisiert:

Ergebnis = 256*(Rohwert-Kb)/Kw

Für einen schwarzen Untergrund ergibt sich als Ergebnis 0, für einen weissen Untergrund ca. 256. Sollte der Reflexionsfaktor größer als bei der Kalibrierung sein werden Werte über 256 zurückgeliefert!