Sensor óptico#

Introdução#

A classe óptica optical é utilizada para aceder aos dados do Sensor Óptico V5. 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

index

int32_t

A porta inteligente à qual o sensor ótico está ligado é escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

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 deteta um objeto dentro do alcance.

  • color — Devolve a cor detectada pelo sensor óptico.

  • 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:

// 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 Functions
void  setLight(ledState state);

Parameters

Parâmetro

Tipo

Descrição

state

ledState

Sets the LED on or off. ledState::on turns the LED on at 100% brightness. ledState::off turns it off.

Return Values

Esta função não devolve qualquer valor.

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

setLightPower#

Ajusta o brilho do LED do sensor ótico. A luz pode ajudar o sensor ótico a detetar objetos e cores com maior clareza.

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.

Uma percentagem maior torna a luz mais brilhante. Uma percentagem mais baixa torna a luz mais fraca.

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parâmetro

Tipo

Descrição

intensity

int32_t

O nível de potência para ajustar a luz varia de 0 a 100.

units

percentUnits

The unit that represents the light intensity: percent / pct — percent

Return Values

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 detetar um objeto próximo.

Available Functions
bool  isNearObject();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Esta função devolve um valor booleano indicando se foi detetado um objeto próximo:

  • true – O sensor óptico detecta um objecto.

  • false – O sensor ótico não detetou qualquer objeto.

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

color#

Retorna a cor detectada pelo sensor óptico.

Available Functions
vex::color  color();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

A cor detectada pelo sensor óptico como uma instância da classe de cor.

As cores possíveis são:

  • black

  • white

  • red - Um valor de matiz entre 340° - 20°

  • green - Um valor de matiz entre 80° - 140°

  • blue - Um valor de matiz entre 200° - 240°

  • yellow - Um valor de matiz entre 40° e 60°

  • orange - Um valor de matiz entre 20° e 40°

  • purple - Um valor de matiz entre 240° - 280°

  • cyan - Um valor de matiz 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#

Devolve a quantidade de luz refletida pelo objeto.

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

Parameters

Parâmetro

Tipo

Descrição

bRaw

bool

Um valor booleano para ler dados de brilho brutos em vez de percentagem. O predefinido é false.

Return Values

Um valor do tipo double que representa o brilho detetado pelo sensor ótico, numa escala 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 o valor de matiz da cor detectada.

O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

A roda de cores VEX que mostra os graus de cor em torno de um círculo, com o vermelho a 0 graus e a transitar pelo arco-íris à medida que o valor aumenta.

Available Functions
double hue();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Um número decimal que representa o valor da tonalidade detetada pelo sensor ótico no intervalo de 0 a 359,99.

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 Functions
void objectDetected(void (* callback)(void));

Parameters

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função previamente definida que é executada quando o Sensor Óptico deteta um novo objeto.

Return Values

Esta função não devolve qualquer valor.

Examples

Defina a função de callback (fora de int main())

// Display a message when the Optical Sensor detects an object.
void detected() {
  Brain.Screen.print("object detected");
}

Registe o callback dentro de int main()

int main() {
  // Run detected 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 Functions
void objectLost(void (* callback)(void));

Parameters

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função previamente definida que é executada quando o sensor óptico perde um objecto detectado.

Return Values

Esta função não devolve qualquer valor.

Examples

Defina a função de callback (fora de int main())

// Display a message when the Optical Sensor loses an object.
void lost() {
  Brain.Screen.print("object lost");
}

Registe o callback dentro de int main()

int main() {
  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}