역시 안드로이드가 아이폰보다 자유도가 좋았다. 안드로이드 쓰는 이유가 있다. !!
마인드스톰 NXT를 콘트롤 할 수 있는 안드로이드 App으로 로 다양하게 테스트해보았다.
관련된 어플 소개.

이 중에 가장 마음에 든 것은 중력센서를 이용한 것과 두개의 폰을 이용해서 마인드스톰을 가지고 통제하는 것이다. 



* nxt remote control  
심플
 어플 다운받기 : http://www.appbrain.com/app/nxt-remote-control/org.jfedor.nxtremotecontrol
 소스 : http://code.google.com/p/nxt-remote-control/

Screenshot of NXT Remote Control



* lego nxt build controller 
모터나 센서에 연결해서 마이크로틱하게 움직일 수 있게 하나, 불편하다. 
(App Inventor 구글 코드 소스였군)
어플 다운받기 : http://www.appbrain.com/app/build-controller-for-nxt/appinventor.ai_norfeldt.LEGO_NXT_Build_Controller
소스 : http://appinventor.googlelabs.com/learn/tutorials/ (정확한것은 아님)
 Screenshot of Build Controller for NXT


* nxt gsensor remote (마음에 듦)
안드로이드 중력 센서를 이용해서 콘트롤 
어플 다운받기 http://www.appbrain.com/app/nxt-gsensor-remote/NXT.GSensor
Screenshot of NXT GSensor Remote


* nxt simple remote
심플
어플 다운받기 : http://www.appbrain.com/app/nxt-simple-remote/NXT.Simple
 Screenshot of NXT Simple Remote
 

* NXT Numeric Remote 
심플 (메일박스로 통신하는 것 같은데..^^;;; )
어플 다운받기 :  http://www.appbrain.com/app/nxt-numeric-remote/NXT.BTNumeric
Screenshot of NXT Numeric Remote


* NXT Mailbox Remote 
어플 다운받기 : http://www.appbrain.com/app/nxt-mailbox-remote/NXT.BTMailbox
 Screenshot of NXT Mailbox Remote

 
* MINDdroid (마음에 듦)
중력 센서 이용, 
어플 다운 :  http://www.appbrain.com/app/minddroid/com.lego.minddroid
 Screenshot of MINDdroid


* NXT Bluetooth Remote Control 
동작은 되는데, A 모터만 돔. 버그 있는듯..
http://www.appbrain.com/app/nxt-bluetooth-remote-control/src.nabr
 Screenshot of NXT Bluetooth Remote Control


* NXT Free
mailbox로 메시지 전달하는데, 따로 어플이 있어야 하나..


* NXT Shake It
통신 연결은 되는데, 작동은 안됨...
어플 다운 : http://www.appbrain.com/app/nxt-shake-it/appinventor.ai_sebastian_trella.NXT_Shake_it


* NXT Speech Control
좋은 기능같은데, 내 발음이 문제가 있는지. 작동이 안되네.. 휴..
어플 다운 : 
http://www.appbrain.com/app/nxt-speech-control/appinventor.ai_sebastian_trella.NXT_Sprachsteuerung_free
Screenshot of NXT Speech Control


* Robobot
작동 안됨
http://www.appbrain.com/app/robobot/org.embox.robobot


*  Stream-O-bot  (마음에 듦)
두개의 안드로이드 폰을 이용해서 nxt를 콘트롤 함.  굿!
하나는 controller, 하나는 카메라로 사용. 카메라를 보면서 운전할 수 있도록 함
어플 다운 : http://www.appbrain.com/app/stream-o-bot/edu.snc.android.mindstorm
Screenshot of Stream-O-Bot

동영상 
https://www.youtube.com/watch?feature=player_embedded&v=C5MSQ-LV40I
 

* SenseBot Lego Mindstorm NXT 
 다운을 받고 싶은데, App 마켓에 없어서 실패.
어플 다운 : http://www.appbrain.com/app/sensebot-lego-mindstorm-nxt/com.msi.manning.ua2esensebot
Screenshot of SenseBot  Lego Mindstorm NXTScreenshot of SenseBot  Lego Mindstorm NXT

안드로이드 인 액션에 들어가는 책에 들어가는 어플이란다. 
http://manning.com/ableson2


*cellbot
여러 로봇을 합쳐서 한번에 동작시키는 툴 (그냥 폰하나와 마인드스톰만 있으면 평범..하지만, 동영상 보면 쿨~~)
어플 다운 : http://www.appbrain.com/app/cellbots/com.cellbots
Screenshot of Cellbots

https://www.youtube.com/watch?v=_x_5WDCpvtA&feature=player_embedded


* NxtRemote
동영상을 보면 괜찮은 것 같음. 
Screenshot of NxtRemote
$3.17. 
어플 다운 : http://www.appbrain.com/app/nxtremote/com.smartphoneremote.nxtremote
 https://www.youtube.com/watch?v=bCBzSsjoSqc&feature=player_embedded



Posted by 김용환 '김용환'

셋팅하는데, 한참 걸렸다. 워낙 블루투쓰에 관심이 없었는데. 추후 안드로이드에서 개발할 때 참조가 될 수 있을 것 같아서, 개념잡기 위해서 테스트해봤다.

