라즈베리 파이 공부 - lajeubeli pai gongbu

필자는 프로그래밍을 배우고 이런 생각을 한 적이 있다.
에어컨을 동작시키는 알고리즘은 프로그램으로 간단히 구현할 수 있을 것 같은데.. 실제로 동작시킬려면 어떻게 해야 할까? 에어컨에 USB 포트라도 달려있다면 좋을 텐데 말이다. 
또 24시간 에어컨을 자동으로 제어할려면 당연히 컴퓨터도 24시간동안 계~~속 켜놔야 하는데.. 이때 드는 전기세는 많이 안들까? 컴퓨터가 비명을 지르진 않을까?

이러한 문제들을 해결하기 위해, 이번 포스팅을 시작으로, 임베디드 시스템의 기초인 라즈베리 파이의 사용법에 대해 알아가보자.

이걸 왜 배워야 할까?
컴퓨터는 프로그램을 만들기는 쉬운데, 정작 해당 프로그램을 실제로 적용시키기가 곤란할 때가 많다. 홈페이지를 개설하든, 게임을 만들던, 새로운 프로그래밍 언어 프레임워크를 만들던 간에 이 모든 것들의 공통점은 컴퓨터에서 만든 것을 다시 컴퓨터로 사용한다는 점이다.

컴퓨터 같은 가상 환경에서 사용되는 게 아닌, 실생활에 직접 도움이 될만한 프로그램을 개발하고 싶다면 우리는 필연적으로 하드웨어의 구조를 이해해야 한다.
하지만 위의 작은 기계만 봐도 머리가 아파지는데, 소프트웨어에 더불어 하드웨어까지 배우라고?? 라고 충분히 생각할 수 있다. 소프트웨어와 하드웨어를 모두 섭렵할 수 있다면 이상적인 엔지니어겠지만 보통 그게 힘드니까 한 쪽으로 진로를 선택한다. 소수의 천재를 제외하곤

하지만 소프트웨어 엔지니어를 골랐다고 하드웨어 관련 이슈를 전혀 만나지 않는 것이 아니기 때문에 필자같은 프로그래머 지망생도 이 분야의 기초적인 지식(컴퓨터 CPU 회로를 공부할 정돈 아니여도, 그밖의 기기들이 어떻게 통신하고 동작하는지 정도는)이 필요하다.

이걸 어따 써먹지?
대충 뭔소린지 알아들었다면 이제 용도를 알아보자. 이쪽으로 빡세게 공부한다면 어떤걸 할 수 있을까.

1. IoT

요즘 정말 많이 들리는 단어다. 각종 사물에 센서(온도, 소리, 빛 등의 물리적 요소)와 통신 기능(LAN, WiFi, Bluetooth)을 장착하여 여러 사물들을 인터넷으로 한 데 묶어 제어하고 다루는 것을 말한다.

센서든 통신 기능을 가진 네트워크 어댑터든, 모두 소프트웨어가 아닌 하드웨어의 영역이다. 이제 여기서 프로그램과 기기들이 결합된다면 인공지능 스피커 , 스마트 워치 등의 작품이 탄생하게 된다.

2.  드론 및 초소형 컴퓨터
뭐, 사실 위의 IoT에 포함도는 부분이지만 멋져보여서 따로 빼놓았다. 그냥 날개를 회전시키며 조작하는 기계라면 굳이 IoT라고 부를 것도 없지만, 여기에 카메라가 달리고, WiFi를 흩뿌리는 통신기기가 붙기 시작하면 전혀 이야기가 달라진다. 

물론 드론에 실제 데스크탑을 갖다 붙이면 무겁고, 전력도 순식간에 바닥나서 추락할 것이다.  때문에 최소한의 무게와 초소한의 리소스만으로 동작이 가능한 라즈베리 파이 등의 임베디드웨어가 이것을 가능하게 한다.

3. 서버 및 분산 컴퓨팅
세대가 발전하면서 서버는 더욱 더 엄청한 부하를 견디도록 요구되고 있다.
인간이 IT와 밀접해질 수록 서버의 사용량이 급증하는 것은 당연하며, 현재는 유지비용이 거의 천문학적인 수치까지 올라가고 있었다고 한다. 그때, NoSQL과 초저가 소형 PC(라즈베리파이 등)의 등장으로 인해 큰 이슈가 되었다.

