본문 바로가기

개발자/Arduino

컴퓨터에서 직접 Arduino 제어하는 Firmata 사용법

반응형

 

 

 

 

Firmata는 아두이노 통합개발환경(스케치)이 아니더라도 Arduino Board에 Firmata 코드를 올린 후에 PC에서 Python을 이용하여 보드 제어가 가능한 프로토콜을 지원합니다. 즉, 윈도우 혹은 리눅스와 같은 호스트 컴퓨터에서 소프트웨어로 아두이노를 직접 제어할 수 있는 기능을 지원하는 것이 Firmata 프로토콜입니다.

 

1. 아두이노 IDE를 열어 보드와 컴포트를 확인한 후 메뉴 파일 -> 예제 -> Firmata -> StandardFirmata 를 열어서 컴파일, 업로드합니다. 현재 스케치 버전은 아두이노 1.8.12입니다.

 

파일 -> 예제 -> Firmata -> StandardFirmata 열어 업로딩

 

2. Firmata를 실습할 수 있는 프로그램을 다운로드 합니다. Firmata 홈페이지에서  자신의 컴퓨터 환경에 맞는 프로그램을 다운 받습니다. exe 파일은 직접 실행이 됩니다. 실행하면 아래와 같은 화면이 뜹니다.

 

Firmata 실행화면

 

3. 아두이노 보드가 연결된 포트를 선택하면 아래처럼 각 Pin의 입 출력과 상태와 현재 값(Low, High), 아날로그 핀에서는 읽은 아날로그 값이 변하면서 출력하면 성공입니다. 마지막 참고문서에 Firmata 프로토콜 문서와 상세한 프로그램 언어별 사용법 링크를 나중에 참고하세요.

 

 

이 상태에서 pin 13번 pin은 Output으로 되어 있고, 옆에 low 버튼을 누르면 high 로 변하면서 아두이노 우노 보드의 LED가 깜박이는 것을 볼 수 있습니다.

 

 

Python에서 Arduino 보드 이용하기

 

1. 우선 Python에서 Firmata 프로토콜로 Arduino 보드와 통신하기 위해서는 python에 pyFirmata를 설치해야 합니다. 설치 안내 페이지 참고. 

 

파이선이 설치된 컴퓨터에서 pyFirmata 설치

$ pip install pyfirmata

 

파이선으로 가장 기본 예제인 Blink 예제를 짜서 실행시키면 1초 마다 보드 위 13번 LED가 점등함을 볼 수 있습니다. 그런데 안켜짐. ㅠ.ㅠ

 

#!/usr/bin/env python3

from pyfirmata import Arduino

PIN = 13
DELAY = 1
board = None


def Blink():
    global board
    #
    if board is None:
        board = Arduino('COM3')
        print("Communication Successfully started")
    while True:
        board.digital[PIN].write(1) 
        board.pass_time(DELAY) 
        board.digital[PIN].write(0) 
        board.pass_time(DELAY)

Blink()

 

 

참고

처음 Firmata 위키페이지, 지금은 아래 깃허브로 이동

Firmata 프로토콜 문서 깃허브

Firmata 소스코드와 프로그램 언어에 따른 상세한 사용법

Firmata for Particle 

Arduino with Python: How to Get Started

 

 

 

 

 

 

 

 

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