본문 바로가기

Programming/IoT_Embedded

라즈베리파이 개발환경 꾸미기 #2. 키보드 모니터 없이 라즈베리파이 Login 하기

이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다.

  1. 라즈비안 OS 설치하기
  2. >> 키보드 모니터 없이 라즈베리파이 Login 하기 <<
  3. Wifi 설정 / 기본 설정하기
  4. 파이썬 + Eclipse로 라즈베리파이 개발하기
  5. 라즈베리파이에 NodeJs 설치하기
  6. NodeJs + Eclipse로 라즈베리파이 개발하기
  7. C/C++ Cross Compiler(Tool Chain) 설치하기
  8. Eclipse + C/C++ 로 라즈베리파이 개발하기


라즈베리파이 Login Shell(Serial TTY)

<Updated, 2017.02.02>
라즈비안 OS가 예전에는 UART가 기본으로 열려 있도록 배포되었는데, 이제는 그렇지 않습니다.
그래서 SD카드를 PC에 다시 연결해서 부팅할때 UART가 활성화 되도록 수정해야 합니다.

이전 단계에서 SD카드에 라즈비안 OS 굽기 단계가 성공적으로 이루어 졌다면 자동으로 PC에서 SD카드가 인식해제 되어 있을 것입니다.
SD카드를 PC에 뺐다가 꽂아서 재 인식 시키면, SD카드에 있는 라즈비안 리눅스의 boot 영역이 외장 디스크로 인식됩니다.
그 중 config.txt 파일을 찾아서 편집기로 수정해야 합니다.

config.txt 파일의 마지막 라인에 "enable_uart=1" 이라는 문장을 추가합니다.



이때 주의 할것은 공백 없이 작성해야 한다는 것입니다.


또한, cmdline.txt 파일을 열어 보면 "console=serial0,115200 console=tty1"이라는 문장을 확인 할 수 있습니다.

여기에 접속할 장치와 속도를 지정되어 있으니 필요하다면 수정해서 사용할 수 있습니다.


위 2개의 파일은 라즈베리파이가 부팅할때, 부트로더가 읽어서 커널에게 전달하는 파일입니다. 그래서 수정한 경우 반드시 리부팅이 필요합니다.





  <PL2303 3.3v 전용 USB-toSerial 장치>




<CH340 5v USB-to-Serial 장치 >





대표적으로 많이 사용하는 것은 위의 사진과 같이 생긴것들 입니다.
위 두 제품의 차이점은 TTL 신호의 HIGH 값을 3.3V 이냐 5V이냐 입니다.

보통 USB-to-TTL이라고 하면 아래쪽(CH340) 제품과 같은 것을 사용하고 대부분이 5V를 사용합니다만,
라즈베리파이는 모든 GPIO의 전압이 3.3V를 사용해서 자칫 라즈베리파이의 GPIO가 
망가질 수 있기 때문에 전압을 낮추어 주는 장치를 경유하거나 아예 3.3V 전용 제품을 사용해야 합니다.
첫번째 제품이 3.3V 전용 제품입니다.

첫번째 제품은 아래의 링크에서 구매할 수 있고 가격은 7,600원 이네요.(판매처는 저와 무관합니다.)

그런데 아두이노 Pro-mini 같은 제품에서도 USB-to-TTL 장치를 필요로 하는 경우가 많은데, 
그럴때는 5V 장치가 필요합니다. 그래서 이래저래 여러가지 목적으로 사용해서 돈을 좀 아끼려면 
아무래도 5V 장치를 구매하는 것이 좋은데요, 말씀 드린대로 5V 장치를 라즈베리에 연결하면 망가질 수 있습니다.

근데, 제가 사용해  몇몇 장치를 그냥 연결해 보니 5V를 사용하는 장치를 써도 문제는 없었습니다.
물론 제가 책임지지는 않으니 그냥 연결하고 말고는 사용자가 판단할 문제입니다.
안전하게 5V 제품을 이용하려면 저항 2개를 이용해서 전압을 낮추면 됩니다.

3.3v PL2303 제품의 경우

먼저 PL2303 3.3v 제품을 사용할때 연결 방법을 알아 보겠습니다.
라즈베리파이 6번 핀이 GND, 8번 핀이 Tx, 10번핀이 Rx 인데요.
3.3v 제품의 검정색이 GND, 초록색이 Tx, 흰색이 Rx 이구요.
Tx와 Rx는 각각 교차해서 연결해야 하니까, 6번 핀은 검정색, 8번 핀은 흰색, 10번 핀은 초록색으로 연결합니다.
빨간색은 USB 장치의 전원을 라즈베리에 공급하는 것인데, 라즈베리는 별도의 전원을 사용하므로
여기서는 쓰지 않습니다.




5V로 동작하는 Serial-to-Serial 장치의 경우

이번에는 5V로 동작하는 Serial-to-Serial 장치를 설명하겠습니다.
여기서 설명하는 CH340이 아니더라도 FTDI, CH2102(Cillicon Labs) 등의 제품이 많고
아무거나 사용해도 다 비슷합니다.

CH340과 같은 장치는 앞서 말한것 처럼 저항 2개를 이용해서 5v를 3.3v로 낮추어 사용합니다.
저항은 1K옴과 2K옴  1.6k옴과 3.3k옴  (같은 비율이기 때문에 더 쉬운 수치로 변경) 2개를 사용합니다.

