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

index

int32_t

Der Smart Port, an den der Farbsensor angeschlossen ist, wird als PORTxgeschrieben, wobei x die Portnummer ist (zum Beispiel PORT1).

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 Functions

1 — Schaltet die LED mit dem Befehl ledState ein oder aus.

void setLight( 
  ledState  state );

2 — Schaltet die LED auf eine bestimmte Helligkeit ein.

void setLight( 
  int32_t      intensity, 
  percentUnits units = percent );

Parameters

Parameter

Typ

Beschreibung

state

ledState

Schaltet die LED ein oder aus. ledState::on schaltet die LED mit 100 % Helligkeit ein. ledState::off schaltet sie aus.

intensity

int32_t

Die Leistungsstufe zum Einstellen der Lampe von 0 – 100.

units

percentUnits

The unit that represents the light intensity: percent / pct — percent

Return Values

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 Functions
bool  isNearObject();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese 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.

Examples
// 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 Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parameter

Typ

Beschreibung

color

colorType

Gültige Farben:

  • blue – Farbton zwischen 196° und 229°
  • blue_green – Farbton zwischen 140° und 195°
  • blue_violet – Farbton zwischen 230° und 239°
  • green – Farbton zwischen 84° und 139°
  • orange – Farbton zwischen 21° und 30°
  • purple
  • red – Farbton zwischen 350° und 14°
  • red_orange – Farbton zwischen 15° und 20°
  • red_violet – Farbton zwischen 281° und 350°
  • violet – Farbtonwert zwischen 240° und 280°
  • white
  • yellow – Farbtonwert zwischen 54° und 74°
  • yellow_green – Farbtonwert zwischen 75° und 83°
  • yellow_orange – Farbtonwert zwischen 31° und 53°

color

vex::color

Eine gültige benutzerdefinierte Farbe oder eine der oben aufgeführten vordefinierten Farben.

Return Values
  • true – Der Farbsensor erkennt die Farbe.

  • false – Der Farbsensor erkennt die Farbe nicht.

Examples
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 Functions
colorType colorname();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Beim direkten Ausdrucken wird der numerische Wert angezeigt, der dieser Farbe zugeordnet ist:

Farbe

Zahlenwert

none

0

red

1

green

2

blue

3

white

4

yellow

5

orange

6

purple

7

cyan

8

red_violet

9

violet

10

blue_violet

11

blue_green

12

yellow_green

13

yellow_orange

14

red_orange

15

black

16

transparent

17

Notes
  • Die Funktion convertColorToString wird 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 colorname außerhalb von VEXcode sollten Vergleiche direkt mit einem colorType Wert durchgeführt werden – also mit jeder Farbe, die mit colorType:: beginnt (zum Beispiel colorType::green oder colorType::red).

Examples
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 Functions
double  brightness(bool bRaw = false);

Parameters

Parameter

Typ

Beschreibung

bRaw

bool

Ein boolescher Wert, um Rohhelligkeitsdaten anstelle von Prozentwerten auszulesen. Der Standardwert ist false.

Return Values

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.

Das VEX-Farbrad zeigt die Farbabstufungen auf einem Kreis, wobei Rot bei 0 Grad liegt und die Farben mit zunehmendem Wert in den Regenbogen übergehen.

Available Functions
double hue();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Ein 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();