Farbsensor#
Einführung#
Die Klasse colorsensor dient dem Zugriff auf Daten des Farbsensors. Sie nutzt reflektiertes Licht, um Objekte zu erkennen, Farben zu identifizieren und Helligkeit und Farbton zu messen.
Klassenkonstruktor#
colorsensor Color1 = colorsensor(index);
Klassendestruktor#
Zerstört das Objekt colorsensor und gibt die zugehörigen Ressourcen frei.
virtual ~colorsensor();
Parameter#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der Farbsensor angeschlossen ist, wird als |
Beispiele#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Mitgliedsfunktionen#
Die Klasse colorsensor enthält die folgenden Memberfunktionen:
setLight– Schaltet die LED des Farbsensors ein, aus oder auf eine voreingestellte Helligkeitsstufe.isNearObject– Gibt zurück, ob sich ein Objekt in der Nähe des Farbsensors befindet oder nicht.detects– Gibt zurück, ob eine bestimmte Farbe vom Farbsensor erkannt wurde oder nicht.colorname– Gibt den Namen der vom Farbsensor erkannten Farbe zurück.brightness– Gibt die erkannte Helligkeit eines Objekts zurück.hue– Gibt den erkannten Farbtonwert zurück.
Bevor Sie eine der Memberfunktionen von colorsensor aufrufen, muss eine Instanz von colorsensor erstellt werden, wie unten gezeigt:
/* This constructor is required when using VS Code.
Color Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
setLight#
Stellt die Lichtstärke der LED des Farbsensors ein. Das Licht kann dem Farbsensor helfen, Objekte und Farben deutlicher zu erkennen.
Wenn die Kontrollleuchte des Farbsensors ausgeschaltet ist, schaltet sich die Kontrollleuchte ein, wenn die Lichtleistung über 0 % eingestellt wird.
Wenn die Kontrollleuchte des Farbsensors eingeschaltet ist, schaltet sich die Leuchte aus, wenn die Lichtleistung auf 0 % eingestellt wird.
Ein höherer Prozentsatz macht das Licht heller. Ein niedrigerer Prozentsatz macht das Licht dunkler.
Available Functions1 — Schaltet die LED mit dem Befehl
ledStateein oder aus.void setLight( ledState state );
Parameters2 — Schaltet die LED auf eine bestimmte Helligkeit ein.
void setLight( int32_t intensity, percentUnits units = percent );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Schaltet die LED ein oder aus. |
|
|
Die Leistungsstufe zum Einstellen der Lampe von 0 – 100. |
|
|
The unit that represents the light intensity: |
Diese Funktion gibt keinen Wert zurück.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Gibt einen Wert zurück, wenn der Farbsensor ein Objekt in der Nähe erkennt.
Available Functionsbool isNearObject();
Diese Funktion akzeptiert keine Parameter.
Return ValuesDiese Funktion gibt einen booleschen Wert zurück, der angibt, ob ein Objekt in der Nähe erkannt wurde:
true– Der Farbsensor erkennt ein Objekt.false– Der Farbsensor erkennt kein Objekt.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Gibt zurück, ob der Farbsensor eine bestimmte Farbe erkennt.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Gültige Farben:
|
|
|
Eine gültige benutzerdefinierte Farbe oder eine der oben aufgeführten vordefinierten Farben. |
true– Der Farbsensor erkennt die Farbe.false– Der Farbsensor erkennt die Farbe nicht.
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Drive until a red object is seen
Drivetrain.drive(forward);
while (true) {
if (Color1.detects(red)) {
Drivetrain.stop();
break;
}
wait(0.5, seconds);
}
}
colorname#
Gibt die am besten passende erkannte Farbe zurück.
Available FunctionscolorType colorname();
Diese Funktion akzeptiert keine Parameter.
Return ValuesBeim direkten Ausdrucken wird der numerische Wert angezeigt, der dieser Farbe zugeordnet ist:
Farbe |
Zahlenwert |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Die Funktion
convertColorToStringwird von VEXcode automatisch erstellt, sobald ein Farbsensor im Gerätefenster konfiguriert wird. Sie ist nur innerhalb von VEXcode IQ-Projekten verfügbar und funktioniert nicht in anderen Umgebungen.Bei Verwendung
colornameaußerhalb von VEXcode sollten Vergleiche direkt mit einemcolorTypeWert durchgeführt werden – also mit jeder Farbe, die mitcolorType::beginnt (zum BeispielcolorType::greenodercolorType::red).
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with "red"
if (convertColorToString(Color1.colorname()) == "red") {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with the colorType
if (Color1.colorname() == colorType::red) {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
brightness#
Gibt die Menge des vom Objekt reflektierten Lichts zurück.
Ein höherer Prozentsatz bedeutet, dass mehr Licht zum Farbsensor zurückreflektiert wird. Ein niedrigerer Prozentsatz bedeutet, dass weniger Licht zurückreflektiert wird.
Available Functionsdouble brightness(bool bRaw = false);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Ein boolescher Wert, um Rohhelligkeitsdaten anstelle von Prozentwerten auszulesen. Der Standardwert ist |
Ein Double-Wert, der die vom Farbsensor erfasste Helligkeit im Bereich von 0 bis 100 % darstellt, oder ein Double-Wert, der die vom Sensor erfassten Rohdaten darstellt.
Examples// Set a variable, brightness, to the value of the brightness
// detected by the Color Sensor
double brightness = Color1.brightness();
// Print the brightness detected by the Color Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
Gibt den vom Farbsensor erfassten Farbton zurück.
Der Farbton ist eine Methode, Farben mithilfe von Zahlen auf einem Farbkreis zu beschreiben.

double hue();
Diese Funktion akzeptiert keine Parameter.
Return ValuesEin Gleitkommawert, der den vom Farbsensor erfassten Farbton im Bereich 0 – 359,00 darstellt.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();