여기는 연수생의 작업물을 기록하고 공유하는 공간입니다.
프로젝트 사진 모음
서보모터 4개 테스트
프로젝트 기록
1.
서브모터 4개 움직이기
import machine
import time
# 서보모터의 PWM 신호를 보내기 위한 핀 정의 (2번, 4번, 6번, 8번 핀에 연결)
servo_pins = [machine.Pin(2), machine.Pin(4), machine.Pin(6), machine.Pin(8)]
# 서보모터의 PWM 객체 생성 및 주파수 설정 (50Hz는 서보모터 기본 주파수)
servo_pwm = [machine.PWM(pin) for pin in servo_pins]
for pwm in servo_pwm:
pwm.freq(50)
# 서보모터의 각도를 제어하는 함수 (0도에서 180도 범위)
def set_servo_angle(pwm, angle):
# 0도 -> 0.5ms (기본 위치), 180도 -> 2.5ms (최대 위치)
duty = int((angle / 180) * 65535 + 6554) # PWM 듀티 비율 계산 (0~65535 범위)
pwm.duty_u16(duty)
# 서보모터 스위핑 테스트
def sweep_servos():
try:
while True:
# 0도에서 180도까지 각도를 증가시키며 서보모터 스위핑
for angle in range(0, 181, 5): # 5도 단위로 스위핑
for pwm in servo_pwm:
set_servo_angle(pwm, angle)
time.sleep(0.02) # 20ms 지연 (서보모터 응답 시간)
# 180도에서 0도까지 각도를 감소시키며 서보모터 스위핑
for angle in range(180, -1, -5): # 5도 단위로 스위핑
for pwm in servo_pwm:
set_servo_angle(pwm, angle)
time.sleep(0.02)
except KeyboardInterrupt:
# 종료 시 서보모터를 기본 위치(0도)로 되돌리기
for pwm in servo_pwm:
pwm.duty_u16(0) # 기본 위치로 되돌리기
print("스위핑 테스트가 종료되었습니다.")
# 스위핑 테스트 시작
sweep_servos()
JavaScript
복사
2.
라즈베리파이 피코에서 서브모터 2개 시리얼통신으로 테스트 코드 작성해. 2번과 4번 모터만
W, S는 위아래 A, D는 좌우 초기 각도는 모두 90도