V4 고속 라인트레이서 로봇 - 아두이노 나노 기반 고급 시스템
부품 및 소모품
| JLCPCB 커스텀 PCB (샤시 겸용) |
1개 |
| 아두이노 나노 R3 |
1개 |
| 미니 H-브리지 L298N (MX1508) |
1개 |
| 6V 미니 메탈 기어드 모터 |
2개 |
| CNY70 반사형 적외선 센서 |
8개 |
| 7805 5V 레귤레이터 |
1개 |
| 전해 커패시터 |
1개 |
| 1206 SMD 블루 LED |
4개 |
| 1206 SMD 그린 LED |
1개 |
| 1206 SMD 저항 220Ω |
8개 |
| 1206 SMD 저항 10kΩ |
11개 |
| 1206 SMD 저항 330Ω |
5개 |
| 40핀 헤더 수/암 |
각 1개, 2개 |
| DIP 스위치 2회로 |
1개 |
| 택트 스위치 12mm |
1개 |
| 1206 SMD 커패시터 0.1uF |
3개 |
| 볼 캐스터 3/8인치 |
1개 |
| RD-34 휠 |
2개 |
| 14500 3.7V 리튬이온 배터리 |
2개 |
| AA 배터리 홀더 x2 |
1개 |
필요한 도구
- 납땜 인두
- 무연 납
- 확대경 포함 헬핑 핸드
- 멀티툴/드라이버
앱 및 온라인 서비스
프로젝트 개요
두 번째 라인트레이서 로봇(V4)입니다. 이전 버전과 달리 EasyEDA로 PCB 직접 설계했으며, PCB 자체가 로봇 샤시 역할을 합니다. JLCPCB에서 제작 의뢰했는데 품질과 배송 속도 모두 훌륭했습니다.
주요 특징
- 8개 CNY70 센서 아날로그 입력(A0~A7)으로 읽기
- 캘리브레이션 알고리즘: 흰색=0, 검은색=1000으로 정규화
- 위치 계산: 0(왼쪽 끝) ~ 7000(오른쪽 끝)
- PID 제어(Full PID): 비례/적분/미분 보정으로 부드러운 주행
- 라인 상실 복구: 마지막 감지된 센서 위치 기억해 복구 로직에 활용
- 최대 소비 전류 200mA
개발 과정
- MX1508 모터 드라이버 단독 테스트
- 8개 CNY70 센서 보정 및 위치 계산 알고리즘 검증
- 95% 조립 상태에서 트랙 주행 테스트
- JLCPCB 최종 버전 PCB 수령 및 언박싱
- 완전 조립 후 코드 로드 모드, 센서 테스트, 트랙 주행 최종 검증
- Webots 시뮬레이터로 가상 환경 테스트 병행
PCB 설계 하이라이트
- 배터리 중앙 배치로 회전 진동 최소화 (1차 버전은 편심 배치로 진동 심했음)
- SMD 부품 위주로 저중심, 경량화
- 모터 드라이버, 센서, MCU, 전원 회로 일체형
코드
전체 코드는 GitHub 저장소에서 확인 가능합니다:
Speed-Line-Follower-Robot GitHub
주요 알고리즘: PID 제어, 센서 캘리브레이션, 위치 추정, 모터 PWM 제어
회로도
PCB 설계 파일(EasyEDA) 및 거버 파일은 GitHub 저장소 참조
제작 팁
- SMD 부품 납땜 시 헬핑 핸드와 확대경 필수
- CNY70 센서 높이/각도 조정이 캘리브레이션 품질에 큰 영향
- PID 게인 튜닝은 실제 트랙에서 시행착오로 최적값 탐색
- 배터리 홀더 접점 불량 주의 (스프링 장력 확인)