반갑습니다. 교주 LGS입니다.
오늘부터 본격적으로 'Arduino with MATLAB' 강좌를 시작합니다.
많은 관심과 응원 부탁 드려요. ^^
그동안 힘들게 배웠던 MATLAB과 회로이론을 써먹어 보자구요!!
컴퓨터 모니터를 박차고 Real 세상으로 나갑시다!! ㅋㅋ

(이번 강좌는 아두이노 공식 홈페이지인 arduino.cc 의 Getting Started 내용과 
mathworks.com의 MATLAB Support for Arduino 내용을 참조하여 작성하였습니다.
잉글리시가 쏼롸~쏼라~ 되시는 분들은 위의 두 사이트를 직접 방문하셔서 보셔도 됩니다)

MATLAB으로 아두이노를 가지고 놀면 어떤 점이 좋을 까요?
우선 MATLAB에서 쓸 수 있는 수백가지 함수, Simulink의 Block를 그냥 가져다 쓰면 됩니다.
제어 알고리즘, 최적화 알고리즘 이런거 MATLAB에 이미 다 있어요~
또 Sketch(스케치)라는 Arduino 전용 개발환경에서 맨날 해줘야하는 Compile -> Upload 이런 귀찮고 반복적인 일도 할 필요 없습니다
(MATLAB과 Arduino가 실시간으로 데이터를 주고 받습니다)
그래프도 팡팡 마음데로 띄울 수 있구요 GUI 개발도 가능하구... 
그리구 MATLAB이 C보다 프로그래밍 하기기가 훨씬 쉬워용 ^^    한마디로 많이 좋타 이거죠~

Arduino를 가지고 놀기 위해서는 우선 준비물이 필요합니다.
당연히 Arduino 보드가 필요하구요~ Arduino와 컴퓨터를 연결할 USB 케이블(A-B)만 있으면 됩니다.
초보자분들은 Arduino 보드, USB 케이블, 여러가지 센서, LED, 저항등이 함께 들어있는 Starter Kit를 구매하셔도 괜찮아요 ^^

dkseKLGTjkxLgTSiq7rBCbX1p1BBQbvYLcOHkwTrmnPyPL76RDb6r4gxwywNBrjjYeH3dgA7rCd7RVlQPA9JgsnuaUt6l92csTw3B5uaLKx_yGvfwnc

아두이노에도 종류가 여러가지가 있는데요 UNO(우노)라는 녀석이 가장 최근에 나왔고 가장 표준인 제품입니다.
"Arduino with MATLAB" 강좌에서는 UNO 보드를 사용하겠습니다. 가격도 가장 저렴해요
나머지는 크기와 성능에서 조금씩 차이가 있을 뿐 사용법은 크게 다르지 않구요~
Arduino의 종류를 확인하시려면 역시 공식 사이트인 arduino.cc를 방문하시면 됩니다.
(저는 미쿡 adafruit.com에서 직접 구매했습니다. USPS로 한국까지 오는데 대략 10일 정도 걸렸습니다요~ ^^)

Arduino와 컴퓨터를 USB로 연결했을 때 아두이노 보드상의 Power LED에 녹색불이 들어오고 
L(LED)가 주황색으로 깜빡깜빡 거리면 정상인 Broad가 되시겠습니다.
그리고 Arduino UNO Driver만 깔아주면 바로 사용하실 수 있어요
심지어 전원도 USB에서 끌어 쓰기때문에 따로 달아줄 필요가 없습니다. ㅋㅋ

참고로 예전의 AVR이나 8051등의 여타 Micro-Controller 개발환경에 비하면 정말정말정말 편해진 겁니다.
옛날 호랑이 담배피던 시절에는 대학원 연구실에 있는 커다란 ROM Writer 쓰려고 눈치 보면서 찾아가고 그랬다는 전설이... ^^;;
그런데 이 아두이노(Arduino)라는 녀석은 딸랑 USB 케이블만 있으면 모든것이 끝~ o(^o^)o

그런데 우리가 가지고 놀 Arduino UNO는 (아직까지는) 드라이버가 자동으로 설치되지 않습니다. -_-;;

ocgkfTTSKSvBUItY5S28yVHFkE8GA5DROVsHc2htvlE0kL9XTU-oExnieATl5GaS-BYw9MDttPKD_a5p5m8uani_TPZ8hSSSzoP9moNV1QKOwSdgv0w

지금부터 아두이노 우노 driver 설치하는 방법을 설명하겠습니다.
시작 -> 제어판 -> 하드웨어 및 소리 -> 장치관리자 로 들어가보시면 
컴퓨터가 Arduino UNO를 정상적으로 인식하지 못하고 있는 것이 보이실 거예요 ;;

tVbdo8r2km9nW_-kXMVUt48ucpWGZdo-NswvloSS_k0VDOk37abmZ10y2xUomCAXaa8p1ErqcmDChZJGfp2XinVYOuE28FiiTdFk7R9h8BQVwTZy70Y

