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
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8--
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是達到指定速度所需的毫秒數。若省略,則伺服會盡快加速。
- 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 的脈寬。