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 |
|---|---|---|
|
|
El puerto inteligente al que está conectado el sensor óptico, escrito como |
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 Functionsvoid setLight(ledState state);
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Enciende o apaga el LED. |
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 Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
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.
Optical.setLightPower(50, percent);
isNearObject#
Regresa si el sensor óptico 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 óptico detecta un objeto.false– El sensor óptico no detecta ningún objeto.
// 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 Functionsvex::color color();
Esta función no acepta ningún parámetro.
Return ValuesEl color detectado por el sensor óptico como una instancia de la clase de color.
Los colores posibles son:
blackwhitered- 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°
// 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 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 ó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.

double hue();
Esta función no acepta ningún parámetro.
Return ValuesUn 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 Functionsvoid objectDetected(void (* callback)(void));
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Una función previamente definida que se ejecuta cuando el sensor óptico detecta un nuevo objeto. |
Esta función no devuelve un valor.
ExamplesDefina 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 Functionsvoid objectLost(void (* callback)(void));
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Una función previamente definida que se ejecuta cuando el sensor óptico pierde un objeto detectado. |
Esta función no devuelve un valor.
ExamplesDefina 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); }