距离传感器#

介绍#

距离传感器可以探测正前方的物体并测量其距离。第一代传感器使用声纳进行探测,而第二代传感器则使用教室安全激光,还可以估算物体的大小和速度。

方法——测量距离、检测物体、估计大小和速度。

  • object_distance – 以英寸、毫米或厘米为单位返回到最近物体的距离。

  • object_size – 返回检测到的物体的估计大小(小、中、大)。

  • object_velocity – 返回检测到的物体的速度(以米/秒为单位)。

  • is_object_detected – 返回物体是否在范围内(约 406 毫米或 16 英寸)。

  • installed – 返回距离传感器是否连接到大脑。

构造函数——手动初始化和配置距离传感器。

  • 距离 – 创建距离传感器(第二代)。

  • Sonar – 创建距离传感器(第一代)。

方法#

物体距离#

object_distance 返回距离传感器和最近物体之间的距离。

用法:
object_distance(units)

参数

描述

单位

可选。表示距离的单位:

  • MM(默认) – 毫米
  • INCHES
  • DistanceUnits.CM – 厘米

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

对象大小#

object_size 返回一个字符串,该字符串表示检测到的物体的估计大小,该大小基于距离传感器(第二代)的视野所占的比例:

  • sizeType.NONE (0) – 未检测到物体,或者物体太近以至于填满了整个视野。

  • sizeType.SMALL (1) – 物体占据视野的一小部分。

  • sizeType.MEDIUM (2) – 物体占据视野的大约一半。

  • sizeType.LARGE (3) – 物体占据了大部分视野。

**注意:**此方法仅适用于距离传感器(第二代)。

用法:
object_size()

参数

描述

该方法没有参数。

# Drive forward until a detected object is large
drivetrain.drive(FORWARD)
while not distance_1.object_size() == ObjectSizeType.LARGE:
    wait(15, MSEC)
drivetrain.stop()

对象速度#

object_velocity 以浮点数形式返回检测到的物体的速度,以米/秒为单位。正值表示物体正朝着距离传感器(第二代)移动,负值表示物体正远离。

**注意:**此方法仅适用于距离传感器(第二代)。

用法:
object_velocity()

参数

描述

该方法没有参数。

# Display the velocity of a hand moving in front of
# the Distance Sensor
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Velocity: ")
    brain.screen.print(distance_1.object_velocity())
    wait(20, MSEC)

是否检测到物体#

is_object_detected 返回一个布尔值,指示距离传感器是否检测到约 406 毫米(16 英寸)范围内的物体。

  • “True”——距离传感器检测到距离约为 406 毫米内的物体。

  • “错误”——距离传感器未检测到约 406 毫米的物体。

用法:
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("Detected!")

已安装#

installed 返回一个布尔值,指示距离传感器是否连接到大脑。

  • “True”——距离传感器已连接到大脑。

  • “False”——距离传感器未连接到大脑。

用法:
isntalled()

参数

描述

该方法没有参数。

# Display if the distance sensor is installed
if distance_1.installed():
    brain.screen.print("Installed!")

构造函数#

构造函数用于手动创建“距离”和“声纳”对象,这些对象对于在 VEXcode 之外配置距离传感器(第二代)或(第一代)是必需的。

对于下面的示例,配置的距离传感器(第二代和第一代)将被命名为“distance_1”,并且在整个 API 文档的所有后续示例中引用“Distance”和“Sonar”类方法时将使用它。

距离传感器(第二代)#

“距离”创建一个距离传感器(第二代)。

用法:
距离(端口)

范围

描述

端口

距离传感器(第二代)连接到哪个智能端口,以“PORT”表示,后跟端口号,范围从 1 到 12。

# Construct a Distance Sensor "distance_1" with the
# Distance class
distance_1 = Distance(Ports.PORT1)

while distance_1.object_distance(MM) > 200:
    drivetrain.drive(FORWARD)
drivetrain.stop()

距离传感器(第一代)#

Sonar 创建距离传感器(第一代)。

用法:
Sonar(port)

范围

描述

端口

距离传感器(第 1 代)连接到哪个智能端口,以“PORT”表示,后跟端口号,范围从 1 到 12。

# Construct a Distance Sensor "distance_1" with the
# Sonar class
distance_1 = Sonar(Ports.PORT1)

drivetrain.turn(RIGHT)
while not distance_1.is_object_detected():
    wait(15, MSEC)
drivetrain.stop()
brain.screen.print("Detected!")