距離#

介紹#

距離感測器可以偵測物體是否在感測器前方,並返回該物體與感測器的距離。

第一代VEX IQ距離感測器使用聲吶探測物體並測量距離。第二代VEX IQ距離感測器採用教室安全激光,還能返回被偵測物體的相對速度,並估算物體的大小(小、中、大)。

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

以下是所有可用方法的清單:

獲取器 — 返回距離感測器的資料。

  • is_object_detected — (VEX IQ 距離感測器(第一代)或(第二代)) 返回距離感測器目前是否偵測到物體。

  • distance — (VEX IQ 距離感測器(第一代)) 返回距離感測器與最近偵測到的物件之間的距離。

  • object_distance — (VEX IQ 距離感測器(第二代)) 返回距離感測器與最近偵測到的物件之間的距離。

  • object_velocity — (VEX IQ 距離感測器(第二代)) 返回偵測到的物體向距離感測器移動或遠離距離感測器的速度。

  • object_size — (VEX IQ 距離感測器(第二代)) 傳回偵測到的物件的估計大小。

  • installed — (VEX IQ 距離感測器(第一代)或(第二代)) 返回距離感測器是否已安裝和連接。

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

  • Sonar — 建立 VEX IQ 距離感測器(第一代)。

  • Distance — 建立一個 VEX IQ 距離感測器(第二代)。

獲取器#

is_object_detected#

is_object_detected 返回距離感測器目前是否偵測到範圍內的物件。

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

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

Usage:
distance_1.is_object_detected()

參數

描述

此方法沒有參數。

# Turn until an object is detected
drivetrain.turn(RIGHT)
while not distance_1.is_object_detected():
    wait(15, MSEC)
drivetrain.stop()
brain.screen.print("Object detected!")

distance#

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

注意: 這是 VEX IQ 距離感測器(第一代)的測量。

Usage:
distance_1.distance(units)

參數

描述

units

可選。距離單位: MM (默認,24 毫米至 1000 毫米)或 INCHES (1 英寸至 40 英寸)。

# Display the distance to an object
if distance_1.is_object_detected():
    print("Distance: ")
    print(distance_1.distance(MM))
else:
    print("No object detected")

object_distance#

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

注意: 這是 VEX IQ 距離感測器(第二代)的測量方法。

Usage:
distance_1.object_distance(units)

參數

描述

units

可選。距離單位: MM (默認,20 毫米至 2000 毫米), INCHES (0.78 英寸至 78 英寸),或 DistanceUnits.CM (2 厘米至 200 厘米)。

# Drive forward until an object is 200 mm away
while distance_1.object_distance(MM) > 200:
    drivetrain.drive(FORWARD)
drivetrain.stop()

object_velocity#

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

速度表示物體朝向或遠離距離感測器的移動速度。正值表示物體正朝向距離感測器移動。負值表示物體正遠離距離感測器。接近 0 的值表示物體相對於感測器的移動速度很慢。

注意: 這是 VEX IQ 距離感測器(第二代)的測量方法。

Usage:
distance_1.object_velocity()

參數

描述

此方法沒有參數。

# Display the velocity of a moving object
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Velocity: ")
    brain.screen.print(distance_1.object_velocity())
    wait(100, MSEC)

object_size#

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

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

  • ObjectSizeType.NONE — 未偵測到物件。

  • ObjectSizeType.SMALL — 偵測到小型物件。

  • ObjectSizeType.MEDIUM — 偵測到中等大小的物體。

  • ObjectSizeType.LARGE — 偵測到大型物體。

注意: 這是 VEX IQ 距離感測器(第二代)的測量方法。

Usage:
distance_1.object_size()

參數

描述

此方法沒有參數。

installed#

installed 返回距離感測器是否已安裝並連接。

  • True — 距離感測器已安裝並連接。

  • False — 距離感測器未安裝或未連接。

Usage:
distance_1.installed()

參數

描述

此方法沒有參數。

建構函數#

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

Sonar#

Sonar 建立一個 VEX IQ 距離感測器(第一代)物件。

Usage:
distance_1 = Sonar(smartport)

範圍

描述

smartport

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

# Create a Sonar object in Port 1
distance_1 = Sonar(Ports.PORT1)

Distance#

Distance 建立一個 VEX IQ 距離感測器(第二代)物件。

Usage:
distance_1 = Distance(smartport)

範圍

描述

smartport

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

# Create a Distance object in Port 1
distance_1 = Distance(Ports.PORT1)