짧은 2달 동안 직접 마인드 스톰을 2달 정도 만지막 거리고 안드로이드 폰을 이용해서 마인드스톰을 control하면서 가졌던 지식과 소감을 얘기하고자 한다.
즉, Interactive하게 할 수 있도록 하는 철학이 반영된 것이다.
처음 제품이름은 Mindstorms Robotics Invention System kit 이었으나, Lego로 팔리면서 NXT 라고 불리워졌다. 최신 키트는 2009년 8월에 시판된 NXT 2.0으로 NXT와는 조금 다르다.



대표적인 싸이트는 다음과 같다.
http://us.mindstorms.lego.com/en-us/community/NXTLog/default.aspx
레고 마인드스톰은 기존에 사용하던 블럭을 쓰지 않는다.

* 레고 마인드스톰 블럭으로 마든 iphone4 거치대

사실 이 원칙에 충실하다.
* 레고 마인드 스톰 NXT 2.0 CD에서 제공하는 NXT-G 저작도구 툴
어떤 상황은 if로 만들어지고, 어떤 일을 하라는 것은 명령(action)으로 이어질 수 있다.
센서 포착 -> 모터 동작
계속 이 동작을 하게 하는 것은 for로 할 수 있는데. 이 원칙에 따라서 어플을 개발할 수 있다.
NXT-G는 그냥 컴포넌트를 놓고 연결만 하면 동작하는 구조로 되어 있다.
개발자는 if 문이나 for 문, 모터나 센서를 지칭하는 component들이 눈에 보이고 쉬워보인다.
NXT-G외에도 수많은 툴이나 언어를 이용하면 NXT 2.0을 구동할 수 있다.
- LabVIEW Toolkit
- Microsoft Robotics Studio Developer Center
Robolab도 NXT-G처럼 개발이 가능하다.
주목할 점은 자바(leJOS NXJ)를 이용해서 개발이 가능하다는 점이다.
다른 언어나 툴도 비슷하게 쉬운 인터페이스와 API를 제공해서 원하는 프로그램을 짜게 할 수 있다.
레고 마인드 스톰이 API 하나는 정말 쉽게 개발했다는 점이 주목할 만 한다.
(사용자가 사용하는 API는 단순한만큼 내부 구현은 엄청 힘들었으리라 생각이 되긴 한다.)
이런 언어적인 특성뿐 아니라 더 큰 장점이 있다.
NXT-G cross compiling, image uploading이라는 부분이 너무 편하다는 것이 있다. NXJ는 이미지 업로딩이 편했다. NXT-G에 아래 화살표로 된 버튼을 누르면 크로스 컴파일된 어플리케이션을 이미지화해서 다운로드 하는 점이다.

(나는 전 직장에서 셋탑박스와 모바일 기기의 소프트웨어를 개발하는 일을 하고 있었는데, 임베디드 기기에 많이 싫증나있었다. 무한 반복 컴파일, 굽기는 사람을 코딩의 세계로 보여주지 못하고 노가다나 시간과의 싸움을 알려주었다. 레고 마인드 스톰을 보니.. 이거 완전 물건이라고 생각이 되었다. 왜 이런 생각을 못했을까 하는 생각이 들었다..)
레고 마인드스톰 NXT 2.0의 콘트롤러는 ARM7 계열의 프로세서(atmel)를 탑재하고 있기 때문에 작업 PC의 환경과 다르기 때문에 cross compiling이라는 작업을 거치고 이미지 다운로드 작업(일명 굽기)을 해야 한다.
그러나, 이런 과정을 상큼히 제거하고 쉽게 구축할 수 있다. 이것은 레고 사의 정말 탁월한 선택이라고 생각한다.
적외선과 달리 블루투쓰로 상당히 빨리 통신할 수 있어서 좋았다. 내가 원하는 데로 콘트롤을 하는 재미가 솔솔했다.
* 노트북에서 블루투스를 이용해서 NXT를 콘트롤
* 안드로이드에서는 블루투스를 이용해서 NXT를 콘트롤
예제 1) 패드 다루듯이 NXT 콘트롤
예제 2) 중력 센서를 이용해서 NXT 를 콘트롤

