旋轉感應器#

介紹#

旋轉感測器用於測量軸的旋轉。它可以用於機器人上任何有軸旋轉的地方,即使該軸沒有直接連接到馬達。

馬達內建編碼器,可追蹤自身的旋轉。旋轉感測器的工作原理類似於外部編碼器,可以追蹤獨立軸的旋轉。

旋轉感測器可以返回軸的角度、位置和速度。角度是指軸的絕對位置,範圍從 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)