ROBOTC 활용하기 ROBOTC 활용하기 EASYTECH R & D
- Index - - Index - 제 1장 NXT 및 ROBOTC 소개 제 2장 ROBOTC 기초 프로그래밍 제 3장 범퍼로봇(Bumper Robot) 제 4장 라인로봇(Line Robot) 제 5장 회피로봇 (Avoid Robot) 제 6장 엔코더로봇 (Encoder Robot)
- 제 1장 NXT 및 ROBOTC 소개 -
NXT는 LEGO Mindstorms 로봇의 핵심 부분 프로그래밍이 가능한 인텔리전트 브릭 주변환경을 인식하고, 인터페이스 할 수 있는 다양한 센서와 전동기를 연결하여 데이터를 수집 및 테스트 할 수 있는 최고의 장비 - NXT -
RCX 에 이은 LEGO 사의 차세대 로봇 컨 트롤러 32bit ARM7 Processor / 256k Flash / 64k Ram 입력포트 4 / 출력포트 3 USB / Bluetooth 통신 지원 60*100 Graphic LCD / 스피커 / 충전식 배터리 지원 엔코더 내장 모터 / 초음파 / 사운드 / 터치 / 빛 센서 - NXT -
충전식 리튬폴리머 배터리 터치 센서 사운드 센서 라이트 센서 초음파 센서 엔코더 내장형 서보 모터 그래픽 LCD 및 블루투스 무선통신 내장 USB 2.0 지원 기존 LEGO RCX용 디바이스 호환 - 사용할 수 있는 Sensor/Actuator -
Output Input LCD USB Speaker 꺼진 상태 : 전원 켜기 켜진 상태 : 가운데 메뉴 실행 좌측의 메뉴로 넘어감 우측의 메뉴로 넘어감 취소 / 최상위 메뉴에서 끄기 - NXT의 외형 -
- ROBOTC 소개 - - ROBOTC 소개 - RobotC는 카네기멜론 대학에 서 만든 ROBOT 전용 프로그래 밍 언어로, LEGO Mindstorms RCX와 NXT를 지원 C언어를 기반으로 하여 C언어 의 문법 체계를 90% 동일 C언어를 공부한 학생과 이제 시 작하는 학생들 모두 쉽게 배울 수 있음
- ROBOTC 설치하기 - 에 접속 - 메뉴 Download -> RobotC 3.x for MINDSTROMs (version 3.65) 다운로드 - 아래Optional Download > NXT Driver(32bit/64bit) 다운로드
- ROBOTC 설치하기 -
- ROBOTC 실행하기 - - 바탕화면 ICON 클릭 실행
- ROBOTC 정품인증 실 – (894t3*) 18424실 – (4ua62*)
- ROBOTC Firmware download - - Download Firmware : 펌웨어 다운로드 기능을 이용 - 확장자 “.rfw”인 파일 - 다운로드가 완료되면 ”Firmware download completed” 메시지 표시 - 최신 Firmware Version : NXT_0968.rfw (USB 케이블 연결 후 가능 !) - 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 연산자(관계연산자) -
- ROBOTC 연산자(논리연산자) -
- ROBOTC 연산자(논리연산자)-2 - AND NOT 조건 값이 참이 아니므로 실행되 지 않는다. 11 번 모터가 0.1 초 동안 회전한다.
- ROBOTC 연산자(논리연산자)-3 -