Sensor de distância#

Introdução#

O Sensor de Distância pode detetar se um objeto está em frente ao sensor e devolver a que distância se encontra esse objeto. Pode também devolver a velocidade relativa do objeto detetado e estimar se o objeto é pequeno, médio ou grande.

O sensor de distância opera numa gama de 20 mm a 2000 mm.

Abaixo dos 200 mm, a precisão é de aproximadamente ±15 mm. Acima de 200 mm, a precisão melhora para cerca de 5%.

O sensor de distância utiliza um laser de Classe 1. A deteção é feita diretamente à frente e é segura para utilização em sala de aula.

O sensor de distância.

Esta página utiliza distance_sensor como exemplo do nome do sensor de distância. Substitua-o pelo nome que configurou, se necessário.

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

  • object_distance — Retorna a distância entre o Sensor de Distância e o objecto detectado mais próximo.

  • object_velocity — Retorna a rapidez com que o objecto detectado se está a mover em direcção ao Sensor de Distância ou a afastar-se dele.

  • object_size — Retorna o tamanho estimado do objecto detectado.

  • is_object_detected — Retorna se o Sensor de Distância detetou um objeto no momento.

  • changed — Regista uma função para ser executada sempre que o valor do Sensor de Distância se altere.

Construtor — Inicializa manualmente um sensor de distância.

  • Distance — Cria um sensor de distância.

distância_do_objeto#

object_distance devolve a distância entre o Sensor de Distância e o objecto detectado mais próximo como um decimal (float).

Usage:
distance_sensor.object_distance(units)

Parâmetros

Descrição

units

Opcional. A unidade de distância: MM (padrão, 20 mm a 2000 mm) ou INCHES (0,78 polegadas a 78,74 polegadas).

# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
  pass
drivetrain.stop()

velocidade_do_objecto#

object_velocity devolve a velocidade relativa do objecto detectado como um decimal (float) em m/s (metros por segundo).

A velocidade indica a rapidez com que o objeto se move em direção ao sensor de distância ou se afasta dele. Um valor próximo de 0 significa que o objeto não se está a mover muito em relação ao sensor.

Usage:
distance_sensor.object_velocity()

Parâmetros

Descrição

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

tamanho_do_objeto#

object_size devolve o tamanho estimado do objecto detectado pelo Sensor de Distância.

O sensor de distância estima o tamanho do objeto com base na área de visão do sensor que é ocupada pelo objeto detetado.

  • ObjectSizeType(0, “NONE”) — Não foi detectado qualquer objecto.

  • ObjectSizeType(1, “SMALL”) — Foi detectado um objecto pequeno.

  • ObjectSizeType(2, “MEDIUM”) — Foi detectado um objecto médio.

  • ObjectSizeType(3, “LARGE”) — Foi detectado um objecto de grandes dimensões.

Usage:
distance_sensor.object_size()

Parâmetros

Descrição

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

is_object_detected#

is_object_detected retorna se o Sensor de Distância detetou um objeto no momento.

  • True — O sensor de distância detetou um objeto.

  • False — O sensor de distância não detetou qualquer objeto.

Usage:
distance_sensor.is_object_detected()

Parâmetros

Descrição

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

# Drive forward until the object is within 50 mm away
while True:
  drivetrain.drive(FORWARD)
  if distance_sensor.is_object_detected():
    if distance_sensor.object_distance(MM) < 50:
      drivetrain.stop()
      break

mudado#

changed regista uma função a ser chamada sempre que o valor do Sensor de Distância se altere.

Usage:
distance_sensor.changed(callback, arg)

Parâmetros

Descrição

callback

Uma função previamente definida que é executada quando o valor do Sensor de Distância é alterado.

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("Distance changed")

# Call my_function whenever distance_sensor's value changes
distance_sensor.changed(my_function)

Construtor#

Os construtores são utilizados para criar manualmente objetos com distância Distance , como quando se configura um sensor de distância fora do VEXcode.

Distance#

O valor Distance cria um objeto Sensor de Distância.

Usage:
Distance(smartport)

Parâmetro

Descrição

smartport

A porta inteligente à qual o sensor de distância está ligado é escrita como Ports.PORTx, onde x é o número da porta.

# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)