350 likes | 1.14k Vues
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 -.
E N D
ROBOTC 활용하기 EASYTECH R & D
- Index - • • 제 1장 NXT 및 ROBOTC 소개 • • 제 2장ROBOTC 기초 프로그래밍 • 제 3장 범퍼로봇(Bumper Robot) • 제 4장 라인로봇(Line Robot) • 제 5장 회피로봇 (Avoid Robot) • 제 6장 엔코더로봇 (Encoder Robot)
- NXT - • NXT는 LEGO Mindstorms 로봇의 핵심 부분 • 프로그래밍이 가능한 인텔리전트 브릭 • 주변환경을 인식하고, 인터페이스 할 수 있는 • 다양한 센서와 전동기를 연결하여 데이터를 수집 • 및 테스트 할 수 있는 최고의 장비
RCX에 이은 LEGO사의 차세대 로봇 컨트롤러 32bit ARM7 Processor / 256k Flash / 64k Ram 입력포트 4 / 출력포트 3 USB / Bluetooth 통신 지원 60*100 Graphic LCD / 스피커 / 충전식 배터리 지원 엔코더 내장 모터 / 초음파 / 사운드 / 터치 / 빛 센서 - NXT-
기존 LEGO RCX용 디바이스 호환 엔코더 내장형 서보 모터 충전식 리튬폴리머 배터리 터치 센서 그래픽 LCD 및 블루투스 무선통신 내장 USB 2.0 지원 사운드 센서 초음파 센서 라이트 센서 - 사용할 수 있는 Sensor/Actuator -
Output USB LCD Speaker Input - NXT의 외형 - 꺼진 상태 : 전원 켜기 켜진 상태 : 가운데 메뉴 실행 좌측의 메뉴로 넘어감 우측의 메뉴로 넘어감 취소 / 최상위 메뉴에서 끄기
- ROBOTC 소개 - • RobotC는 카네기멜론 대학에 서 만든 ROBOT 전용프로그래 밍언어로, LEGO Mindstorms RCX와 NXT를 지원 • C언어를 기반으로 하여 C언어 의 문법 체계를 90% 동일 • C언어를 공부한 학생과 이제 시 작하는 학생들 모두 쉽게 배울 수 있음
- Quick Start Guide- • 홈페이지 주소 http://www.robotc.net/support/nxt/
- ROBOTC 설치하기 - http://www.robotc.net에 접속하여 RobotC for Lego 프로그램과 드라이버를 download 받는다.
- ROBOTC 실행하기 - • 바탕화면의 ICON을 클릭하여 실행 • Activate ROBOTC for Mindstorms = 정품 인증 모드(시리얼 키를 입력 후 실행) • Evaluate ROBOTC for Mindstorms = 30일 평가판 모드(시리얼 키 없이 실행)
- 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 메뉴[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 메뉴[Edit] - • Undo Typing (Alt+Backspace/Ctrl+z) • : 실행취소, 되돌리기 기능 • Can’t Redo (Ctrl+Z) • : 실행 취소된 것을 되돌리기 기능 • Cut (Shift+Delete) : 잘라내기 • Copy (Ctrl+C) : 복제하기 • Paste (Ctrl+V) : 붙여넣기
- ROBOTC 메뉴[View] - • • Source : 현재 사용 중인 프로그램 • Function Explorer View : 함수 도움말 창 • 실행 • Compile Errors View : Error 내용 창 • Font Increase (Ctrl +‘ +’) : 폰트 사이즈 • 증가 • • Font Decrease (Ctrl +‘ -’) : 폰트 사이즈 • 감소
- ROBOTC 메뉴[Robot] - • Download Program(F5) : 소스코드 컴파일 후 NXT 로봇으로 프로그램 다운로드 • Compile Program(F7) : 소스코드 컴파일(프로그램 다운로드 안함) • Debugger : 프로그램의 실행 또는 단계적인 실행을 할 수 있다. Refresh Rate를Continuous를 클릭하면 NXT에 있는 모터 및 센서의 값들을 계속적인 모니터링이 • 가능하다.
- ROBOTC 메뉴[Robot]-3 - • Motors and Sensors Setup : 모터와 센서를 어떤 포트에 어떤 별명(Alias)을 사용할 지를 결정하기 위해 Motors and Sensors Setup을 이용한다. 프로그램 작성시 모터 및 센서에 대한 변수 이름을 입력하면 코드를 자동으로 생성한다.
- ROBOTC 프로그램 규칙 - ▪ ROBOTC는 표준 C언어 프로그램 규칙을 따르는 text기반의 프로그램 언어이다. ▪ 사용자가 프로그램을 작성하면서 파랑색이나 보라색으로 글씨가나오면 ROBOTC가 그 단어를 매우 중요한 단어로 인식한다는 뜻이고 ROBOTC가 인 식하는 키워드(keyword)는 자동으로 색상이 결정되어 표시된다. ▪ ROBOTC 컴파일러는 대문자와 소문자를 엄격하게 구분한다. ▪ 프로그램의 실행 순서는 1번 줄부터 순차적으로 실행된다. ▪ 스페이스(space), 탭(tab)은 프로그램의 실행에 영향을 주지 않지만 프로그램 의 가독성(읽어 낼 수 있는 정도)을 높이기 위해서 적절한 사용을 해야 한다. ▪ 세미콜론(‘;’)은 모든 ROBOTC 프로그램 문장의 끝을 알려준다. ▪ 프로그램을 작성할 때는 반드시 적어도 하나의 main() 함수를 갖고 있어야 한다. Task main() 함수 안에 실행하고자 하는 프로그램을 기록하면 된다
- 변수 선언 유의 사항 - 변수 선언 시 유의 사항 • 대문자(A~Z), 소문자(a~z), 숫자(0~9), 밑줄문자‘ _ ’를 사용한다. • 변수명은 숫자로 시작할 수 없다. • 변수명은 기본 예약어 또는 함수명을 사용할 수 없다. • 변수명은 대·소문자를 다르게 구분한다. • 변수명은 한글로 사용할 수 없다.
- ROBOTC 자료형(데이터형)- • RobotC의 자료형은 프로그램에서 처리하고자 하는 자료의 형태를 의미 • 자료형은 NXT 메로리 영역의 크기를 결정
- ROBOTC 자료형(정수형)- • 정수형 변수 • 정수형 변수는 RobotC 프로그램 작성 중 가장 많이 사용하는 데이터형으로서 정수 형태의 자료를 표현하기에 적당하다. 선언 방법은 int라는 키워드(keyword)를 작성하고 뒤에 변수명을 사용하면 된다. %d는 10진수 출력을 의미한다. • nxtDisplayTextLine(LCD 위치, “출력 내용”, 출력 변수명) : • NXT LCD 창에 지정된 형식으로 변수 값을 출력(LCD의 글 위치는 0~7까지) • PlaySound(내장 사운드 명) : 미리 정해져 있는 내장 사운드를 재생
- ROBOTC 자료형(실수형)- • 실수형 변수 • 실수형 변수는 아주 큰 수나 아주 작은 수를 표현해야 하거나, 소수점을 포함하는 실수 자료를 표현 할 때 사용된다. 실수형 변수를 출력할 때“ %f”를 사용한다. 특별히 소수점 아래에 자릿 수를 지정하고 싶을 때는 위의 예처럼“ %.2f”처럼 표현하고 이것은 소수 셋째 자리에서 반올림하여 소수점 2자리로 표현하라는 것이다.
- ROBOTC 자료형(문자형)- • 문자형 변수 • RobotC에서 문자형 변수는 8비트의 영역을 차지하고 있다. 주로 ASCII문자를 표현하기 위해서 사용한다. • 위의 예제는 문자 ‘A’에 해당하는 아스키 코드 값을 출력하고, x변수에 해당하는 문자를 출력하는 프로그램이며, 여기서“ %d”정수형 변수의 값을 출력하고“ %c”는 문자를 표현하는데 사용한다.
- ROBOTC 자료형(지역변수)- • 지역변수(Local Variables) • 함수의 내부에 정의된 변수이다. 지역 변수들은 함수의 실행이 시작될 때 메모리에 만들어지고, 함수가 종료될 때 메모리로부터 소멸된다.
- ROBOTC 자료형(전역변수)- • 전역변수 (Global Variables) • 전역 변수는 함수의 밖에 정의된 변수이다. 전역 변수는 지역 변수와는 달리 프로그램 내 모든 함수들이 이것을 사용할 수 있다. 함수들이 공유하는 데이터가 필요하다면 전역 변수를 만들어 사용하면 된다.
- ROBOTC 연산자(논리연산자)-2- • AND • 조건 값이 참이 아니므로 실행되지 않는다. • 11번 모터가 0.1초 동안 회전한다. • NOT