반응형

어린이들을 위한 프로그래밍 언어인 스크래치(Scratch) 언어로 아두이노를 제어할 수 있습니다. 바로 스크래치X(ScratchX, http://scratchx.org/) 입니다. 스크래치X는 어린이들이(또는 초심자들) 처음부터 C언어로 아두이노 코딩을 배우기에는 따분하고 어려울 수가 있기 때문에 이런 경우 교육용으로 유용하게 사용할 수 있는 사이트 입니다. 이 글에서는 스크래치X에 아두이노를 연결하는 방법을 알아보고 간단한 예제를 실행해 보겠습니다. 아마도 이 글의 대상이 아두이노를 처음 접한다거나 어린이(?)일 경우도 있을 것 같아서 좀 상세하게 적어보도록 하겠습니다.


이미지 출처: http://www.scratchx.org


우선 스크래치X는 윈도우와 맥에서는 실행이 가능하지만 리눅스에서는 실행 할 수 없습니다. 스크래치 브라우저 플러그인이라는 것을 설치해야 하는데 아직은 리눅스를 지원하지 않기 때문 입니다. 브라우저는 크롬, 파이어폭스, IE 등을 모두 지원합니다. 다만 저의 경우에는 크롬에서는 제대로 동작하지 않았습니다. 홈페이지를 보니 현재 크롬쪽 확장 플러그인에 이슈(문제점)가 있는 듯 합니다. 되도록 윈도우라면 IE를 이용해 주시고 맥이라면 파이어폭스를 이용하는게 좋을 것 같습니다. 현재 기준으로는요...




1. StandardFirmata 펌웨어를 아두이노에 업로드

우선 아두이노 IDE 가 설치되지 않았다면 아래의 URL에서 다운로드 받아서 설치 합니다.

▶아두이노 IDE 설치 : https://www.arduino.cc/en/Main/Software

 

IDE가 설치 되었다면 아두이노를 PC의 USB포트에 연결하고 아두이노 IDE를 실행합니다. 위와 같이 아두이노 하드웨어 종류와 PC와의 통신을 위한 COM 포트를 설정해 줍니다. 저의 경우는 아두이노 우노를 사용했습니다. 혹시 아두이노 호환품을 사용한다면 아두이노 IDE 설치시의 드라이버가 적용되지 않아서 PC에서 인식이 되지 않을 경우도 있을 것입니다. 그럴 경우엔 자신의 아두이노가 사용하는 시리얼통신칩이 무엇인지 알아내서 관련 드라이버를 설치해 주어야 합니다. 아마도 중국산 호환품의 경우에는 CH340 칩이 제일 많을 것입니다. 아두이노를 자세히 보면 CH340 또는 CH340G 라고 쓰인 칩이 있을 것입니다. 칩에 따른 드라이버는 다음의 URL에서 다운로드 받을 수 있습니다.




파일->예제->Firmata->StandardFirmata 를 열어 줍니다.


아두이노로 StandardFirmata 소스를 업로드 해 줍니다. StandardFirmata는 아두이노가 브라우저 플러그인과 통신할 수 있도록 해주는 일종의 프로토콜이라고 보시면 됩니다. 실행단계는 아마도 이렇게 될 것입니다. 


브라우저(스크래치X 사이트) -> 브라우저 확장 플러그인 -> USB 시리얼통신 -> StandardFirmata 가 번역(아두이노) -> 실행  


이렇게 하면 일단 아두이노에 Firmata 를 설치하는 과정은 끝난 것입니다.





2. Scratch Extensions Browser Plugin 을 PC에 설치



위의 사이트로 이동해서 자신에게 맞는 플러그인을 다운로드 받아서 PC에 설치 합니다. 저의 경우는 윈도우에 IE를 사용할 것이므로 맨 아래 있는 것을 다운로드 받아서 설치 했습니다. - 사실 최적화된 브라우저는 파이어폭스라고 합니다. 하지만 윈도우를 쓴다면 굳이 파이어폭스를 다운로드 받을 필요는 없습니다. IE에서도 잘 되거든요. 만약 파이어폭스를 사용하려면 https://www.mozilla.org/ko/ 에서 다운로드 받아서 설치하면 됩니다.


플러그인을 설치하면 아무 메시지 없이 설치창이 닫히면서 설치가 완료 됩니다. 정상적으로 설치된 것입니다.


준비는 모두 끝났습니다.





3. ScratchX 실행해 보기

이제 브라우저를 열고 다음의 URL을 클릭해서 브라우저상에서 블록쌓기 하듯이 아두이노 프로그래밍을 하면 됩니다.


▶Blink 예제를 보려면 아래의 URL을 클릭해서 들어갑니다.

http://scratchx.org/?url=http://khanning.github.io/scratch-arduino-extension/examples/Arduino%20Example%20-%20Blink%20an%20LED.sbx


▶빈 ScratchX 로 시작하려면 아래의 URL을 클릭해서 들어갑니다.

http://scratchx.org/?url=http://khanning.github.io/scratch-arduino-extension/arduino_extension.js

 

URL로 이동하면 아직 베타버전이라 위와 같은 경고가 뜹니다. I Understand... 를 클릭해서 들어 갑니다. 베타버전이라도 될 건 다 되네요.


저의 경우엔 아두이노의 HelloWorld인  Blink 예제를 해 보기 위해 Blink예제링크를 클릭해서 들어갔습니다.


위와 같이 Blink 예제가 나옵니다. 기본 언어는 영어로 되어 있으므로 위와 같이 한글로 바꾸려면 맨 위의 지구모양 아이콘을 눌러서 바꿔주면 됩니다. 실행버튼은 녹색깃발 표시이고 실행정지는 빨간색 원 표시 입니다. 그리고 아두이노를 연결하면 정상적으로 연결(통신)되었다는 표시가 위와 같이 녹색으로 나오게 됩니다. 만약 노란색일 경우 연결되지 않은 경우이고 빨간색일 경우 플러그인 등에 문제가 있는 경우 입니다. 


기본 LED핀은 9번으로 되어 있었지만 저의 경우는 12번에 연결을 하고 실행해 보려고 합니다. 'When device is connected' 하위의 블럭인 'connect' 블럭의 PIN 번호를 12로 수정해 줍니다. 수정 후 반드시 'When device is connected' 블럭을 더블클릭해서 코드를 한 번 실행해 주어야 합니다. 왜냐하면 이미 아두이노가 연결되었을 때 'When device is connected' 블럭의 실행이 끝났기 때문에 아두이노는 핀 9번에 LED가 연결된 것으로 이미 설정(Setup)이 되어 있기 때문 입니다. 이것을 해당 블럭을 다시 실행해서 바꿔주는 것입니다.


녹색깃발을 클릭하면 동작하고 빨간색 원을 클릭하면 정지 합니다. LED의 짧은 다리는 아두이노의 GND에 긴다리는 PIN 12에 연결해야 합니다. 거꾸로 연결하면 안됩니다. 전압 때문에 원래는 220Ω 저항을 하나 달아주어야 하지만 저항 없이 그냥 연결해도 너무 오래 작동하지만 않으면 LED는 잘 고장나지 않습니다. 한 손으로 핸드폰이랑 아두이노랑 들고 찍었더니 덜덜 떨리네요. 아무튼 잘 작동하네요. ^^ 


이대로 끝내기에는 무언가 아쉬움이 있어서 이번에는 LED 하나를 더 추가해서 LED 2개를 번갈아 가면서 ON/OFF 해 보았습니다. 코드(?)는 다음과 같습니다. 


11번 핀에 LED를 하나 빨간색 LED 를 추가하고 LED B 라고 명명 했습니다. 위와 같이 블럭을 만들면 LED A ON -> LED A OFF -> LED B ON -> LED B OFF 순으로 동작 합니다. LOOP(무한반복문) 안에 블럭들이 들어 있으므로 정지 버튼을 누르기 전까지는 무한반복 됩니다.



아이들 또는 일반인이 처음으로 코딩을 배우기 시작한다면 이런 블록 조립 형태의 스크래치 언어로 프로그램이 돌아가는 원리를 익히는것도 나쁘지 않을 것 같습니다. 자칫 따분하고 재미 없는 프로그래밍 공부가 아두이노라는 재미있는 하드웨어와 블럭놀이 하는 듯 한 스크래치로 인해 한층 더 흥미로워 질 것 같기 때문 입니다. 


다만 이것을 본격적인 아두이노 프로그래밍에 사용하려는 것은 적합하지 않습니다. 왜냐하면 이렇게 작성한 프로그램은 아두이노에 업로드가 되어서 실행되는 것이 아니라서 그렇습니다. 브라우저를 꺼버리면 프로그램도 같이 날아가는 것이죠. 아두이노의 장점 중 하나가 PC없이 독립적으로 프로그래밍 해서 사용할 수 있다는 것인데 스크래치X는 PC가 없으면 사용할 수 없거든요.  따라서 교육용으로만 사용하는 것이 가장 적합하다고 생각합니다.

반응형

+ Recent posts