17
LEGO Mindstorms NXT Programming

LEGO Mindstorms NXT Programming

  • Upload
    gitano

  • View
    64

  • Download
    7

Embed Size (px)

DESCRIPTION

LEGO Mindstorms NXT Programming. 다양한 프로그램 언어와 인터페이스 가능. LabVIEW. C 언어. JAVA. Visual Basic. MS Robot Studio. Robolab. NXT-G. About Bluetooth. Bluetooth 는 근거리 통신 규약으로 약 10m 정도의 거리까지 통신이 가능하다 . 장비별 식별 코드를 사용하므로 장비간 인증 , 데이터 보안 등의 특징과 네트워크 , 시리얼 , 오디오 등 다양한 서비스를 제공한다. - PowerPoint PPT Presentation

Citation preview

Page 1: LEGO Mindstorms NXT Programming

LEGO Mindstorms NXT

Programming

Page 2: LEGO Mindstorms NXT Programming

다양한 프로그램 언어와 인터페이스 가능

C 언어

JAVA

LabVIEW

Visual Basic

MSRobot Studio

Robolab

NXT-G

Page 3: LEGO Mindstorms NXT Programming

About Bluetooth

• Bluetooth 는 근거리 통신 규약으로 약 10m 정도의 거리까지 통신이 가능하다 .

• 장비별 식별 코드를 사용하므로 장비간 인증 , 데이터 보안 등의 특징과 네트워크 , 시리얼 , 오디오 등 다양한 서비스를 제공한다 .

• NXT 에서는 PC to NXT, NXT to NXT 의 통신을 지원한다 .

Page 4: LEGO Mindstorms NXT Programming

About Bluetooth

• 한 번에 한 개의 Bluetooth 장치와 통신이 가능하다 .• 한 번에 총 3 개 까지의 장치와 연결상태를 유지할 수

있다 .• 자체 블루투스 장치 탐색 및 이전 접속된 장치 기억

기능이 있다 .• 다른 블루투스 장치에 검색되도록 하거나 혹은 검색을

피하도록 숨길 수 있다 .• 블루투스 장치만 개별적으로 전원 on/off 할 수 있다 .

Page 5: LEGO Mindstorms NXT Programming

센서 종류와 모터

충전식리튬폴리머배터리

터치 센서

사운드 센서

라이트 센서초음파 센서

엔코더 내장형서보 모터

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

기존 LEGO RCX 용디바이스 호환

Page 6: LEGO Mindstorms NXT Programming

Programming Languages

• NXT-G code• NXC (and NBC)• Robot C• pbLua• Java and others

Page 7: LEGO Mindstorms NXT Programming

NXT-G code

• LEGO’s development environment• Graphical programming• Based on National Instruments’ LabView• Great for quick programs• Wonderful for kids to use

… but a real pain for old geezers like me who grew up with text

programming languages

Page 8: LEGO Mindstorms NXT Programming

NXT-G

• NXT-G– National Instruments

사에서 개발한 그래픽 인터페이스를 가진 프로그램툴

– 이것을 사용해 플로우차트를 그리듯이 프로그램할 수 있으며 , 모터를 제어하거나 딜레이를 주거나 소리를 만드는 등의 일을 할수 있음

– 센서입력과 타이머를 이용한 프로그램이 가능하다 .

– NXT-G 는 프로그램이 매우 쉽다 .

Page 9: LEGO Mindstorms NXT Programming

LabVIEW ROBOLAB

=

Robolab 은 LabVIEW 기반으로 만들어 짐 ( 같은 구성 )현재 많은 대학교에서 프로그램의 기초 실습과목으로 LEGO 의 소프트웨어인 Robolab 을 배우고 있음

LabVIEW 기반의 ROBOLAB

Page 10: LEGO Mindstorms NXT Programming

ROBOLAB• ROBOLAB

– Tufts University 에서 개발된 것으로 Lego RCX 를 위해 처음 개발

– 현재 보강된 프로그램이 NXT에서 사용가능

– 또 다른 그래픽 환경을 가진 프로그램툴이다 . NXT-G 보다 더 정교한 프로그램이 가능

– 그래픽 환경의 프로그램툴– ROBOLAB 은 National

Instruments 의 LabVIEW 를 사용해 만들어 짐

• LabVIEW 는 NXT-G 와 함께 ROBOLAB 의 기반

– integer 와 floating 변수를 사용한 계산이 가능하다

Page 11: LEGO Mindstorms NXT Programming

ROBOTC• ROBOTC

– NXT 에 C 언어를 사용– Carnegie Mellon

University 의 Robotics Academy 에서 만들어짐

– 다운로드 : www.robotc.net

– ROBOTC 는 강력한 실시간 디버거를 가지고 있으며 프로그램과 디버깅에 효과적인 프로그램툴

– Not free (free trial, $30 download)

Page 12: LEGO Mindstorms NXT Programming

NXC ... NOT EXACTLY C• NXC(Not eXactly C)

– C 언어와 비슷한 NXT 를 위한 프로그램툴 (Free)

• C 언어와 유사 , C 언어는 아님 – RCX 에 NQC 가 있다면 , NXT 에는

NXC 가 있음 – NXC 는 NXT-G 와 동일한 펌웨어를

사용• 사용자가 NXC 로 프로그램하거나

NXT-G 의 그래픽 환경에서 프로그램하는 것 모두 가능

– interger 타입의 변수가 사용가능하며 floating 타입의 변수는 쓸 수 없음

– LCD 에 글자를 쓰기 적절하지 않음– NXC 와 ROBOTC 는 실시간

디버거를 가진 유일한 프로그램툴임

Page 13: LEGO Mindstorms NXT Programming

C base Programming(NXC)

• NXT 용 C 기반 환경인 NXC 와 유사한 형태로 C 언어 기반의 프로그램을 구현하기 위한 개발 환경 .

• 좌측의 예제는 삼각함수를 이용한 기하학적 디스플레이로 , 일반 C 어플리케이션의 알고리즘도 얼마든지 구현할 수 있음

Page 14: LEGO Mindstorms NXT Programming

PBLUA

• PBLUA – Lua 는 교육분야에서

주목받고 있는 텍스트 기반의 언어

– pbLua 는 NXT 를 위한 Lua 의 모든 특성을 갖춘 프로그램

– pbLua 를 사용한 프로그램은 ROBOTC 와 NXC 와 유사

Page 15: LEGO Mindstorms NXT Programming

NXJ

• NXJ– 자바기반의 NXT

프로그램툴– JAVA 표준을 따르지만

Class 라이브러리는 훨씬 작음

Page 16: LEGO Mindstorms NXT Programming

Other languages

• Java and several other languages are reportedly in the works as well

• MS Robotic Studio also supports the NXT– Download a small client program to NXT– Actual control is on a PC

• http://www.teamhassenplug.org/NXT/NXTSoftware.html

Page 17: LEGO Mindstorms NXT Programming

기타 개발 환경• Microsoft Robot Studio : 마이크로소프트 (MS) 가 로봇산업 확대를 위해 선보인 상용 로봇 운영체계 , 윈도우 기반 소프트웨어 플랫폼으로서 실제 또는 가상의 로봇 프로그램을 비교적 간단히 수행하며 아이로봇의 룸바 (Roomba), 레고 마인드스톰즈 NXT(LEGO Mindstorms NXT) 등의 여러 로봇에서 호환된다 . 영리 목적이 아닌 경우 무료 공개

• JAVA on NXT : LeJOS 라는 이름으로 불리우는 LEGO 용 JAVA 는 JDK 1.5 이상과 LeJOS 프로그램을 통해 구현할 수 있다 .