자~ 아두이노 우노(UNO)의 Driver와 통합개발환경(IDE Integrated Development Environment)을 다운로드 하러 갑시다. o(^o^)o
위의 Link 페이지에서 여러분들의 OS에 맞는 개발환경을 다운로드 하세용
(저는 Window로 진행하겠습니다요)

그리고 여러분들이 원하시는 폴더에 압축을 풀어주세요~
Sketch(스케치: 아두이노 개발환경)는 따로 Install 과정이 없구요 그냥 압축 풀고 쓰시면 됩니다 ㅎㅎ
(우리는 MATLAB으로 Arduino를 가지고 놀 것이기 때문에 스케치(Sketch)라는 Arduino 개발환경은 딱! 한번만 실행 할거예요 .)
다시 장치관리자로 가 봅시다. 그리고 Arduino UNO를 마우스 오른쪽 클릭합니다.

RYr-5wEEPZRAQMNlPTAVMc78x1Ed52Bpdsfsmd6iuN_Shkl5rXPxr-7fHvbDWu173p30BaEArwFiQL82SrgtXooTG_qrFyScuL9VaAGH5mVdWUGhCnk

드라이버 소프트웨어 업데이트를 클릭하시면...

Dc9OdY_vM26i6eM0xhTfuVKkkb7k1ZU1DVKMaSRnmU2sehPUYGFcHC9YBx1zmzjmDu3euXiY6oXgQR8qctVGRCQAGNdACKvsh7ntmc7-5nce6bIF3kw

위와 같이 질문창이 나오구요 "컴퓨터에서 드라이버 소프트웨어 찾아보기"를 누릅니다.

EctxxmPXzIXLg02ajSsZCClLrq29d_mXnwAdLV2eszT_E22JCXdkkB7TJnJIt_ikABcx2QqrxQw8zN2X3gN2Fgpm39rkVTkV6kn7gNbmzvptWMnqK-M

그리고  찾아보기를 클릭 하셔서 방금 여러분이 압축을 푼 폴더로 가서 drivers 폴더를 선택해주세요
and 다음 버튼을 누립니다.

GE0oSKMedI0aWWRSabncwR67VknnYL4NrV7uSRiqea_BbuPviLs8rjqF5fTGaKumB4pi7-UkhBoW3XjVOx-vuYU8ooMcE7zVcq-pRMjjhX_CsRWgZ3c

보안 경고창이 뜨는데요 가볍게 무시해주시고 "설치합니다"를 폭풍 클릭!!

P3__6Y8N9dRvdsYLZgFc7Ysd4cr0sH15lAezcFhA2p8u-36C2mvXPN4wD8KnQKwfy8_5oB273roe5N5TtdJWKhl0x-xmNLkAz_lQA40QR0oV4v43xHw

드라이버를 성공적으로 설치했구요
다시 장치관리자로 가 보시면

YQb3wbF2l8w7b0w-TAWeyhNEbuy_tw1mmOF_NSC8i4Rls2ZhTMJg_-cRStUFLgJ2Ear98ry9zzQEyhr9rZtXiTYMY-_SqAhhFCTYG_tKFglP9kfgIbs

ㅜㅜ 우리의 Arduino UNO가 포트(COM)으로 정상적으로 잡히는걸 확인 할 수 있습니다.
저의 경우는 포트가 COM3로 잡혔네요 (COM 번호는 컴퓨터 마다 다를 수 있어요)
자~ 이제 Arduino를 컴퓨터에 인식 시키는 일은 끝났구요 MATLAB 파트로 넘어갑니다~ ^^

우선 아래 링크에서 MATLAB Support Package for Arduino를 다운로드 합니다.
(link 페이지의 오른쪽 상단 파란색 Download all 을 클릭하시면 되요)
그러면 ArduinoIO.zip이 다운로드 되구요~ 다운로드가 끝났으면 원하시는 폴더에 압축을 풀어주세요

그리고 마지막 단계로 위에서 말했던 "Arduino 개발환경(Sketch)를 딱 한번 사용"할 차례가 왔습니다.
처음에 Arduino 압축을 푼 폴더로 가셔서 arduino.exe를 실행시키세요~

wt8uJ2JTPl2RnKvZ3LndFXUPthT9fXlUR3m30Eshl7zISvErgM8NDE4g52WuldCxTnYXdfZVHbomLugC9j3T3u7MlFs6hSCiNwY8qEzipGjDOwH6pzI

아~ 멋진 Logo가 지나가고..
잠시후 Sketch(스케치)가 아래와 같이 실행이 됩니다.

-3d80E_f_ClQpu0QUBcAISuKdlbSMwgWlmyZTPnX2DpGVj6uY2rrWrDDHyWLQblVmR7LAi4yYmNm1MlaauYoVycazHcq9ZLU2vTLxmeZyKurAXArsME

