소개글
졸업 작품으로 라인트레이서를 만들었었는데 최종 보고서 입니다. 하드웨어적인 부분에 대한 설명에서부터 알고리즘, 전체 프로그램까지 모두 들어있어요~ 도움이 되실꺼에요^^편집도 깔끔하게 잘되어있어요.
목차
1. abstract2. 서론
3. related work
4. Implremention
-하드웨어
-system Architecture
-센서부
-구동부
-제어부
5.experience
6.결론
7.레퍼런스
8.appendix
9.전체프로그래밍
본문내용
이건 그냥 서론이고 본론 부분에선 그림과 순서도 등이 포함되어 내용이 자세히 있답니다^^1. 서론
(1) 프로젝트의 필요성
라인 트레이서는 가장 기초적인 로봇중의 하나이지만 MCU의
다양한 기능들을 공부하고 실습해보기에 좋다고 생각해서 선택하였습니다. 전자전기 공학과의 학생이지만 하드웨어와 소프트웨어를 따로 생각하게 되고 서로 어떻게 연결이 되는지 잘 알지 못했습니다. 또 다룰 줄 아는 프로그램도 수업 시간에 배운 매틀랩과 C가 전부였기 때문에 실질적으로는 코딩을 잘 할 줄 몰랐습니다. 그래서 이번 작품을 하면서 프로그램 공부도 좀 더 하고 하드웨어와 소프트웨어를 집적 다루어 보면서 어떻게 실제적으로 이론이 적용되는지를 배우고 싶어서 이 과제를 선택하게 되었습니다.
(2) 프로젝트 목표
▲ 우선 주행 기록에서 프로그램 측면에서 다음과 같은 사항이 고려될 수 있다.
- 빠른 직선 가속 및 직선 고속 주행
- 정확한 탐색 주행 능력
- 정확한 곡선 보정 능력
- 안정된 곡선 주행 능력
▲ 그 외 다음과 같은 사항이 고려될 수 있다.
- 프로세서의 빠른 인터럽트 처리 루틴
(3) 프로젝트 전체 overview
개념적 내용을 살펴보면 트레이서가 바닥의 LINE를 똑바로 쫓아가기 위하여 "인식"이라는 개념이 필요하다. 인식된 결과를 가지고 모터의 속도를 제어하는 과정에서 제작시 로봇제작의 기본 및 프로그램의 기초가 되는 지식과 감각을 습득 할 수 있다.
우선은 바닥에 그려진 선을 감지하기 위하여 센서가 필요하고, 선은 어둡고 밝은 명암 차로 인하여 구분이 되기 때문에 거기에 사용할 센서는 광센서가 필요하다. 광센서는 기본적으로 빛을 쏘고, 그 빛이 반사되어 오는 양을 감지하여 라인과 바닥의 명암을 구분하게 된다. 또한 라인트레이서가 움직이기 위해서는 모터가 있어야 하며 방향을 전환하기 위하여 2개의 step 모터가 필요하다. 그리고 감지된 센서의 데이터를 모터의 속도 차로 바꾸어주는 회로가 라인트레이서의 핵심적인 동작기술이라고 할 수 있다.
라인트레이서의 대략적인 구조를 정리하면 다음과 같다
바닥감지 → 구동에 유용한 정보 → CPU에서의 처리 → 모터회전
▲ 제어부
바닥을 감지하여 유용한 값을 취하여 ATmega128(CPU과ROM)에서 연산을 하여 모터를 구동한다. 센서에서 감지한 DATA를 ATmega128(CPU)에서 처리하여 모터를 좌, 우측으로 회전시켜 선의 중앙으로 구동할 수 있도록 한다.
▲ 센서부
라인 트레이서의 가장 핵심은 라인의 검출을 담당하는 센서부이다.
바닥감지 센서는 적외선 센서를 사용하며 동작원리는 빛을 쏘아서반사되는 빛의 양을 감지하여 검은색(또는 흰색)인 선과 흰색(또는 검은색)인 바닥을 구별한다. 센서부는 빛을 쏘는 발광부(EL-7L)와 그 빛이 반사 되여 돌아오는 양을 감지하는 수광부(ST-7L)로 구성된다.
▲ 모터 구동부
모터 구동 부는 CPU로부터 모터를 움직이라는 명령을 받아모터를 구동하는 부분이다.모터 또한 구동 시 많은 noise를 발생한다. 따라서 이런noise를 최소화하기 위해 CPU부 전원과 motor의 전원을 decoupling시킨다.
참고 자료
[1] C언어로 배우는 AVR [박성열, 이보희 공저, 다다미디어][2] 8051을 이용한 센서응용공학 [정기철, 김응석, 김도우 공저, 복두출판사]
[3] ATmega128 이론 및 실험 [김종부/서종완/안비오/3ip연구소 공저, 복두출판사]
[4] ATmega128 Data sheet
[5] 당근이의 AVR 갖고 놀기 - http://cafe.naver.com/carroty