일반적인 아두이노 하드웨어라면, 일반적으로는 Aruduino IDE 에서 C 언어를 응용하여 설계, 제어할 것이다.
- Python: pyfirmata
하드웨어 제어에 있어 C언어 만큼 탁월한 언어는 없으면서도, 첫 프로그래밍 언어로는 쉽지 않기도 하다.(외울게 한 두 개만 있는게 아니지만)
이런 아두이노에 대해 C언어가 아닌 Python 을 이용하여 설계, 제어가 가능한 방법이 있다.
아두이노에 별도의 프로그램이나 사용을 위한 드라이버를 생략하고 간단하게 나타낸다면 위와 유사한 형태 일 것이다.
여기에 Python 응용이 가능하게 끔 Firmata 소스를 업로드 할 것이다.
C로 작성된 Firmata 의 StandartFirmata 소스를 업로드, 해당 소스를 '미들웨어' 처럼 사용하여 Python 으로 제어/응용을 위한 스크립트가 동작되도록 만들 수 있다.
- Firmata 적용 방법
Arduino IDE 에서 라이브러리 관리자를 통해 라이브러리를 받고 해당 되는 예제를 연결한 아두이노 보드에 업로드 하면 적용 된다
Firmata 라이브러리는 Firmata by Firmata Developer 를 사용하면 된다.
예제 : StandartFirmata 를 사용할 아두이노 보드에 업로드를 진행한다.
※ 이때 연결된 포트 명을 기록해 둘 것
※ 주의 사항
pyfirmata 는 Python 버전 2.7, 3.6, 3.7 에서만 구동됨
환경 변수 및 Python 설치 과정은 생략
CMD(명령 프롬프트) 창 연 뒤 pip3 install pyfirmata 실행
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from pyfirmata import Arduino import time board = Arduino('COM20')#COM20 대신 이전에 기록한 포트 이름을 사용 print("Communication Successfully started") #무한 반복 적용 #각 핀에 대한 접근은 List-indexing 방법을 사용하여 접근 #write() 메서드를 적용하여 출력 제어(1 : high, 0: low) while True : board.digital[13].write(1) time.sleep(1) board.digital[13].write(0) time.sleep(1) | cs |
댓글
댓글 쓰기