아두이노 라즈베리파이 어떤 걸 선택해야 할까?

사실 개인적으로 아두이노보다는 라즈베리파이에 관심이 있었다. 뭔가 기능적으로도 더 많은 것을 할 수 있어 보이고, 미니 컴퓨터로 사용할 수 있으니 말이다. 

그런데 난 이미 컴퓨터를 가지고 있는데 사실 이걸 어따 써먹지? 하는 생각이 들다보니 좀더 가격이 싼 아두이노를 먼저 가지고 놀다가 나중에 넘어가도 될 듯 싶었다.

우선 아두이노와 라즈베리파이가 어떤 차이점이 있을지 간단히 알아보자.

아두이노와 라즈베리파이는 공통적으로 전기적 신호를 제어하여 외부의 센서나, LED 등을 제어하는 데 사용할 수 있다. 예를들어 크리스마스 트리에서 규칙적으로 반짝이는 LDE를 제어하거나 다양한 센서들을 부착해서 다양한 외부환경 변화에 반응해서 동작하는 전자제품을 만들 수도 있다. 

아두이노와 라즈베리파이아두이노 우노 r3(왼쪽)과 라즈베리파이(오른쪽)

그런데 이 둘은 근본적으로 차이점을 가지고 태어났다. 아두이노는 앞에서 말한 외부 기기를 제어하는데 특화되었지만 라즈베리파이의 경우는 이보다 좀 더 컴퓨터에 근접해 있다고 하는 것이 좋을 것이다. 라즈베리파이는 일반 컴퓨터처럼 전용 OS(리눅스)를 설치해서 구동시킨다. 이런 차이점은 제어를 담당하는 칩(일종의 cpu)의 차이라고 생각하면 된다. 그림을 비교해 봐도 라즈베리 파이의 경우는 HDIM 단자까지 존재한다. 그에 반해서 아두이노는 전원과 USB 단자만 존재한다. 하지만 아두이노는 아날로그 신호의 입력을 읽을 수 있고 디지털 단자들이 외부 센서나 모듈등을 다루는데 특화되어 있다. 

(아두이노에는 다양한 종류의 보드가 있는데 가장 범용적으로 사용하는 것이 그림의 아두이노 우노 r3다.)

아두이노나 라즈베리 파이는 프로그래밍을 통해서 센서나 LED 등을 제어하는데 아두이노는 전용 프로그램에서 프로그래밍을 한 후 아두이노에 있는 칩으로 이를 업로드 한다. 

스케치(아두이노 제어코드 작성, 업로드 프로그램)

그 다음 별다른 OS의 구동없이 전원을 키면 업로드 된 프로그램이 바로 실행되게 되어있다. 반면에 라즈베리파이는 OS(리눅스)에서 프로그래밍을 한 후 이를 실행해서 외부 모듈을 제어하는 방식이다.

이런 차이점으로 아두이노는 순수하게 제어에 특화되었고, 라즈베리파이는 OS를 이용한 복잡한 컴퓨팅 또는 컴퓨팅 + 제어를 접목할 수 있다는 이점이 있다. 

이런 차이점과 더불어 보드 선택을 하기 전에 점검해야할 사항이 또 있다. 리눅스나 컴퓨터 프로그래밍에 자신이 없다면 아두이노를 사용하는 것이 보다 쉬울 것이며, 바로바로 결과를 확인하면서 학습하는 데도 아두이노가 훨씬 좋을 것이다.

프로그래밍에 사용되는 언어는 아두이노의 경우는 C언어, 라즈베리파이는 파이썬, 이렇게 사용이 되므로 자신의 여건과 비교해서 적절한 보드를 선택하도록 하자.

사실 아두이노를 선택하게 된 가장 결적정인 이유는 아두이노 우노 r3 호환보드의 가격이 아주아주 싸서였다. 싼맛에 그리고 호환보드라 기능상 동일하다고 해서 사긴 했는데.. 완전히 동일하지는 않다. 호환보드의 경우는 싸구려 칩을 사용해서 컴퓨터와 연결해서 컴퓨터의 키보드나 마우스 제어를 할 수가 없었다. 사실 아두이노로 컴퓨터 키보드를 제어해서 조이스틱을 만들려고 했는데... 호환보드로는 불가능하다.

아두이노 우노 r3 호환보드아두이노 우노 r3 호환보드


키보드나 마우스 제어를 하려면 아두이노 레오나르도를 사야하며 정식 아두이노 우노 r3의 경우는 따로 설정을 해서 가능하도록 만들 수 있다고는 한다. 

간략하게 두 보드의 차이점을 언급했는데 사실 라즈베이파이를 직접 만직적이 없으므로 이론적으로만 아는 내용이다. 그리고 이제부터는 아두이노를 가지고 놀 생각이다.

아두이노를 다루기전에 알아두면 좋은 것들

아두이노를 다루기 위해서 알아야할 전기적인 지식들이 있는데 V=IR이라는 공식이다. 

V = IR

이 공식은 전기를 다루는데 가장 기본이 되는 공식으로 아마 자연계 고등학교를 나왔다면 물리시간에 배운다. 또는 대학교에 관련 학과를 나오지 않았다면 보기 힘든 공식이기는 하지만 정말 중요한 공식이다.

또.. 전류의 방향은 +에서 -라는 사실도 알아야 할 것이고 전자제품에 접지를 하는 이유에 대해서도 한번 생각해보면 좋을 것이다.

그리고 C언어 프로그래밍에 대해서는 깊게 알 필요는 없지만 기본 문법 정도는 알아야 한다. 제어는 아두이노가 하지만 어떻게 제어할지는 프로그래밍을 해서 직접 업로드 시켜줘야 하기 때문이다.

이 외에도 더 있지만 방금 언급한 내용과 더 필요한 부분들에 대해서는 단계적으로 글을 올리면서 그때 그때 더 자세히 정리할 것이다.

마지막으로 아두이노를 다루는 것은 참 재미있는 취미생활이 될거란 생각이 든다. 아직 알아가는 과정이지만 내가 정리한 내용이 아두이노를 처음 시작하는 많은 분들에게 도움이 되기를 바란다.

반응형
이 댓글을 비밀 댓글로
    • 까를로
    • 2018.12.21 19:54
    프로그래밍은 전혀 모르는 1인입니다.
    조이스틱 DIY 게시물 보려고 들어왔는데
    좋은 공부가 될 것 같아요.
    기대하겠습니다.