Sensor de color#
Introducción#
La clase colorsensor se utiliza para acceder a los datos del Sensor de color. Utiliza la luz reflejada para detectar objetos, identificar colores y medir el brillo y el tono.
Constructor de clases#
colorsensor Color1 = colorsensor(index);
Destructor de clase#
Destruye el objeto colorsensor y libera los recursos asociados.
virtual ~colorsensor();
Parámetros#
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El puerto inteligente al que está conectado el sensor de color, escrito como |
Ejemplos#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Funciones de los miembros#
La clase colorsensor incluye las siguientes funciones miembro:
setLight– Enciende, apaga o ajusta el nivel de brillo del LED del sensor de color.isNearObject– Devuelve si un objeto está cerca o no del sensor de color.detects– Devuelve si el sensor de color detecta o no un color específico.colorname– Devuelve el nombre del color detectado por el sensor de color.brightness– Devuelve el brillo detectado de un objeto.hue– Devuelve el valor de tono detectado.
Antes de llamar a cualquier función miembro de colorsensor , se debe crear una instancia de colorsensor , como se muestra a continuación:
/* 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#
Establece la potencia de la luz del LED del sensor de color. La luz puede ayudar al sensor de color a detectar objetos y colores con mayor claridad.
Si la luz del sensor de color está apagada, ajustar la potencia de la luz por encima del 0% encenderá la luz.
Si la luz del sensor de color está encendida, ajustar la potencia de la luz al 0% apagará la luz.
Un porcentaje más alto hace que la luz sea más brillante. Un porcentaje más bajo hace que la luz se atenúe.
Available Functions1 — Enciende o apaga el LED usando
ledState.void setLight( ledState state );
Parameters2 — Enciende el LED con una intensidad específica.
void setLight( int32_t intensity, percentUnits units = percent );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Enciende o apaga el LED. |
|
|
El nivel de potencia para ajustar la luz de 0 a 100. |
|
|
La unidad que representa la intensidad de la luz: |
Esta función no devuelve un valor.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Regresa si el sensor de color detecta un objeto cercano.
Available Functionsbool isNearObject();
Esta función no acepta ningún parámetro.
Return ValuesEsta función devuelve un booleano que indica si se detecta un objeto cercano:
true– El sensor de color detecta un objeto.false– El sensor de color no detecta ningún objeto.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Devuelve si el sensor de color detecta un color especificado.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parámetros |
Tipo |
Descripción |
|---|---|---|
|
|
Un color válido:
|
|
|
Un color personalizado válido o uno de los colores predefinidos enumerados anteriormente. |
true– El sensor de color detecta el color.false– El sensor de color no detecta el color.
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#
Devuelve el color coincidente más cercano detectado.
Available FunctionscolorType colorname();
Esta función no acepta ningún parámetro.
Return ValuesCuando se imprime directamente, muestra el valor numérico asociado con ese color:
Color |
Valor numérico |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
La función
convertColorToStringse crea automáticamente por VEXcode cuando se configura un sensor de color en la ventana Dispositivos. Solo está disponible dentro de los proyectos de VEXcode IQ y no funcionará en otros entornos.Cuando se utiliza
colornamefuera de VEXcode, las comparaciones deben hacerse directamente con un valorcolorType, cualquier color que comience concolorType::(por ejemplo,colorType::greenocolorType::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#
Devuelve la cantidad de luz reflejada por el objeto.
Un porcentaje más alto significa que se refleja más luz al sensor de color. Un porcentaje más bajo significa que se refleja menos luz.
Available Functionsdouble brightness(bool bRaw = false);
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Un valor booleano para leer datos de brillo sin procesar en lugar de porcentaje. El valor predeterminado es |
Un doble que representa el brillo detectado por el sensor de color en el rango de 0 - 100%, o un doble que representa los datos sin procesar detectados por el sensor.
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#
Devuelve el tono detectado por el sensor de color.
El tono es una forma de describir el color usando números alrededor de una rueda de color.

double hue();
Esta función no acepta ningún parámetro.
Return ValuesUn doble que representa el valor del tono detectado por el sensor de color en el rango de 0 — 359.00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();