傳動系統#

介紹#

VEX V5 機器人使用傳動系統來驅動和轉向。傳動系統由馬達和輪子組成,它們協同工作以移動機器人。

配置好的驅動系統可以使用慣性感測器、GPS感測器、陀螺儀感測器或不使用感測器。使用感測器時,驅動系統會利用感測器輔助機器人精確移動和轉向。每個項目開始時,驅動系統都會自動校準感測器。校準期間請保持機器人靜止,以便機器人能夠正確移動和轉向。

傳動系統有多種編碼方式。本頁以 drivetrain 作為傳動系統名稱範例。您可以根據需要將其替換為您自己配置的名稱。

以下是所有傳動系統方法的清單:

動作-移動和轉向機器人。

  • drive — 使機器人無限向前或向後移動。

  • drive_for — 使機器人向前或向後移動指定的距離。

  • turn — 讓機器人永遠向左或向右轉。

  • turn_for — 使機器人向左或向右旋轉指定的度數。

  • turn_to_heading — 將機器人轉向 -359 度到 359 度之間的特定航向。機器人將沿著最短路徑轉向以達到目標航向。

  • turn_to_rotation — 將機器人旋轉到指定的方向。

  • stop — 停止機器人的移動。

  • calibrate_drivetrain – 校準與傳動系統配置的感測器。

變異器 — 調整傳動系統設定。

Getters — 檢查傳動系統狀態。

  • is_done — 傳回機器人是否已完成移動,以布林值表示。

  • is_moving — 傳回機器人是否正在移動,以布林值表示。

  • heading — 返回機器人的目前航向,範圍從 0 到 359.99 度。

  • rotation — 返回機器人的目前旋轉角度。

  • velocity — 返回機器人行駛的速度。

  • current — 傳回傳動系統正在使用的電流大小。

  • power — 返回傳動系統使用能量的速度。

  • torque — 返回傳動系統正在使用的扭矩大小。

  • efficiency — 返回傳動系統使用動力的效率。

  • temperature — 傳回傳動系統的溫度。

  • get_timeout – 傳回目前逾時設定。

建構函式 - 手動建立和配置傳動系統。

行動#

drive#

drive 使機器人無限前進或後退。機器人將持續移動,直到收到其他指令,例如轉向或停止。轉速(RPM)或每秒角度數的限制取決於傳動系統的齒輪比。

Usage:
drivetrain.drive(direction, velocity, units)

參數

描述

direction

機器人移動方向: FORWARD 或 REVERSE。

velocity

可選。驅動速度,取值範圍為 0% 到 100%(使用 PERCENT時)、0 到 600 rpm(使用 RPM時)或 0 到 3600 度/秒(使用 VelocityUnits.DPS時)。該值可以是整數 integerfloat)。如果未提供速度,機器人將以目前驅動速度行駛。

units

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

drive_for 使機器人前進或後退指定距離。程式會等待機器人完成移動後再執行下一行程式碼。轉速(RPM)或角度(度/秒)的限制值會根據傳動系統的齒輪比而改變。

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

參數

描述

direction

機器人移動方向: FORWARD 或 REVERSE。

distance

機器人行駛的距離。這可以是整數 integerfloat)。

units

可選。距離單位: INCHES (預設)或 MM (毫米)。

velocity

可選。驅動速度,取值範圍為 0% 到 100%(使用 PERCENT時)、0 到 600 rpm(使用 RPM時)或 0 到 3600 度/秒(使用 VelocityUnits.DPS時)。該值可以是整數 integerfloat)。如果未提供速度,機器人將以目前驅動速度行駛。

units_v

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

wait

可選 wait=True (預設值)使專案等待機器人完成移動後再執行下一行程式碼。 2 wait=False 使下一行程式碼立即運作。

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn 表示機器人無限向左或向右轉向。機器人會一直轉向,直到收到其他指令,例如行駛或停止。轉速(RPM)或每秒轉數(度)的限制取決於傳動系統的齒輪比。

Usage:
drivetrain.turn(direction, velocity, units)

參數

描述

direction

機器人轉向的方向: LEFT 或 RIGHT。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for 參數使機器人向左或向右旋轉指定角度。旋轉角度相對於機器人的當前位置。程式會等待機器人完成旋轉後才執行下一行程式碼。旋轉速度(RPM)或旋轉角度(度/秒)的限制值會根據傳動系統的齒輪比而變化。

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

參數

描述

direction

機器人轉向的方向: LEFT 或 RIGHT。

angle

The number of degrees the robot turns. This can be an integer or decimal (float).

units

可選。旋轉單位: DEGREES (預設)或 TURNS一圈等於 360 度。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

wait

