SW교육/아두이노

아두이노와 스크래치 연동 2 - S2A_fm

GrayrabbiT 2015. 1. 9. 01:38
반응형

이번에 아두이노와 스크래치에 연동할 녀석은 S2A_fm이라고 부르는 녀석입니다.

scratch to arduino  firmata  라고 할 수 있습니다.

이녀석의 특징은 standard firmata 를 사용하고 있기 때문에 표준이 될 수 있다는 것입니다. 


1. python 과 라이브러리 설치 

python , python pyserial, python pymata

s2a_fm library 

크게 보면 2가지가 필요합니다. python, s2a 가 그것입니다. 먼저 파이썬부터 해결해 보도록 합시다.


1-1 파이선 설치

http://python.org 에 접속합니다.

파이선을 다운로드 하겠습니다. 


위의 보이는 그림에서 마우스를 downloads로 옮기면 하위에 팝업으로 다운로드 할 python의 버전을 선택할 수 있습니다. 3.x 버전과 2.x 버전으로 나눌 수 있습니다. 

(파이썬도 매우 강력하면서 재미있고 쉬운 언어입니다. 학습해 보시길 권장드리며, 아두이노와 연결하기 위해서는 몇가지 라이브러리가 필요하지만 이를 통해서 직접 아두이노를 컨트롤 할 수 있습니다.)

본 과정에서는 2.x 버전을 선택하여 파일을 다운 받았으며, 이를 설치하였습니다. 


1-2 파이선 확인하기

윈도우+ R 키를 이용하여 ' cmd '를 실행시킵니다. 

명령 프롬프트를 실생시킨 후 다음의 명령으로 python을 확인합시다.



* python -V  ( 파이썬의 버전을 확인하는 명령)

*python  (파이썬을 실행)

* exit() (파이썬 종료 명령)


위와 같은 단계가 오류 없이 실행된다면, 파이썬의 설치가 완료되었으며, path 설정도 완료 된 것입니다. 만약 python이 실행되지 않는다면 'python의 path 설정' 과 같은 검색어 검색을 통하여 환경설정을 한 후 다음 단계로 넘어갑시다. 


1-3 python 라이브러리 추가

파이썬과 아두이노를 연동하기 위해서 몇 가지 추가적인 라이브러리를 설치해야 합니다.

다음의 명령을 수행합시다.


- pip install PySerial

- pip install PyMata


이 두 가지의 라이브러리 설치가 완료되면 python을 통한 연동준비는 끝났습니다.

(만약 pip 명령이 작동하지 않는다면, python pip 설정 과 같은 검색어를 통해 검색한 후 설정하세요)


2.Scratch 2.0 Offline 설치

스크래치가 기본적으로 웹환경에서도 실행이 가능하지만, adobe air를 이용한 오프라인 버전이 있습니다. 

이 버전에서 가장 중요한 핵심은 adobe air를 통해서 웹을 통한 자료의 교환이 가능해 진다는 것입니다. 물론 이때 외부의 웹이 아닌, 내부의 특정 포트를 향하여 자료를 전송할 수 있습니다.

자세한 사항은 scratch wiki를 참고해 주세요.


2-1 scratch 2.0 다운로드

http://scratch.mit.edu/scratch2download/

위의 링크로 접속합니다. 



먼저 첫번째 단계의 adobe air를 설치부터 시작해도 되지만, 2번째 단계인 스크래치 오프라인 에디터를 바로 다운로드 해서 설치를 진행하여도 무방합니다.

오프라인 에디터가 설치되기 전에 adobe air의 설치를 감지하고 없다면 자동으로 다운로드하여 설치하도록 도와줍니다.

자신의 운영체제에 적합한 환경을 선택하여 설치하고 실행합시다. 


3. 아두이노 standard firmata 업로드

아두이노에 표준적인 통신 라이브러리 입니다. 

아두이노 IDE를 실행합시다. 

예제 - firmata - standardfirmata 클릭




