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

index

int32_t

El puerto inteligente al que está conectado el sensor de color, escrito como PORTx, donde x es el número de puerto (por ejemplo, PORT1).

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á o no cerca 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 colorsensor miembro del sensor de colores, colorsensor instancia del sensor de colores, 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 Functions

1 — Enciende o apaga el LED con ledState.

void setLight( 
  ledState  state );

2 — Enciende el LED con una intensidad específica.

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

Parameters

Parámetro

Tipo

Descripción

state

ledState

Ajusta el LED a encendido o ledState::on enciende el LED al 100% de ledState::off apaga.

intensity

int32_t

El nivel de potencia para ajustar la luz de 0 a 100.

units

percentUnits

La unidad que representa la intensidad de la luz: percent / pct — porcentaje

Return Values

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

Parameters

Esta función no acepta ningún parámetro.

Return Values

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

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

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parámetros

Tipo

Descripción

color

colorType

Un color válido:

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

color

vex::color

Un color personalizado válido o uno de los colores predefinidos enumerados anteriormente.

Return Values
  • true – El sensor de color detecta el color.

  • false – El sensor de color no detecta el color.

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#

Devuelve el color coincidente más cercano detectado.

Available Functions
colorType colorname();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Cuando se imprime directamente, muestra el valor numérico asociado con ese color:

Color

Valor numérico

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
  • VEXcode crea convertColorToString la función convertColorToString cuando se configura un sensor de color en la ventana Dispositivos. Solo está disponible dentro de los proyectos VEXcode IQ y no funcionará en otros entornos.

  • Cuando se usa colorname fuera de VEXcode, las comparaciones deben hacerse directamente con colorType valor colorType: cualquier color que comience con colorType:: (por ejemplo, colorType::green o 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#

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

Parameters

Parámetro

Tipo

Descripción

bRaw

bool

Un valor booleano para leer datos de brillo sin procesar en lugar de porcentaje. El valor predeterminado es false.

Return Values

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.

La rueda de color VEX muestra los grados de los colores alrededor de un círculo, con el rojo a 0 grados y la transición a través del arco iris a medida que aumenta el valor.

Available Functions
double hue();

Parameters

Esta función no acepta ningún parámetro.

Return Values

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