可選 wait=True (預設值)表示程式會等待機器人完成轉向後再執行下一行程式碼。 2 wait=False 表示程式會立即執行下一行程式碼。

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

航向角是指機器人朝向的方向,以度為單位。 `turn_to_heading 將機器人轉向 -359 度到 359 度之間的特定航向角。機器人將沿著最短路徑轉向以達到目標航向角。

機器人的初始航向角為0度。

程式會等到機器人完成轉向後才執行下一行程式碼。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此功能才可用。

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

參數

描述

angle

機器人應面向的方向,以度為單位。可以是 integer 的整數,也可以是 -359 到 359 之間的十進位數(float)。

units

可選。航向單位: DEGREES (預設值)。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

wait

可選 wait=True (預設值)表示程式會等待機器人完成轉向後再執行下一行程式碼。 2 wait=False 表示程式會立即執行下一行程式碼。

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation 將機器人旋轉到指定角度。

旋轉角度是指機器人轉動的程度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。也可以使用 set_rotation 方法設定旋轉角度。

旋轉角度是絕對值。這意味著轉彎方向取決於機器人目前的旋轉角度。向右轉會增加旋轉角度,向左轉彎會減少旋轉角度。

例如,如果機器人從0度開始,你將其旋轉720度,它會向右轉兩次。如果你再將其旋轉360度,它會向左轉一次,因為360小於720。

程式會等到機器人完成轉向後才執行下一行程式碼。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

參數

描述

angle

機器人將轉向的旋轉值,以度或圈數為單位。這可以是整數 integerfloat)。

units

可選。旋轉單位: DEGREES (預設)或 TURNS一圈等於 360 度。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

wait

可選 wait=True (預設值)表示程式會等待機器人完成轉向後再執行下一行程式碼。 2 wait=False 表示程式會立即執行下一行程式碼。

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop 停止機器人的移動。

Usage:
drivetrain.stop(mode)

參數

描述

mode

Optional. How the robot will stop: BRAKE (default), COAST, or HOLD.

  • BRAKE — Stops immediately.
  • COAST — Slows to a stop.
  • HOLD — Stops immediately and holds the wheels’ position.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain 是一個內建函數,用於校準傳動系統的配置慣性感測器、GPS 感測器 或陀螺儀感測器。

校準有助於感測器正確測量運動。校準期間,請保持機器人靜止約 2 秒鐘。如果機器人在校準期間移動,感測器可能無法正確測量運動。

程式將等待校準完成後再執行下一行程式碼。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此功能才可用。

Usage:
calibrate_drivetrain()

參數

描述

此函數沒有參數。

變異體#

set_drive_velocity#

set_drive_velocity 告訴機器人行駛速度。百分比越高,機器人行駛速度越快;百分比越低,機器人行駛速度越慢。轉速(RPM)或角度(度/秒)的限制值會根據傳動系統的齒輪比而改變。

每個專案開始時,機器人預設以 50% 的速度行駛。

注意:速度越高,機器人行駛速度越快,但精度可能越低;速度越低,機器人行駛速度越慢,但精度可能越高。

Usage:
drivetrain.set_drive_velocity(velocity, units)

參數

描述

velocity

The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float).

units

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

set_turn_velocity 告訴機器人轉彎的速度。百分比越高,機器人轉彎越快;百分比越低,機器人轉彎越慢。轉速(RPM)或角度(度/秒)的限制值受傳動系統的齒輪比影響。

每個專案開始時,機器人預設以 50% 的速度旋轉。

注意:速度越高,機器人轉彎越快,但精度可能越低;速度越低,機器人轉彎越慢,但精度可能越高。

Usage:
drivetrain.set_turn_velocity(velocity, units)

參數

描述

velocity

The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float).

units

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping 設定機器人停止移動的方式:透過煞車、滑行或保持。

Usage:
drivetrain.set_stopping(mode)

參數

描述

mode

How the robot will stop:

  • BRAKE — Stops immediately.
  • COAST — Slows to a stop.
  • HOLD — Stops immediately and holds the wheels’ position.

如果不使用此方法,機器人停止時將使用 BRAKE。

set_timeout#

set_timeout 設定機器人嘗試完成一個動作的超時時間(以秒為單位)。如果機器人無法在規定時間內完成,它將停止嘗試並執行下一行程式碼。這可以防止機器人卡在某個動作中。

Usage:
drivetrain.set_timeout(value, units)

參數

描述

value

The amount of time the robot can try to finish a movement. This can be a positive integer or decimal (float).

units

可選。時間單位: MSEC (毫秒,預設值)或 SECONDS。

set_heading#

航向角是指機器人朝向的方向,以度為單位。 0 set_heading 將機器人的目前航向角變更為新的航向角值。

例如,如果機器人轉向右側,將航向設定為 0 度,則該右側位置將成為新的 0 度航向。然後,機器人可以根據新的航向轉向其他位置。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.set_heading(heading, units)

參數

描述

heading

要設定的機器人航向值,以度或轉為單位。這可以是整數 integerfloat)。

units

可選。航向單位: DEGREES (預設)或 TURNS一圈等於 360 度。

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

旋轉角度是指機器人轉動的程度,以度為單位。專案開始時,旋轉角度值設定為 0 度。 `set_rotation 會將機器人的目前旋轉角度變更為新值。

