Sensor óptico#

Introducción#

La clase óptica optical se utiliza para acceder a los datos del Sensor Óptico EXP. Utiliza la luz reflejada para detectar objetos, identificar colores y medir el brillo y el tono.

Constructores de clase#

optical(
    int32_t index );

Destructor de clase#

Destruye el objeto óptico optical y libera los recursos asociados.

virtual ~optical();

Parámetros#

Parámetro

Tipo

Descripción

index

int32_t

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

Ejemplos#

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

Funciones de los miembros#

La clase óptica optical incluye las siguientes funciones miembro:

  • setLight — Enciende o apaga el LED del sensor óptico.

  • setLightPower — Establece el nivel de potencia de la luz del sensor óptico.

  • isNearObject — Devuelve si el sensor óptico detecta un objeto dentro del alcance.

  • color — Devuelve el color detectado por el sensor óptico.

  • brightness — Devuelve la cantidad de luz reflejada por el objeto.

  • hue — Devuelve el tono detectado por el sensor óptico.

  • objectDetected — Registra una función que se llamará cuando el sensor óptico detecte un objeto.

  • objectLost — Registra una función que se llamará cuando el sensor óptico pierda un objeto.

Antes de llamar a cualquier función miembro optical , se debe crear una instancia optical , como se muestra a continuación:

/* 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 instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

setLight#

Ajusta el LED del sensor óptico a encendido o apagado. La luz puede ayudar al sensor óptico a detectar objetos y colores con mayor claridad.

Available Functions
void  setLight(ledState state);

Parameters

Parámetro

Tipo

Descripción

state

ledState

Enciende o apaga el LED. ledState::on enciende el LED al 100% brillo. ledState::off lo apaga.

Return Values

Esta función no devuelve un valor.

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

setLightPower#

Establece el brillo del LED del sensor óptico. La luz puede ayudar al sensor óptico a detectar objetos y colores con mayor claridad.

Si la luz del sensor óptico está apagada, ajustar la potencia de la luz por encima del 0% encenderá la luz.

Si la luz del sensor óptico 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
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parámetro

Tipo

Descripción

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

isNearObject#

Regresa si el sensor óptico 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 óptico detecta un objeto.

  • false – El sensor óptico no detecta ningún objeto.

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

color#

Devuelve el color detectado por el sensor óptico.

Available Functions
vex::color  color();

Parameters

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

Return Values

El color detectado por el sensor óptico como una instancia de la clase de color.

Los colores posibles son:

  • black

  • white

  • red - Un valor de tono entre 340° - 20°

  • green - Un valor de tono entre 80° - 140°

  • blue - Un valor de tono entre 200° - 240°

  • yellow - Un valor de tono entre 40° - 60°

  • orange - Un valor de tono entre 20° - 40°

  • purple - Un valor de tono entre 240° - 280°

  • cyan - Un valor de tono entre 140° - 200°

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#

Devuelve la cantidad de luz reflejada por el objeto.

Un porcentaje más alto significa que se refleja más luz al sensor óptico. 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 óptico como un doble 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 Optical Sensor
double brightness = Optical.brightness();

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

hue#

Devuelve el valor de tono del color detectado.

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 óptico en el rango de 0 — 359.99.

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

objectDetected#

Registra una función de devolución de llamada para cuando se detecta un objeto.

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

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función previamente definida que se ejecuta cuando el sensor óptico detecta un nuevo objeto.

Return Values

Esta función no devuelve un valor.

Examples

Defina la función de devolución de llamada (fuera 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");
}

Registrar la devolución de llamada dentro 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#

Registra una función de devolución de llamada para cuando se pierde un objeto.

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

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función previamente definida que se ejecuta cuando el sensor óptico pierde un objeto detectado.

Return Values

Esta función no devuelve un valor.

Examples

Defina la función de devolución de llamada (fuera 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");
}

Registrar la devolución de llamada dentro 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);
}