class Servo -- 三線式玩具伺服馬達驅動程式

Servo 物件控制標準的三線式(接地、電源、訊號)玩具伺服馬達。

使用範例:

import pyb

s1 = pyb.Servo(1)   # create a servo object on position P7
s2 = pyb.Servo(2)   # create a servo object on position P8

s1.angle(45)        # move servo 1 to 45 degrees
s2.angle(0)         # move servo 2 to 0 degrees

# move servo1 and servo2 synchronously, taking 1500ms
s1.angle(-60, 1500)
s2.angle(30, 1500)

備註

Servo 物件使用 Timer(5) 來產生 PWM 輸出。你可以將 Timer(5) 用於 Servo 控制,或用於你自己的用途,但不能同時用於兩者。

建構子

class pyb.Servo(id: int)

建立一個伺服物件。id 是以 1 為基底的伺服通道編號;每個通道連接到一個固定的排針接腳,而通道數量取決於 OpenMV Cam:

相機

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

--

pyb.Servo 在 OpenMV Cam N6 上不可用。

方法

angle(angle: int | None = None, time: int = 0) int | None

若未提供引數,此函式回傳目前的角度。

若提供了引數,此函式設定伺服的角度:

  • angle 是要移動到的角度,以度為單位。

  • time 是移動到指定角度所需的毫秒數。若省略,則伺服會盡快移動到新位置。

speed(speed: int | None = None, time: int = 0) int | None

若未提供引數,此函式回傳目前的速度。

若提供了引數,此函式設定伺服的速度:

  • speed 是要變更到的速度,介於 -100 與 100 之間。

  • time 是達到指定速度所需的毫秒數。若省略,則伺服會盡快加速。

pulse_width(value: int | None = None) int | None

若未提供引數,此函式回傳目前的原始脈寬值。

若提供了引數,此函式設定原始脈寬值。

calibration(pulse_min: int | None = None, pulse_max: int | None = None, pulse_centre: int | None = None, pulse_angle_90: int | None = None, pulse_speed_100: int | None = None) Tuple[int, int, int, int, int] | None

若未提供引數,此函式回傳目前的校正資料,為一個 5 元組。

若提供了引數,此函式設定時序校正:

  • pulse_min 是允許的最小脈寬。

  • pulse_max 是允許的最大脈寬。

  • pulse_centre 是對應中心/零位置的脈寬。

  • pulse_angle_90 是對應 90 度的脈寬。

  • pulse_speed_100 是對應速度 100 的脈寬。