Skip to content

Latest commit

 

History

History
180 lines (139 loc) · 5.84 KB

File metadata and controls

180 lines (139 loc) · 5.84 KB

Robot Arm Line Tracking Car

로봇팔 라인트레이싱 자율주행차

QD007 로봇팔 자동차와 QD001 자율주행차의 기능을 통합한 ESP32 기반 자율주행 로봇 코드입니다.

주요 기능

1. 로봇팔 제어 (QD007 기능)

  • 5개 서보 제어: Chassis(회전), Shoulder(어깨), Elbow(팔꿈치), Wrist(손목), Claws(집게)
  • 다양한 제어 방식:
    • 직접 각도 입력 제어
    • 슬라이더를 통한 부드러운 제어
    • PTP(Point-to-Point) 좌표 제어
    • 동작 녹화 및 재생 기능
    • 원점 복귀 기능

2. 라인트레이싱 기능 (QD001 기능)

  • TRACK_1 모드: 2개 센서(좌우)를 사용한 기본 라인트레이싱
  • TRACK_2 모드: 3개 센서(좌/중앙/우)를 사용한 정교한 라인트레이싱
    • 더 정확한 라인 추적
    • 곡선 구간에서 더 안정적인 주행
    • 도로 이탈 감지 및 정지 기능

3. 장애물 회피 (AVOID 모드)

  • 초음파 센서를 사용한 장애물 감지
  • 장애물 발견 시 자동 회피 동작
  • 랜덤 회피 알고리즘

4. 따라가기 기능 (FOLLOW 모드)

  • 초음파 센서로 앞의 물체를 추적
  • 적절한 거리 유지
  • 물체의 움직임에 따라 자동 추종

5. WiFi 및 앱 제어

  • 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에서 다음 라이브러리를 설치해야 합니다:

  1. vehicle.h - 자동차 제어 라이브러리 (QD001/QD007 패키지 포함)
  2. ultrasonic.h - 초음파 센서 제어 라이브러리
  3. ACB_CAR_ARM.h - 로봇팔 제어 라이브러리 (QD007 패키지 포함)
  4. ESP32Servo - ESP32 서보 제어 라이브러리
  5. WiFi - ESP32 WiFi 라이브러리 (기본 포함)
  6. esp_camera - ESP32 카메라 라이브러리 (기본 포함)

설치 방법

  1. Arduino IDE 설정

    • Arduino IDE 설치
    • ESP32 보드 지원 추가 (Arduino IDE 보드 매니저에서 ESP32 설치)
    • 필요한 라이브러리 설치
  2. 코드 업로드

    • Robot_Arm_Line_Tracking_Car.ino 파일을 Arduino IDE에서 열기
    • 보드 선택: "ESP32 Dev Module"
    • 포트 선택: 연결된 ESP32 포트
    • 업로드 실행
  3. WiFi 연결

    • ESP32가 AP 모드로 시작됩니다
    • 스마트폰에서 WiFi 네트워크 Robot_Arm_Car 검색
    • 비밀번호: 12345678
    • 연결 후 시리얼 모니터에서 IP 주소 확인 (일반적으로 192.168.4.1)

사용 방법

시리얼 모니터

  • 보드레이트: 115200
  • ESP32 부팅 후 시리얼 모니터에서 상태 확인

앱 제어

  1. 스마트폰에서 WiFi 네트워크 Robot_Arm_Car 연결
  2. 해당 제조사의 앱 다운로드 및 실행
  3. 앱에서 자동차 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)  // 추종 가능 거리

문제 해결

라인트레이싱이 작동하지 않는 경우

  1. 센서 값 확인: 시리얼 모니터에서 센서 값을 출력하여 Black_Line 값 조정
  2. 조명 조건 확인: IR 센서는 조명 조건에 영향을 받습니다
  3. 센서 높이 조정: 센서와 바닥 사이 거리를 적절히 조정

로봇팔이 움직이지 않는 경우

  1. 서보 전원 공급 확인
  2. 서보 핀 연결 확인
  3. 초기화 함수 확인: CAR_ARM.ARM_init(25,26,27,33,4)

WiFi 연결이 안 되는 경우

  1. SSID와 비밀번호 확인
  2. ESP32가 AP 모드로 시작되었는지 확인 (시리얼 모니터에서 확인)
  3. 스마트폰에서 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

라이선스

이 코드는 교육 목적으로 제공됩니다.