fomuon's blog

folog.egloos.com

포토로그



LEGO NXT 무선조종 프로그램 만들기 LEGO NXT

LEGO NXT 무선조종 프로그램 만들기


1. 준비물

 1) LEGO 조립 로봇 (ExploroBot)
   - LEGO Mindstorms NXT - The Mayan Adventure 란 도서에 나오는 조립법중에 explorobot으로 조립했다.
 
 2) icommand 0.6 (http://lejos.sourceforge.net/)
   - icommand 란 LEGO NXT 에 사용되는 java virture machine 인 leJOS 와 같은 API를 구현한 블루투스 버전 라이브러리이다. 자세한것은 위 url을 참고하기 바람^^;


2. Java swing으로 조이스틱 UI를 제작 ( Joystick.java )
 
  로봇을 무선조종 하기 위해서 조이스틱에 해당하는 프로그램이 필요하다.
  간단하게 아래와 같은 그림으로다.. -_-;; 정말 조이스틱의 UI는 초간단;;;
  
  내용을 설명하자면 원은 스틱의 적용 범위이고, 원안의 선의 교차점이 스틱의 위치에 해당한다.
  마우스를 클릭한 상태에서 드래그하여 교차점(스틱)을 움직임으로서 제어한다.
  해당 소스코드는 마우스 드래그시 마우스 포인터의 좌표값으로 원의 정중앙으로부터 마우스가 위치한 곳의 벡터값을 계산하여 300ms 에 한번씩 JoystickListner에게 넘겨준다. (300ms에 한번씩 하게 한 이유는 블루투스 명령이 너무 빨리 여러번 발생되면 컨트롤에 딜레이가 생기기 때문에 그렇게 했다. 자세한 것은 소스코드를 직접 보기 바람) 




 이제부터는 조이스틱이 넘겨주는 벡터값을 이용하여 로봇양쪽 바퀴의 회전스피드와 방향을 계산한 뒤 블루투스 통신(icommand)을 이용하여 로봇에게 명령을 전달한다. (자세한 것은 역시 소스를 참고하기 바람 ㅋㅋㅋ)
 


 자 이제 완성한 프로그램을 돌려보자.
 
(참고로 프로그램을 수행하기 전에 먼저 NXT와 컴퓨터 간의 블루투스 장치가 지정되어야 하고, 송신포트에 대한 정보를 C:\Document and Settings\해당 계정 이름\icommand.properties 의 nxtcomm 프로퍼티로 저장해두어야 한다..)



덧글

  • 김진섭 2008/01/15 10:41 # 삭제 답글

    멋져요~~ ㅋㅋ 제 손도 나왔네요~ ㅋㅋㅋ
  • 와우~ 2009/08/18 23:29 # 삭제 답글

    와우 멋져요~잘받아갈께요~
  • 박소라 2010/11/26 13:51 # 삭제 답글

    와우 좋네요~
    한번 만들어봐야겠어요^^
    잘쓸게요^^
  • 용사병지 2013/05/11 12:44 # 삭제 답글

    잘 보고 갑니다^^
댓글 입력 영역