Óptico#
Introdução#
O sensor ótico é um sensor baseado em luz que utiliza a luz refletida para detetar objetos, identificar cores e medir o brilho e a tonalidade.
Também pode configurar o brilho da luz interna do sensor. Estas ferramentas são ideais para programas que necessitam de reagir a objetos coloridos, condições de iluminação ou feedback do sensor em tempo real.
Esta página utiliza optical_1 como exemplo do nome do sensor óptico. Substitua-o pelo nome que configurou, se necessário.
Segue-se uma lista de todos os métodos:
Ações — Ligar ou desligar o LED do sensor ótico.
set_light— Define o estado ligado ou desligado do LED.
Modificadores — Ajustam o brilho do LED e as definições de deteção de objetos.
set_light_power— Define o brilho do LED.object_detect_threshold— Define o limiar para a detecção de objectos.
Getters — Lê a presença do objeto, cor, brilho, matiz, RGB e estado do sensor.
is_near_object— Retorna se um objeto detetado está próximo do sensor ótico.color— Retorna a correspondência de cor detectada mais próxima.brightness— Devolve o brilho de um objecto detectado.hue— Devolve a matiz de um objeto detetado.rgb— Devolve os valores RGB detectados pelo sensor óptico.installed— Retorna se um sensor óptico está ligado ao cérebro.
Callback — Executa o código quando um objeto é detetado ou perdido.
object_detected— Regista uma função a ser chamada quando um objecto é detectado.object_lost— Regista uma função a ser chamada quando um objeto é perdido.
Construtores — Inicialize e configure manualmente um sensor ótico.
Optical— Cria um sensor óptico.
Ações#
set_light#
set_light define se o LED do sensor ótico está ligado, desligado ou num nível de brilho definido.
Usage:
optical_1.set_light(state)
Parâmetros |
Descrição |
|---|---|
|
O estado para definir a luz ou a percentagem de potência no intervalo de 0 a 100. O estado pode ser um dos seguintes:
|
# Turn the LED on and off forever
while True:
optical_1.set_light(LedStateType.ON)
wait(0.5, SECONDS)
optical_1.set_light(LedStateType.OFF)
wait(0.5, SECONDS)
# Turn the LED on and off forever
while True:
optical_1.set_light(100)
wait(0.5, SECONDS)
optical_1.set_light(0)
wait(0.5, SECONDS)
Mutantes#
set_light_power#
O comando set_light_power define o brilho da luz do sensor óptico. Se o LED ainda não estiver aceso, este método também o ligará.
Usage:
optical_1.set_light_power(value)
Parâmetros |
Descrição |
|---|---|
|
O nível de potência para definir a luz varia de 0 a 100 em percentagem. |
# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)
object_detect_threshold#
O parâmetro object_detect_threshold ( object_detect_threshold define o intervalo a partir do qual o sensor pode detetar objetos. Este método também devolve o novo limite definido.
Números mais próximos de 255 indicam uma amplitude menor, enquanto números mais próximos de 0 indicam uma amplitude maior.
Usage:
optical_1.object_detect_threshold(value)
Parâmetros |
Descrição |
|---|---|
|
Um número no intervalo de 0 a 255. O valor 0 irá devolver o valor atual. |
def detected():
# The Brain will print that an object was detected on
# the Brain's screen.
brain.screen.print("object detected")
brain.screen.next_row()
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
# Detect an object closer to the sensor.
brain.screen.print("Detected closer")
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0
def detected():
global stage
if stage == 0:
brain.screen.print("Get closer...")
brain.screen.next_row()
stage = 1
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
global stage
if stage == 1:
brain.screen.print("Too close!")
brain.screen.next_row()
stage = 2
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)
Getters#
is_near_object#
is_near_object retorna se o sensor ótico está próximo de um objeto.
True— O sensor está próximo de um objeto.False— O sensor não está perto de um objeto.
Usage:
optical_1.is_near_object()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Stop driving when Optical Sensor is
# near an object
while True:
if optical_1.is_near_object():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
color#
color returns the predefined color detected by the Optical Sensor from the colors below:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Stop the robot if the Optical Sensor
# detects red
while True:
if optical_1.color() == Color.RED:
drivetrain.stop()
else:
drivetrain.turn(RIGHT)
brightness#
brightness returns the brightness detected by the Optical Sensor.
Uma percentagem mais elevada significa que o sensor ótico deteta mais luz. Uma percentagem mais baixa significa que o sensor ótico deteta menos luz.
Usage:
optical_1.brightness(readraw)
Parâmetros |
Descrição |
|---|---|
|
Opcional. Um valor booleano para ler os dados brutos de brilho em vez de percentagem:
|
hue#
hue devolve o valor da matiz detectada pelo sensor óptico como um número de ponto flutuante no intervalo de 0 a 359,99 graus.
O matiz é uma forma de descrever a cor utilizando números num círculo cromático, como se mostra abaixo.

Usage:
optical_1.hue()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Check the hue of a detected object
# to determine if it is pink
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
if 290 < optical_1.hue() < 350:
brain.screen.print("Pink!")
wait(0.1,SECONDS)
else:
brain.screen.print("Not pink.")
wait(0.1,SECONDS)
rgb#
rgb devolve os valores de vermelho, verde, azul e brilho detectados pelo sensor óptico como uma tupla.
Usage:
optical_1.rgb(raw)
Parâmetros |
Descrição |
|---|---|
|
Opcional. Um valor booleano para determinar se devolve valores brutos ou processados:
|
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print(optical_1.rgb())
wait(0.1, SECONDS)
installed#
O valor installed devolve um valor booleano indicando se o sensor ótico está ligado ao cérebro.
True— O sensor ótico está ligado ao cérebro.False— O sensor ótico não está ligado ao cérebro.
Usage:
optical_1.installed()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Ligar de volta#
object_detected#
object_detected regista uma função de callback para quando um objeto é detetado.
Usage:
optical_1.object_detected(callback, arg)
Parâmetros |
Descrição |
|---|---|
|
Uma função que é previamente definida para ser executada quando um objeto é detetado. |
|
Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Funções com Parâmetros para obter mais informações. |
def detected():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object detected")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)
object_lost#
object_lost regista uma função de callback para quando o sensor óptico perde um objecto detectado.
Usage:
optical_1.object_lost(callback, arg)
Parâmetros |
Descrição |
|---|---|
|
Uma função que está previamente definida para ser executada quando um objeto é perdido. |
|
Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Funções com Parâmetros para obter mais informações. |
def lost():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object lost")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the Optical
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)
Construtores#
Os construtores são utilizados para criar manualmente Optical , que são necessários para configurar um Sensor Óptico fora do VEXcode.
Optical#
Optical cria um sensor óptico.
Usage:
Optical(smartport)
Parâmetro |
Descrição |
|---|---|
|
A porta inteligente à qual o sensor ótico está ligado é representada por PORTx, onde x é o número da porta. |
# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)
# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())