Sensor óptico#
Introdução#
A classe óptica optical é utilizada para aceder aos dados do Sensor Óptico. Utiliza a luz refletida para detetar objetos, identificar cores e medir o brilho e a tonalidade.
Construtor de Classes#
optical Optical = optical(index);
Destrutor de classes#
Destrói o objeto ótico optical e liberta os recursos associados.
virtual ~optical();
Parâmetros#
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A porta inteligente à qual o sensor ótico está ligado é escrita como |
Exemplos#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Funções de membro#
A classe óptica optical inclui as seguintes funções membro:
setLight— Liga ou desliga o LED do sensor óptico.setLightPower— Define o nível de potência luminosa do sensor ótico.isNearObject— Retorna se o sensor ótico detetou ou não um objeto dentro do alcance.colorname— Returns the color detected by the Optical Sensor.brightness— Devolve a quantidade de luz reflectida pelo objecto.hue— Devolve a matiz detectada pelo sensor óptico.objectDetected— Regista uma função a ser chamada quando o Sensor Óptico detecta um objecto.objectLost— Regista uma função a ser chamada quando o Sensor Óptico perde um objecto.
Antes de chamar qualquer função membro óptica optical , deve ser criada uma instância óptica optical , como se mostra abaixo:
/* 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 object in Port 1
optical Optical1 = optical(PORT1);
setLight#
Liga ou desliga o LED do sensor ótico. A luz pode ajudar o sensor ótico a detetar objetos e cores com maior clareza.
Available Functionsvoid setLight(ledState state);
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Liga ou desliga o LED. |
Esta função não devolve qualquer valor.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Define a intensidade da luz do sensor ótico. Esta luz pode ajudar o sensor ótico a detetar objetos e cores com maior clareza.
Uma percentagem maior torna a luz mais brilhante. Uma percentagem mais baixa torna a luz mais fraca.
Se a luz do sensor ótico estiver apagada, definir a potência da luz acima de 0% irá acendê-la.
Se a luz do sensor ótico estiver acesa, definir a potência da luz para 0% irá desligá-la.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O nível de potência para ajustar a luz varia de 0 a 100. |
|
|
A unidade que representa a intensidade da luz: |
Esta função não devolve qualquer valor.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Retorna se o sensor ótico detetou ou não um objeto dentro do alcance.
Available Functionsbool isNearObject();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função devolve um valor booleano indicando se foi detetado um objeto próximo:
true— Foi detectado um objecto nas proximidades.false— Não foi detetado nenhum objeto.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
colorname#
Retorna a cor detectada pelo sensor óptico, com base no valor de matiz detectado.
Available Functionsvex::colorType colorname();
Esta função não aceita qualquer parâmetro.
Return ValuesA cor detectada pelo sensor óptico como uma instância da classe de cor.
As cores possíveis são:
blue– Valor de matiz entre 196° e 229°blue_green– Valor de matiz entre 140° e 195°blue_violet– Valor de matiz entre 230° e 239°green– Valor de matiz entre 84° e 139°orange– Valor de matiz entre 21° e 30°red– Valor de matiz entre 350° e 14°red_orange– Valor de matiz entre 15° e 20°red_violet– Valor de matiz entre 281° e 350°violet– Valor de matiz entre 240° e 280°yellow– Valor de matiz entre 54° e 74°yellow_green– Valor de matiz entre 75° e 83°yellow_orange– Valor de matiz entre 31° e 53°
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
colorType detectColor = Optical.colorname();
// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);
brightness#
Indica a quantidade de luz refletida de volta para o sensor ótico.
Uma percentagem mais elevada significa que mais luz é refletida de volta para o sensor ótico. Uma percentagem mais baixa significa que menos luz é refletida de volta.
Available Functionsdouble brightness(bool bRaw = false);
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor booleano para ler dados de brilho brutos em vez de percentagem. O predefinido é |
Um valor do tipo double que representa o brilho detetado pelo sensor ótico na gama de 0 a 100%, ou um valor do tipo double que representa os dados brutos detetados pelo 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#
Retorna a tonalidade detectada pelo sensor óptico.
O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

double hue();
Esta função não aceita qualquer parâmetro.
Return ValuesUm número decimal que representa o valor da tonalidade detectada pelo sensor óptico no intervalo de 0 a 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
Regista uma função de retorno de chamada para quando um objeto é detetado.
Available Functionsvoid objectDetected(void (* callback)(void));
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma função previamente definida que é executada quando o Sensor Óptico deteta um novo objeto. |
Esta função não devolve qualquer valor.
ExamplesDefina a função de callback (fora 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"); }Registe o callback 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#
Regista uma função de retorno de chamada para quando um objeto é perdido.
Available Functionsvoid objectLost(void (* callback)(void));
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma função previamente definida que é executada quando o sensor óptico perde um objecto detectado. |
Esta função não devolve qualquer valor.
ExamplesDefina a função de callback (fora 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"); }Registe o callback 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); }