라즈베리 파이 SERIAL 통신 설정 및 사용법 (PYTHON)

아두이노에 연결하던지 혹은 다른 여러가지 용도로 GPIO – Serial 핀을 사용하는 경우 미리 사용을 위한 설정이 필요합니다.

 

SERIAL 통신 활성화 과정

 

/etc/inittab 파일 수정

  • sudo nano /etc/inittab
  • 아래 내용을 주석처리
  • #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

 

/boot/cmdline.txt 파일 수정

  • sudo nano /boot/cmdline.txt

내용 중 “console=ttyAMA0,115200 kgdboc=ttyAMA0,115200″ 부분을 삭제

  • dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

수정하면 아래처럼 됨.

  • dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

 

Linux dynamic device management 설정 수정

  • sudo nano /etc/udev/rules.d/85-paperduinopi.rules

아래 내용을 추가

  • KERNEL==”ttyAMA0″, SYMLINK+=”ttyS0″,GROUP=”dialout”,MODE:=0666

 

재부팅

  • sudo shutdown – r now

 

Serial 설정 참고자료 : http://spellfoundry.com/sleepy-pi/setting-arduino-ide-raspbian/

 

 

아두이노 개발환경 설치

 

Serial 통신을 위한 준비가 끝났습니다. 아두이노 개발환경을 설치하고 싶은 경우 아래 링크의 내용을 그대로 따라하면 됩니다.

https://www.hardcopyworld.com/?cat=50

 

 

 

PYSERIAL 라이브러리를 이용한 파이썬 예제

 

파이썬에서 serial 포트 제어하게 해주는 py-serial 라이브러리 설치

  • sudo apt-get install python-serial

 

pyserial 예제파일 만들기

  • nano pyserial_test.py

 

아래와 같이 소스코드 입력

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600, timeout=1)
ser.open()
 
ser.write("testing")
try:
    while 1:
        response = ser.readline()
    print response
except KeyboardInterrupt:
    ser.close()

 

예제파일을 실행해보죠.

  • python pyserial_test.py

 

실행 후 serial로 연결된 장치에서 문자를 보내보세요. (줄넘김 문자 포함해서) 받은 메시지가 콘솔에 표시되면 정상 동작하는 겁니다.

만약 pyserial_test.py 실행했을 때 아래와 같은 에러가 난다면…

Traceback (most recent call last):
  File "pyserial_test.py", line 1, in <module>
    import serial
ImportError: No module named serial

이건 라이브러리가 제대로 설치되지 않아서입니다.

pyserial 소스코드를 직접받아 설치해야 합니다. 아래 사이트에서 최신 pyserial을 받습니다. (pyserial-2.7.tar.gz)

https://pypi.python.org/pypi/pyserial#downloads

 

다운로드 받은 파일을 라즈베리 파이에 업로드 합니다. 그리고 파일이 있는 디렉터리로 이동하고 압축을 풀어줍니다.

  • $ tar -xzf pyserial-2.6.tar.gz

명령어로 압축풀기 귀찮으시면 미리 압축 풀어서 업로드해도 됩니다.

이제 직접 설치

  • $ sudo python setup.py install

 

다시 pyserial_test.py 실행해보시면… 이제 라이브러리를 찾지 못해서 import 과정 에러가 나지는 않을 것입니다.

  • sudo python pyserial_test.py

 

You may also like...