그리고 나타난 소스코드를 업로드 버튼을 이용하여 업로드 합니다.


4. S2A_fm 설치 및 실행

google 검색을 통해 s2a_fm을 검색하거나 다음의 주소를 이용하여 github로 접속합니다. 

https://github.com/MrYsLab/s2a_fm



github의 오른쪽 하단에 위치한 download zip 을 클릭하여 이 프로젝트 전체를 다운로드 한 후 자신이 원하는 폴더에 압축을 해제합니다. 저는 편의상 바탕화면에 압축을 해제하였습니다.


그리고 압축이 해제된 폴더까지 탐색기를 통하여 이동합니다. 

파일이 보이기 시작하는 위치에서 쉬프트를 누른 상태에서 마우스 우클릭을 한 후 여기서 명령 창 실행을 선택합니다.



그리고 나타나는 명령 창에서 다음과 같이 명령합니다. 


python s2a_fm.py com3     

(저의 아두이노가 연결된 com 포트는 3번입니다. 명령 뒤에 com포트와 번호는 자신의 상황에 맞게 바꾸어 주세요)

그후 이와같은 화면이 나타납니다.



마지막을 잘 살펴보면 현재 스크래치와의 연동준비가 끝났기 때문에 스크래치를 실행시켜 달라는 메세지를 확인할 수 있습니다. 



5. Scratch 2.0 offline 실행

전 단계에서 설치한 스크래치를 실행합니다. 실행되고 난 후 이와같은 모습입니다. 

(지구본 모양을 클릭한 후 한국어로 바꾸고 난 모습입니다.)



얼핏 보기에는 별 다른 변화가 없습니다.

하지만 중요한 부분이 하나 남아있습니다.


쉬프트키를 누른 상태로 파일을 클릭합니다. 이와 같은 동작을 하면 전에 보이지 않던 메뉴가 하나 더 추가된 것을 발견할 수 있습니다. 


1번이 일반적인 클릭으로 볼 수 있는 메뉴이며 2번은 쉬프트를 누른 상태로 클릭했을 때의 서브 메뉴입니다. 

그리고 빨간색 사각형의 메뉴를 선택합니다. 

탐색창이 열리면 이전에 다운 받아 압축을 해제해 둔 s2a_fm 의 폴더를 찾아 가도록 합니다. 

그리고 다음과 같은 경로를 찾습니다. 

s2a_fm 메인 폴더 -> ScratchFiles -> ExtensionDescriptors

의 폴더에 있는 s2a_fm_ko파일을 선택합니다.



그 후 스크래치 화면을 살펴보면 변화한 것을 확인할 수 있습니다. 

추가 블럭에 스크래치 2 & 아두이노와 관련된 추가 메뉴들이 생성되었음을 확인할 수 있으며, 일반적인 아두이노 프로그램에서 사용하는 명령들이 있음을 확인할 수 있습니다.




firmata를 이용하는 방법이기 때문에 표준적인 방법으로 아두이노 프로그래밍을 진행하면 됩니다.


6. 결론


장점 

- firmata를 이용한 표준적인 방법을 사용함으로 다양한 인터넷 자료를 활용함이 수월합니다.

-오픈소소로 구성되어 있기 때문에 누구나 수정하거나 추가 개발이 가능합니다.


단점

-S4A와 마찬가지로 컴퓨터와의 연결이 끊어지면 작동이 멈추게 됩니다. 하지만 S2A는 약간 다른 것이 firmata를 사용하고 있기때문에 스크래치와 아두이노가 어떠한 값을 주고 받는가를 정확하게 파악할 수 있으며, 추후 다른 장비를 통하여 원격지의 아두이노의 제어가 가능합니다.

-설치가 복잡하다. 교육적 목적으로 사용하는 경우 학생들에게 이와같은 방법을 진행하기 위해서는 쓸때없는 시간이 소요됨을 알 수 있습니다. 

















반응형