LEGO Mindstorms NXT Programming

Preview:

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

LEGO Mindstorms NXT

Programming

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

C 언어

JAVA

LabVIEW

Visual Basic

MSRobot Studio

Robolab

NXT-G

About Bluetooth

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

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

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

About Bluetooth

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

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

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

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

센서 종류와 모터

충전식리튬폴리머배터리

터치 센서

사운드 센서

라이트 센서초음파 센서

엔코더 내장형서보 모터

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

기존 LEGO RCX 용디바이스 호환

Programming Languages

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

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

NXT-G

• NXT-G– National Instruments

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

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

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

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

LabVIEW ROBOLAB

=

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

LabVIEW 기반의 ROBOLAB

ROBOLAB• ROBOLAB

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

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

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

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

Instruments 의 LabVIEW 를 사용해 만들어 짐

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

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

ROBOTC• ROBOTC

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

University 의 Robotics Academy 에서 만들어짐

– 다운로드 : www.robotc.net

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

– Not free (free trial, $30 download)

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 는 실시간

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

C base Programming(NXC)

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

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

PBLUA

• PBLUA – Lua 는 교육분야에서

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

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

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

NXJ

• NXJ– 자바기반의 NXT

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

Class 라이브러리는 훨씬 작음

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

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

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