Capteur optique#

Introduction#

La classe optique optical permet d’accéder aux données du capteur optique. Elle 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#

optical Optical = optical(index);

Destructeur de classe#

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

virtual ~optical();

Paramètres#

Paramètre

Taper

Description

index

int32_t

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

Exemples#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Fonctions des membres#

La classe optique optical comprend les fonctions membres suivantes :

  • setLight — Allume ou éteint la LED du capteur optique.

  • setLightPower — Définit le niveau de puissance lumineuse du capteur optique.

  • isNearObject — Renvoie si le capteur optique détecte ou non un objet à portée.

  • color — Renvoie la couleur détectée par le capteur optique.

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

  • hue — Renvoie la teinte détectée par le capteur optique.

  • objectDetected — Enregistre une fonction à appeler lorsque le capteur optique détecte un objet.

  • objectLost — Enregistre une fonction à appeler lorsque le capteur optique perd un objet.

Avant d’appeler une quelconque fonction membre optique optical , une instance optique optical doit être créée, comme indiqué ci-dessous :

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an optical object in Port 1
optical Optical1 = optical(PORT1);

setLight#

Permet d’allumer ou d’éteindre la LED du capteur optique. Cette lumière peut aider le capteur optique à détecter plus clairement les objets et les couleurs.

Available Functions
void  setLight(ledState state);

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.

Return Values

Cette fonction ne renvoie aucune valeur.

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

Permet de régler l’intensité lumineuse du capteur optique. Cette lumière contribue à une meilleure détection des objets et des couleurs par le capteur optique.

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

Si la lumière du capteur optique est éteinte, régler la puissance de la lumière au-dessus de 0 % l’allumera.

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

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Paramètre

Taper

Description

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.
Optical.setLightPower(50, percent);

isNearObject#

Indique si le capteur optique détecte ou non un objet à portée.

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 — Un objet a été détecté à proximité.

  • false — Aucun objet n’a été détecté.

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

color#

Renvoie la couleur détectée par le capteur optique, en fonction de la valeur de teinte détectée.

Available Functions
vex::color  color();

Parameters

Cette fonction n’accepte aucun paramètre.

Return Values

La couleur détectée par le capteur optique comme une instance de la classe de couleur.

Les couleurs possibles sont :

  • blue – Valeur de teinte comprise entre 196° et 229°

  • blue_green – Valeur de teinte entre 140° et 195°

  • blue_violet – Valeur de teinte entre 230° et 239°

  • green – Valeur de teinte comprise entre 84° et 139°

  • orange – Valeur de teinte entre 21° et 30°

  • red – Valeur de teinte comprise entre 350° et 14°

  • red_orange – Valeur de teinte entre 15° et 20°

  • red_violet – Valeur de teinte entre 281° et 350°

  • violet – Valeur de teinte comprise entre 240° et 280°

  • yellow – Valeur de teinte comprise entre 54° et 74°

  • yellow_green – Valeur de teinte entre 75° et 83°

  • yellow_orange – Valeur de teinte entre 31° et 53°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

Indique la quantité de lumière réfléchie vers le capteur optique.

Un pourcentage plus élevé signifie qu’une plus grande quantité de lumière est réfléchie vers le capteur optique. 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 optique 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 Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Renvoie la teinte détectée par le capteur optique.

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 optique dans la plage 0 — 359,00.

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

objectDetected#

Enregistre une fonction de rappel pour le moment où un objet est détecté.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction précédemment définie qui s’exécute lorsque le capteur optique détecte un nouvel objet.

Return Values

Cette fonction ne renvoie aucune valeur.

Examples

Définissez la fonction de rappel (en dehors de int main())

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

Enregistrez le rappel à l’intérieur de int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

Enregistre une fonction de rappel pour le cas où un objet est perdu.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction définie précédemment qui s’exécute lorsque le capteur optique perd un objet détecté.

Return Values

Cette fonction ne renvoie aucune valeur.

Examples

Définissez la fonction de rappel (en dehors de int main())

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

Enregistrez le rappel à l’intérieur de int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}