(동영상) 안드로이드 중력 센서를 이용해서 마인드스톰을 콘트롤하는 동영상
http://www.youtube.com/watch?v=L-ff_s5lF3Y
마인드스톰의 콘트롤러를 살펴보자. 프로세서는 두개가 있다. IO를 위한 보조 프로세스를 달아놓아 속도의 향상을 높이려는 시도가 보인다.
- View area: 26 X 40.6 mm
마인드스톰은 개발 싸이트에서는 제공하는 다양한 개발 툴킷을 제공하기 때문이다.
(brickOS에 대한 관련자료
http://heehiee.codns.com:9000/060611/0_%B8%B6%C0%CC%C5%A9%B7%CE%BC%D2%C7%C1%C6%AE%C0%E2%C1%F6/2001/2%BF%F9%C8%A3/%C6%AF%BA%B0%B1%E2%C8%B9/%B8%B6%C0%CE%B5%E5%BD%BA%C5%E8%BF%EB%BF%EE%BF%B5%C3%BC%C1%A6_LegOS%BA%D0%BC%AE/0102-370.pdf)
지금까지 정리한 NXT의 장점과 단점을 얘기해본다.
<레고 마인드스톰 NXT 2.0 의 장점>
0. 신기한 마인드스톰의 블럭
(기존의 블럭과 차원이 다른 블럭)
1. 쉬운 API
(내부적으로는 복잡한 로직은 잘 감쌌는 소리)
2. 포팅의 편이
(Development kit를 제공해서 확장성을 높여, 하드웨어 확장성이나 소프트웨어 확장성이 커짐)
3. 블루 투스 지원
4. 이미지 다운로딩이 간결함
5. 다양한 개발 툴킷과 문서를 지원
단점
1. 가격이 비싸다.
2. AA 밧데리를 항상 필요 6개
(밧데리 비용이 나갈 수 있다.
3. 확장을 위한 부속 부품(센서나 모터,RJ)등이 비싸다.
중력센서는 10만원, 바퀴는 1만원..
마지막으로 레고 마인드스톰을 이용한 데모들을 소개하고자 한다.
레고를 이용해서 프로토타입을 개발할 수 있고, 장난감으로 사용할 수 있다.

동영상은 http://www.youtube.com/watch?v=_ogQuLdEcBY&feature=related
<동영상> 레고로 만든 공장
<동영상> 레고로 만든 공장
http://www.pandora.tv/category.ptv/video/category/c1/05/c2/0078/ch_userid/kogijowa/prgid/42896612
<동영상> 공장을 어떻게 구현했나에 대한 이야기
http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=BBBE73FFD5AF48AB5A3044ADD437F69A4D81&outKey=V125b12203c64efbf8cdbf22ddf79b69b594e521c0607c4f6f368f22ddf79b69b594e
<그림> 자작 위성에 사용
<동영상> 스도쿠 문제 풀기
http://www.youtube.com/watch?v=Mp8Y2yjV4fU
<동영상> 자동차 자동차
http://www.metacafe.com/watch/429097/mobile_phone_bluetooth_remote_controlled_lego_mindstorms_nxt_rov/
<동영상> 마인드스톰 광고
http://www.youtube.com/watch?v=xuk9Ei5PbXk
<동영상> 다리 만들고 건너가기
http://youtu.be/1pslLoNkiL0
* 참조 싸이트
'레고 마인드스톰 NXT2.0' 카테고리의 다른 글
레고 마인드스톰의 기원(Origin of Lego Mindstorm) (0) | 2011.09.13 |
---|---|
NXJ 환경 구축하기 (0) | 2011.09.09 |
마인드스톰 Alpha Rex (0) | 2011.09.08 |
레고 마인드스톰 놀꺼리 샘플 (0) | 2011.09.02 |
Make 잡지에 레고 마인드스톰이 있어서 확인 (0) | 2011.08.12 |