mindstorms_with_matlab_logo.png



반갑습니다. LGS입니다.

LEGO MINDSTORMS 라이브러리는 잘 설치하셨나요? ^^

이번 시간에는 MATLAB에서 Mindstorms를 가지고 놀기 위한 기본적인 절차에 대해서 알아보겠습니다.

Simulink에 대한 기본 사용방법을 알고 계신다고 가정하고 강좌를 진행하겠습니다.

Simulink가 익숙하지 않으신 분들은 여기(간단한 Simulink 강좌)를 참고하세요.


우선 MATLAB의 Menu -> File -> New -> Model을 클릭하셔서 Simulink 빈 모델하나 만들어 주시구요~

legodemo01.png


MATLAB Command Window에서 >>legontxlib라고 입력하셔서 마인드스톰 라이브러리를 띄워주세요.


mindstromLGS0113.png 


또는 MATLAB Command Window에서 >>simulink 라고 입력하셔서 Simulink Library Browser를 띄우신 후

왼쪽 Libraries에서 Target for Use with LEGO MINDSTORMS NXT Hardware를 선택하시면 사용할 수있는 블럭목록이 뜹니다.

Gain Block을 사용할 것이므로 Simulink Library Browser도 띄워두세요.


legodemo02.png


새로 만든 Simulink 모델에 아래처럼 마인드스톰 라이브러리에서 Touch Sensor 하나, Motor Block 하나,

그리고 Simulink Library에서 Gain Block 하나을 그려주세요 ^ㅅ^ 선으로 열결하시구요~


legodemo03.png


위의 모델은 Touch Sensor가 눌러지면 output으로 '1'인 출력되고 출력값 1에 곱하기 100을 해서 Motor 블럭에 입력으로 넘겨줍니다.

즉 Touch Sensor를 누르면 모터가 돌아가는 정말 간단한 녀석이예요 ^ㅅ^

삼각형 모양으로 생긴 Gain Block을 더블 클릭해서 Gain을 100으로 바꾸어 주세요~


legodemo04.png


Intelligent Brick을 보시면 

legodemo05.png

(이미지 출처: http://www.mathcs.org/robotics/)


3개의 Output port와 4개의 Input port가 있습니다.

각 port마다는 output A,B,C와 input 1,2,3,4의 번호가 붙어있구요

Simulink Model에서서 Touch Sensor 블럭을 더블 클릭하면

해당 블럭이 몇번 port로부터 신호를 읽을지 정할 수가 있습니다.


legodemo06.png


Motor 블럭도 마찬가지이구요~ 몇번 포트로 출력을 낼지 정할 수 있어요.

저는 기본값으로 세팅되어 있는 1번 input port, A output port를 사용하겠습니다.

Motor 블럭은 -100부터 +100사이의 모터 회전속도를 input으로 받습니다.

  • 정회전:  +1 (가장 느림) ~ +100 (가장 빠름)
  • 역회전:  -1(가장 느림) ~ -100(가장 빠름)
  • 정  지 :  0

이해가시죠? ^^

legodemo07.png


Motor 블럭을 더블클릭해서 창을 열어보시면 port를 지정하는 항목이외에 Stop action이라는 항목이 있습니다.

Brake와 Coast 모드가 있는데요


legodemo08.png

(이지지 출처: MATLAB Help Browser)


coast 모드의 경우 일정값(대략 +-50) 이상의 input이 들어와야지만 그때부터 모터가 움직이기 시작합니다.

Touch Sensor와 Motor 두 block에 대한 설명은 대충 끝났내요. ^^


자~ Intelligent Brick을 USB 케이블로 컴퓨터와 연결하시구요

아래 처럼 터치센서와 모터를 각각 1번과 A번에 연결해주세요.


(이미지 작성중)


참고로 위의 이미지는 LEGO Digital Designer (LDD) 라는 Tool을 사용하여 만들었습니다.

아래 Link에서 무료로 다운로드 가능합니다.

http://ldd.lego.com/en-us/download/


다시 Simulink로 돌아가서 Menu -> Tools -> Run on Target Hardware -> Prepare to Run.. 을 클릭하시면

legodemo11.png

Target Hardware와 여러가지 설정을 할 수 있는 창이 뜹니다.

기본 셋팅으로 두고 아래쪽의 OK버튼을 눌러주세요~


legodemo12.png


다시 Simulink에서 Menu -> Tools -> Run on Target Hardware 항목을 보시면 이번에는 Prepare to Run.. 이라는 항목이 없어지고

Run 항목이 생긴것을 확인할 수 있습니다. Run을 누르시면...

자동으로 Simulink 모델이 LEGO 마인드스톰에 맞게 Compile되어서 Intelligent Brick으로 Upload되게 됩니다. (Embedded coder)


legodemo09.png


실제 구동 영상입니다. 참 별거 없군요 ^^;;





다음 시간부터는 더 재미있는 것을 만들어 BoA요~ 

그럼 이만 총총... =(=^ㅅ^=)=


profile