NoSQL의 등장으로, 작고 값싼 장비 여러 대로 대량의 데이터와 컴퓨팅 부하를 처리하는 것이 가능하게 되었다. 그리하여 스템 확장도 쉽고 싼 임베디드 방식의 분산 컴퓨팅이 대세라고 불릴 정도로 뜨게 되었다.


라즈베리 파이(Raspberry Pi)

필자는 임베디드 기초를 공부하기 위해 라즈베리 파이를 선택했다. 라즈베리 파이란, 영국 라즈베리 파이재단에서 만든 초소형/초저가 PC이다. 교육용 프로젝트의 일환으로 개발되었다.

필자가 이걸 선택한 데이는 몇 가지 이유가 존재한다.

1. 최소화된 크기와 비용
비록 일반 데스크탑보다는 구리지만, 리눅스 운영체제를 올릴 수 있는 사양인데도 불구하고 크기는 신용카드만하며, 가격은 약 $35(3~4 만원) 선에서 구매할 수 있다.

2. 엄청난 범용성
특유의 가성비 덕분에 많이 퍼진 물건이니만큼 많은 사람들이 사용기를 넷상에 꼬박꼬박 올려주는지라 필요한 기능이 있으면 검색만 하면 바로 나올 정도로 자료가 풍부하다.(마인크래프트는 기본이고 안드로이드,리눅스, Windows 운영체제까지 올릴 수 있다. 램이 버텨준다면 말이지)

다행히도, 가장 최신버전인 Raspberry Pi 3 B+의 스펙은 다음과 같고 또 지속적으로 향상중이라 더욱 가능성이 많은 기기이다.(+분산 컴퓨팅)

SoC: Broadcom BCM2837B0 SoC CPU: 1.4GHz ARM Cortex-A53 MP4 무려 쿼드 코어 GPU: Broadcom VideoCore IV MP2 400 MHz Memory: 1 GB LPDDR2 Network: 10/100/1000 Mbps 기가비트 이더넷 Wi-Fi 내장 802.11b/g/n/ac Dual-Band + 블루투스 4.2 < 각종 출력 및 포트 지원 > 컴포지트 HDMI(rev 1.3 & 1.4) DSI (이어폰)3.5mm 잭, I²S USB 2.0 4포트

                                                                                                             

3. 매우 쉬운 사용법
2번과 연결되는 부분이지만 매우 사용법이 쉬운 편이다.  필자처럼 프로그래밍과 드라이버 컴파일 등등에 대해 전혀 무지하다고 해도 상관없다.
라즈베리파이 본사에서는 라즈비안이라는 전용 리눅스 운영체제를 지원하며, 이런 코딱지만한 컴퓨터 임에도 불구하고 간단한 GUI 인터페이스(바탕화면)을 지원하니 사용하기 매우 편하다.

더 자세한 내용이 궁금하다면 아래의 링크를 참고하자.


준비물
필자의 경우, 입문 강좌라곤 해도 간단하게 라즈베리 파이에 리눅스 올리기, 외부 PC의 접근하기, 파이썬 프로그램 짜보기, 간단하게 웹 서버 돌려보기 등으로 센서 관련 포스팅은 현재로서는 하지 않을 예정이다. 그 때문에 필자는 준비물이 적은 편이지만, 반대로 이것들은 반드시 필요하다는 얘기가 된다.

1. Raspberry Pi 3(B or B+ 상관없으나 B+이 성능은 더 좋음) 2. LAN 케이블 3. HDMI 케이블 4. USB 마우스 & 키보드 5. 전류량 2.5A 이상의 마이크로 5핀 충전기 (흔한 안드로이드 고속 충전기) 6. HDMI 지원 모니터 7. MicroSD 카드 (최소 4GB 이상, 클수록 좋음) 8. Host PC에 SSH 툴 설치하기 9. sd카드 리더기(sd 카드 슬롯이 없을 경우)

이미 집에 있다면 그냥 그걸 쓰면 되는데, 왠만하면 끼워 팔기하는 편이 많아 잘 고르도록 하자.

 솔직히 그렇게 설명할 것도 없어서 꽤 빨리 끝날 것 같지만.. 정리하는 겸 후딱 끝내봐야지

Toplist

최신 우편물

태그