사용할 핀 (왼쪽에서 오른쪽): ┌─────────────────────────────┐ │ 5V GND 12 13 15 14 2 │ │ ● ● ● ● ● ● ● │ └─────────────────────────────┘ ↑ ↑ ↑ ↑ ↑ ↑ │ │ │ │ │ └─ 서보 PWM │ │ │ │ └───── DC IN2 │ │ │ └───────── DC IN1 │ │ └───────────── DC PWM │ └───────────────── 그라운드 └───────────────────── 전원 5V
상단 (모터/전원 측): OUT1 OUT2 12V GND 5V ● ● ● ● ● 하단 (제어 신호 측): ENA IN1 IN2 IN3 IN4 ENB ● ● ● ● ● ● ↑ ↑ ↑ │ │ └── GPIO13 │ └──────── GPIO15 └───────────── GPIO12
갈색 = GND 빨강 = 5V 주황 = 신호 (GPIO14)
배터리 +극 ──[스위치]── 전원 분배점 배터리 -극 ────────────── GND 분배점
스위치 출력 ──────> BEC 입력 + GND 분배점 ──────> BEC 입력 - BEC 출력 + ──────> 5V 분배점 (빨강) BEC 출력 - ──────> GND 분배점 (검정)
BEC 5V 출력 ──────> ESP32-CAM "5V" 핀 GND 분배점 ──────> ESP32-CAM "GND" 핀
배터리 출력 ──────> L298N "12V" 핀 GND 분배점 ──────> L298N "GND" 핀 BEC 5V 출력 ──────> L298N "5V" 핀
DC 모터 + ──────> L298N "OUT1" DC 모터 - ──────> L298N "OUT2"
ESP32 GPIO12 ──────> L298N "ENA" ESP32 GPIO13 ──────> L298N "IN1" ESP32 GPIO15 ──────> L298N "IN2"
BEC 5V 출력 ──────> 서보 빨강선 (VCC) GND 분배점 ──────> 서보 갈색선 (GND) ESP32 GPIO14 ──────> 서보 주황선 (PWM)
ESP32-CAM: 5V ← BEC 5V IO12 → L298N ENA GND ← 공통 GND IO13 → L298N IN1 IO14 → 서보 신호 IO15 → L298N IN2 L298N: 12V ← 배터리 직접 ENA ← GPIO12 GND ← 공통 GND IN1 ← GPIO13 5V ← BEC 5V IN2 ← GPIO15 OUT1 → DC 모터 + OUT2 → DC 모터 - 서보모터: 빨강 ← BEC 5V 갈색 ← GND 주황 ← GPIO14
#include <ESP32Servo.h>
Servo servo;
void setup() { servo.attach(14); }
void loop() {
servo.write(0); delay(1000);
servo.write(90); delay(1000);
servo.write(180); delay(1000);
}
const int MOTOR_PWM = 12, MOTOR_IN1 = 13, MOTOR_IN2 = 15;
void setup() {
pinMode(MOTOR_PWM, OUTPUT);
pinMode(MOTOR_IN1, OUTPUT);
pinMode(MOTOR_IN2, OUTPUT);
}
void loop() {
digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, LOW);
analogWrite(MOTOR_PWM, 150); delay(2000);
analogWrite(MOTOR_PWM, 0); delay(1000);
digitalWrite(MOTOR_IN1, LOW); digitalWrite(MOTOR_IN2, HIGH);
analogWrite(MOTOR_PWM, 150); delay(2000);
analogWrite(MOTOR_PWM, 0); delay(1000);
}
| 증상 | 점검 항목 |
|---|---|
| ESP32-CAM 부팅 실패 | 5V 전압 확인 / GND 연결 확인 / 전류 용량 (BEC 3A 이상) / 카메라 케이블 |
| 서보모터 떨림 | 전원 용량 부족 (5A BEC) / 신호선 GPIO14 / 전원 4.8-6V / 커패시터 100uF 16V 추가 |
| DC 모터 작동 안 됨 | L298N 전원 확인 (12V, GND, 5V) / ENA 점퍼 제거 / PWM 신호 GPIO12 / 모터 극성(OUT1, OUT2 바꿔보기) |
| 재부팅 반복 | 전원 용량 (BEC 3A 이상) / 배터리 7.4V 이상 / 커패시터 1000uF 16V 추가 |
| 와이어 발열 | 즉시 전원 OFF → 단락(합선) 확인 → 와이어 굵기 (22AWG 이상) |
배선이 완료되면:
python tests/test_video_stream.py python tests/test_udp.py python tests/test_motor.py
python opencv/python/main.py