NiboRoboLib 3.6 - NIBO burger Library
surface.h-Dateireferenz

Zugriff auf die aufbereiteten Daten des Boden- bzw. Farbsensors. Mehr ...

gehe zum Quellcode dieser Datei

Aufzählungen

enum  {
  SURFACE_L = ANALOG_BL, SURFACE_C = ANALOG_BC, SURFACE_R = ANALOG_BR, SURFACE_CL = ANALOG_BCL,
  SURFACE_CR = ANALOG_BCR
}
 

Funktionen

void surface_init ()
 
void surface_writePersistent ()
 
void surface_readPersistent ()
 
uint16_t surface_get (uint8_t idx)
 
uint32_t surface_getColorRGB ()
 
uint32_t surface_getColorHSV ()
 
uint16_t surface_getAbs (uint8_t idx)
 
void surface_calibrateWhite ()
 
void surface_calibrateBlack ()
 

Ausführliche Beschreibung

Zugriff auf die aufbereiteten Daten des Boden- bzw. Farbsensors.

Mit den Funktionen aus dieser Datei kann der Boden- bzw. Farbsensors kalibriert werden und es kann auf die kalibrierten Werte zugegriffen werden. Die Werte SURFACE_CL und SURFACE_CR sind insbesondere für die Implementation einer Linienfolge interessant, da sie das Licht vom mittleren Sensorbrick mit dem Sensor vom linken bzw. rechten Sensorbrick messen.

Dokumentation der Aufzählungstypen

anonymous enum

Symbolische Namen für den Parameter idx der Funktionen surface_get() und surface_getAbs()

Aufzählungswerte
SURFACE_L 

Bodensensor Links.

SURFACE_C 

Bodensensor Mitte.

SURFACE_R 

Bodensensor Rechts.

SURFACE_CL 

Bodensensor Links, Licht von Mitte Sensor.

SURFACE_CR 

Bodensensor Rechts, Licht von Mitte Sensor.

Dokumentation der Funktionen

void surface_calibrateBlack ( )

Kalibrierung auf schwarze Oberfläche für normalisiserten Wert 0. Die Interrupts müssen aktiviert sein, damit die Sensorwerte gemessen werden! Die Funktion darf erst nach surface_calibrateWhite() aufgerufen werden.

void surface_calibrateWhite ( )

Kalibrierung auf weisse Oberfläche für normalisiserten Wert 1024. Die Interrupts müssen aktiviert sein, damit die Sensorwerte gemessen werden!

uint16_t surface_get ( uint8_t  idx)

Liefert den normalisierten Wert des Bodensensors mit dem index

Parameter
idx. Die Interrupts müssen aktiviert sein, damit die Sensorwerte gemessen werden! Der Parameter
idxkann die Werte SURFACE_L, SURFACE_C, SURFACE_R, SURFACE_CL oder SURFACE_CR annehmen.
Rückgabe
Bei korrekt kalibrietem Sensor ein Wert aus dem Interval [0..1023]
uint16_t surface_getAbs ( uint8_t  idx)

Liefert den Wert des Bodensensors mit dem index

Parameter
idxbei ausgeschalteter LED. Die Interrupts müssen aktiviert sein, damit die Sensorwerte gemessen werden! Der Parameter
idxkann die Werte SURFACE_L, SURFACE_C, SURFACE_R annehmen.
uint32_t surface_getColorHSV ( )

24 Bit HSV-Wert aus den Werten der kalibrierten Bodensensoren generieren

uint32_t surface_getColorRGB ( )

24 Bit RGB-Wert aus den Werten der kalibrierten Bodensensoren generieren

void surface_init ( )

Initialisierung des Bodensensors. Ruft die Funktionen analog_init() und line_readPersistent() automatisch auf. Die Interrupts müssen aktiviert sein, damit die Sensorwerte gemessen werden!

void surface_readPersistent ( )

Laden der Kalibrierungsdaten aus dem EEPROM des ATmega16

void surface_writePersistent ( )

Speichert die Kalibrierungsdaten im EEPROM des ATmega16