Recent Posts
printf("ho_tari\n");
Mini Project2 - Auto Car 본문
(Telechips) AI 시스템 반도체 SW 개발자 교육/ATmega128A mini Project
Mini Project2 - Auto Car
호타리 2025. 3. 24. 11:132025.03.20 ~ 2025.03.24
ATmega128A를 이용하여 자율주행차 (Auto Car) 구현 프로젝트 진행
🧩 프로젝트 개요
- MCU: ATMega128A
- 구성요소:
- 초음파 센서 3개 (좌/중앙/우)
- DC 모터 + L298N 드라이버
- 버튼 (자율주행 모드 전환)
- I2C LCD (상태표시)
- FND (모드 번호 표시)
- 부저 (장애물 경고)
- UART (블루투스 수신)
- 주요 기능:
- 수동 모드: 블루투스 명령으로 조종
- 자율 주행 모드: 초음파 센서 기반 장애물 회피
- LCD 및 FND를 통해 상태 및 모드 표시
🎮 모드 설명
1. 수동 모드
- Bluetooth(UART) 명령 수신:
- 'F', 'B', 'L', 'R', 'S' → 전진, 후진, 좌회전, 우회전, 정지
- LCD: Normal 표시
- FND: 현재 명령 번호 또는 누적된 실행 횟수 표시
- 사용 함수: manual_mode()
2. 자율 주행 모드
- 버튼을 눌러 모드 전환 (auto_mode_check())
- 초음파 거리 측정 주기적으로 수행
- LCD: Auto 상태 표시
- 사용 함수: auto_mode()
🚘 자율 주행 알고리즘
- 전방 위험 거리 이하일 경우:
- 후진 + 좌/우 회전으로 장애물 회피
- 충분히 열려있음:
- 정방향 빠른 주행
- 부분 장애물 감지:
- 느린 직진 또는 좌/우 회전
- 좌/우 모두 막힘:
- 후진 후 좌/우 중 넓은 방향으로 회전
조건동작
Center ≤ 40cm | 후진 + 회전 |
Center > 210cm & 좌/우 ≈ 넓음 | 정방향 |
좌/우 거리 차이 큼 | 넓은 쪽으로 회전 |
좌/우 모두 좁음 | 후진 + 회전 |
- 거리 임계값:
- CENTER_WARNING_RANGE = 250
- SIDE_WARNING_RANGE = 220
- CRITICAL_DISTANCE = 40
📡 초음파 센서 구성
센서 위치트리거에코인터럽트
좌측 | PA0 | PE4 | INT4 |
중앙 | PA1 | PE5 | INT5 |
우측 | PA2 | PE6 | INT6 |
- 타이머2 사용 (128분주)
- 거리 = TCNT2 * 128 / F_CPU * 1,000,000
🖥️ 인터페이스 구성
버튼
- PORTA.7: AUTO 모드 토글
- 상태 LED 제어 및 func_index 설정
FND
- PORTC, PORTF 연결
- init_fnd()로 초기화
- fnd_display(mode)로 0~4 상태 출력
LCD
- I2C 주소 0x27
- I2C_LCD_Normal() : 수동 모드
- I2C_LCD_Auto() : 자율 주행 모드
🔊 부가 기능
- 부저 (추정): Auto_siren() 호출 (정의는 누락됨)
- 시간 제어:
- TIMER0 → 1ms 간격 오버플로우 인터럽트
- 타이머 초기값 TCNT0 = 6 설정
- LCD 업데이트 주기: 1000ms 단위로 갱신
<프로젝트 정리 자료>
ATmega128A_AutoCarProject_박성호.pdf
1.37MB
<소스 코드>
<실행 결과>
자율 주행 영상
https://youtube.com/shorts/6Wx-I0pbpkk
FND & I2C LCD 영상
https://youtube.com/shorts/5h3yXWO0DD4
BUZZER & LED & BUTTON 영상
https://youtube.com/shorts/7KOlTIEEiLM
'(Telechips) AI 시스템 반도체 SW 개발자 교육 > ATmega128A mini Project' 카테고리의 다른 글
Mini Project1 - Washing Machine (0) | 2025.03.16 |
---|