아두이노란 무엇인가?
앞서 아두이노의 탄생에 대하여 알아보았다. 그런데 도대체 아두이노가 어떻게 생겼는지, 어디에 쓰일 수 있는지 모르겠다. 이번장에서는 그 궁금증들을 해소해 보려고 한다.
컴퓨터나 스마트폰을 고를 때 소위 스펙이란 걸 따진다. 전자기기에서 스펙이란 해당 제품의 성능을 나타내는 지표라고 보면 된다. 아두이노의 스펙은 어떻게 될까? 아두이노는 여러 모델이 있지만 우리가 사용하려고 하는 모델은 아두이노를 처음 접할 때 많이 사용하는 아두이노 우노라는 모델에 대해 알아볼 것이다.
아래의 사진은 아두이노 우노 (Arduino UNO)의 모습이다. 사이즈는 손바닥 안에 들어올 정도의 사이즈이다. (68.8mm x 53.4mm) (참고로 UNO는 이탈리어어로 1을 의미한다. UNO 1, DUE 2, TRE 3)
컴퓨터를 구입할 때 컴퓨터 사양에 대해 알아본 사람은 일부 항목이 친숙할 것이다. 뭐가 뭔지 하나도 모르는 사람도 있을 것이다. 여기서 언급한 스펙은 사실 몰라도 당장 아두이노를 하는데 크게 지장은 없다. 하지만 조금이라도 알아 두면 아두이노의 동작에 대해 이해할 때 도움이 될 것이다. 아래는 아두이노의 스펙이다. 혹시 스펙이 어렵다고 느껴지면 일단 건너뛰어도 무방하다.
일단 첫 번째 항목에 Microcontroller (마이크로컨트롤러) ATmega328P라는 것이 보인다. 마이크로컨트롤러는 컴퓨터의 CPU, RAM, ROM 등을 하나의 칩에 합쳐둔 것이다. 데스크톱 컴퓨터를 조립할 때 CPU, RAM, 메인보드 (ROM 은 여기에 있다) 등의 부품이 따로 분리되어 있고 이것을 하나하나 조립하면서 만들게 된다. 하지만 마이크로컨트롤러를 이용하면 따로 조립할 필요 없이 하나의 칩으로 해결이 가능하다. 단점은 CPU 만 바꾼다거나 RAM을 추가한다던가 등의 작업은 불가능하며 정해진 스펙으로만 사용해야 한다는 것이다. 스펙상 Flash Memory, SRAM, EEPROM 에는 괄호로 ATmega328P라고 적혀 있는데 이것들은 모두 마이크로컨트롤러에 포함되어 있는 것들이다.
Flash Memory 가 32 KB라고 나와 있는데, 요즘 나오는 컴퓨터의 SSD (또는 HDD)와 같이 파일이나 데이터를 저장해 두는 장치라고 보면 된다. 휴대용으로 들고 다니는 USB Flash Memory 에도 Flash Memory라는 단어를 쓰고 있다. 아두이노에 달려 있는 Flash Memory는 32 KB인데 사이즈가 어느 정도인지 감이 잡히는가? 1 KB 가 1024 개 모이면 1 MB 가 된다. 1 MB 가 1024 개 모이면 1 GB 가 된다. 1GB 가 1024 개 모이면 1TB 가 된다. 만약 내가 들고 다니는 USB Flash Memory 의 용량이 32 GB 라면 아두이노의 그것보다 1024 x 1024 배만큼 큰 용량의 제품이라는 의미이다. 아두이노의 기본 저장 장치의 용량이 매우 적다는 것을 알 수 있다.
SRAM 은 컴퓨터의 RAM과 같은 역할을 하는 것이라고 보면 된다. 이 역시 2 KB 밖에 안되는데 일반적인 컴퓨터에 비하면 수백만 배 작은 사이즈이다. Clock Speed는 16 MHz이다. 동작 속도를 나타내는 단위인데 1 MHz 보다 1000배 빨라지면 1 GHz 가 된다. 여러분이 사용하는 컴퓨터의 속도는 대부분 2 GHz 가 넘을 것이다. 이것저것 스펙을 따져보면 내가 사용하는 컴퓨터보다 성능이 너무 떨어지는 거 같다. 동작이나 제대로 할까 걱정될지도 모른다. 걱정하지 않아도 좋다. 우리가 사용하는 컴퓨터는 여러 가지 복잡한 일을 동시에 하기 때문에 고사양으로 만들어진 것이다. 우리가 아두이노로 만들려고 하는 것은 비교적 덜 복잡한 몇 가지 일만 잘하는 물건이 될 것이다.
Operating Voltage는 5V라고 되어 있는데 직역하면 동작 전압이다. 전자 제품을 구입하면 제품마다 동작전압이 적혀 있다. 커다란 가전제품은 220V에서 동작한다고 나와 있을 것이고, 비교적 작은 제품들은 24V, 12V, 5V, 3.3V 등 여러 단위의 전압을 사용하고 있을 것이다. 아두이노 우노는 5V에서 동작한다고 보면 된다. 아두이노 모델마다 다른 동작 전압을 가지기도 한다.
디지털 정보는 0과 1로 표현한다고들 한다. 여기서도 동작전압과 좀 관련이 있는데 아두이노 우노는 0이라는 정보를 0V로 표현하고, 1이라는 정보를 5V로 표현하게 된다. Digital I/O Pins라고 디지털 Input/Output 핀이 14개 달려 있는 것을 볼 수 있는데 0V/5V로 입력을 받거나 출력을 하는데 쓰인다고 보면 된다. Analog Input Pins라고 아날로그 입력 핀이 6개가 있는 것을 볼 수 있다. 아날로그 입력을 받는 핀인데 0V, 5V 정해진 것이 아니고 0V~5V 사이의 값이 들어오면 0과 1이 아닌 0~1023으로 나누어서 받을 수 있다. 보통 아날로그 센서 값을 읽어 들일 때 사용하게 되는데 이 부분은 실제로 사용해 보면서 차차 알아볼 것이다.
스펙 정보가 더 남아 있지만 생략하도록 하겠다. 우리가 컴퓨터를 구입할 때 모든 스펙을 이해하고 구입하고 사용하지는 않는다. 아두이노도 마찬가지이다. 기본적인 정보만 알아두고 나머지는 필요할 때 하나씩 찾아보면 된다. 아두이노를 만든 취지 역시 이런 것들을 알지 못해도 창작활동을 할 수 있도록 하기 위함이니 잘 모르겠으면 그냥 넘어가도록 하자.
아두이노를 다루다 보면 실드라는 말을 종종 듣게 될 것이다. 실드 역시 뒤에 다시 다루게 될 것인데 간단히 알아보고 넘어가도록 하자. 컴퓨터를 사용할 때 외장 HDD로 용량을 늘린다거나 키보드, 마우스를 연결하기도 한다. 웹캠을 연결한다거나 모니터를 추가로 장착하기도 한다. 컴퓨터에 추가 기능을 연결해서 사용하듯이 아두이노 역시 실드를 장착해서 아두이노의 기능을 손쉽게 추가할 수 있다. 물론 실드 없이도 여러 가지 기능을 만들 수는 있지만 실드를 이용하면 좀 더 편리하다는 장점이 있다. 이후 LCD 편에서 실드 없이 LCD를 사용하는 것과 LCD Keypad 실드를 이용하는 부분이 있는데 직접 해 보면 장단점을 금방 알게 될 것이다.
앞서 여러 설명을 보았지만 계속 뜬구름 잡는 이야기만 하는 것처럼 들릴지도 모르겠다. 그래서 아두이노로 뭘 할 수 있다는 걸까? 이 책에서 앞으로 다루게 되겠지만 간단하게는 LED를 반짝 거리게 해서 조명이나 장식품을 만들 수 있다. 길거리에서 흔히 볼 수 있는 신호등이나 가게나 기차역 같은 곳에서 볼 수 있는 LED 전광판 같은 것도 만들 수 있다. 계산기를 만든다거나 단순한 게임기도 만들 수 있다. 센서를 이용해서 습도나 온도를 측정해 볼 수도 있다. 더 나아가서 최근 이슈가 되고 있는 미세먼지를 측정하는 미세먼지 측정기도 만들어 볼 것이다. 장난감 자동차도 만들 수 있으며, 드론도 만들 수 있다. 라디오를 만들어 볼 수 있고 MP3 플레이어도 만들 수 있다. 식물에게 자동으로 물을 주는 장치도 만들 수 있으며 애완동물에게 일정 시간마다 밥을 주는 장치도 만들 수 있다.
실 예로 시중에 유통되는 수많은 3D 프린터가 아두이노를 이용해서 만들어지고 있다. 일본 후쿠시마 사태 이후로 아두이노를 이용해서 직접 방사능 측정기를 만들어서 측정을 하는 사람들도 많이 있다. 아두이노를 이용해서 독특한 악기를 만들어 연주를 하기도 하며, 농촌에서는 농사를 지을 때 물을 자동으로 준다거나 비닐하우스의 온도나 습도를 제어할 때에도 아두이노를 사용하기도 한다.
그런데 정말 나도 뭔가 만들 수 있는 걸까? 앞으로 나올 내용들을 따라 해 보면 컴퓨터를 전공하지 않은 사람이라도 아두이노로 무언가 만드는 게 그리 어렵지 만은 않다는 것을 알게 될 것이다.
아두이노를 해 보려면 아두이노가 필요하다. 아두이노는 온라인 쇼핑몰에서 손쉽게 구입이 가능한데 우선 스타터 키트 (혹은 베이직 키트)라고 적힌 것을 구입하도록 하자. 가격은 보통 만원대에서 삼만 원대로 형성되어 있고 더 비싼 세트도 많이 있다. 아두이노 보드, USB 케이블, 점퍼 케이블, 브레드보드, LED, 저항 정도가 포함되어 있는 키트로 구입하도록 한다.
일단 간단히 LED 사용까지 실습해 보기에는 아래와 같은 베이직 키트 정도면 무난하다. 아래 사이트에서는 17,600원에 판매하고 있다. (2018.03.21 기준)
이후로 다룰 LCD, 온습도 센서, 미세먼지센서도 미리 구입 해 두어도 좋다. 이러한 것들이 키트로 모두 포함된 키트를 구입하는 방법도 있다.
온습도 센서가 모두 포함된 키트를 한 번에 구입해도 좋다. 아래 사이트에서는 29,700원에 판매하고 있다. (2018.03.21 기준)
참고로 위의 링크와 저자는 아무런 이해관계가 없다. 아두이노 캠프를 준비할 때 이곳의 키트와 다른 부품을 조합하여 준비했었다. 가격 대비 비교적 키트 구성이 알찬 편이다.
해외 쇼핑몰을 이용하면 시간이 좀 더 걸리지만 좀 더 저렴하게 필요한 부품들을 구입할 수도 있다. 위에서 언급한 부품 외에도 이 책에서는 LCD Keypad Shield 등도 다루게 되는데 아두이노와 관련 부품을 구입하는 내용은 다른 장에서 좀 더 상세히 다루도록 하겠다.