우선, NXT 밧데리 소모가 어마어마 해서 바로 밧데로 방전되는 것을 생각하고 진행해야 한다. 다행히 밧데리가 소모되기 전에 셋팅을 끝낼 수 있었다.

노트북은 vaio 제품이고, windows xp 이며, 블루투쓰가 지원하는 모델이다.


(여러번 테스트하면서 얻은 결론이라, 약간 틀릴 수 있다.)

내 BlueTooth 설정에서 장치를 검색하고, 페어링 설정을 한다.
서로 쌍을 이룬 블루투쓰 장치는 비밀 키를 교환해야 한다. NXT의 비밀번호는 1234 이고, 내 노트북도 1234로 지정했다.





마인드스톰 NXT 에서는 다음과 설정해야 한다.
1. 블루투스 메뉴 -> visibility를 선택하고 true(visibility)로 설정
2. 블루투스 메뉴 -> on/off에서 on으로 설정
3. 블루투스 메뉴 -> My contacts 메뉴 -> 컴퓨터 이름 (나는 kim이라고 지정했고, kim 이라는 이름으로 나온다. )으로 접근하고, 내비둔다.
NXT 기기를 살펴보면, 왼쪽 상단 메뉴에 보면, Bluetooth 마크가 보이고 @< 이렇게 떠있는 것을 확인할 수 있다.



PC로 되돌아온다. 아까 등록한 장치관리자에서 포트 정보를 확인한다. Bluetooth 통신 포트가 생겼음을 알 수 있다.
여러번 테스트하다보면 COM port는 여러개로 늘어나기도 한다.


포트 정보를 좀더 확인하라면, 마우스 오른쪽 버튼을 눌러서, bluetooth 통신 포트를 보면 된다.




찾은 NXT에 대한 목록을 확인한다. 아직 연결된 것이 아니다.
아래 그림은 그냥 목록에 있다는 뜻이다.



NXT와 연결한다. 연결하면서 NXT 블루투쓰 보안코드를 넣어야 하는데. 디폴트가 1234여서.. 다음과 적는다.



블루투스 환경에서 NXT 아이콘 를 두번 클릭하면 Dev A의 NXT와 Dev B의 NXT가 보인다.
여기서 Dev A의 NXT 아이콘을 선택하고, 마우스 오른쪽 버튼을 누르고, "연결"을 선택한다.

아래와 같이 정상적으로 연결이 되면, 초록색 -><-이 뜬다. 이게 제대로 뜨지 않으면 연결이 잘 안된 것이다.


그리고, 전체 블루투스 환경에서 보면, 녹색 -><- 으로 되어 있는 것을 확인할 수 있다.
정상적으로 연결된 것임을 확인할 수 있다.





NXT 기기를 살펴보면, 왼쪽 상단 메뉴에 보면, Bluetooth 마크가 보이고 @<> 처럼 보인다. 즉 <> 이 두개가 있어야 연결이 정상적으로 되었음을 알려주는 마크이다.  


아래 링크에서 NXT Vehicle Remote 첨부파일을 다운받아 실행시킨다. 
http://cafe.naver.com/hirobotjks.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=696&

혹시 몰라, 여기에도 저장해둔다.



다음과 같은 메뉴가 뜨는데. 왼쪽 상단에 보면, BlueTooth Connection 밑에 connect라는 버튼이 있다.
이 버튼을 마우스로 클릭했을 때, 팝업이 뜰 수 있다. 이것은 정상적인 포트가 아닌 것을 의미한다.

장치 관리자의 '포트 정보'를 보고 그 포트 단위로 접근하면 된다.

즉 블루투스로 NXT와 노트북이 연결되었음을 확인하고, 위 어플을 이용해서 remote control 하는 것이다.








만약 정상 연결이 되었으면, 중간 아래에 보면, 빨간색 방향표가 나타나는데. 이것이 바로 연결되었음을 알려주는 표식이다. 에러 팝업이 뜨지 않고, 아래 화살표가 나타나면 Connected가 된것이다.
Connection 상태에 connected가 된 것을 확인할 수 있다.


이렇게 왔다 갔다 테스트해보면 정상동적하는지 확인할 수 있다. 밧데리 금방 방전되어서 조금은 당황스럽다.. 모터보다 통신 모듈에 에너지의 수요가 많다니..^^;;

* 블루투스 연결이 안되는 것 같아서 NXT에 firmware 1.29로 올렸다.
* NXT 어플이 아무것도 설치안되어도 노트북의 제어 프로그램만으로 제어가 가능하다.


원리는 어렵지 않다.레고싸이트 (http://mindstorms.lego.com/en-us/support/files/default.aspx)에 블루투스에 대한 개발 정보가 들어가 있다.



Bluetooth Developer Kit를 보면 통신 프로토콜이 있다. 이를 가지고 통신하면서 제어하는 것이다.
아주 간단하게 되어 있는 거라, 통신쪽을 조금 안다면 쉽게 개발할 수 있을 것 같다.



이제 로보트나 좀 만들어봐야겠다.


Posted by 김용환 '김용환'