연결은 아래와 같이 하시면 됩니다.


Serial-to-TTL 장치의 Tx 핀에 저항 2개를 연결해서 GND로 연결하고 그 중간에서 라즈베리파이의 10번 핀과 연결합니다.
GND와 Rx 핀은 그대로 연결해도 됩니다.
Tx핀에 저항을 붙이는 이유는 저항 2개로 전압을 강하 시키는 것이고,
Rx핀은 라즈베리가 Serial-to-TTL 장치로 보내는 것이라서 문제 되지 않습니다.
저항 2개로 전압을 강하는 원리는 이전 포스트를 참조하시면 됩니다.



윈도우즈의 경우

먼저 USB-to-TTL 장치 드라이버를 설치합니다.

윈도우 PC인 경우는 제품을 PC에 꽂기 전에 제품의 드라이버를 먼저 설치해 놓는게 필요합니다.
위의 두 제품은 아래의 링크에서 드라이버를 구할 수 있습니다.


장치 드라이버를 설치하고 나면 이제 개발 PC의 USB 포트에 꽂고, 
라즈베리 파이의 전원은 아직 켜지 않습니다.

USB-to-Serial 장치를 개발 PC의 USB 포트에 꽂고 나면, 장치 관리자에서 연결된 시리얼 포트 번호를 확인해야 합니다.
장치 관리자를 쉽게 열 수 있는 방법은 “내컴퓨터” 에서 오른쪽 마우스 클릭 하면 제어판이 뜨는데, 거기 메뉴에 있습니다.


장치 관리자의 “포트(COM & LPT)” 부분을 보면 그림과 같이 장치가 연결되어 있는 것을 확인 할 수 있습니다.
위의 그림은 “COM3”에 연결된것을 알 수 있습니다.
만약 “알 수 없는 장치” 등으로 연결된 경우라면 드라이버를 장치를 제거하고 드라이버를 다시 설치해 보시는 수 밖에 없습니다.


<Updated 2017.02.02>
prolific 드라이버가 업데이트 되면서 윈도우즈 8,10에서 제대로 인식되지않고 오류코드 10번을 내는 경우가 있습니다.
이때에는 아래의 URL을 확인하시어 해결하시기 바랍니다.
https://dronespersonalizados.blogspot.kr/2014/03/pl2303-error-code-10-how-to-fix-windows.html


이제 연결된 시리얼 포트를 알았으면 통신 프로그램으로 접속을 시도합니다.
윈도우즈의 경우 여러가지 시리얼 통신 프로그램이 있지만 여기서는 putty를 이용해 보겠습니다.

putty는 아래의 링크에서 무료로 다운로드 받을 수 있습니다.

putty는 설치 없이 다운로드 받은 파일을 실행하면 됩니다.


Connection Type을 Serial로 선택하고, Serial line 란에 앞서 앞서 알아낸 시리얼 포트 이름을 입력합니다.
Speed는 115200을 지정합니다.

주의 : 라즈베리파이 3 모델은 이 초기 설정을 위해 이 방법으로 접속할 수 없습니다.

모두 입력하고 Open 버튼을 누르면 화면엔 아무것도 표시 되지 않을 것입니다.

이 때, 라즈베리파이에 전원을 넣고 Putty에 엔터키를 한번 치면 부팅 메세지를 볼 수 있습니다.



맥 OS의 경우

맥OS의 경우에는 연결된 Serial-to-TTL 장치를 별도의 드라이버 설치 없이 연결 할 수 있습니다.
다만, CH340 모델의 경우 드라이버의 이름에 공백이 있어서 정상적인 연결이 안되는 문제가 있어서 
최신 드라이버로 설치할 필요가 있습니다.

맥용 CH340 최신 드라이버는 아래 링크에서 다운로드 받을 수 있습니다.

드라이버가 정상적으로 설치되고 나면 맥에서는 연결된 USB-to-Serial 장치를 ls 명령으로 찾아 볼 수 있습니다.

$ ls  /dev/tty.*


맥에도 Serial 통신 프로그램 여러가지가 있지만, 이미 설치 되어 있는 screen을 이용하면 손쉽게 연결이 가능합니다.

$ screen /dev/tty.usbserial-device 115200


그러고 나면 화면에 아무것도 나타나지 않습니다.
이때 라즈베리파이의 전원을 넣고 엔터키를 한번 치면 부트 메시지와 로그인 창을 만날 수 있습니다.



기본 로그인 계정은 pi/raspberry 입니다.

이렇게 모니터, 키보드 없이 라즈베리파이에 접속에 성공하였습니다.
이제 유/무선 랜을 통해 SSH로 접속하여 나머지 기본 설정을 마치면 되겠네요.
다음 포스트에서 다루겠습니다.

  1.  라즈비안 OS 설치하기
  2. >> 키보드 모니터 없이 라즈베리파이 Login 하기 <<
  3. Wifi 설정 / 기본 설정하기
  4. 파이썬 + Eclipse로 라즈베리파이 개발하기
  5. 라즈베리파이에 NodeJs 설치하기
  6. NodeJs + Eclipse로 라즈베리파이 개발하기
  7. C/C++ Cross Compiler(Tool Chain) 설치하기
  8. Eclipse + C/C++ 로 라즈베리파이 개발하기