Olho#
Introdução#
O sensor ocular VEX GO consegue detetar objetos e cores. Também pode informar a quantidade de luz refletida de volta para o sensor e o valor de matiz da cor detetada.
O sensor ocular tem uma luz que pode ser ligada ou desligada para ajudar a ver objetos e cores com mais clareza. O sensor ocular pode também utilizar uma escala de NEAR (LONGE) ou de FAR DEFAULTA) para detetar objetos a diferentes distâncias.
O sensor ocular pode ser posicionado em diferentes locais, dependendo da configuração. Por exemplo, na configuração Code Base 2.0 - Eye Forward, o sensor ocular está virado para a frente. Já nas definições Code Base 2.0 - Eye Down, Code Base 2.0 - Eye + Electromagnet e Super Code Base 2.0, o sensor ocular está virado para baixo.
Nos exemplos abaixo, o sensor ocular configurado é nomeado como eyeEste nome é utilizado nos exemplos para chamar os métodos da classe Eye.
Existem muitas formas de programar o sensor ocular. Abaixo está uma lista de todos os métodos de programação ocular:
Modificadores — Ajustam as definições do sensor ocular.
set_light— Liga ou desliga a luz do sensor ocular.set_range— Define a que distância o sensor ocular consegue detetar um objeto.set_light_power— Define o nível de potência luminosa do sensor ocular.
Getters — Devolvem o que o sensor ocular deteta.
get_color— Devolve a cor detectada pelo sensor ocular.get_hue— Devolve a tonalidade detectada pelo sensor ocular.get_brightness— Retorna o brilho detectado pelo sensor ocular.is_object_detected— Retorna se o sensor ocular deteta um objeto dentro do alcance.is_color_detected— Retorna se o sensor ocular deteta uma cor específica.
Mutantes#
set_light#
set_light liga ou desliga a luz do sensor ocular.
Usage:
eye.set_light(state)
Parâmetros |
Descrição |
|---|---|
|
Estado da luz do sensor ocular: |
# Build Used: Super Code Base 2.0
def main():
# Turn the light on and off
while True:
eye.set_light(ON)
wait(2, SECONDS)
eye.set_light(OFF)
wait(2, SECONDS)
# Start threads — Do not delete
start_thread(main)
set_range#
set_range define a distância máxima a que um objeto pode estar do sensor ocular antes de ser detetado.
Todos os projetos começam com o sensor ocular configurado para o alcance FAR por defeito.
Usage:
eye.set_range(distance)
Parâmetros |
Descrição |
|---|---|
|
O alcance de deteção de objetos do sensor ocular é o seguinte: |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive to an object with different ranges
eye.set_range(FAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.drive_for(REVERSE, 100, MM)
# Closer detection range
eye.set_range(NEAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_light_power#
set_light_power define a intensidade da luz do sensor ocular. Esta luz pode ajudar o sensor a detetar objetos e cores com mais clareza.
Uma percentagem maior torna a luz mais brilhante. Uma percentagem mais baixa torna a luz mais fraca.
Se a luz do sensor ocular estiver desligada, definir a potência da luz acima de 0% irá acendê-la.
Se a luz do sensor ocular estiver acesa, definir a potência da luz para 0% irá desligá-la.
Usage:
eye.set_light_power(value)
Parâmetros |
Descrição |
|---|---|
|
O nível de brilho para o qual o sensor ocular deve ser configurado, de 0% a 100%. Utilize números inteiros. |
# Build Used: Super Code Base 2.0
def main():
# Turn on the light at different brightnesses
eye.set_light_power(25)
wait(2, SECONDS)
eye.set_light_power(50)
wait(2, SECONDS)
eye.set_light_power(100)
# Start threads — Do not delete
start_thread(main)
Getters#
get_color#
get_color devolve a cor detectada pelo sensor ocular.
Este método pode retornar:
RED— Um valor de matiz entre 340° - 20°GREEN— Um valor de matiz entre 75° - 154°BLUE— Um valor de matiz entre 160° - 254°NONE— Nenhuma das cores disponíveis foi detectada.
Usage:
eye.get_color()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Build Used: Super Code Base 2.0
def main():
# Stop when red is detected
drivetrain.drive(FORWARD)
while True:
if eye.get_color() == RED:
break
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_hue#
get_hue devolve a cor detectada pelo sensor ocular como um número inteiro de 0 a 359,00 graus.
O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

Usage:
eye.get_hue()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Display the hue of a pink GO piece
while True:
console.clear()
if 10 < eye.get_hue() < 40:
console.print("Pink!")
wait(0.1,SECONDS)
else:
console.print("Not pink.")
wait(0.1,SECONDS)
# Start threads — Do not delete
start_thread(main)
get_brightness#
get_brightness devolve o brilho da luz detectada, como um número inteiro de 0% a 100%.
Uma percentagem mais elevada significa que mais luz é refletida de volta para o sensor ocular. Uma percentagem mais baixa significa que menos luz é refletida de volta.
Usage:
eye.get_brightness()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Build Used: Super Code Base 2.0
def main():
# Monitor the brightness until red is detected
monitor_sensor("eye.get_brightness")
drivetrain.drive(FORWARD)
while not eye.get_color() == RED:
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_object_detected#
is_object_detected devolve um Boolean que informa se o sensor ocular detecta ou não um objecto dentro do alcance.
True— O sensor ocular deteta um objeto.False— O sensor ocular não detetou qualquer objeto.
O alcance de deteção pode ser alterado utilizando set_range.
Usage:
eye.is_object_detected()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive forward until an object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_color_detected#
is_color_detected devolve um Boolean que informa se o sensor ocular detecta uma cor especificada, com base no valor de matiz detectado.
True— O sensor ocular deteta a cor selecionada.False— O sensor ocular não detetou a cor selecionada.
O sensor ocular funciona melhor quando o objeto está suficientemente perto para ser detetado e a iluminação é clara.
Usage:
eye.is_color_detected(color)
Parâmetros |
Descrição |
|---|---|
|
A cor que o sensor ocular deve verificar:
|
# Build Used: Super Code Base 2.0
def main():
# Drive forward until a green object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_color_detected(GREEN):
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)