2016년 6월 30일 목요일

Raspberry Pi 3 Serial 로 사용하기

자동차에 이것저것 장비를 늘려 나가다 보니 raspberry pi 를 debugging 하기 위해 USB 키보드를 들고 다니는 것이 여간 귀찮은 것이 아니다. 그렇다고 매번 Tethering  을 해서 ssh 접속을 하기로 번거로워서 어떻게 하면 장비를 줄일 수 있을까 고민하다가 serial 을 사용할 수 있다는 생각이 떠올라서 Usb to Serial 을 사용해서 노트북과 연결을 했다.

Serial 로 연결한 라즈베리 파이 3
연결순서는 VCC (5V), GND, RX, TX 순서다.
VCC 가 연결 되었기 때문에 usb 로 전원을 공급하지 않아야 하고, 혹시 usb 로 전원을 넣는다면 VCC 케이블은 빼 줘야 한다.

이렇게 연결하고 minicom 에서 /dev/ttyUSB0 를 115200 으로 열어 주면 사용할 수 있다.

그런데!
Pi 1, 2 에서 잘 쓰던 이 방법이 3 에서는 안된다.
당연히 될줄 알고 키보드도 놓고 차에 왔는데, 이런 황당할 경우가. 선을 잘못 연결 했나 싶어서 한참을 봤는데 문제가 없었다. 휴대폰으로 잠시 검색을 해 봤더니... 이런.. Pi 3 에서는 Serial 을 사용하는데 문제가 있었다.

내장으로 Bluetooth 와 Wifi 가 들어가는 바람에 기존 Serial 을 사용하던 GPIO 가 중복이 되는 것이었다. 쩝. 다행히(?) 최근에 최적화를 위해 OBD-II 를 Bluetooth 에서 Serial 방식으로 바꿨기 때문에 Bluetooth 를 Disable 시켜 버리고 Serial 을 살렸다.

가장 깔끔한 설명이 되어 있는 참조 사이트는 이곳.

요약하면,
/boot/config.txt 파일에 아래 두 줄을 추가 하고
enable_uart=1
dtoverlay=pi3-miniuart-bt
/boot/cmdline.txt 를 아래 내용으로 바꿔준다.
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
그리고 reboot

잘 동작한다.

댓글 2개:

김창회 :

usb키보드를 들고다니기 귀찮으시다면..
http://www.logitech.com/ko-kr/manuals/k380-setup-guide
이 블루투스 키보드 써보세요

저도 윈도우 파이, 리눅스,맥에 블루투스 기억을 해놓고 버튼 하나만 클릭하면 번갈아가면서 쓸 수 있어서 좋아요 ㅋ

김창회 :

OBD-II 잭 어디에서 구매하셨는지 알 수 있을까요..? 그리고 ODB잭에서 나오는 데이터들을 어떻게 받아들이는지도 좀 알고싶네요 ^^;; 게시글 잘 보고있습니다.