2016년 11월 19일 토요일

Arduino 1. 아두이노란 무엇인가?

Arduino 아두이노
아두이노를 알기 위해서는 먼저 마이크로컨트롤러를 알아야 한다.
아래 글은 내가 학부실험을 위해 작성한 실험메뉴얼에 나온 내용이다.

마이크로컨트롤러
Microcontroller[1] 는 하나의 칩 안에 microprocessor, memory, analog to digital converter, digital to analog converter, parallel I/O interface, serial I/O interface, timer, counter 를 모두 포함하는 작은 컴퓨터를 말한다(그림 1). 사용자의 다양한 요구에 맞춰 사용하는 개인용 컴퓨터(personal computer, PC)와 달리 microcontroller는 미리 프로그램 된 특정 기능을 반복적으로 처리하는데 사용한다. 성능은 PC에 비해 낮지만 기본적인 연산 능력, 신호처리기능이 있으며 소형에 저전력(µW ~ mW)에서 작동이 가능하다. 따라서 우리 주변에서 흔히 보는 전기 밥솥, 세탁기, 에어컨, TV, 핸드폰 등 거의 모든 가전 및 산업제품에서 내장되어 사용자가 버튼을 눌렀을 때 정해진 기능을 수행하는데 쓰인다.  
이처럼 microcontroller는 현대사회의 기기에 널리 쓰이는 핵심부품이지만, microcontroller에 원하는 명령을 넣고 장치를 제어하는 것은 하드웨어와 소프트웨어에 대한 상당한 경험과 지식이 있는 전문가가 아니면 하기 어려운 분야이다. Microcontroller용 프로그램을 작성해 직접 사용하려면 전문교육과 실무 경험을 몇 년간은 해야 하는 것이 필수고, microcontroller제조사에 따라 프로그램을 새로 작성해야 하며 제조사가 같더라도 모델이 다르면 호환이 되지 않아 일반 사람들에게는 진입장벽이 무척 높은 영역인 것이었다.
Image result for microcontroller 구조

그림 1. 일반적인 microcontroller 의 구성도



[1] Udayashankara, V., Microcontroller; Tata McGraw-Hill Education, 2009.

그러면 아두이노는 무엇일까 ?


2005년 이탈리아에 마시모 반지(Massimo Banzi) 교수는 디자인을 전공하는 학생들에게 IT를 융합한 작품을 만들도록 하기 위해 비전문가도 쉽게 microcontroller를 활용해 자신이 원하는 장치를 만들 수 있도록 Arduino[1] 라는 하드웨어와 똑같은 이름의 통합개발환경 (integrated development environment, IDE) 소프트웨어를 공개하였다. 공학도도 접근이 쉽지 않은 microcontroller를 임베디드 시스템(embedded system: 특정 기능을 수행하는 시스템) 개발 경험이 전혀 없는 사람도 쉽게 배우고 접근하여 사용할 수 있도록 하드웨어와 소프트웨어의 내용을 모두 오픈소스(open source) 형태로 공개하여 제공한 것이다.[2] 누구나 직접 Arduino board를 만들고 수정할 수 있게 회로도를 공개하였고, 실행 코드(code)를 기존보다 더 쉽게 제작하고 업로드(upload: 사용자가 만든 코드를 microcontroller에 전송 하는 것) 할 수 있도록 IDE 소프트웨어를 만들었다. IDE에는 편집이 쉬운 에디터(editor), 컴파일(compile: 인간이 만든 프로그래밍 언어를 기계가 인식할 수 있도록 함)과 업로드가 가능한 컴파일러 플랫폼(compiler platform)이 포함되어 있다. 프로그램 언어를 잘 모르는 초심자도 Arduino IDE 를 이용해 코딩(coding: 프로그램의 코드를 작성하는 것)을 쉽게 할 수 있도록 하였으며, 기존에 복잡한 컴파일과 업로드 과정을 벗어나 PCUSB 케이블로 연결하여 쉽게 컴파일과 업로드를 할 수 있게 만들었다. 더욱이 Arduino는 아폴로 우주 계획에 사용한 항법 컴퓨터와 비슷한 컴퓨팅 파워를 가지면서 가격은 1/35,000 수준이라 성능과 가격에 대한 부담없이 마음껏 활용할 수 있다. 따라서 예술가, 일반인, 심지어 어린이들까지도 머릿속의 상상을 실제로 구현해 볼 수 있는 환경이 Arduino를 통해 마련된 것이다. 실제로 Arduino와 사물인터넷을 결합해 집에 있는 TV, 에어컨을 제어하거나 농촌에서 자동으로 농작물에 물을 주고 습도를 조절하는 장치를 만든 예들을 쉽게 찾아 볼 수 있으며, 기분을 표현하는 디스플레이 장치, 의류, 조명등 감성과 결합한 장치들도 개발되어 있다[3]. 이처럼 Arduino 의 저렴한 가격, 낮은 진입장벽, 개방된 환경은 창업, 교육, 산업, 예술계와 같은 사회 여러 분야에 활용될 수 있는 가능성을 열어주었다.[4]



[2] 스마트과학관-사물인터넷 아두이노 http://terms.naver.com/entry.nhn?docId=3386838&cid=58369&categoryId=58369
[3] http://www.instructables.com/id/20-Unbelievable-Arduino-Projects/





댓글 없음:

댓글 쓰기