33
ROBOTC ROBOTC 활활활활 활활활활 EASY EASY T T ECH ECH R & D R & D

ROBOTC 활용하기

  • Upload
    afi

  • View
    289

  • Download
    1

Embed Size (px)

DESCRIPTION

ROBOTC 활용하기. EASY T ECH R & D. - Index -. • 제 1 장 NXT 및 ROBOTC 소개 • 제 2 장 ROBOTC 기초 프로그래밍 제 3 장 범퍼로봇 (Bumper Robot) 제 4 장 라인로봇 (Line Robot) 제 5 장 회피로봇 (Avoid Robot) 제 6 장 엔코더로봇 (Encoder Robot). - 제 1 장 NXT 및 ROBOTC 소개 -. - NXT -. - PowerPoint PPT Presentation

Citation preview

ROBOTC ROBOTC 활용하기 활용하기

EASYEASYTTECHECHR & D R & D

- Index - - Index -

• 제 1 장 NXT 및 ROBOTC 소개

• 제 2 장 ROBOTC 기초 프로그래밍

• 제 3 장 범퍼로봇 (Bumper Robot)

• 제 4 장 라인로봇 (Line Robot)

• 제 5 장 회피로봇 (Avoid Robot)

• 제 6 장 엔코더로봇 (Encoder Robot)

- - 제 제 11 장 장 NXT NXT 및 및 ROBOTC ROBOTC 소개소개 - -

• NXT 는 LEGO Mindstorms 로봇의 핵심 부분

• 프로그래밍이 가능한 인텔리전트 브릭

• 주변환경을 인식하고 , 인터페이스 할 수 있는 다양한 센서와 전동기를 연결하여 데이터를 수집 및 테스트 할 수 있는 최고의 장비

- NXT - - NXT -

• RCX 에 이은 LEGO 사의 차세대 로봇 컨트롤러

• 32bit ARM7 Processor / 256k Flash / 64k Ram

• 입력포트 4 / 출력포트 3

• USB / Bluetooth 통신 지원

• 60*100 Graphic LCD / 스피커 / 충전식 배터리 지원

• 엔코더 내장 모터 / 초음파 / 사운드 / 터치 / 빛 센서

- NXT- NXT - -

충전식리튬폴리머배터리

터치 센서

사운드 센서

라이트 센서초음파 센서

엔코더 내장형서보 모터

그래픽 LCD 및블루투스 무선통신 내장USB 2.0 지원

기존 LEGO RCX 용디바이스 호환

- - 사용할 수 있는 사용할 수 있는 Sensor/Actuator - Sensor/Actuator -

Output

Input

LCD

USB

Speaker

 

꺼진 상태 : 전원 켜기켜진 상태 : 가운데 메뉴 실행

좌측의 메뉴로 넘어감

우측의 메뉴로 넘어감

취소 / 최상위 메뉴에서 끄기

- NXT- NXT 의 외형 의 외형 --

- ROBOTC - ROBOTC 소개 소개 - -

• RobotC 는 카네기멜론 대학에 서 만든 ROBOT 전용 프로그래 밍언어로 , LEGO Mindstorms RCX 와 NXT 를 지원

• C 언어를 기반으로 하여 C 언어 의 문법 체계를 90% 동일

• C 언어를 공부한 학생과 이제 시 작하는 학생들 모두 쉽게 배울 수 있음

- Quick Start Guide-- Quick Start Guide-

• 홈페이지 주소

http://www.robotc.net/support/nxt/

- ROBOTC - ROBOTC 동영상 동영상 --

- ROBOTC - ROBOTC 설치하기 설치하기 --

http://w w w .robotc.net에 접속하여 RobotC for Lego 프로그램과 드라이버를 download 받는다 .

- ROBOTC - ROBOTC 실행하기 실행하기 --

• 바탕화면의 ICON 을 클릭하여 실행

• Activate ROBOTC for Mindstorms = 정품 인증 모드 ( 시리얼 키를 입력 후 실행 )

• Evaluate ROBOTC for Mindstorms = 30 일 평가판 모드 ( 시리얼 키 없이 실행 )

- ROBOTC - ROBOTC 정품인증정품인증 --

- ROBOTC Firmware download -- ROBOTC Firmware download -

• Download Firmware : 펌웨어 다운로드 기능을 이용하여 확장자가 “ .rfw”인 파일을 다운로드 한다 . 다운로드가 완료되면 ” Firmware download completed” 라는 메시지가 나타난다 .