例如,如果機器人向右轉了兩圈,它的旋轉角度將為 720 度。將旋轉角度設為 0 度會將旋轉角度從 720 度重設為 0 度。然後,機器人可以根據這個新的旋轉角度進行旋轉。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.set_rotation(rotation, units)

參數

描述

rotation

要設定的機器人旋轉值,以度或圈數為單位。這可以是整數 integerfloat)。

units

可選。旋轉單位: DEGREES (預設)或 TURNS一圈等於 360 度。

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold 設定機器人必須接近目標角度多少才能完成轉彎。

較小的閾值可以使轉彎更精確,但機器人可能需要更長時間才能完成轉彎。較大的閾值可以使轉彎更快完成,但精確度可能會降低。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.set_turn_threshold(value)

參數

描述

value

轉彎閾值,單位為度。可以是整數 integerfloat)。預設轉彎閾值為 1 度。

set_turn_constant#

set_turn_constant 改變機器人修正轉彎的力度。

數值越高,機器人修正轉彎的力道越大;數值越低,機器人修正轉彎的力道越小。預設值為 1.0。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.set_turn_constant(value)

參數

描述

value

轉數常數。該值可以是 0.1 到 4.0 之間的十進位數(float浮點數)。預設值為 1.0。

set_turn_direction_reverse#

set_turn_direction_reverse 改變智慧驅動系統的轉向方向是否反轉。

This can be used if the drivetrain turns the opposite direction than expected after being manually configured in code. This method works the same as setting the reverse parameter to True when constructing a SmartDrive.

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.set_turn_direction_reverse(value)

參數

描述

value

是否反轉智慧驅動系統的轉向方向: True 反轉轉向方向, False 使用預設轉向方向。

獲取器#

is_done#

is_done 傳回機器人是否已完成移動,回傳值為布林值。這可用於根據機器人的移動狀態控制其他行為的執行時間。

  • True — 機器人已停止移動。

  • False — 機器人仍在移動。

此方法與以下具有 wait 參數的傳動系統方法搭配使用:drive_for, turn_for, turn_to_heading, 和 turn_to_rotation。

Usage:
drivetrain.is_done()

參數

描述

此方法沒有參數。

is_moving#

is_moving 返回機器人是否正在移動,返回值為布林值。這可用於根據機器人的移動狀態控制其他行為的執行時間。

  • True — 機器人正在移動。

  • False — 機器人沒有移動。

使用次數:

drivetrain.is_moving()

參數

描述

此方法沒有參數。

heading#

A heading is the direction the robot is facing, measured in degrees. heading returns the robot’s current heading from 0 to 359.99 degrees.

機器人的初始航向角為0度。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.heading(units)

參數

描述

units

可選。返回航向的單位: DEGREES (預設)或 TURNS一圈等於 360 度。

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotation#

Rotation is how much the robot has turned, measured in degrees. At the beginning of a project, the rotation value is set to 0 degrees. rotation returns the robot’s current rotation.

向右轉會增加旋轉角度,向左轉會減少旋轉角度。例如,向右轉兩圈將得到 720 度的旋轉角度。

注意: 只有當傳動系統在「裝置」視窗中配置了慣性感測器、GPS 感測器 或陀螺儀感測器 時,此方法才可用。

Usage:
drivetrain.rotation(units)

參數

描述

units

可選。旋轉單位: DEGREES (預設)或 TURNS一圈等於 360 度。

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocity#

velocity 返回機器人行駛的速度。

它可以返回 -100% 到 100% 之間的速度百分比, 是 RPM 或VelocityUnits.DPS(度/秒)。正值表示機器人向前行駛,負值表示機器人向後行駛。

Usage:
drivetrain.velocity(units)

參數

描述

units

可選。速度單位: RPM (每分鐘轉數,預設值), PERCENT,或 VelocityUnits.DPS (每秒度數)。

current#

current 返回動力傳動系統正在使用的電流大小,單位為安培 (A)。電流是指流經動力傳動系統的電量。

電流值越高,代表驅動系統消耗的電流越大。這種情況可能發生在機器人推擠物體或卡住後試圖移動時。

