距离传感器#
介绍#
距离传感器可以探测正前方的物体并测量其距离。第一代传感器使用声纳进行探测,而第二代传感器则使用教室安全激光,还可以估算物体的大小和速度。
方法——测量距离、检测物体、估计大小和速度。
object_distance – 以英寸、毫米或厘米为单位返回到最近物体的距离。
object_size – 返回检测到的物体的估计大小(小、中、大)。
object_velocity – 返回检测到的物体的速度(以米/秒为单位)。
is_object_detected – 返回物体是否在范围内(约 406 毫米或 16 英寸)。
installed – 返回距离传感器是否连接到大脑。
构造函数——手动初始化和配置距离传感器。
方法#
物体距离#
object_distance
返回距离传感器和最近物体之间的距离。
用法:
object_distance(units)
参数 |
描述 |
---|---|
单位 |
可选。表示距离的单位:
|
# 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!")