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 |
|---|---|---|
|
|
Le port intelligent auquel le capteur de couleur est connecté, écrit sous la forme |
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 Functions1 — Allume ou éteint la LED en utilisant
ledState.void setLight( ledState state );
Parameters2 — Allume la LED à une intensité spécifique.
void setLight( int32_t intensity, percentUnits units = percent );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Permet d’allumer ou d’éteindre la LED. |
|
|
Le niveau de puissance pour régler la lumière de 0 à 100. |
|
|
The unit that represents the light intensity: |
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 Functionsbool isNearObject();
Cette fonction n’accepte aucun paramètre.
Return ValuesCette 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.
// 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 Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Paramètres |
Taper |
Description |
|---|---|---|
|
|
Couleurs valides :
|
|
|
Une couleur personnalisée valide, ou l’une des couleurs prédéfinies énumérées ci-dessus. |
true– Le capteur de couleur détecte la couleur.false– Le capteur de couleur ne détecte pas la couleur.
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 FunctionscolorType colorname();
Cette fonction n’accepte aucun paramètre.
Return ValuesImprimée directement, elle affiche la valeur numérique associée à cette couleur :
Couleur |
Valeur numérique |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
La fonction
convertColorToStringest 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
colornameen dehors de VEXcode, les comparaisons doivent être effectuées directement avec une valeurcolorType— toute couleur qui commence parcolorType::(par exemple,colorType::greenoucolorType::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#
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 Functionsdouble brightness(bool bRaw = false);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Valeur booléenne permettant de lire les données de luminosité brutes au lieu du pourcentage. La valeur par défaut est |
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.

double hue();
Cette fonction n’accepte aucun paramètre.
Return ValuesUn 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();