QD007 로봇팔 자동차와 QD001 자율주행차의 기능을 통합한 ESP32 기반 자율주행 로봇 코드입니다.
- 5개 서보 제어: Chassis(회전), Shoulder(어깨), Elbow(팔꿈치), Wrist(손목), Claws(집게)
- 다양한 제어 방식:
- 직접 각도 입력 제어
- 슬라이더를 통한 부드러운 제어
- PTP(Point-to-Point) 좌표 제어
- 동작 녹화 및 재생 기능
- 원점 복귀 기능
- TRACK_1 모드: 2개 센서(좌우)를 사용한 기본 라인트레이싱
- TRACK_2 모드: 3개 센서(좌/중앙/우)를 사용한 정교한 라인트레이싱
- 더 정확한 라인 추적
- 곡선 구간에서 더 안정적인 주행
- 도로 이탈 감지 및 정지 기능
- 초음파 센서를 사용한 장애물 감지
- 장애물 발견 시 자동 회피 동작
- 랜덤 회피 알고리즘
- 초음파 센서로 앞의 물체를 추적
- 적절한 거리 유지
- 물체의 움직임에 따라 자동 추종
- WiFi AP 모드 (SSID:
Robot_Arm_Car, 비밀번호:12345678) - 스마트폰 앱을 통한 원격 제어
- 실시간 카메라 스트리밍 지원
- ESP32 개발 보드
- 자동차 섀시 및 모터 드라이버
- 로봇팔 (5개 서보 모터)
- 초음파 센서 (HC-SR04 또는 유사)
- 라인트레이싱 센서 3개 (IR 센서)
- Left sensor: GPIO 35
- Middle sensor: GPIO 36
- Right sensor: GPIO 39
- Trig: GPIO 13
- Echo: GPIO 14
- Chassis: GPIO 25
- Shoulder: GPIO 26
- Elbow: GPIO 27
- Wrist: GPIO 33
- Claws: GPIO 4
Arduino IDE에서 다음 라이브러리를 설치해야 합니다:
- vehicle.h - 자동차 제어 라이브러리 (QD001/QD007 패키지 포함)
- ultrasonic.h - 초음파 센서 제어 라이브러리
- ACB_CAR_ARM.h - 로봇팔 제어 라이브러리 (QD007 패키지 포함)
- ESP32Servo - ESP32 서보 제어 라이브러리
- WiFi - ESP32 WiFi 라이브러리 (기본 포함)
- esp_camera - ESP32 카메라 라이브러리 (기본 포함)
-
Arduino IDE 설정
- Arduino IDE 설치
- ESP32 보드 지원 추가 (Arduino IDE 보드 매니저에서 ESP32 설치)
- 필요한 라이브러리 설치
-
코드 업로드
Robot_Arm_Line_Tracking_Car.ino파일을 Arduino IDE에서 열기- 보드 선택: "ESP32 Dev Module"
- 포트 선택: 연결된 ESP32 포트
- 업로드 실행
-
WiFi 연결
- ESP32가 AP 모드로 시작됩니다
- 스마트폰에서 WiFi 네트워크
Robot_Arm_Car검색 - 비밀번호:
12345678 - 연결 후 시리얼 모니터에서 IP 주소 확인 (일반적으로 192.168.4.1)
- 보드레이트: 115200
- ESP32 부팅 후 시리얼 모니터에서 상태 확인
- 스마트폰에서 WiFi 네트워크
Robot_Arm_Car연결 - 해당 제조사의 앱 다운로드 및 실행
- 앱에서 자동차 IP 주소 연결 (일반적으로 192.168.4.1)
앱을 통해 다음 모드를 선택할 수 있습니다:
- STANDBY: 수동 제어 모드
- TRACK_1: 2개 센서 라인트레이싱
- TRACK_2: 3개 센서 라인트레이싱 (QD001 스타일)
- AVOID: 장애물 회피 모드
- FOLLOW: 따라가기 모드
앱에서 로봇팔의 각 관절을 개별적으로 제어할 수 있습니다:
- Chassis: 로봇팔 회전
- Shoulder: 어깨 관절
- Elbow: 팔꿈치 관절
- Wrist: 손목 관절
- Claws: 집게 (각도 90~180도)
코드에서 다음 값을 조정하여 라인트레이싱 감도를 변경할 수 있습니다:
int Black_Line = 2000; // 검은선 임계값 (낮출수록 더 민감)
int Off_Road = 4000; // 도로 이탈 임계값
int speeds = 250; // 기본 속도 (0-255)if (middleDistance <= 25) // 장애물 감지 거리 (cm)if (UT_distance < 15) // 너무 가까움
else if (15 <= UT_distance && UT_distance <= 20) // 적절한 거리
else if (20 <= UT_distance && UT_distance <= 25) // 조금 멀림
else if (25 <= UT_distance && UT_distance <= 50) // 추종 가능 거리- 센서 값 확인: 시리얼 모니터에서 센서 값을 출력하여
Black_Line값 조정 - 조명 조건 확인: IR 센서는 조명 조건에 영향을 받습니다
- 센서 높이 조정: 센서와 바닥 사이 거리를 적절히 조정
- 서보 전원 공급 확인
- 서보 핀 연결 확인
- 초기화 함수 확인:
CAR_ARM.ARM_init(25,26,27,33,4)
- SSID와 비밀번호 확인
- ESP32가 AP 모드로 시작되었는지 확인 (시리얼 모니터에서 확인)
- 스마트폰에서 WiFi 네트워크가 보이는지 확인
- 이 코드는 QD007과 QD001의 기능을 통합한 것입니다
- 라인트레이싱 기능은 QD001의 3개 센서 방식을 포함하고 있습니다 (TRACK_2 모드)
- 로봇팔 기능은 QD007의 모든 기능을 포함하고 있습니다
- WiFi 및 앱 제어는 두 모델 모두에서 사용 가능합니다
- Firmware Version: 0.12.21
- 기반 모델: QD007 ESP32 Robot Arm Car V3.1 + QD001 Smart Car V6.3
- ESP32: Arduino Framework
이 코드는 교육 목적으로 제공됩니다.