-
명령어 포멧 :
[left_moter_dir] [left_motor_speed] [right_motor_dir] [right_motor_speed]
-
direction : 진행 방향 선택
f→ Forward (전진)b→ Backward (후진)
-
duty : 속도 (0~9, 10% 단위)
0→ 0% (정지)1→ 10%9→ 90%
-
stop : 정지
s→ 양쪽 모터 duty 0e→ 모터드라이브 브레이크
| 명령어 | 의미 |
|---|---|
f 1 f 1 |
왼쪽 모터 전진, 속도 10% 오른쪽 모터 전진, 속도 10% |
b 4 f 4 |
오른쪽 모터 후진, 속도 40% 왼쪽 모터 전진, 속도 40% |
f 9 f 9 |
왼쪽 모터 전진, 속도 90% 오른쪽 모터 전진, 속도 90% |
s |
정지 |
-
UART 수신
- STM32는 UART 인터럽트를 통해 명령어를 수신합니다.
- 수신된 문자열은 버퍼에 저장되고,
\n또는\r로 명령어 종료를 구분합니다.
-
PWM 및 방향 제어
- 속도 값은
PWM_DUTY_SCALE (100)을 곱해 실제 PWM duty 값으로 변환됩니다.- 예:
4→4 * 100 = 400 (40%)
- 예:
- 방향은 GPIO 핀(
DIR_L,DIR_R)을 통해 전진/후진을 설정합니다. - PWM은 TIM2의
CH1(왼쪽),CH2(오른쪽) 채널에서 출력됩니다.
- 속도 값은
- TIM2_CH1 (PWM) (PA0) → Left Motor (왼쪽 모터)
- TIM2_CH2 (PWM) (PA1) → Right Motor (오른쪽 모터)
- PA8 → Left Motor Direction (왼쪽 모터 방향)
- PB10 → Right Motor Direction (오른쪽 모터 방향)
- PA6 → infrared sensor(적외선 센서)
⚠️ 핀 번호는 보드 및 회로 설계에 따라 변경 가능합니다.
- 속도 0~100% 지원 → 현재는 10% 단위 (
0~9), 이를0~100까지 확장 가능 - 양쪽 모터 동시 제어 →
l r f 5같은 그룹 명령 추가 - 엔코더 피드백 기반 제어 → 목표 거리/속도까지 제어하는 클로즈드 루프