라즈베리파이 + 아두이노 시리얼 통신

참고 URL : http://m.blog.naver.com/agapeuni/220198811728

라즈베리파이에서 아두이노 우노를 제어하기 위한 arduino 패키지 설치

Cap 2016-02-12 16-56-59-464

Cap 2016-02-12 17-00-37-647
설치완료

라즈베리파이에 원격데스크탑으로 접속하면 아두이노 개발툴이 설치된 것을 확인 할 수 있다.Cap 2016-02-12 17-02-00-186.png

실험1. 아두이노 우노에서 시리얼통신 (USB?) 으로 0부터 1023 까지 값을 0.5초 간격으로 보내는 코드아두이노 IDE를 기동하고 아래 코드를 작성 후 아두이노에 넣고 실행~
Cap 2016-02-12 17-14-15-510.png

Tool -> Serial Moniter 를 누르면 시리얼 모니터 창에서 아두이노로부터 오는 값을 확인 할 수 있다
Cap 2016-02-12 17-18-30-195

실험2.
– 실험 1 을 적용한 후 터미널 환경에서 아두이노 우노가 시리얼 통신으로 보낸 값을 읽어오는 실험
파이썬으로 코딩한다.

Cap 2016-02-12 17-38-28-408.png
Cap 2016-02-12 17-37-46-742
이렇게 코딩하고 파이썬 실행
Cap 2016-02-12 17-39-11-859.png음 에러가 나는데…내용을 보니 port 쪽에 문제가 있는 것 같다

/dev 디렉토리를 가본다
Cap 2016-02-12 17-40-10-427
나는 ttyACM0 란게 없다. 참조한 블로그의 글쓴이분과 환경이 다른가 보다
ttyAMA0 가 있으니 이걸로 바꿔서 한번 테스트~

Cap 2016-02-12 17-42-57-360.png

Cap 2016-02-12 17-45-39-513.png
음 아무런 반응이 없다.. port에 문제가 있는것 같다.
그러고 보니 아두이노IDE 우측 하단에 아두이노와 연결된 포트정보가 있다
Cap 2016-02-12 17-49-16-336
port 정보를 바꿔서 다시 실행
Cap 2016-02-12 17-50-52-582

Cap 2016-02-12 17-51-48-153.png
파이썬으로 실행한 프로그램에서 usb를 통해 들어온 값을 읽어오는게 가능해졌다.

Cap 2016-02-12 17-53-48-711.png

재미있는 것은 터미널에서 실행시킨 SerialRead1.py 가 usb포트로부터 값을 가져와 찍으면
아두이노 IDE의 시리얼모니터에서 값이 빠지는 것이 확인되었다.

한개의 포트에 한개의 프로그램만이 값을 가져갈 수 있는 것으로 예상된다.