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

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에 해당하는 펄스 폭입니다.