파이썬을 공부해 나가면서 한 동안 파이썬으로 GPIO를 제어하는 방법을 찾고 있었다. 라즈베리파이에서 RPIO나 WiringPi 와 같은 파이썬 모듈을 쓸 수 있으나 라즈베리파이의 GPIO기능 자체가 너무 빈약하다는게 문제다. 아두이노 계열은 파이썬이 되지를 않고 라즈베리파이에 연결할 수 있는 아두이노 (혹은 유사 보드)들이 몇몇 검색되었는데 파이썬으로 제어를 하기에는 제약이 많다. 그나마 아두이노에 standard firmata 를 올리고 라즈베리파에에서 pyFirmata 로 제어하는 방법이 있기는 한데 직접 해 보니 이상하게 잘 동작이 되지 않았다.

 비글본블랙(이하 BBB) 이라는 보드는 (마데 인 America 이다.) 리눅스 머신이면서 GPIO가 라즈베리파이와는 비교도 안 되게 많이 마련되어 있다.  하드웨어를 제어하는데 자바스크립트를 이용하며 이것을 잘 몰랐기 때문에 한 번 살펴보기만 하고 서랍에 넣어두었었다.

그런데 구글링해보니 여기에도 파이썬으로 GPIO를 제어할 수 있는 모듈들이 있었다. 그 중 PyBBIO 와 adafruit 에서 배포하는 Adafruit_BBIO 라는 파이썬 모듈이 활발하게 개발 중인 것 같다. 이것을 이용하면 포트, PWM, ADC 와 같은 주변기기들을 파이썬으로 제어할 수 있다. 그래서 한 번 시도해보기로 했다.

 먼저 BBB 를 모니터에 연결하려면 마이크로HDMI 케이블(없으면 젠더라도)이 있어야 해서 주문을 했다. 다른 방법으로 BBB는 USB만 PC와 연결하면 ssh로 PC상에서 터미널 창을 띄울 수 있고 구글링해보면 방법도 잘 나와 있다. 그래서 putty 라는 프로그램을 이용하여 원격 터미널 창에서 파이썬 모듈을 설치한 후 실험을 몇 개 해 보았는데 잘 되었다. 포트로 LED를 깜박이고 cds셀을 이용한 ADC 실험도 해 보았는데 매우 간단하게 잘 되었다.

 다음은 원격 터미널 상에서 nano를 이용하여 LED를 깜박이는 프로그램을 작성하는 화면이다.


 PyBBIO는 아두이노의 API와 유사하게 작성되어 있으며, 반면 Adafruit_BBIO는 라즈베리파의 RPIO 를 많이 참고한 것 같다. 취향에 따라 선택하면 되겠다.




Posted by 살레시오

댓글을 달아 주세요