안드로이드 씽스는 안드로이드 운영체제를 기반으로 한 사물 인터넷 플렛폼입니다. 안드로이드 운영체제나 리눅스 기반의 라즈비안과 다른 점이라면 안드로이드 씽스는 컴퓨터가 아닌 장치 자체를 개발하는 것이 목적이기 때문에, 마치 아두이노처럼 하나의 앱(프로그램)만 실행한다는 점입니다. 컴퓨터로 치면, 여러분들이 컴퓨터 전원을 넣었는데 작업표시줄도 바탕화면도 없이 오직 크롬 브라우져만 실행되고 있는 것입니다. 실행할 앱 하나에만 모든 자원을 집중하기 때문 라즈베리파이의 자원을 최대한 활용할 수 있다는 것입니다.
안드로이드 씽스는 라즈베리파이만을 위한 것이 아니라 인텔의 에디슨이나 줄, NXP사의 i.MX 시리즈 같은 파트너 사들의 싱글보드 컴퓨터들도 지원하고 있습니다. 지금은 개발 중이지만, 나중에 완성되면, 더 많은 싱글 보드 컴퓨터들을 지원할 것 같습니다. 안드로이드 씽스의 궁극적인 목적은 안드로이드 앱을 개발하듯이 장치를 개발할 수 있게 해주는 것입니다.안드로이드 씽스 홈페이지에도 보면 처음 부분에 나오는 말이 "당신이 앱을 개발할 수 있다면, 장치도 개발할 수 있습니다.(If you can build an app, you can build a device)"입니다.
이러한 부분에서 보면 라즈베리파이로 분류하기보다는 안드로이드 앱 개발로 분류되는 것이 더 맞습니다만, 아무리 구글에서 한다고는 해도 아직 개발 중(현재 DP5:Developer Preview 5)이고, 과거 구글이 시도했던 사물 인터넷 플랫폼 '브릴로'처럼 언제 엎어질(?)지 모르기 때문에 당장은 소개만 하는 느낌으로 라즈베리파이 쪽에 넣었씁니다. 또한 라즈베리파이를 리눅스 컴퓨터로 활용하기보다는 아두이노보다 강력한 사물 인터넷 장치로 이용하고자 하시는 분들에게는 더 이상 리눅스 터미널에서 허우적대지 않아도 되는 희소식이 될 것 같습니다.
라즈베리파이를 오래 사용해신 본 분들도 처음 듣거나, 알아도 안해본 것이 시리얼 통신입니다. 와이파이가 되는데 누가 굳이 번거롭게 시리얼 통신을 하려고 할까요? 하지만 시리얼 통신을 활용하면 세팅되지 않은 라즈베리파이에 SSH 접속을하여, 모니터와 키보드/마우스 없이 라즈베리파이를 시작할 수 있습니다.
우선 FTDI라는 USB to 시리얼 컨버터가 필요합니다. 여기서 중요한 개념이 Logic 레벨이라 하여 대 HIGH의 기준이 3.3V인 것과 5V인 것이 있습니다. 5V이면 정확히 5V일 수가 없으니까, 보통 3.5V 이상이면 HIGH이다 라고 인식하여 3.3V가 들어오면 HIGH도 LOW도 아닌 것이 되어 통신이 안됩니다. 통신이 안될 뿐더러 3.3V 쪽에서는 5V의 전압과 전류를 못 버텨서 칩이 타버릴 수도 있습니다.
라즈베리파이의 GPIO는 3.3V이기 때문에 절대로 5V를 직접 연결하면 안되는데, 어째서인지 아두이노에 내장된 시리얼 컨버터를 이용하여 연결을 하였을 때 통신도 되고 라즈베리파이가 타버리지도 않았습니다. 결론적인 것만 말씀드리면, 절대 라즈베리파이의 GPIO에 5V를 입력하면 안됩니다. 반드시 3.3V 시리얼 통신을 하셔야됩니다. 하지만 장시간 대용량 통신을 하지 않고, 초기 세팅에만 사용한다면 크게 문제가 되지는 않는다라고 말씀드리겠습니다. 아두이노는 있는데, 3.3V 컨버터가 없고, 굳이 3.3.3V 컨버터를 구입하는데 돈과 시간을 소모하고 싶으시지 않다면 스스로 책임을 지시고 아두이노를 사용하시면 됩니다. 혼란의 여지가 있기 때문에, 아두이노와 연결된 사진은 올리지 않도록 하겠습니다.
라즈베리파이와 시리얼 컨버터의 연결
SD카드를 라즈베리파이에 연결하고, 시리얼 컨버터와 라즈베리파이를 아래와 같이 연결합니다.
시리얼 포트를 연결할 때, GND는 GND, 전원이 필요할 경우 VCC는 VCC에 연결(3.3V인지 5V)인지 주의해서)하면됩니다. 헷깔리기 쉬운 것이, 송신과 수신이 TX, RX인데, 라즈베리파이의 TX는 라즈베리파이가 신호를 보내는 선이니, 컨버터의 RX에 연결하여야 합니다. 마찬가지로 라즈베리파이의 RX는 라즈베리파이가 신호를 받는 선이니, 컨버터의 TX에 연결하여야 합니다. 라즈베리파이의 GPIO 배치는 아래와 같습니다.
오른쪽 위부분부터 6이 GND, 8이 TX, 10이 RX입니다.
아두이노의 경우 :
아두이노의 모서리에 표시되어 있는 TX, RX는 아두이노 기준이고, 아두이노의 컨버터 기준은 반대입니다. 그러므로 아두이노를 시리얼 컨버터로 이용하고자 할 때는 TX는 TX에, RX는 RX에 연결하여야 합니다.
아직 컴퓨터에서 Putty를 통해 시리얼 연결을 하기 전에는 전원을 입력하지 않습니다.
시리얼을 통한 연결
컴퓨터로 돌아와서 Putty를 켭니다. 없다면 여기로 가서 알맞은 버전의 Putty를 받거나 아래 링크를 통해 바로 다운 받아서 설치를 합니다.