< 프로그램매뉴얼 > REVISION 1.0 (07.03.06) - 차례 1. 메인보드사용설명 2. 따르미 Pro 함수설명 3. 응용프로그램 4. 프로그램다운로드
1. 따르미 Pro 메인보드설명 센서조절부 왼쪽센서컨넥터 오른쪽센서컨넥터 왼쪽센서컨넥터 오른쪽센서컨넥터 왼쪽모터 모터드라이버 오른쪽모터 USB 다운로더 리셋스위치 전원컨넥터 전원스위치 스타트스위치
따르미Pro는로봇이교차로마다어떤동작을할것인지를사용자가직접프로그램하는프로그래밍형라인트레이서이다. 아래의프로그램예시와같이따르미Pro는여러가지함수를사용을하여주행프로그램을작성한다. < 프로그램예시 >
2. 따르미 Pro 함수설명 (1) AUTO_TRACE2( 방향, 교차로형태, 브레이크, 속도 ); 1 2 3 4 기능 : 따르미 Pro 가 4 속도로주행을하다가 2 교차로를만나면 3 의브레이크를걸고, 1 방향으로이동한다. 예시 > AUTO_TRACE2(L,T,200,800); ===> 800 의속도로가다가 T 형태의교차로를만나면 200 의브레이크를걸고, L 방향으로이동한다. 속도의범위 0 ~ 1023 사이의숫자 브레이크 0 ~ 1023 사이의숫자 ( 숫자가커질수록브레이크를잡는강도가커짐 ) 방향이직진 ( G ) 브레이크를 0 을넣는다. ( 값을넣어도동작하지않는다.) 방향 L : 좌회전 R : 우회전 G : 직진 S : 멈춤 U : U-TURN
교차로의형태 교차로의형태는따르미 PRO 가진행하는방향을기준으로교차로의형태를 결정진다. T 교차로 A 교차로 E 교차로
< 교차로예시프로그램 > 교차로형태 교차로예시 1 교차로예시 2 교차로예시 3 T AUTO_TRACE2(R,T,150,830); AUTO_TRACE2(L,T,200,850); AUTO_TRACE2(G,T,0,1023); 예시 830 의속도로주행하다가 T 자교차로를만나면브레이크를 850 의속도로주행하다가 T 자교차로를만나면브레이크를 1023 의속도로행하다가 T 자교차로를만나면직진. 150 으로걸고우회전 200 으로걸고좌회전 A AUTO_TRACE2(R,A,200,850); AUTO_TRACE2(R,A,150,900); AUTO_TRACE2(G,A,0,950); 예시 850 의속도로주행하다가 A 자교차로를만나면브레이크를 900 의속도로주행하다가 A 자교차로를만나면브레이크를 950 의속도로주행하다가 A 자교차로를만나면직진 200 으로걸고우회전 150 으로걸고우회전 E AUTO_TRACE2(L,E,150,900); AUTO_TRACE2(L,E,100,800); AUTO_TRACE2(E,G,200,970); 예시 900 의속도로주행하다가 E 자교차로를만나면브레이크를 800 의속도로주행하다가 E 자교차로를만나면브레이크를 970 의속도로주행하다가 E 자교차로를만나면직진 150 으로걸고좌회전 100 으로걸고좌회전
(2) TURN( 방향, 횟수, 속도 ); 1 2 3 기능 : 3 속도로 2의횟수만큼 1 방향으로회전한다. 예시 > TURN(L,1,900); ===> 900 의속도로 1번왼쪽으로회전한다. 속도의범위 방향 횟수 0 ~ 1023 사이의숫자 L : 좌회전 R : 우회전 1 : 한번 2 : 두번 횟수에서 1, 2 는 S1 또는 S2 센서가검은색라인을한번만나면 1, 두번만나면 2 를나타내는것이다. 횟수를조정하여좌, 우회전을할수있고, U-TURN 을할수도있다. <TURN 예시프로그램 > 예제프로그램동작 1 동작 2 TURN(L,1,900); 900 의속도로왼쪽으로 한번회전함. TURN(R,2,950); 950 의속도로오른쪽으로 두번회전함 위그림과같이 TURN 의횟수를조정하여 U-TURN 을할수있다.
(3) BUZZER( 횟수, 시간 ); LED( 횟수, 시간 ); 1 2 기능 : 2의시간마다 1 횟수만큼 BUZZER 를울림 : 2의시간마다 1 횟수만큼 LED 를점등함시간의단위는 msec (1/1000 초 ) (BUZZER 와 LED 가작동할때는따르미 Pro 가멈춘상태에서작동됩니다.) 예시 > BUZZER(2,30); ===> 30ms (0.03 초 ) 에한번씩울려총 2회부저를울림 LED(2,100); ===> 100ms (0.1 초 ) 에한번씩 LED 를점등하여총 2 회 LED 를점등함. BUZZER 와 LED 메인보드에결합하기. BUZZER, LED 를메인보드에위그림과같이결합한다. 메인보드에 + 에하얀색선이오도록하여결합한다.
3. 응용프로그램 (1) #define 함수사용하기 프로그램아래쪽을보면 AUTO_TRACE2(R,T,LOW,s); 를볼수있다. 브레이크자리에숫자가아닌 LOW 속도자리에마찬가지로 s 가있다. 위쪽에속도조절함수를보면 HIGH 500 MID 400 LOW 150 s 950 이것은 #define 라는함수를사용하여자주쓰는숫자들은문자로바꾸어서편하게사용하도록해놓은것이다. 같은숫자를계속쓸필요없이문자로한번써놓으면, 위에 #define 되어있는곳의숫자만바꾸어주면속도가변하게되는것이다. 지금은 LOW 값이 150 으로되어있지만위에 #define 옆에있는 LOW 옆의숫자를 400 으로바꾸어주면숫자대신 LOW 를브레이크값자리에쓴곳은브레이크가 400 으로바뀌게되는것이다. 이와같은방법으로, 다른함수를만들어써도이와같은기능을한다. 예시 > #define F 300 으로위쪽속도조절함수에써놓은후, 아래쪽주행프로그램에서 AUTO_TRACE2(R,T,F,s) 라고쓴다면, F 가 300, s 가 950 이므로 s(950) 의속도로주행하다가 T 자교차로를만나면 F(300) 만큼브레이크를잡고, 우회전하라. 이렇게바뀌게되는것이다.
(2) 주행중 U-TURN 하기 왼쪽프로그램은예시프로그램중일부분이다. 네모안에보면 TURN(L,2,s); 이라는명령어가 3 개보인다. 이명령어의바로위를보면 AUTO_TRACE2(G,T,200,800); 가있다. 직진명령후에 TURN 명령어가있어, 동작중에멈추지않고 U-TURN 을할수있는것이다. (TURN 명령어는원래 1,2 회회전하는명령어이지만, T 자교차로에서 2 회회전을줌으로써 U-TURN 의기능을하게한것이다. 교차로형태가틀려진다면, 명령법을다르게해보아야할것이다.) 제일마지막에있는 TURN 명령어의위에는아래와같은명령어가있다. AUTO_TRACE2(S,T,LOW,800); 이번의경우는 T 자교차로에서한번멈춘후 TURN 을하였다. 이렇게해도결과는마찬가지이다. TURN 하는방법은이와같이여러가지가있다. 주행중 BUZZER 와 LED 를켜는것도마찬가지방법으로하면된다.
(3) 그외함수사용하기 자동부저모드 연습주행시자신이프로그램한대로따르미 Pro 가교차로를정확하게가는지편히알수있게할수있다. AUTO_BUZZER = 1; 이면부저를연결해놓은상태에서주행을하게되면, 프로그램한대로교차로를지나치면, 교차로를지날때마다부저소리가울려, 프로그램한대로따르미 Pro 가길을가는지쉽게알수있다. AUTO_BUZZER = 0; 이면교차로마다자동으로부저가울리지않는다. 이상태에서는 BUZZER 함수를이용하여부저를작동시켜야한다. 그럼으로 BUZZER 를미션이있는경기일경우, AUTO_BUZZER = 0; 으로해놓고경기를해야한다.
숨겨진함수사용방법 초록색동그라미안에는 S1, S2, S3, S4, S5, S6, S7, S8 의하얀색글자가써있다. 이것은각센서의이름이며, 그바로아래센서가달려있다. 이센서위치에검은색선이오게되면노란색동그라미에있는센서와같은이름을가진곳에서불이들어오게된다. 예를들어초록색동그라미안의 S2 라고써있는곳아래에검은색선이오게되면노란색동그라미안에있는 S2 라고써있는곳에붉은색으로불이들어오게된다. 이것으로센서가검은색선을감지했는지안했는지를알수있다. 숨겨진함수를사용할때이것을알고하면좀더쉽게할수있다. DC 모터속도 : 길따라가기속도 : 0~1023-1023~-1 역회전 0 정지 1~1023 정회전 TRACE2_UNTIL_SENSE(A,B); TRACE2_UNTIL_TIME(A,B); DC_MOVE_UNTIL_SENSE(A,B,C); DC_MOVE_UNTIL_TIME(A,B,C); (1mesc == 1/1000 초 ) A 센서가검은색을만날때까지 B 의속도로길따라가기 A 시간 (msec) 동안 B 의속도로길따라가기 A 센서가검은색을만날때까지왼쪽모터는 B, 오른쪽모터는 C 의속도로작동 A 시간 (msec) 동안왼쪽모터는 B, 오른쪽모터는 C 의속도로작동
논리연산자설명 논리연산자예시기능 && S1 && S2 S1 센서와 S2 센서가동시에검은선을만나면 S3 S4 S3 센서와 S4 센서둘중하나라도검은선을만나면!!S7 S7 센서가검은선을벗어나면 예시 > TRACE2_UNTIL_SENSE(S8,1023); 8 번센서가검은색을만날때까지 1023 의속도로길따라가기 TRACE2_UNTIL_SENSE(S6&&S8,1023); 6 번센서와 8 번센서가동시에검은색을만날때까지 1023 의속도로길따라가기 TRACE2_UNTIL_SENSE((S1 S2 S3 S4)&&S6&&S8,1023); 1~4 번센서중한개라도검은색을만나면서 6 번센서, 8 번센서가동시에검은색을만날때까지 1023 의속도로길따라가기 DC_MOVE_UNTIL_SENSE(!S1,-1023,1023); 1 번센서가검은색위에있는동안양쪽모터가 1023 의속도로제자리좌회전 DC_MOVE_UNTIL_SENSE(S1,-1023,1023); 1 번센서가검은색을만날때까지왼쪽모터는 1023 의속도로, 오른쪽모터는 1023 의속도로제자리좌회전 DC_MOVE_UNTIL_SENSE(!(S1 S2 S3 S4 S5 S6 S7 S8),1023,1023); 모든센서가라인을벗어날때까지왼쪽모터는 1023 의속도로, 오른쪽모터는 1023 의속도로전진 ( 방향이약간틀어질수있음 ) DC_MOVE_UNTIL_SENSE(S1 S2 S3 S4 S5 S6 S7 S8,1023,1023); 한개의센서라도라인을만날때까지왼쪽모터는 1023 의속도로, 오른쪽모터는 1023 의속도로전진 ( 방향이약간틀어질수있음 )
4. 프로그램다운로드하기 - USB DOWN LOADER 와메인보드연결 1. USB DOWN LOADER 와 ROBOT 을 1O PIN FLAT CABLE 로연결한다. 2. ROBOT 의전원을켰을때 LED 상태를반드시확인한다. (BUSY 깜빡임 BUSY READY 켜짐 BUSY 꺼짐 ) 따르미 Pro 메인보드와연결하기 다운로드보드의스위치 3 개모두 ISP 로설정한다.
- 프로그램실행 따르미 Pro 구매시 CD 따르미 Pro 기본팩안의따르미 Pro source 폴더에아래와같은 파일이있다. CD 가없다면 http://www.skyschool.net/main.html 의 고객지원센터 -> 경시대회용로봇 -> 따르미 Pro 에서다운받아사용하면된다. 압축파일을컴퓨터에복사한후, 압축을풀면다음과같이파일이생성된다. (TarmiPro_2007[ 일반형 ] 은추가팩폴더안에들어있음 ) TarmiPro_2007[ 일반형 ] : 기본모델용프로그램 (FASTMODEL 에적용되는프로그램 ) TarmiPro_2007[ 과탐용 ] : 2007 년과학탐구대회적용프로그램 (SLOWMODEL 에적용되는 프로그램 ) 폴더안의파일
AVR Studio 4 가설치된상태에서배포된 4 개의파일중벌레모양의 아이콘 ( main.aps ) 을더블클릭하면다음과같은창이나오게 되는데, 이것이 AVR Studio4 가실행된모습이다. 주행프로그램작성하는곳 이미작성되어진프로그램소스에오류가없는지확인하고, 또한따르미 Pro 에프로그램을다운로딩하기위하여 HEX 파일을생성해야한다. 그러기위해선단축키로키보드의 F7 번을누르면위와같이창이뜨게된다. 이과정을컴파일이라고한다.
컴파일과정 1. 프로그램을작성한다. 2. 작성된프로그램을저장한다. ( 저장버튼은메뉴위쪽에디스켓모양으로되어있음 ) 3. 마우스커서를프로그램이작성된곳에한번클릭을해놓는다. 4. 그다음 F7 버튼을누른다. F7 을누를때는프로그램이되어있는창에마우스를한번클릭한후에컴파일을하여야한다. 작성한프로그램에에러가없다면위의네모칸에있는메시지와같은메시지를볼수있을것이다. F7 을눌러소스를컴파일한후, 처음에배포된파일의압축을푼폴더에가서 default 폴더를열어보면, 전에없었던여러가지파일을볼수있을것이다. TARMI_Pro.hex 파일이 F7 을눌러서컴파일을한후에생성된파일로써, 실제로따르미 Pro 에다운로더될파일이다.
- 파일다운로드하기 ( 로봇의전원을켜고, 다운로더를연결한상태에서프로그램을다운로드 하여야한다.) 1. Tools -> Program AVR -> Connect 를선택한다. 2. Select AVR Programmer" 창이나타난다. 3. Platform -> STK500 or AVRISP 을선택한다. 4. Port : 사용자컴퓨터에서확인한 USB Serial Port 번호를선택한다. (USB DOWNLOADER 매뉴얼참고 )
5. Connect 를누른다. 6. STK500/AVRISP" 창이나타나면 취소 를누른다.
7. "AVRISP" 창이나타난다.. 8. "PROGRAM" 탭을선택한다. 1 : Device 에서옆에를클릭하여자신에게맞는 Device 를선택한다. 따르미 Pro 2007 : ATmega8535 2 : 따르미 Pro 에프로그램을다운로드할때사용된다.
- ISP Freq 설정하기 * ISP Freq 설정은새메인보드일경우반드시설정해야한다. * 한번이상사용한메인보드라도 ISP Freq" 부분은확인한다. 1. AVRISP 창에서 Board 탭을선택한다. 2. ISP Freq 에서 4.00KHz 를선택한후 Write 를클릭한다. ( 빨간색으로표시한부분 ) * 다음과같은메시지가나타나면 ISP Freq 설정이완료된것이다. Getting revisions.. HW: 0x0f, SW Major: 0x02, SW Minor: 0x01.. OK Getting oscillator parameters.. P=0x00, N=0x00, SD=0x00.. OK
- 퓨즈비트설정하기 * FUSE BIT 설정 은새메인보드일경우반드시설정해야한다. * 한번이상사용한메인보드라도 FUSE BIT" 부분은확인한다. AVRISP 창에서 Fuses 탭을선택하고, 다음의경우에따라서설정을한다. 따르미 Pro 메인보드 (ATmega8535L) 왼쪽은기본적으로설정되어있으며, 오른쪽의그림처럼제일아래쪽에있는것만 체크해주면된다 * 위에체크된것을제외한나머지는체크해제한후 Program 을누른다. * 다음과같은메시지가나타나면 "FUSE BIT" 설정이완료된것이다. Entering programming mode.. OK! Writing fuses.. 0xD1 0xFF.. OK! Reading fuses.. 0xD1, 0xFF.. OK! Fuse bits verification.. OK Leaving programming mode.. OK!
- 프로그램다운로드방법 * "ISP Freq" 와 FUSE BIT" 설정이완료되면 ROBOT 에프로그램을다운로드시킬준비가끝난것이다. 1. Flash 에서 를눌러 ROBOT 을동작시키기위해만들어놓았던 Hex FILE 을 불러온다. (Hex 파일은해당프로그램을실행시킨폴더에서 default 폴더안에있다.) 2. 을눌러메인보드로다운로드한다. * 다운로드가진행되는동안다운로더보드의 READY 에불이꺼지고 BUSY 가깜빡이다가, 다운로드가완료되면 BUSY 에불이꺼지고 READY 가켜진다. 3. AVRISP 창에다음과같은메시지가출력되면다운로드가완료된것이다. - Erasing device.. OK!! - Programming FLASH.. OK!! - Reading FLASH.. OK!! - FLASH contents is equal to file.. OK!! - Leaving programming mode.. OK!!