• 최신 Firmware Version : NXT_0955.rfw• NXT Brick 이름 재설정 : Rename NXT 버튼을 이용하여 각 조 이름으로 변경

- - 전체적인전체적인 프로그램 사용법 프로그램 사용법 --

• [File]-[New] 클릭 한 후 보기와 같이 소스프로그램을 입력• [Robot]-[Download Program] 을 클릭 , 프로그램을 컴파일하고 실행파일을 NXT 에 다운로드• Program Debug 윈도우에서 Start 버튼을 클릭하여 프로그램을 실행

• Port A,C 에 연결되어 있는 모터를 50 의 파워로 1 초간 전진하는 프로그램

- ROBOTC - ROBOTC 메뉴메뉴 [File] -[File] -

• New File (Ctrl + N) : 새로운 문서 작성

• Open and Compile : 불러오기 /컴파일을 동시 실행

• Open Sample Program : 샘플 프로그램을 불러오기

• Save(Ctrl+S) : 작성된 소스를 RobotC 파일로 저장

• Save As : 다른 이름으로 저장

• Print(Ctrl+P) : 작성된 프로그램을 인쇄

• Print Preview : 인쇄한 프로그램 미리보기

• Page Setup : 현재 작성된 프로그램의 출력페이지를 설정

- ROBOTC - ROBOTC 메뉴메뉴 [Edit] -[Edit] -

• Undo Typing (Alt+Backspace/Ctrl+z) : 실행취소 , 되돌리기 기능

• Can’t Redo (Ctrl+Z) : 실행 취소된 것을 되돌리기 기능

• Cut (Shift+Delete) : 잘라내기

• Copy (Ctrl+C) : 복제하기

• Paste (Ctrl+V) : 붙여넣기

- ROBOTC - ROBOTC 메뉴메뉴 [View] -[View] -

• Source : 현재 사용 중인 프로그램

• Function Explorer View : 함수 도움말 창 실행

• Compile Errors View : Error 내용 창

• Font Increase (Ctrl +‘ +’) : 폰트 사이즈 증가

• Font Decrease (Ctrl +‘ -’) : 폰트 사이즈 감소

- ROBOTC - ROBOTC 메뉴메뉴 [Robot] -[Robot] -

• Download Program(F5) : 소스코드 컴파일 후 NXT 로봇으로 프로그램 다운로드

• Compile Program(F7) : 소스코드 컴파일 ( 프로그램 다운로드 안함 )

• Debugger : 프로그램의 실행 또는 단계적인 실행을 할 수 있다 . Refresh Rate 를 Continuous 를 클릭하면 NXT 에 있는 모터 및 센서의 값들을 계속적인 모니터링이 가능하다 .

- ROBOTC - ROBOTC 메뉴메뉴 [Robot]-3 -[Robot]-3 -

• Motors and Sensors Setup : 모터와 센서를 어떤 포트에 어떤 별명 (Alias) 을 사용할 지를 결정하기 위해 Motors and Sensors Setup 을 이용한다 . 프로그램 작성시 모터 및 센서에 대한 변수 이름을 입력하면 코드를 자동으로 생성한다 .

- ROBOTC - ROBOTC 프로그램 규칙프로그램 규칙 - -

▪ ROBOTC 는 표준 C 언어 프로그램 규칙을 따르는 text 기반의 프로그램 언어이다 .

▪ 사용자가 프로그램을 작성하면서 파랑색이나 보라색으로 글씨가나오면 ROBOTC 가 그 단어를 매우 중요한 단어로 인식한다는 뜻이고 ROBOTC 가 인 식하는 키워드 (keyword) 는 자동으로 색상이 결정되어 표시된다 .

▪ ROBOTC 컴파일러는 대문자와 소문자를 엄격하게 구분한다 .

▪ 프로그램의 실행 순서는 1번 줄부터 순차적으로 실행된다 .

▪ 스페이스 (space), 탭 (tab) 은 프로그램의 실행에 영향을 주지 않지만 프로그램 의 가독성 ( 읽어 낼 수 있는 정도 ) 을 높이기 위해서 적절한 사용을 해야 한다 .

▪ 세미콜론 (‘;’) 은 모든 ROBOTC 프로그램 문장의 끝을 알려준다 .

