소스 뷰어
# servo_cali.py
# 서보 암을 중앙 방향으로 부착합니다.
from picozero import Servo # picozero 라이브러리에서 Servo 클래스 임포트
from time import sleep # time 라이브러리에서 sleep 함수 임포트
# 핀 1에 연결된 서보 객체 생성
servo = Servo(1)
# 각 위치에서 대기할 시간 (초)
duration = 1
print("Start calibrating ...\n") # 캘리브레이션 시작 메시지 출력
count = 0 # 카운트 초기화
for _ in range(3): # 3회 반복하여 서보 이동
count += 1 # 카운트 증가
print(f"[{count:2d}] Locating servo min angle ...") # 최소 각도로 이동 메시지
servo.min() # 서보를 최소 각도로 이동
sleep(duration) # duration 동안 대기
print(f"[{count:2d}] Servo value = {servo.value:4.1f}") # 현재 각도 출력
count += 1 # 카운트 증가
print(f"[{count:2d}] Locating servo middle angle ...") # 중간 각도로 이동 메시지
servo.mid() # 서보를 중간(90도) 각도로 이동
sleep(duration) # duration 동안 대기
print(f"[{count:2d}] Servo value = {servo.value:4.1f}") # 현재 각도 출력
count += 1 # 카운트 증가
print(f"[{count:2d}] Locating servo max angle ...") # 최대 각도로 이동 메시지
servo.max() # 서보를 최대 각도로 이동
sleep(duration) # duration 동안 대기
print(f"[{count:2d}] Servo value = {servo.value:4.1f}") # 현재 각도 출력
count += 1 # 카운트 증가
print(f"[{count:2d}] Locating servo middle angle ...") # 중간 각도로 복귀 메시지
servo.mid() # 서보를 중간(90도) 각도로 이동
sleep(duration) # duration 동안 대기
print(f"[{count:2d}] Servo value = {servo.value:4.1f}") # 현재 각도 출력
pass
# 서보 암을 중앙에 부착할 수 있도록 사용자에게 안내
print("\nAttach the servo arm at 90 degree for 20 seconds!")
sleep(20) # 20초 대기
# 서보 모터 종료
servo.off() # 서보 모터의 PWM 신호를 종료
servo.close() # PWM을 해제하고 핀 초기화
print("\nGood bye!") # 프로그램 종료 메시지 출력