旋转传感器#

介绍#

旋转传感器用于测量轴的旋转。它可以用于机器人上任何有轴旋转的地方,即使该轴没有直接连接到电机。

电机内置编码器,可以跟踪自身的旋转。旋转传感器的工作原理类似于外部编码器,可以跟踪独立轴的旋转。

旋转传感器可以返回轴的角度、位置和速度。角度是指轴的绝对位置,范围从 0 度到 359.99 度。当项目开始或机器人断电时,角度不会重置。位置传感器跟踪轴在项目进行期间正向或反向旋转的角度或圈数,并且可以根据需要进行重置。

旋转传感器兼容 1/8 英寸和 1/4 英寸标准 VEX 轴。

VEX V5 旋转传感器。

本页面使用 rotation_sensor 作为旋转传感器的示例名称。您可以根据需要将其替换为您自己配置的名称。

以下是可用方法列表:

  • set_position — 将旋转传感器的当前位置设置为特定值。

  • angle — 返回轴的当前角度,范围从 0 到 359.99 度。

  • position — 返回轴旋转的角度或圈数。

  • velocity — 返回轴的旋转速度。

  • reset_position — 将旋转传感器的当前位置重置为 0。

  • set_reversed — 设置旋转传感器的输出是否反转。

  • changed — 注册一个函数,当旋转传感器的值发生变化时运行。

构造函数 — 手动初始化旋转传感器。

  • Rotation — 创建一个旋转传感器。

设置位置#

set_position 将旋转传感器的当前位置设置为一个值。

位置是指轴在项目进行过程中旋转的距离。设置位置会在不移动轴的情况下改变当前位置值。

Usage:
rotation_sensor.set_position(position, units)

参数

描述

position

要分配给旋转传感器的位置值。该值可以是整数或小数。

units

可选。位置单位: DEGREES (默认)或 TURNS。

# Set the Rotation Sensor to 2.5 Turns
rotation_sensor.set_position(2.5, TURNS)

角度#

angle 返回轴的当前角度(浮点数)。

角度值表示轴在一个旋转周期内的绝对位置,范围从 0 到 359.99 度。项目开始或机器人断电时,该值不会重置。

Usage:
rotation_sensor.angle(units)

参数

描述

units

可选。角度单位: DEGREES (默认)或 TURNS。

位置#

位置position

与角度不同,位置可以超过 359.99 度,也可以低于 0 度。位置参数跟踪轴在项目进行过程中正向或反向旋转的距离,并可根据需要进行重置。

Usage:
rotation_sensor.position(units)

参数

描述

units

可选。位置单位: DEGREES (默认)或 TURNS。

速度#

velocity 返回轴的旋转速度。

Usage:
rotation_sensor.velocity(units)

参数

描述

units

速度单位: VelocityUnits.RPM (每分钟转数)或 VelocityUnits.DPS (每秒度数)。

重置位置#

reset_position 将旋转传感器的当前位置重置为 0。

Usage:
rotation_sensor.reset_position()

参数

描述

此方法没有参数。

设置反转#

set_reversed 设置旋转传感器的输出是否反转。

反转后,正值变为负值,负值变为正值。此方法与使用 Rotation 构造函数 时将 reverse 参数设置为 True 的效果相同。

Usage:
rotation_sensor.set_reversed(value)

参数

描述

value

是否反转旋转传感器输出: True 或 False。

已更改#

changed 注册一个函数,当旋转传感器的值发生变化时,该函数将被调用。

Usage:
rotation_sensor.changed(callback, arg)

参数

描述

callback

先前定义的 函数,当旋转传感器的值发生变化时运行。

arg

可选。包含要传递给回调函数的参数的元组。有关更多信息,请参阅使用带参数的函数。

def my_function():
  brain.screen.print("Rotated!")

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

构造函数#

构造函数用于手动创建 Rotation 对象,例如在 VEXcode 之外配置旋转传感器时。

Rotation#

Rotation 创建一个旋转传感器对象。

Usage:
Rotation(smartport)

范围

描述

smartport

旋转传感器连接的智能端口,写成 Ports.PORTx,其中 x 是端口号。

reverse

可选。是否反转旋转传感器输出: True 或 False (默认值)。

# Create an inverted Rotation Sensor in Port 10
rotation_sensor = Rotation(Ports.PORT10, True)