sensor de color#

Introducción#

La API del sensor de color para VEX IQ (2.ª generación) proporciona métodos para devolver datos de diferentes objetos. Esto permite que Brain detecte colores, así como su tono y brillo. VEXcode utiliza colorType para distinguir los colores detectados con el sensor de color. A continuación, se muestran los colores que el sensor de color puede detectar:

Color – Valor de enumeración

<ul><li>`ninguno` – 0 </li><li>`rojo` – 1 </li><li>`verde` – 2 </li><li>`azul` – 3 </li><li>`blanco` – 4 </li><li>`amarillo` – 5 </li><li>`naranja` – 6 </li><li>`púrpura` – 7 </li><li>`cian` – 8 </li><li>`rojo_violeta` – 9 </li><li>`violeta` – 10 </li><li>`azul_violeta` – 11 </li><li>`azul_verde` – 12 </li><li>`amarillo_verde` – 13 </li><li>`amarillo_naranja` – 14 </li><li>`rojo_naranja` – 15 </li><li>`negro` – 16 </li><li>`transparente` – 17 </li><ul>

A continuación se muestra una lista de todos los métodos disponibles:

Métodos – Controlar el comportamiento y la entrada del interruptor de parachoques.

  • setLight – Enciende, apaga o establece el LED del sensor de color en un nivel de brillo establecido.

  • isNearObject – Devuelve si un objeto está dentro del alcance del sensor.

  • detecta – Devuelve si el sensor detecta o no un color especificado.

  • colorname – Devuelve el nombre del color detectado por el sensor.

  • brillo – Devuelve el brillo detectado como un porcentaje.

  • hue – Devuelve el valor de tono detectado como un flotante de 0 a 359,99 grados.

  • colorname3 – Devuelve el color más cercano entre rojo, azul o verde al color detectado.

  • color – Devuelve el código hexadecimal del color detectado como una cadena.

  • instalado – Devuelve si el sensor de color está conectado al cerebro.

Constructores: inicializan manualmente el interruptor de parachoques.

Métodos#

Luz fija#

setLight establece el estado del LED del sensor de color.

Uso:
setLight(valor)

Parámetros

Descripción

valor

Un estado de LED válido:

  • ledState::off
  • ledState::on
// Blink the Color Sensor LED.
  while (true){
    Color1.setLight(ledState::on);
    wait(0.5, seconds);
    Color1.setLight(ledState::off);
    wait(0.5, seconds);
  }

Sobrecarga
setLight(intensidad, unidades)

setLight(intensity, units) establece el LED del sensor de color a una intensidad de luz específica.

Parámetros

Descripción

intensidad

El valor de la intensidad para configurar la luz va de 0 a 100.

unidades

Opcional. La única unidad válida para la intensidad es el “porcentaje”.

// Change the intensity of the LED
  while (true){
    Color1.setLight(25, percent);
    wait(0.5, seconds);
    Color1.setLight(50);
    wait(0.5, seconds);
    Color1.setLight(100, percent);
    wait(0.5, seconds);
  }

está cerca del objeto#

isNearObject regresa si el sensor de proximidad detecta un objeto cercano.

  • 1 – El sensor de color detecta un objeto cercano.

  • 0 – El sensor de color no detecta un objeto cercano.

Uso:
isNearObject()

Parámetros

Descripción

Este método no tiene parámetros.

// Stop when a close object is detected
Drivetrain.drive(forward);
  while (true){
    if (Color1.isNearObject()){
      Brain.Screen.clearScreen();
      Brain.Screen.setCursor(1, 1);
      Drivetrain.stop();
      Brain.Screen.print("Detected");
      wait(0.25, seconds);
    }
  }

detecta#

detecta verifica si el sensor de color está detectando un color específico.

  • 1 – El sensor de color detecta el color.

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

Uso:
detecta(color)

Parámetros

Descripción

color

Un colorType que representa el color que se va a detectar.

// Stop when a red object is detected
Drivetrain.drive(forward);
  while (true){
    if (Color1.detects(red)){
      Brain.Screen.clearScreen();
      Brain.Screen.setCursor(1, 1);
      Drivetrain.stop();
      Brain.Screen.print("Red detected");
      wait(0.25, seconds);
    }
  }

nombre del color#

colorname devuelve el nombre del color más cercano detectado a los valores preestablecidos colorType.

