距離感測器#

介紹#

距離感測器可以偵測物體是否位於感測器前方,並返回物體與感測器之間的距離。它還可以返回被偵測物體的相對速度,並估計物體的大小(小、中、大)。

距離感測器的工作範圍為 20 毫米至 2000 毫米。

小於 200 毫米時,精確度約為 ±15 毫米;大於 200 毫米時,精確度可提高至約 5%。

此距離感測器採用1級雷射。探測方向為正前方,對教室環境安全。

距離感測器。

本頁面使用 distance_sensor 作為距離感測器名稱範例。您可以根據需要將其替換為您自己配置的名稱。

以下是可用方法清單:

  • object_distance — 返回距離感測器與最近偵測到的物件之間的距離。

  • object_velocity — 返回偵測到的物體向距離感測器移動或遠離距離感測器的速度。

  • object_size — 傳回偵測到的物件的大小估計值。

  • is_object_detected — 返回距離感測器目前是否偵測到物件。

  • changed — 註冊一個函數,當距離感測器的值發生變化時運行。

建構函數-手動初始化距離感測器。

  • Distance — 建立一個距離感測器。

物體距離#

object_distance 返回距離感測器與最近偵測到的物件之間的距離,以十進位(浮點數)表示。

Usage:
distance_sensor.object_distance(units)

參數

描述

units

可選。距離單位: MM (預設值,20 毫米至 2000 毫米)或 INCHES (0.78 英吋至 78.74 英吋)。

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

物體速度#

object_velocity 傳回偵測到的物體的相對速度,以 m/s(公尺每秒)為單位的十進位(浮點數)。

速度表示物體相對於距離感測器移動或遠離的快慢。接近 0 的值表示物體相對於感測器移動的幅度很小。

Usage:
distance_sensor.object_velocity()

參數

描述

此方法沒有參數。

物件大小#

object_size 返回距離感測器偵測到的物體的估計大小。

距離感測器根據被偵測到的物體在感測器視野中所佔的比例來估計物體的大小。

  • ObjectSizeType(0, “NONE”) — 未偵測到物件。

  • ObjectSizeType(1, “SMALL”) — 偵測到小型物體。

  • ObjectSizeType(2, “MEDIUM”) — 偵測到中等大小的物體。

  • ObjectSizeType(3, “LARGE”) — 偵測到大型物體。

Usage:
distance_sensor.object_size()

參數

描述

此方法沒有參數。

偵測到物體#

is_object_detected 返回距離感測器目前是否偵測到物體。

  • True — 距離感測器偵測到物體。

  • False — 距離感測器未偵測到物體。

Usage:
distance_sensor.is_object_detected()

參數

描述

此方法沒有參數。

# 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

已更改#

changed 註冊一個函數,當距離感測器的值發生變化時,該函數將被呼叫。

Usage:
distance_sensor.changed(callback, arg)

參數

描述

callback

先前定義的 函數,當距離感測器的值改變時執行。

arg

可選。包含要傳遞給回呼函數的參數的元組。有關更多信息,請參閱使用帶參數的函數。

def my_function():
  brain.screen.print("Distance changed")

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

建構函數#

建構函數用於手動建立 Distance 對象,例如在 VEXcode 之外配置距離感測器時。

Distance#

Distance 建立一個距離感測器物件。

Usage:
Distance(smartport)

範圍

描述

smartport

距離感測器連接的智慧型端口,寫成 Ports.PORTx,其中 x 是端口號。

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