Capteur de couleur#

Introduction#

La classe colorsensor permet d’accéder aux données du capteur de couleur. Ce dernier utilise la lumière réfléchie pour détecter les objets, identifier les couleurs et mesurer la luminosité et la teinte.

Constructeur de classe#

colorsensor Color1 = colorsensor(index);

Destructeur de classe#

Détruit l’objet colorsensor et libère les ressources associées.

virtual ~colorsensor();

Paramètres#

Paramètre

Taper

Description

index

int32_t

Le port intelligent auquel le capteur de couleur est connecté, écrit sous la forme PORTx, où x est le numéro de port (par exemple, PORT1).

Exemples#

// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);

Fonctions des membres#

La classe colorsensor comprend les fonctions membres suivantes :

  • setLight – Allume, éteint ou règle la LED du capteur de couleur à un niveau de luminosité défini.

  • isNearObject – Renvoie si un objet est proche ou non du capteur de couleur.

  • detects – Renvoie si une couleur spécifiée est détectée ou non par le capteur de couleur.

  • colorname – Renvoie le nom de la couleur détectée par le capteur de couleur.

  • brightness – Renvoie la luminosité détectée d’un objet.

  • hue – Renvoie la valeur de teinte détectée.

Avant d’appeler les fonctions membres de colorsensor , une instance colorsensor doit être créée, comme indiqué ci-dessous :

/* 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#

Permet de régler la puissance lumineuse de la LED du capteur de couleur. Cette lumière contribue à une meilleure détection des objets et des couleurs par le capteur.

Si le voyant du capteur de couleur est éteint, régler la puissance de l’éclairage au-dessus de 0 % l’allumera.

Si le voyant du capteur de couleur est allumé, régler la puissance de l’éclairage à 0 % éteindra la lumière.

Un pourcentage plus élevé rend la lumière plus intense. Un pourcentage plus faible rend la lumière plus faible.

Available Functions

1 — Allume ou éteint la LED en utilisant ledState.

void setLight( 
  ledState  state );

2 — Allume la LED à une intensité spécifique.

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

Parameters

Paramètre

Taper

Description

state

ledState

Permet d’allumer ou d’éteindre la LED. ledState::on allume la LED à 100 % de luminosité. ledState::off l’éteint.

intensity

int32_t

Le niveau de puissance pour régler la lumière de 0 à 100.

units

percentUnits

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

Return Values

Cette fonction ne renvoie aucune valeur.

Examples
// Set the light power to 50 percent.
Color1.setLight(50, percent);

isNearObject#

Renvoie vrai si le capteur de couleur détecte un objet à proximité.

Available Functions
bool  isNearObject();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

Cette fonction renvoie une valeur booléenne indiquant si un objet à proximité est détecté :

  • true – Le capteur de couleur détecte un objet.

  • false – Le capteur de couleur ne détecte aucun objet.

Examples
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
  Brain.Screen.print("near object");
}

detects#

Renvoie vrai si le capteur de couleur détecte une couleur spécifiée.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Paramètres

Taper

Description

color

colorType

Couleurs valides :

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

color

vex::color

Une couleur personnalisée valide, ou l’une des couleurs prédéfinies énumérées ci-dessus.

Return Values
  • true – Le capteur de couleur détecte la couleur.

  • false – Le capteur de couleur ne détecte pas la couleur.

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#

Renvoie la couleur la plus proche détectée.

Available Functions
colorType colorname();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

Imprimée directement, elle affiche la valeur numérique associée à cette couleur :

Couleur

Valeur numérique

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
  • La fonction convertColorToString est créée automatiquement par VEXcode lorsqu’un capteur de couleur est configuré dans la fenêtre « Périphériques ». Elle est uniquement disponible dans les projets VEXcode IQ et ne fonctionnera pas dans d’autres environnements.

  • Lors de l’utilisation colorname en dehors de VEXcode, les comparaisons doivent être effectuées directement avec une valeur colorType — toute couleur qui commence par colorType:: (par exemple, colorType::green ou 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#

Renvoie la quantité de lumière réfléchie par l’objet.

Un pourcentage plus élevé signifie qu’une plus grande quantité de lumière est réfléchie vers le capteur de couleur. Un pourcentage plus faible signifie qu’une moindre quantité de lumière est réfléchie.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Paramètre

Taper

Description

bRaw

bool

Valeur booléenne permettant de lire les données de luminosité brutes au lieu du pourcentage. La valeur par défaut est false non).

Return Values

Un nombre décimal représentant la luminosité détectée par le capteur de couleur dans la plage 0 - 100 %, ou un nombre décimal représentant les données brutes détectées par le capteur.

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#

Renvoie la teinte détectée par le capteur de couleur.

La teinte est une façon de décrire une couleur à l’aide de nombres sur un cercle chromatique.

La roue chromatique VEX montrant les degrés de couleur autour d'un cercle, le rouge étant à 0 degré et passant par l'arc-en-ciel à mesure que la valeur augmente.

Available Functions
double hue();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

Un nombre décimal représentant la valeur de la teinte détectée par le capteur de couleur dans la plage 0 — 359,00.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();