Uso:
colorname()

Parámetros

Descripción

Este método no tiene parámetros.

// Display if the detected color is orange
while (true){
    // Get the color detected
    vex::colorType colorVal = Color1.colorname();
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);

    // Check if color is orange
    if (colorVal == vex::color::orange) {
        Brain.Screen.print("Orange!");
    }  else {
        Brain.Screen.print("Not orange...");
    }

    wait(0.5, seconds);
  }

brillo#

brightness lee el valor de brillo del sensor de color.

Uso:
brillo()

Parámetros

Descripción

Este método no tiene parámetros.

// Slowly turn and display detected brightness
  Drivetrain.setTurnVelocity(20, percent);
  Drivetrain.turn(right);
  while (true){
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
    Brain.Screen.print("Brightness: ");
    Brain.Screen.print("%d", Color1.brightness());
    wait(0.25, seconds);
  }

Sobrecarga:
brillo(bRaw)

Parámetros

Descripción

Brazo

Si se devuelve el valor bruto detectado por el sensor de color. El valor predeterminado es false.

matiz#

hue devuelve el valor de tono detectado por el sensor de color.

Uso:
hue()

Parámetros

Descripción

Este método no tiene parámetros.

// Slowly turn and display detected hue
  Drivetrain.setTurnVelocity(20, percent);
  Drivetrain.turn(right);
  while (true){
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
    Brain.Screen.print("Hue: ");
    Brain.Screen.print("%d", Color1.hue());
    wait(0.25, seconds);
  }

nombredecolor3#

colorname3 devuelve el colorType más cercano detectado al rojo, verde o azul como 1, 2 o 3 respectivamente.

Uso:
colorname3()

Parámetros

Descripción

Este método no tiene parámetros.

while (true){
    // Get the closest color detected
    vex::colorType colorVal = Color1.colorname3();
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);

    // Display the closest color
    if (colorVal == vex::color::red) {
        Brain.Screen.print("Red");
    } else if (colorVal == vex::color::green) {
        Brain.Screen.print("Green");
    } else if (colorVal == vex::color::blue) {
        Brain.Screen.print("Blue");
    } else {
        Brain.Screen.print("None");
    }

    wait(0.5, seconds);
  }

color#

color lee el color detectado por el sensor de color.

Uso:
color()

Parámetros

Descripción

Este método no tiene parámetros.

while (true){
    // Get the color with .color()
    vex::color colorVal = Color1.color();
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);

    // Check if color is red, green, or blue
    if (colorVal == vex::color::red) {
        Brain.Screen.print("Red");
    } else if (colorVal == vex::color::green) {
        Brain.Screen.print("Green");
    } else if (colorVal == vex::color::blue) {
        Brain.Screen.print("Blue");
    } else {
        Brain.Screen.print("None");
    }

    wait(0.5, seconds);
  }

instalado#

installed devuelve un entero que indica si el sensor de color está conectado actualmente al cerebro IQ (2.ª generación).

  • 1 – El sensor de color está conectado al cerebro IQ (2.ª generación).

  • 0 – El sensor de color no está conectado al cerebro IQ (2.ª generación).

Uso:
installed()

Parámetros

Descripción

Este método no tiene parámetros.

// Display a message if the Color Sensor is detected
if (Color1.installed()){
  Brain.Screen.print("Installed!");
}

Constructores#

Los constructores se utilizan para crear manualmente objetos colorsensor, que son necesarios para configurar un sensor de color fuera de VEXcode.

Para los ejemplos siguientes, el sensor de color configurado se llamará “Color1” y se utilizará en todos los ejemplos posteriores en esta documentación de API cuando se haga referencia a los métodos de la clase “colorsensor”.

Sensor de color#

colorsensor crea un sensor de color.

Uso:
colorsensor(puerto)

Parámetro

Descripción

puerto

A qué puerto inteligente está conectado el sensor de color se llama “PUERTO” seguido del número de puerto, que va del 1 al 12.

// Construct a Color Sensor "Color1" with the
// colorsensor class.
colorsensor Color1 = colorsensor(PORT1);
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();
 

  // Change the intensity of the LED
  while (true){
    Color1.setLight(25, percent);
    wait(0.5, seconds);
    Color1.setLight(50);
    wait(0.5, seconds);
    Color1.setLight(100, percent);
    wait(0.5, seconds);
  }
}