Sketch의 상단에서 Open 버튼 QS5h5RhCmzf0rDlIhH51dr78EvNt8Dqym3ZpuevvhN3G2E9I24KORk-uSsKVoBa6U48KlniAcmfkm5GAXMo-Q8rBzM7nv1po28NuJpOMMLBkMm1iijI 을 누르시거나 파일을 직접 drag & drop 해서
ArduinoIO.zip 을 풀었던 폴더/ArduinoIO/pde/adiosvr/ 폴더안에 있은 adiosvr.pde 파일을 열어 줍시다.
(pde-file은 스케치에서 사용하는 파일입니다. )

8z0LWaCJcAZ8u51YCwZ8wBmKe_QPufDRs2zxf0anP69WSGC0f3JzZ_wjenF8r2xglApJXtwXdcgWqLyAashyklUzkMU_Zs_lHJZNs-3bZX7volajAjw

이제 Arduino로 adiosvr.pde 파일을 Upload (컴퓨터로 치자면 하드디스크에 저장) 할건데요
Upload 하시기 전에 Board와 Serial Port가 맞는지 확인해 주세욤~ o(^o^)o

t_A2DHtfhmL3tG8SPcQtBHaUjeDtN7mxMzndGLCp05SGxb4xOjtIBPdY3aAZMyk9GQ9WZ85s8NhNIrW6hfqJfq78BZ29nz1WQGqJu9tlNfo3zK2Q5Xs

sWKZd-ztQ9nyjWRMm5OliSt7pIVJto2p9bbugQbZd5MbCwVCstDZVWM8qdg5ty2GcS89aL9FrxyY_CKIB7cVMzPKU80mF7dQ2AMraNzoce3URLLr0jc

확인하신 후 Upload 버튼 S0LBpQL0XfItd0hHgptp18SBMhGOIuFLd5pObvPExgSBAgVITGY5L7GCqpTbSWU3WHX__-yBZxlWbA9695xSAsQs7ZoKltHHWQ85fKbiQrNwffP04Rk 을 클릭하시면...

MFphOkc8Uj0ES6aGQlhYWLwNW4WlKuNrWAfTkPQeD2XIekGZVlghG6FqAg2kAY5eElWke0CGbDVjrcosU2HtGMn3-5HUB1ycgvh8qVEsqBarHnwTCRQ

Done uploading 메세지와 함께 업로드가 완료됩니다 ^^
Arduino 보드의 깜빡이던 주황색 LED가 더이상 깜빡이지 않을 겁니다.
사실 처음에 아두이노와 컴퓨터를 USB로 연결했을 때 주황색 LED가 깜빡이던 것은
Arduino 보드가 정상인가를 확인하기 위해서 미리 Upload 해둔 파일이 실행되고 있었던 것이엿던 것이였던 것입니다.
그 미리 업로드되어 있었던 파일이 우리가 방금 Upload 했던 adiosvr.pde로 대체되었으므로 더이상 빤짝빤짝 안하는 거죵~~ ㅎㅎ

(pde폴더 안에 svr, adiosvr, motorsvr 3가지가 있는데요 우리는 아직 Motor Shield(확장보드)를 사용하지 않기 때문에
Arduino Input/Output Server (adiosvr.pde)를 Upload 했습니다.
추후 Motor Shield를 사용하시게 되면 위와 같은 방법으로 svr.pde 파일을 upload 해주시면 됩니다.)

adiosvr.pde의 Upload가 끝났으면 Sketch는 닫아주시구요 (COM 포트의 연결을 확실히 끊어 주기위해서)
MATLAB을 실행시켜 줍니다.
Current Folder를 ArduinoIO 폴더로 변경하시거나 Set path에 들어가셔서 ArduinoIO 폴더 path 걸어주세요
(path 거는 방법은 '05강 MATLAB 때려잡기 - M-file'을 참조하세요)

command window에서 아래와 같이 입력하시면
jgdYrgd6yri9iJnHTa7S6vHfHsT536w4bbhNPBR0ODQTIJc72VeVFShrUWPO47ljwgaZFkCah-yyUoPENvwumEHfhQKBI6IiYygMnjM-OREI27l85yI

위와 같이 나오면 Arduino랑 MATLAB 연결에 성공한  거예요 =(=^ㅅ^=)=

정말정말정말 간단하게 맛배기 하나만 보고 이번 강좌를 마치겠습니다요~
command window에서 아래와 같이 입력 해보시면...
>>a.pinMode(13,'output');
>>a.digitalWrite(13,1);

Arduino 보드의 주황색 LED가 켜지셨나요?

>>a.digitalWrite(13,0); %LED가 꺼져요






다음 시간부터 본격적으로 신나게 Arduino를 가지고 놀아 봅시다. o(^o^)o
여러분 스스로 Arduino와 MATLAB으로 무엇을 할지 상상의 나래를 펼쳐보세요~
이상입니다 다음시간에 뵙겠습니다. 꾸벅