본문 바로가기
프로그래밍/Arduino Tutorial

Arduino + Firmata + PyFirmata

by choies1 2016. 12. 3.

Arduino Board에 Firmata 코드를 올린 후에 PC에서 Python을 이용하여 보드 제어가 가능하다.


구체적인 방법은 다음과 같다.


[Arduino에 Firmata 코드 올리기]

1. Arduino Board를 PC에 연결한다. (여기서는 Arduino Nano 보드를 이용했다)


2. 툴에서 자신의 보드에 맞게 보드와 포트를 설정한다.(여기서는 포트가 COM4로 잡혔음) 

3. 파일 -> 예제 -> Firmata -> StandardFirmata 를 선택한다.

4. Upload 버튼을 눌러서 보드에 코드를 upload 한다.

5. Firmata Test 하기

Firmata 홈페이지 (http://firmata.org/wiki/Main_Page)에서 자신의 OS에 맞는 실행파일 다운로드 받아서 실행하기

5.1. Port에서 자신의 보드가 연결된 포트 설정 (위에서 COM4로 설정이 되어있어서 COM4 선택)

5.2 결과 확인 (아래처럼 각 Pin별 결과가 나오면 일단 성공)



[Python에서 Arduino 보드 이용하기]

1. 설치

Python에서 Firmata 프로토콜로 Arduino 보드와 통신하기 위해서는 python에 pyFirmata를 설치해야됨 (참조 사이트: https://github.com/tino/pyFirmata )


pip install pyfirmata


2. 활용

코드 작성 시에 (analog/digital) Input의 경우 Iterator를 설정해 주어야 한다. 또한, Digital Pin의 경우는 Pin mode가 기본적으로 Output으로 설정되어 있다. 따라서 Digital Input을 위해서는 다음과 같이 Digital 출력, 출력 포트, Input으로 설정해 줘야 된다.

이제 파이썬 코드를 아래와 같이 작성하면 된다.

3. 주의

pyFirmata의 경우는 digital I/O와 Analog Input은 가능하지만, I2C는 지원하지 않는다. 이것을 위해서는 pyMata를 사용해야 됨.