class Servo – 3선식 취미용 서보 드라이버¶
Servo 객체는 3선(접지, 전원, 신호)을 가진 표준 취미용 서보 모터를 제어합니다.
사용 예시:
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 객체는 PWM 출력을 생성하기 위해 Timer(5)를 사용합니다. 서보 제어용으로 Timer(5)를 사용하거나 직접 다른 용도로 사용할 수 있지만, 두 가지를 동시에 사용할 수는 없습니다.
생성자¶
- 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은 지정된 속도에 도달하는 데 걸리는 밀리초 수입니다. 생략하면 서보가 가능한 한 빠르게 가속합니다.
- 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에 해당하는 펄스 폭입니다.