엔트리 아두이노 준비하기

아두이노에 대해 알아볼까요?

2015.10.20
동영상 설명


아두이노로 무엇을 할 수 있나요? 간단하게는 LED 불을 켤 수 있고, 조금 더 복잡한 악기, 게임 그리고 더 나아가서는 지진감지기, 심지어 인공위성까지 무궁무진한 프로젝트를 만들 수 있습니다.  이 시리즈에서는 엔트리라는 블록코딩 언어로 보다 쉽게 코딩을 해서 아두이노를 제어해 볼 수 있는 다양한 프로젝트를 소개하려고 합니다. 

먼저 엔트리 아두이노의 기초 지식이 될 아두이노의 개념과 브레드 보드, 소프트웨어인 엔트리에 대해서 알아 보겠습니다. 


[1] 아두이노란?

[그림 1. 아두이노 우노]

 

아두이노란 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 한 오픈 소스 전자 플랫폼으로 전세계의 많은 창작자와 발명가들의 사랑을 받고 있습니다. 조금 더 자세히 정의를 설명해볼까요?  

우선, 아두이노는 플랫폼입니다. 플랫폼이라는 단어는 여러 분야에서 사용되고 있습니다. 사전에서 “플랫폼(platform))” 이라는 단어를 검색하면 “역에서 기차를 타고 내리는 곳” 이라고 나옵니다. 

수영 종목 중에는 다이빙이 있습니다. 다이빙에서 5~10미터 높이의 준비대를 플랫폼이라고도 합니다.  그 외에도 자동차의 각종 기본 골격, 교실의 강단, 교단을 플랫폼이라고도 지칭합니다. 

위 예시처럼 플랫폼은 어떤 장소나 장치, 시스템 등에서 기초가 되는 틀, 골격을 의미합니다. 기차역에서 기차를 타기 위해서는 플랫폼(승강장)을 지나가야 합니다. 다이빙을 할 때도 준비대에 올라서야 합니다. 

그렇다면 플랫폼의 개념이 IT분야에서는, 특히 소프트웨어와 하드웨어에서는 어떤 예로 쓰이는 지 알아 볼까요?

여러분들이 사용하는 컴퓨터의 운영체제는 윈도우 이신가요? 아니면 맥OS 인가요? 윈도우, 맥OS, 리눅스 등의 운영체제는 컴퓨터 시스템이 작동되도록 하는 기본적인 플랫폼입니다. 왜냐하면 윈도우를 먼저 설치해야 윈도우 위에서 여러 가지 응용 프로그램들(웹 브라우저, 워드, 게임 등)이 실행되기 때문입니다.

하드웨어에도 플랫폼이 있습니다. 그 중 하나가 “마이크로 컨트롤러” 라는 것인데요. 마이크로 컨트롤러는 여러분들이 사용하는 컴퓨터보다 크기가 더 작은 미니 컴퓨터 입니다. 컴퓨터도 하나의 플랫폼이 될 수 있습니다. 컴퓨터를 기반으로 해서 다양한 일을 할 수 있기 때문입니다. 

아두이노는 수 많은 마이크로 컨트롤러 중의 하나입니다. 정확하게 얘기하면, ”아두이노 보드”라는 것이 마이크로 컨트롤러 입니다. (아두이노 회사 사이트에서는 아두이노의 소프트웨어+하드웨어+커뮤니티를 모두 합쳐서 아두이노라고 부르고 있습니다.) 따라서 아두이노는 플랫폼이라고 부를 수 있게 되는 겁니다. 그리고 아두이노는 다양한 것들을 만들 수 있는 기반이 되기 때문이기도 합니다.


 “아두이노는 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 한 오픈 소스 전자 플랫폼이다.” 

하드웨어와 소프트웨어를 기반으로 했다는 것은, 위 사진과 같은 아두이노 보드 같은 하드웨어 장치가 있고, 그 하드웨어 장치를 소프트웨어를 이용해서 제어 한다는 의미 입니다. 

“전자” 라는 말은 아무래도 전기 신호가 왔다 갔다 하는 하드웨어 이기 때문에 붙은 단어 입니다

그렇다면 “오픈 소스”는 무슨 말일까요? 오픈 소스는 말 그대로 아두이노를 이용하는 데에 관련된 모든 지적 재산물(source)이 열려있다(open)는 의미입니다. 아두이노의 소스라고 하면, 아두이노 하드웨어 장치의 회로도, 그리고 소프트웨어 원천 코드 등이 해당되겠습니다. 회사를 예로 들면 회사의 핵심 상품의 원천 기술을 모두 공개했다는 것과 같은 의미 입니다. 그래서 많은 사람들이 아두이노를 이용해서 프로젝트를 만들거나, 비즈니스에도 활용하는 기업들이 늘고 있습니다. 자동차 회사 포드는 아두이노를 이용해 차량용 하드웨어와 소프트웨어를 만들어 차량과 상호작용을 할 수 있는 오픈XC라는 프로그램을 선보이기도 했습니다.



아두이노 우노 보드에서 꼭 알아야 할 핀의 이름과 기능


[그림2. 아두이노 구성]
 

위 그림에서, 1~ 4번은 여러분들이 앞으로 계속 사용을 할 아두이노 핀 입니다.

1번은 디지털 전기신호가 아두이노로 부터 밖으로 나가거나 밖에서 아두이노로 신호가 들어오는 핀입니다

2번은 외부의 아날로그 전기신호가 아두이노로 들어가는 핀입니다. 1번과 2번핀은 여러분들이 나중에 엔트리 프로그램을 이용해서 전기신호를 밖으로 나가게 하거나, 외부에서 들어온 전기신호를 소프트웨어 적으로 처리를 하게 될 것입니다.

