Sensor óptico#

Introdução#

O Sensor Óptico V5 deteta a cor, o brilho e a presença de objetos próximos utilizando uma combinação de um sensor de cor RGB e um sensor de proximidade. Também pode utilizar o seu LED integrado para iluminar objetos e obter uma deteção mais precisa.

O sensor óptico VEX V5.

Esta página utiliza optical_sensor como exemplo do nome do sensor ótico. Substitua-o pelo nome que configurou, se necessário.

Segue-se uma lista dos métodos disponíveis:

  • set_light – Liga ou desliga o LED do sensor óptico.

  • set_light_power – Define o nível de potência luminosa do sensor óptico.

  • is_near_object – 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.

  • object_detected – Regista uma função a chamar quando o Sensor Óptico detecta um objecto.

  • object_lost – Regista uma função a ser chamada quando o Sensor Óptico perde um objecto.

Construtor – Inicializa manualmente um sensor ótico.

  • Optical – Cria um sensor óptico.

definir_luz#

O comando set_light liga ou desliga o LED do sensor óptico. Isto pode ajudar a aumentar a precisão do sensor na deteção de cores.

Usage:
optical_sensor.set_light(state)

Parâmetros

Descrição

estado

Liga ou desliga o LED. LEDStateType.ON liga a luz com 100% de brilho. LEDStateType.OFF desliga-a.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

definir_potência_da_luz#

O parâmetro set_light_power define o brilho do LED do sensor óptico. 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.

Usage:
optical_sensor.set_light_power(percent, units)

Parâmetros

Descrição

por cento

O nível de brilho a configurar no LED, num número inteiro.

unidades

Opcional. A unidade para representar o brilho: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

está_perto_do_objeto#

is_near_object devolve um valor booleano indicando se o sensor ótico detetou ou não um objeto dentro do alcance.

  • True – O sensor ótico deteta um objeto.

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

Usage:
optical_sensor.is_near_object()

Parâmetros

Descrição

Este método não tem parâmetros.

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

cor#

color devolve uma instância de uma Color classe, com base no valor de matiz detectado. Estes podem ser comparados com objetos Color predefinidos para criar instruções condicionais.

As cores possíveis são:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Um valor de matiz entre 340° - 20°

  • Color.GREEN - Um valor de matiz entre 80° - 140°

  • Color.BLUE - Um valor de matiz entre 200° - 240°

  • Color.YELLOW - Um valor de matiz entre 40° - 60°

  • Color.ORANGE - Um valor de matiz entre 20° e 40°

  • Color.PURPLE - Um valor de matiz entre 240° - 280°

  • Color.CYAN - Um valor de matiz entre 140° - 200°

Nota: O sensor ótico procura intervalos de tonalidade que correspondam à cor especificada. Para detetar intervalos de matiz específicos, consulte hue.

Usage:
optical_sensor.color()

Parâmetros

Descrição

Este método não tem parâmetros.

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

brilho#

brightness devolve a quantidade de luz reflectida pelo objecto como um decimal (float) que representa uma percentagem.

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.

Usage:
optical_sensor.brightness()

Parâmetros

Descrição

Este método não tem parâmetros.

matiz#

hue devolve o valor de matiz da cor detectada como um decimal (float) de 0 a 359.

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

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

Usage: optical_sensor.hue()

Parâmetros

Descrição

Este método não tem parâmetros.

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

objeto_detetado#

object_detected regista uma função a ser chamada sempre que o Sensor Óptico detete um novo objeto.

Usage:
optical_sensor.object_detected(callback, arg)

Parâmetros

Descrição

callback

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

arg

Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar funções com parâmetros para obter mais informações.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

objeto_perdido#

object_lost regista uma função a ser chamada sempre que o sensor óptico perder um objecto detectado.

Usage:
optical_sensor.object_lost(callback, arg)

Parâmetros

Descrição

callback

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

arg

Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar funções com parâmetros para obter mais informações.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Construtor#

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

smartport

A porta inteligente à qual o sensor ótico está ligado é representada por Ports.PORTx , onde x é o número da porta.

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)