메인
home
소프트웨어
home

[오남고][박은정]

여기는 연수생의 작업물을 기록하고 공유하는 공간입니다.

 프로젝트 사진 모음

서보모터 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도