▪ 프로그램을 작성할 때는 반드시 적어도 하나의 main() 함수를 갖고 있어야 한다 . Task main() 함수 안에 실행하고자 하는 프로그램을 기록하면 된다

- - 변수 선언 유의 사항 변수 선언 유의 사항 - -

변수 선언 시 유의 사항

• 대문자 (A~Z), 소문자 (a~z), 숫자 (0~9), 밑줄문자‘ _ ’ 를 사용한다 .

• 변수명은 숫자로 시작할 수 없다 .

• 변수명은 기본 예약어 또는 함수명을 사용할 수 없다 .

• 변수명은 대 · 소문자를 다르게 구분한다 .

• 변수명은 한글로 사용할 수 없다 .

- ROBOTC - ROBOTC 자료형자료형 (( 데이터형데이터형 )) - -

• RobotC 의 자료형은 프로그램에서 처리하고자 하는 자료의 형태를 의미

• 자료형은 NXT 메로리 영역의 크기를 결정

- - 화면 출력 서식 화면 출력 서식 - -

- ROBOTC - ROBOTC 자료형자료형 (( 정수형정수형 )) - -

• 정수형 변수정수형 변수는 RobotC 프로그램 작성 중 가장 많이 사용하는 데이터형으로서 정수 형태의 자료를 표현하기에 적당하다 . 선언 방법은 int 라는 키워드 (keyword) 를 작성하고 뒤에 변수명을 사용하면 된다 . %d 는 10 진수 출력을 의미한다 .

• nxtDisplayTextLine(LCD 위치 , “ 출력 내용” , 출력 변수명 ) : NXT LCD 창에 지정된 형식으로 변수 값을 출력 (LCD 의 글 위치는 0~7까지 )

• PlaySound( 내장 사운드 명 ) : 미리 정해져 있는 내장 사운드를 재생

- ROBOTC - ROBOTC 자료형자료형 (( 실수형실수형 )) - -

• 실수형 변수실수형 변수는 아주 큰 수나 아주 작은 수를 표현해야 하거나 , 소수점을 포함하는 실수 자료를 표현 할 때 사용된다 . 실수형 변수를 출력할 때“ %f” 를 사용한다 . 특별히 소수점 아래에 자릿 수를 지정하고 싶을 때는 위의 예처럼“ %.2f”처럼 표현하고 이것은 소수 셋째 자리에서 반올림하여 소수점 2 자리로 표현하라는 것이다 .

- ROBOTC - ROBOTC 자료형자료형 (( 문자형문자형 )) - -

• 문자형 변수RobotC 에서 문자형 변수는 8비트의 영역을 차지하고 있다 . 주로 ASCII문자를 표현하기 위해서 사용한다 .위의 예제는 문자 ‘ A’ 에 해당하는 아스키 코드 값을 출력하고 , x 변수에 해당하는 문자를 출력하는 프로그램이며 , 여기서“ %d” 정수형 변수의 값을 출력하고“ %c” 는 문자를 표현하는데 사용한다 .

- ROBOTC - ROBOTC 자료형자료형 (( 지역변수지역변수 )) - -

• 지역변수 (Local Variables)함수의 내부에 정의된 변수이다 . 지역 변수들은 함수의 실행이 시작될 때 메모리에 만들어지고 , 함수가 종료될 때 메모리로부터 소멸된다 .

- ROBOTC - ROBOTC 자료형자료형 (( 전역변수전역변수 )) - -

• 전역변수 (Global Variables)전역 변수는 함수의 밖에 정의된 변수이다 . 전역 변수는 지역 변수와는 달리 프로그램 내 모든 함수들이 이것을 사용할 수 있다 . 함수들이 공유하는 데이터가 필요하다면 전역 변수를 만들어 사용하면 된다 .

- ROBOTC - ROBOTC 연산자연산자 (( 관계연산자관계연산자 )) - -

- ROBOTC - ROBOTC 연산자연산자 (( 논리연산자논리연산자 )) - -

- ROBOTC - ROBOTC 연산자연산자 (( 논리연산자논리연산자 )-2)-2 - - • AND

• NOT

• 조건 값이 참이 아니므로 실행되지 않는다 .

• 11번 모터가 0.1 초 동안 회전한다 .

- ROBOTC - ROBOTC 연산자연산자 (( 논리연산자논리연산자 )-3)-3 - -