3번은 건전지의 + 역할을 하는 부분입니다. 3.3v, 5v 중에서 5v라는 곳을 자주 사용할 것입니다

4번은 건전지의 역할을 하는 GND(Ground)라는 핀입니다. 전기는 + 에서 로 연결이 되어 있어야 흐를 수 있고, 그렇게 전기가 흘러야 전자부품이나 제품이 작동이 되기 때문에, 앞으로 아두이노에 연결하는 모든 부품은 GND에 공통으로 연결되어야 할 겁니다.


[2] 브레드 보드란?


앞으로 여러분들은 다양한 전자 부품을 아두이노에 연결하여 사용하게 될 것입니다. 그 두 가지가 연결이 되었다면 서로간에 전기가 흘러서 어떤 동작이 발생할 거고, 우리는 그 동작에 엔트리라는 프로그래밍 도구를 더하여서 멋진 작품을 만들어 볼 텐데요. 그런데 전자 부품과 아두이노 사이에 전기가 흐르려면 전선으로 그 둘을 이어주어야 하는데, 중간에서 다리 역할을 해줄 것이 바로 “브레드 보드” 라는 것입니다.

브레드 보드(Breadboard)는 한국말로 “빵판”입니다. 영어 단어 Bread(빵) + Board(판)을 그대로 직역한 단어를 실제로 사용하고 있습니다. 브레드 보드는 전자 회로의 프로토 타입(시제품)을 만드는 데 사용되고 납땜이 필요 없으며, 재사용할 수 있는 장치입니다. 

브레드 보드, 즉 “빵판” 이라는 단어의 유래가 궁금하실 텐데요. 과거에는 실제로 나무로 만들어진 도마(주로 빵을 자르는 데에 사용된 서양의 도마) 에 전자 부품을 작은 못이나 압정으로 연결하여서 사용했었기 때문에 그런 이름이 붙었습니다.

브레드 보드는 크기와 종류가 다양하게 있습니다. 그 중에서 우리가 사용할 브레드 보드는 400홀 (구멍이 400개)짜리 브레드 보드 입니다. 성인 손바닥 반 정도의 크기로써 앞으로 진행할 엔트리-아두이노의 내용에는 이 400홀짜리 브레드 보드면 충분 할 겁니다. 


[그림 3. 브레드 보드 400홀 ]


여러분들은 엔트리 코딩을 하기에 앞서 브레드 보드에 다양한 전자 부품을 꽂고, 전선을 이용해서 전자 부품을 서로 연결해주는 작업을 앞으로 계속 하게 될 텐데요. 전자 부품을 잘 연결하기 위해서는 브레드 보드의 특징을 알아야 합니다.  

브레드 보드의 특징은 [그림 7] 적혀있는 번호를 이용해서 설명 드리겠습니다. 먼저, 브레드 보드에 그려진 녹색선은 세로로 5개의 구멍끼리 서로 연결되어 있는 것을 보여줍니다. ①번의 검은색 화살표처럼 세로로 5개의 구멍은 서로 연결되어 있습니다.  하지만 ②번처럼 구멍의 가로로는 서로 연결되어 있지 않습니다. ③번의 파란색과 ④번의 빨간색 선은 길게 일직선으로 모든 구멍이 연결되어 있다는 의미입니다. 단, 빨간색선의 구멍과 파란색선의 구멍 사이는 연결되어 있지않습니다. ⑤번 부분은 위와 아래가 연결되어 있지 않습니다.


[그림 4. 브레드 보드의 연결선]


브레드 보드의 뒷면을 벗겨내서 내부 구조를 보면 [그림 8]과 같습니다. 브레드 보드의 바닥이 전기가 통하는 철로 연결되어 있습니다. 어떤 구멍에 전선을 꽂으면 어디로 연결되는 지 이제 아시겠죠?

[그림 5. 브레드 보드 내부 구조]


[3] 엔트리 


[그림 6. 엔트리 코딩 페이지]

엔트리는 프로그래밍을 처음 배우는 사람들을 위한 프로그래밍 교육 플랫폼 입니다. 기존의 텍스트 기반의 전문 프로그래밍 언어는 내용이 어려워 흥미를 잃기 쉽지만, 엔트리는 블록 코딩 방식으로서 학습자에 친화적인 실습 위주의 환경으로 만들어져 있습니다. 인터넷이 가능한 컴퓨터라면 어디서든지 엔트리에 접속하여 프로그래밍을 할 수 있습니다. 마우스로 명령 블록을 움직여서 마치 레고 블록을 쌓듯이 프로그램을 만들 수 있습니다. 그리고 소리와 그림 요소를 프로그램에 추가하여 예술적 작품을 만들 수도 있고, 수학, 과학적 지식을 프로그래밍 명령에 추가하여 활용할 수 있습니다. 더 나아가서 전자 부품을 활용한 피지컬 컴퓨팅도 가능하여 컴퓨터 상에 머물고 있는 프로그램을 컴퓨터 밖의 세상과 연결시킬 수도 있습니다. 



끝으로


만들고 싶은 것들이 있나요? 자 이제 시작해볼까요?


 



관련 링크:

아두이노 사이트: https://www.arduino.cc/

아두이노 공동창업자 마시모 반지의 테드 강연 <아두이노- 상상력을 오픈소스화하다>

http://www.ted.com/talks/massimo_banzi_how_arduino_is_open_sourcing_imagination?language=en

엔트리 소프트웨어 교육 플랫폼: http://play-entry.com/