아두이노와 라즈베리파이 시리얼 통신하기

대학원 수업 프로젝트 아이디어로 위 슬라이드의 실내 먼지측정 시스템을 제안했습니다. 아이디어를 제안하면서 전부터 써보고 싶었던 아두이노와 라즈베리파이를 활용하겠다는 계획을 담았지요. 그 덕에 오늘 수업 재료비로 이 두녀석을 드디어 받았습니다. 하하핫!
2013-10-11 16.09.14

아두이노를 활용하는 것은 그리 어렵지 않고, 라즈베리파이도 리눅스 사용이 익숙하신 분들은 어렵지 않게 기본 셋팅을 각각의 공식 사이트에 들어가서 확인할 수 있답니다. 저도 구매한 microSD 카드에 라즈비안 OS 이미지를 심고 기본 셋팅(비번설정, 패키지 업데이트)을 먼저 했습니다.

드디어 본래 계획한 프로젝트대로 아두이노와 라즈베리파이의 간단한 연결테스트를 시작합니다. 참고는 거의 전적으로 이 블로그입니다.

http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/

제가 한글로 적었다는 것과 몇가지 차이점 빼고는 동일합니다.

일단 아두이노에서는 다음과 같이 시리얼 연결을 하고 정해진 시간마다 “Hello Pi”라는 문자열을 날리는 코드를 다음과 같이 작성합니다.

C코드 같으면서도 딱 봐도 무슨 의미인지 들어오지요? 이래서 비전공자도 쉽게 아두이노를 가지고 놀 수 있다는 거지요 ^^ 자 이제 라즈베리파이 녀석에서는 파이썬으로 간단하게 시리얼 연결 코드를 작성합니다.

아주 간단한 코드이지요. 시리얼 설정과 함께 ser객체 생성 후 while 루프 안에서 계속 데이터를 받아서 출력하겠다는 것이지요. 이대로 따라하면 잘 될 것 같은데 위 코드를 실행하면 에러가 뜹니다. 왜냐하면 serial 모듈이 이 라즈베리 파이 안에 없기 때문이지요. 따라서 python의 pip를 활용해서 serial 모듈을 다운받아야 정상적으로 작동합니다.

요렇게 serial 모듈까지 설치하고나면 짜잔

2013-10-11 18.57.40

사진과 같이 모니터에 “Hello Pi”가 거침없이 찍혀 내려오는 모습을 보실 수 있습니다. 와우!~ 눈물이 날 뻔…. 아니 그 정도의 감동은 아니었지만 “Hello Pi”가 모니터에 찍힐 때 감동은 C를 처음 배울 때 “Hello World”와 비견될 정도의 감동이네요.

간간히 프로젝트를 진행하면서 아두이노와 라즈베리파이 관련 포스팅을 하겠습니다. 아! 그리고 라즈베리파이보다 스펙이 좀 더 좋은 비글본 블랙을 체험단으로 무상으로 곧 받게되어 비글본 블랙을 가지고도 포스팅을 올릴 예정입니다. ^^