출처: 고경철 교수님 블로그
(http://blog.joins.com/media/folderListSlide.asp?uid=kckohkoh&folder=207&list_id=13258356)
<< 컵배달 로봇 개요>>
1. 흰색바탕에 검은 테이프로 직선 주로 트랙을 만듭니다.
2. 스타트 라인과 엔드라인도 만듭니다.
3. 로봇은 스타트라인에 놓고 라인 중간 중간에는 여러개의 종이컵을 놓습니다.
4. 로봇을 리셋버튼을 눌러 출발시킵니다.
5. 트랙을 따라가다 컵을 감지하면 정지하고 컵을 집습니다.
6. 180도 회전하여 스타트 라인에 되돌아옵니다.
7. 스타트라인에 컵을 내려놓습니다.(두번째이상의 컵은 기존 컵위에 쌓습니다)
8. 다시 180도 회전하여 단계5를 반복합니다.(컵을 발견하지 못하고, 엔드라인에 도착하면 종료)
주의사항: 단계7에서 기존컵을 쓰러뜨리면 실격입니다.
평 가: 가장 많은 컵을 쓰러뜨리지 않고 쌓는 컵의 갯수(40), 그리고 컵을 집는 구조의 독창성(30), 발표(30)로 합니다.
---------------------------------------------------------------------------------------------------------------------
오늘 수업할 내용
1) 서보모터 동작하기
2) 집게손 만들기
3) 집게 손목 테스트 하기
---------------------------------------------------------------------------------------------------------------------
1) 서보모터 동작하기 (
18ServoControl.zip )

서보모터는 회전각으로 제어되는 모터입니다. 따라서 명령값(30~300)을 주면, 기준각도를 중심으로, 30도에서 330도까지 움직입니다.
실행하면 다음과 같은 메뉴가 나오는데 j와 k를 눌러 테스트를 해본다.
If type 'j', then Ext Servo1 will be controlled!
If type 'k', then Ext Servo1 will be controlled!
Test CM-100 with Servo Module. Connect Servo on Port 3. Type position(30~300)=___
여기서 30에서 330 사이의 값을 입력한다. (현재위치를 고려하여, 절대편차가 30도 이상이도록 명령값을 주어야 한다. )

---------------------------------------------------------------------------------------------------------------------
2) 집게손 만들기




---------------------------------------------------------------------------------------------------------------------
3) 집게 손 테스트 (
FinalProject (2).zip)
다음 그림에서다시 CatchUpIt()함수와 DownInt()의 내용을 살펴보면, ServoControl()이란 함수를 호출하여, 순차적으로 집게와 손목의 위치의 명력각도값을 지령하는 것을 볼 수 있습니다.
#define CLOSE 140 // 손 잡는 위치 값
#define OPEN 30 // 손 여는 위치 값
#define UP 180 // 팔 올리는 위치 값
#define DOWN 260 // 팔 내리는 위치값

---------------------------------------------------------------------------------------------------------------------
If type 'i', then IR data will be indicated!
If type 'c', then robot will grip the cup and raise it!
If type 'd', then robot will down the cup and release it!
If type 'l', then robot will turn to left!
If type 'r', then robot will turn to right!
If type 'f', then robot will go forward!
If type 'b', then robot will go backward!
If type 't', then Now, line tracing mode!
'c'키를 치면 손목을 내리고, 집게로 컵을 잡고, 다시 손목을 들어 올리는 동작을 테스트하고,
'd'키를 치면 컵을 잡은 손목을 내리고, 집게를 벌려 컵을 놓고, 다시 손목을 들어올리는 동작을 테스트하도록 합니다.
't'를 누르면 정지 라인을 만나거나 가운데 IR센서에 의해 컵이 있을 경우 멈추고 180도 회전을 한다.