1 / 99

2013. 5. 25.

ROBOTC 활용하기 - 전국 전문대학교 로봇대회 1 차 기술 세미나 -. 2013. 5. 25. - Index -. • 제 1 장 LEGO MINDSTORMS Education • 제 2 장 ROBOTC 설치 및 기본 로봇 조립 제 3 장 ROBOTC 프로그램의 이해 제 4 장 ROBOTC 기초 프로그래밍 ( 모터 구동 프로그래밍 ) 제 5 장 ROBOTC 제어문 (While, if, if–else) 제 6 장 라인 로봇 (Light Sensor 사용 ).

Download Presentation

2013. 5. 25.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ROBOTC 활용하기 - 전국 전문대학교로봇대회 1차 기술 세미나 - 2013. 5. 25.

  2. - Index - • • 제 1장 LEGO MINDSTORMS Education • • 제 2장ROBOTC 설치 및 기본 로봇 조립 • 제 3장 ROBOTC 프로그램의 이해 • 제 4장 ROBOTC 기초 프로그래밍(모터 구동 프로그래밍) • 제 5장 ROBOTC 제어문(While, if, if–else) • 제 6장 라인 로봇 (Light Sensor 사용)

  3. 제 1장 LEGO MINDSTORMS Education-

  4. - NXT - • NXT는 LEGO MINDSTORMS Education Set의 컨트롤러 • 프로그래밍이 가능한 인텔리전트 브릭 • 주변환경을 인식하고, 인터페이스 할 수 있는 • 다양한 센서와 전동기를 연결하여 데이터를 수집 • 및 테스트 할 수 있는 최고의 장비

  5. RCX에 이은 LEGO사의 차세대 로봇 컨트롤러 32bit ARM7 Processor / 256k Flash / 64k Ram 입력포트 4 / 출력포트 3 USB / Bluetooth 통신 지원 60*100 Graphic LCD / 스피커 / 충전식 배터리 지원 엔코더 내장 모터 / 초음파 / 사운드 / 터치 / 빛 센서 - NXT-

  6. 기존 LEGO RCX용 디바이스 호환 엔코더 내장형 서보 모터 충전식 리튬폴리머 배터리 터치 센서 그래픽 LCD 및 블루투스 무선통신 내장 USB 2.0 지원 사운드 센서 초음파 센서 라이트 센서 - 사용할 수 있는 Sensor/Actuator -

  7. Output USB LCD Speaker Input - NXT의 외형 - 꺼진 상태 : 전원 켜기 켜진 상태 : 가운데 메뉴 실행 좌측의 메뉴로 넘어감 우측의 메뉴로 넘어감 취소 / 최상위 메뉴에서 끄기

  8. 제 2장 ROBOTC 설치 및 기본 로봇 조립 –

  9. - ROBOTC 설치하기 - http://www.robotc.net에 접속하여 RobotC for Lego 프로그램과 드라이버를 download 받는다. 인터넷이 되지 않을 경우 USB 메모리에서 설치파일을 받는다.

  10. - 교육용 로봇 조립 - 대회 공식 사이트에 공지된 이미지를 참조하여, 다음 로봇 조립

  11. 제 3장 ROBOTC 프로그램의 이해 -

  12. - ROBOTC 소개 - • RobotC는 카네기멜론 대학에 서 만든 ROBOT 전용프로그래 밍언어로, LEGO Mindstorms RCX와 NXT를 지원 • C언어를 기반으로 하여 C언어 의 문법 체계를 90% 동일 • C언어를 공부한 학생과 이제 시 작하는 학생들 모두 쉽게 배울 수 있음

  13. - Quick Start Guide- • 홈페이지 주소 http://www.robotc.net/support/nxt/

  14. - ROBOTC 실행하기 - • 바탕화면의 ICON을 클릭하여 실행 • Activate ROBOTC for Mindstorms= 정품 인증 모드(시리얼 키를 입력 후 실행) • Evaluate ROBOTC for Mindstorms = 30일 평가판 모드(시리얼 키 없이 실행)

  15. - 전체적인프로그램 사용법 - • Port A,C에 연결되어 있는 모터를 50의 파워로 1초간 전진하는 프로그램 • main() 함수 : 프로그램 내에 오직 1개만 사용할 수 있는 특별한 함수로서 • 바디({..} )에 작성된 내용을 시작/종료 한다.

  16. - 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 : 현재 작성된 프로그램의 출력페이지를 • 설정

  17. - ROBOTC 메뉴[Edit] - • Undo Typing (Alt+Backspace/Ctrl+z) • : 실행취소, 되돌리기 기능 • Can’t Redo (Ctrl+Z) • : 실행 취소된 것을 되돌리기 기능 • Cut (Shift+Delete) : 잘라내기 • Copy (Ctrl+C) : 복제하기 • Paste (Ctrl+V) : 붙여넣기

  18. - ROBOTC 메뉴[View] - • • Source : 현재 사용 중인 프로그램 • Function Explorer View : 함수 도움말 창 • 실행 • Compile Errors View : Error 내용 창 • Font Increase (Ctrl +‘ +’) : 폰트 사이즈 • 증가 • • Font Decrease (Ctrl +‘ -’) : 폰트 사이즈 • 감소

  19. - ROBOTC 메뉴[Robot] - • Download Program(F5) : 소스코드 컴파일 후 NXT 로봇으로 프로그램 다운로드 • Compile Program(F7) : 소스코드 컴파일(프로그램 다운로드 안함) • Debugger : 프로그램의 실행 또는 단계적인 실행을 할 수 있다. Refresh Rate를Continuous를 클릭하면 NXT에 있는 모터 및 센서의 값들을 계속적인 모니터링이 • 가능하다.

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

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

  22. - ROBOTC 프로그램 규칙 - ▪ ROBOTC는 표준 C언어 프로그램 규칙을 따르는 text기반의 프로그램 언어이다. ▪ 사용자가 프로그램을 작성하면서 파랑색이나 보라색으로 글씨가나오면 ROBOTC가 그 단어를 매우 중요한 단어로 인식한다는 뜻이고 ROBOTC가 인 식하는 키워드(keyword)는 자동으로 색상이 결정되어 표시된다. ▪ ROBOTC 컴파일러는 대문자와 소문자를 엄격하게 구분한다. ▪ 프로그램의 실행 순서는 1번 줄부터 순차적으로 실행된다. ▪ 스페이스(space), 탭(tab)은 프로그램의 실행에 영향을 주지 않지만 프로그램 의 가독성(읽어 낼 수 있는 정도)을 높이기 위해서 적절한 사용을 해야 한다. ▪ 세미콜론(‘;’)은 모든 ROBOTC 프로그램 문장의 끝을 알려준다. ▪ 프로그램을 작성할 때는 반드시 적어도 하나의 main() 함수를 갖고 있어야 한다. Task main() 함수 안에 실행하고자 하는 프로그램을 기록하면 된다

  23. - 변수 선언 유의 사항 - 변수 선언 시 유의 사항 • 대문자(A~Z), 소문자(a~z), 숫자(0~9), 밑줄문자‘ _ ’를 사용한다. • 변수명은 숫자로 시작할 수 없다. • 변수명은 기본 예약어 또는 함수명을 사용할 수 없다. • 변수명은 대·소문자를 다르게 구분한다. • 변수명은 한글로 사용할 수 없다.

  24. - ROBOTC 자료형(데이터형)- • RobotC의 자료형은 프로그램에서 처리하고자 하는 자료의 형태를 의미 • 자료형은 NXT 메로리 영역의 크기를 결정

  25. - 화면 출력 서식 -

  26. - ROBOTC 자료형(정수형)- • 정수형 변수 • 정수형 변수는 RobotC프로그램 작성 중 가장 많이 사용하는 데이터형으로서 정수 형태의 자료를 표현하기에 적당하다. 선언 방법은 int라는 키워드(keyword)를 작성하고 뒤에 변수명을 사용하면 된다. %d는 10진수 출력을 의미한다. • nxtDisplayTextLine(LCD 위치, “출력 내용”, 출력 변수명) : • NXT LCD 창에 지정된 형식으로 변수 값을 출력(LCD의 글 위치는 0~7까지) • PlaySound(내장 사운드 명) : 미리 정해져 있는 내장 사운드를 재생

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

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

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

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

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

  32. - ROBOTC 연산자(논리연산자)-2- • AND • 조건 값이 참이 아니므로 실행되지 않는다. • 11번 모터가 0.1초 동안 회전한다. • NOT

  33. - 제 4장 ROBOTC 기초 프로그래밍 -

  34. - 로봇을 2초 동안 전진시켜라 - • NXT 서보 모터 파워는 건전지의 양에 따른 상대적인 비율로 -100 ~ +100%까지 • 파워 레벨을 조정 가능

  35. - 2초 동안 전진, 2초 동안 후진 -

  36. 각 명령에 따른 회전 방식 Swing Turn Point Turn Curve Turn

  37. - 도전 과제 I- • 2초 전진 후 90도 회전하고 2초 전진

  38. - 제 5장 ROBOTC 제어문 -

  39. if(조건식) 문장1 - if 제어문 함수 설명 - • 조건식이 ‘True’인지 ‘False’ 인지 판정 • ‘False’일 경우에 대한 고려 없이 ‘True’ 일 경우 문장 1을 실행 • 한 조건에 대해 여러 문장 실행 시 문장들을 • { }으로 묶어서 사용

  40. - if 제어문 예제 - • random 함수 이용 난수값 생성(0-99) • if 함수를 이용하여 난수값이50보다 크면 1초간 직진 • 직진 후 사운드 출력

  41. - if-else 제어문 함수 설명- if(조건식) 문장1 else 문장2 • 조건식이 ‘True’인지 ‘False’ 인지 판정 • ‘True’ 일 경우 문장 1 실행 • ‘False’ 일 경우 문장 2 실행 • 한 조건식에 대해 ‘True’ 일 경우와 ‘False’ 일 경우를 나누어 제어할 때 사용

  42. - if-else 제어문 예제 - • random 함수 이용 난수값 생성(0-99) • if 함수 이용 값이 50보다 크면 우회전, 값이 같거나 작으면 좌회전 • 조건 식 동작 후 사운드 출력

  43. - while 제어문 함수 설명- while(조건식) 반복문장 • 조건식이 ‘True’이면 반복문장 계속 실행 • 그 후 검사하여 ‘False’이면 while 제어 문을 빠져 나와 다음 문장 실행 • 조건 식에 ‘True’ 또는 ‘1’ 을 넣으면 무한반복

  44. - while 제어문 예제 - • 0.5초간 전진과 후진을 10번 동안 반복(0-9) • i++ 는 i = i + 1 을 의미 한다. • 단, while 문을 사용 • 동작 후 사운드 출력

  45. - do-while 제어문 함수 설명 - do 반복문장 while(조건식) • 반복 문장을 일단 한번 실행 한 후 while 제어문의조건 식 검사 • 조건 식의 값이 처음부터 거짓이라도 반복 문장은 한번 실행 • 위의 내용을 빼고는 while과 동일

  46. - 제 6장 라인로봇(Light Sesnor) -

  47. - 빛 센서(Light Sensor) - • 전방에 간접조명용 붉은LED와 Photo Transistor가 내장되어 있으며, 명암을 구분 • 지면과 5mm가 가장 적합 • 조명의 켜짐 유무에 따라 액티브 모드/인액티브 모드를 가지고 있다. • 측정 값은 0~100%으로 표현

  48. - 문턱 값(Threshold) - • 어두운 영역과 밝은 영역을 어떻게 구분할 것인가?

  49. - 빛 센서셀프 테스트 - • 빛 센서를 3번에 연결 • NXT를 켜고 View 를 선택 ( ) • 3. 반사광 측정하기 • - 반사광(Reflected light) 아이콘을 선택 • - 포트 3을 선택 • 주변광 측정하기 • - 주변광(Ambient light) 아이콘을 선택 • - 포트 3을 선택

  50. - 빛 센서 설정하기 - • Port S3의 Name에 light를 입력한다. • (편의상 light라고 입력하였으나 다른 이름도 가능하다.)

More Related