這可以用來檢查傳動系統在運動過程中是否運作吃力。如果電流持續偏高,傳動系統可能會發熱或動力利用效率降低。

Usage:
drivetrain.current(units)

參數

描述

units

可選。返回電流的單位: CurrentUnits.AMP (安培,預設值)。

power#

power 返回傳動系統正在使用的功率,單位為瓦特。功率值表示傳動系統消耗能量的速度。

功率值越高,代表驅動系統消耗能量的速度越快。這種情況可能發生在機器人推擠物體或卡住後試圖移動時。

這可以用來比較不同的運動軌跡,或是檢查傳動系統是否運作吃力。如果功率持續偏高,傳動系統可能會過熱或能量利用效率降低。

Usage:
drivetrain.power()

參數

描述

此方法沒有參數。

torque#

扭力表示傳動系統在車輪旋轉時能夠施加多大的推力或拉力。

torque 返回傳動系統使用的扭矩大小,以牛頓米 (Nm) 或英寸磅 (InLb) 為單位測量。

扭力值越高,表示傳動系統需要更大的推力或拉力。這種情況可能發生在機器人推擠物體或卡住後試圖移動時。

這可以用來檢查傳動系統是否運作不暢,或是比較不同動作所需的推力大小。

Usage:
drivetrain.torque(units)

參數

描述

units

可選。扭力的返回單位: TorqueUnits.NM (牛頓米,預設值)或 TorqueUnits.INLB (英吋磅)。

efficiency#

efficiency 返回動力傳動系統使用動力的效率,以百分比表示,範圍從 0% 到 100%。

效率值反映了傳動系統有多少動力被用於運動。效率值越高,代表傳動系統用於運動的動力越多。當傳動系統高負載運轉但運動量不大時,例如機器人被卡住或抵擋物體時,效率值會降低。

這可以用來比較運動情況,或者檢查傳動系統是否浪費動力而不是將其用於運動。

Usage:
drivetrain.efficiency()

參數

描述

此方法沒有參數。

temperature#

temperature 返回所選溫度單位的傳動系統平均溫度。

溫度顯示傳動系統馬達的溫度。溫度越高,代表馬達在工作過程中溫度越高。為了保持最佳性能,馬達溫度應保持在 55°C 以下。

如果馬達過熱,它們會降低最大電流以保護自身。當溫度達到 70°C 時,馬達將停止運轉,直到冷卻。

這可以用來檢查傳動系統在重複運動、長時間運作或推動物體時是否過熱。

Usage:
drivetrain.temperature(units)

參數

描述

units

可選。傳回溫度的單位: TemperatureUnits.CELSIUS (預設)或 TemperatureUnits.FAHRENHEIT。

get_timeout#

get_timeout 傳回目前設定的 timeout 的毫秒數。

Usage:
drivetrain.get_timeout()

參數

描述

此方法沒有參數。

建構函數#

建構函數用於手動建立 DriveTrain 和 SmartDrive 對象,這是在 VEXcode 之外配置傳動系統所必需的。

在建立傳動系統之前,必須先建立至少兩個 Motor 或 MotorGroup 物件。

DriveTrain#

DriveTrain 建立一個沒有慣性感測器、GPS 感測器 或陀螺儀感測器 的傳動系統。

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

範圍

描述

lm

左側運動或運動組。

rm

右側運動神經元或運動神經元組。

wheelTravel

可選。傳動車輪的周長。預設值為 300 毫米。

trackWidth

可選。左右車輪之間的寬度。預設值為 320 毫米。

wheelBase

可選。前後輪之間的距離。預設值為 320 毫米。

units

Optional. The unit for wheelTravel, trackWidth, and wheelBase: MM (millimeters, default), INCHES, or DistanceUnits.CM (centimeters).

externalGearRatio

Optional. The gear ratio used to adjust drive distances if gears are used. This can be an integer or decimal (float). The default is 1.0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive 建立一個配置有慣性感測器、GPS 感測器 或陀螺儀感測器 的傳動系統。

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

範圍

描述

lm

左側運動或運動組。

rm

右側運動神經元或運動神經元組。

g

傳動系統所使用的慣性感測器、GPS感測器或陀螺儀感測器。

wheelTravel

可選。傳動車輪的周長。預設值為 300 毫米。

trackWidth

可選。左右車輪之間的寬度。預設值為 320 毫米。

wheelBase

可選。前後輪之間的距離。預設值為 320 毫米。

units

Optional. The unit for wheelTravel, trackWidth, and wheelBase: MM (millimeters, default), INCHES, or DistanceUnits.CM (centimeters).

externalGearRatio

Optional. The gear ratio used to adjust drive distances if gears are used. This can be an integer or decimal (float). The default is 1.0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)