[아두이노 특집] ① 오픈소스 하드웨어의 왕 ‘아두이노’ 탄생기

오픈소스 소프트웨어에 리눅스가 있다면 오픈소스 하드웨어에는 아두이노(Arduino)가 있다. 기존 리눅스가 그랬던 것처럼 아두이노 또한 하드웨어 세상을 뒤 흔들며 새로운 변화를 만들어내고 있다. 한국에서도 최근 들어 아두이노에 대한 관심이 높아지고 있으며, 2014년 7월 8일에는 일반인들에게 아두이노와 3D프린터 등을 알리기 위한 ICT-DIY 포럼이 창립되기도 했다. 이와 관련해 아두이노를 모르는 사람들을 위한 아두이노 연재를 진행하고자 한다. 이번 시간은 그 첫 번째로 아두이노가 탄생하게 된 배경을 소개한다.


[toggle title=”테크니컬 레벨 ★★” load=”show”]이준혁 neosarchizo@naver.com|회계와 경영을 전공했지만 프로그래밍이 너무 좋아 개발자의 길을 걷고 있다. 취미로 자동주식매매, 웹크롤러, iOS, 안드로이드 등과 관련된 개발을 해왔으며, 현재는 매직에코에서 오픈소스 하드웨어와 서버 관련 개발을 하고 있다.
● 기획·정리 | 서준석 기자 seojs@imaso.co.kr[/toggle]

[toggle title=”연재순서” load=”show”]1회 | 오픈소스 하드웨어의 왕 ‘아두이노’ 탄생기
2회 | 아두이노의 비상(飛上)
3회 | 거대한 아두이노 세상
4회 | 아두이노를 배우자
5회 | 아두이노, 산업을 바꾸다[/toggle]

이탈리아 북부에는 푸른 강이 가로질러 흐르는 한적한 마을 ‘이브레아(Ivrea)’가 위치해 있다. 이 마을은 과거에 이 지역을 지배했던 아두인(Arduin)이라는 비운의 왕이 유명하기도 하다. 1002년에 이탈리아의 왕이 된 아두인은 불과 2년이 채 되기도 전에 독일 헨리 2세에 의해 왕좌에서 쫓겨나게 된다. 이브레아에는 이 아두인 왕을 기리는 ‘아두인 왕의 술집(Bar di Re Arduino)’이라는 술집이 있는데, 이 곳은 아두이노의 공동 개발자인 마시모 반지(Massimo Banzi)의 단골집으로도 유명하다.

아두인 왕의 술집(Bar di Re Arduino)
아두인 왕의 술집(Bar di Re Arduino)


그런데 비운의 왕으로 알려진 아두인이 현재는 오픈소스 하드웨어의 왕으로 다시 이름을 알리기 시작했으며, 실제로 아두이노가 탄생한 곳도 이 술집이 위치한 이브레아라서 더 의미가 있다.

이브레아의 마시모 반지
이브레아에는 예술과 IT를 융합해 가르치던 IDII(Interaction Design Institute Ivrea)라는 전문 대학원이 있었다. 2001년 창립한 IDII는 예술가와 엔지니어들이 모여 학문간의 경계를 뛰어넘는 다양한 프로젝트를 주로 진행했다. 그리고 소프트웨어 아키텍트였던 마시모 반지가 2002년에 IDII의 부교수로 부임하게 된다. 턱수염이 덥수룩해 마치 옆집 아저씨와 같은 인상을 주는 그는 이곳에서 인터랙티브 디자인을 많은 사람들에게 가르치고 알리고자 했다.

마시모 반지
마시모 반지


피지컬 컴퓨팅(Physical Computing)이라 불리기도 하는 인터랙티브 디자인은 사용자 기반의 학문으로 기술과 사람 간의 조화를 통해 미디어의 의미있는 의사소통을 이끌어내는 것을 목적으로 한다. 현재는 주위에서 쉽게 인터랙티브 디자인을 볼 수 있지만 2002년 당시에는 막 주목을 받기 시작한 신생 학문이었다. 따라서 이와 관련된 교육환경이 충분치 못 했다. 또한 IDII의 재정이 넉넉하지 않았기 때문에 제한된 시간과 기자재로 수업을 진행해야 했다.

베이직 스탬프 2
베이직 스탬프 2


베이직 스탬프
마시모 반지와 같이 인터랙티브 디자인을 가르치는 사람들은 페럴랙스(Parallax)라는 회사에서 개발한 베이직 스탬프(BASIC Stamp)를 주로 이용했다. 베이직 스탬프는 당시 하드웨어 엔지니어들에게서 10년 이상 사용되던 제품이었다. 지금의 아두이노와도 상당히 흡사한데, 프로그래밍 언어인 BASIC을 변형한 PBASIC으로 코드를 작성하고 마이크로컨트롤러, 메모리 그리고 입출력 핀 등을 가지고 있었다.

마시모 반지는 베이직 스탬프에 대한 불만이 있었다. 진행하고 있던 프로젝트를 구현하기에 성능이 너무 떨어졌고, 가격도 만만치 않았기 때문이다. 당시 가격으로 100달러 정도였는데 젊은 학생들이 구매하기에 결코 저렴한 가격이 아니었다. 또한 마시모 반지는 주로 매킨토시를 사용했던 터라 베이직 스탬프를 사용하기 위해 윈도우를 사용해야 하는 것도 하나의 불편한 점이었다. 그렇게 그때부터 그는 베이직 스탬프를 대체할 것을 찾기 시작했다. 일반인이나 예술가들도 쉽게 사용할 수 있으면서 가격 또한 부담되지 않는 것을 원했다.

[toggle title=” 베이직 스탬프의 스위치로 LED를 껐다 켜는 예제” load=”show”][cc lang=”c” width=”100%” height=”100%” nowrap=”0″]

infiniteLoop: ‘라벨
‘만약 버튼이 눌리면 Flash 라벨로 이동
IF IN1 = 1 THEN Flash
GOTO infiniteLoop ‘infiniteLoop 라벨로 이동
Flash: ‘하위 라벨
HIGH 0 ‘LED 켜기
PAUSE 1000 ‘1초 멈춤
LOW 0 ‘LED 끄기
PAUSE 1000 ‘1초 멈춤
RETURN ‘프로그램 종료[/cc][/toggle]

프로세싱
고민을 하고 있던 마시모 반지에게 큰 영향을 준 것이 있었다. 바로 프로세싱이라는 프로그래밍 언어이다. 프로세싱은 MIT 미디어랩의 케이시 리아스(Casey Reas)와 벤자민 프라이(Benjamin Fry)가 개발한 프로그래밍 언어다. 당시 케이시 리아스가 IDII에서 학생들을 가르치고 있었기 때문에 마시모 반지는 프로세싱에 대해 자세히 알 수 있었다.

프로세싱은 프로그래밍을 잘 모르는 디자이너들을 위해 만들어진 언어이다. 마치 종이에 스케치하듯이 프로그래밍을 통해 원하는 것을 쉽고 편리하게 그릴 수 있도록 고안돼 있다. 프로세싱의 코드가 빌드되고 난 뒤의 실제 결과물은 자바 애플릿이다. 하지만 프로세싱 IDE가 잘 만들어져 있어 기존의 복잡한 자바 코드 없이 와 같은 간단한 코드만으로 그래픽을 구현할 수 있다. 또한 오픈소스 소프트웨어이기 때문에 누구나 자유롭게 사용이 가능하다.

[toggle title=” 프로세싱의 마우스로 선을 그리는 예제” load=”show”]

void setup() {
    size(400, 400); // 창 크기를 400×400으로 설정
    stroke(255); // 선 색깔을 흰색으로 설정
    background(192, 64, 0); // 배경색 변경
}

void draw() {
    line(150, 25, mouseX, mouseY); // 마우스 좌표와 연결되는 선 그리기
}

[/toggle]

의 실행 화면
의 실행 화면


프로세싱을 통해 만든 작품
프로세싱을 통해 만든 작품


마시모 반지는 프로세싱의 매력에 매료됐다. 프로세싱으로 그래픽을 쉽게 구현하는 것처럼 하드웨어를 쉽게 제어할 수 있도록 만드는 방법을 고민하기 시작했다. 그리고 그렇게 하기 위해 프로세싱과 같은 쉽고 편리한 IDE가 필요하다는 것을 인식했다. 결국 아두이노의 모태라고 할 수 있는 와이어링이 프로세싱 IDE를 동일하게 사용하게 되고 지금의 아두이노 IDE도 프로세싱 IDE를 그대로 차용하고 있다.

프로세싱 IDE와 아두이노 IDE
프로세싱 IDE와 아두이노 IDE


와이어링
2003년 콜럼비아에서 온 에르난도 바라간(Hernando Barraga´n)이라는 IDII 학생이 석사 논문 프로젝트로 와이어링(Wiring)을 개발한다. 마시모 반지와 케이시 리아스가 이 학생의 논문 지도 교수였다. 와이어링은 프로세싱에서 파생된 프로젝트로 아두이노의 모태라고 할 수 있다. 현재 아두이노에서 사용되고 있는 IDE와 기본 라이브러리가 이 프로젝트에서 거의 완성됐다. 2004년 에르난도 바라간은 우등생으로 졸업한 뒤 모국인 콜럼비아로 돌아가 와이어링 개발을 이어나간다.

와이어링 V1.0
와이어링 V1.0


그 와중에 마시모 반지는 동료인 데이비드 꾸아르띠에예스(David Cuartielles)와 함께 와이어링에서 파생된 프로젝트를 진행한다. 마시모 반지는 당시 와이어링이 완성도가 상당히 높았음에도 불구하고 보다 더 단순하고 쉽게 사용할 수 있으며 저렴해야 한다고 생각했다. 와이어링 초기 모델의 제조비용이 약 60달러 였는데 마시모 반지가 생각한 목표 금액은 30달러였다. 그렇게 진행된 프로젝트는 2005년에 첫 번째 프로토타입 보드를 완성하게 된다. 보드의 회로 구성이 와이어링에 비해 더 단순했고, 제조 비용을 30달러 가까이 맞출 수 있었다. 그런데 프로토타입 보드가 완성됐을 때 곧바로 아두이노라는 이름이 붙지는 않았다. 그 이름은 좀 더 시간이 지난 후에 지어지게 된다.

아두이노의 첫 번째 프로토타입 보드
아두이노의 첫 번째 프로토타입 보드


한편 콜럼비아로 돌아간 에르난도 바라간은 와이어링을 계속 개발한 끝에 상용화를 하게 된다. 안타까운 점은 마시모 반지의 프로젝트에 대한 구체적인 통보를 받지 못 했다는 것이다. 실제로 아두이노 1.0이 공개됐을 때 홈페이지에서 와이어링에 대한 언급이 전혀 나와있지 않았다. 그렇게 와이어링과 아두이노는 각자의 길을 가게 되고 와이어링은 결국 아두이노의 그늘에 가려지게 된다. 재미있는 점은 지금도 두 제품이 서로 호환이 잘 되기 때문에 IDE를 바꾸어 개발이 가능하다는 것이다.

오픈소스 하드웨어
마시모 반지와 그의 동료들은 오픈소스에 대한 믿음이 강했다. 프로젝트의 목적이 보드의 쉽고 빠른 생산과 누구나 자유롭게 사용할 수 있게 하는 것이었기 때문에 많은 사람들에게 공개하는 것이 더 좋을 거라고 생각했다. 또한 2005년 말 IDII가 급격한 재정난에 허덕이며 폐교 위기에 처하게 된 것도 아두이노를 오픈소스로 만드는 계기가 됐다. 자칫 프로젝트가 사라지거나 엉뚱한 사람들로 인해 망가질 것을 우려했던 까닭이다. 결국 마시모 반지와 그의 동료들은 프로젝트를 오픈소스로 공개하기로 결심한다.

홈페이지에 공개돼 있는 아두이노 UNO의 회로도
홈페이지에 공개돼 있는 아두이노 UNO의 회로도


하지만 오픈소스 소프트웨어와 달리 오픈소스 하드웨어는 당시 거의 최초로 시도된 것이었기 때문에 하드웨어에 어떤 라이선스를 적용해야 될지 몰랐다. 조사를 한 끝에 하드웨어에도 CC(Creative Commons) 라이선스를 적용할 수 있다는 것을 알게 된다. 하드웨어를 음악이나 글과 같이 다른 사람과 공유할 수 있는 하나의 콘텐츠로 생각하게 된 것이다.

하드웨어를 오픈소스로 공유했기 때문에 누구나 홈페이지에서 회로도와 사용된 부품 목록을 확인할 수 있다. 개인이 부품을 연결해 PCB를 직접 만들 수 있고, 기업 같은 경우 라이선스에 위배되지 않는다면 얼마든지 호환 보드라는 명칭으로 보드를 제작해 판매할 수 있다.

최초의 아두이노 보드
마시모 반지와 그의 동료들은 보드에 대해 몇 가지 목표를 세웠다.

● 첫 번째, 보드의 가격은 30달러 정도여야 한다.

그들이 보드의 목표 가격을 30달러로 한 이유는 당시 피자 가게에서 외식할 때 드는 비용이 그 정도였기 때문이다. 그 가격이면 젊은이들이 부담 없이 구매할 수 있을 거라 생각했다. 이를 맞추기 위해 아트메가(ATmega)328과 같은 쉽고 저렴하게 구할 수 있는 부품을 사용하게 된다.

● 두 번째, 특이해야 한다.
소위 긱(Geek)이라 불리는 그 분야 전문가들도 사고 싶은 마음이 들도록 특별한 매력을 가져야 한다고 생각했다. 따라서 녹색 일변도였던 기존 보드들과는 달리 파란색으로 보드를 칠했다. 또한 기존 보드 제조사들이 비용을 낮추기 위해 입출력 핀의 갯수를 제한한 반면 가능한 많은 입출력 핀을 사용할 수 있도록 설계했다. 마지막에는 보드 뒷면에 조그마한 이탈리아 지도를 새겨 넣었다.

● 세 번째, 직접 보드를 쉽게 만들 수 있도록 해야 한다.
아무리 보드를 오픈소스로 공개한다고 해도 회로도가 너무 복잡하면 따라 만들기가 어려울 것이라 생각했다. 따라서 회로도를 최대한 쉽고 간단하게 설계했다. 그러다 보니 일반 하드웨어 엔지니어가 보기에 다소 괴상한 설계도가 만들어졌다. 하지만 그들은 이런 접근 방법이 아두이노의 장점이 될 것이라고 확신했다.

● 네 번째, 조작이 간편해야 한다.
사용자가 보드를 구매하면 곧바로 PC에 연결해 사용이 가능하도록 만들길 원했다. 베이직 스탬프의 경우 PC에 연결하기 위해 기본 구성 외에 추가 비용을 들여 별도의 부품을 구매해야만 했다. 이에 대한 불편함을 느껴 아두이노는 USB 케이블만으로 곧바로 PC에 연결해 사용할 수 있도록 설계했다. 물론 IDE도 운영체제에 상관없이 사용할 수 있도록 개발했다.

이와 같은 목표를 달성할 수 있었기에 전자회로에 대한 배경 지식이 없던 사람도 그들의 보드를 통해 생각한 것을 쉽게 만들어 낼 수 있었다. 은 아두이노의 Hello World라고 할 수 있는 Blink 예제이다. 코드를 C++로 작성하지만 어려운 C++ 코드 없이도 쉽고 간단하게 프로그래밍을 할 수 있다. C++이기 때문에 main 함수가 없어 의아해 할 수 있는데, 코드를 작성하고 컴파일을 실행하면 그 순간 IDE가 자동으로 main 함수와 기타 필요한 헤더를 자동으로 추가한다.

[toggle title=” 아두이노의 Blink 예제” load=”show”][cc lang=”c” width=”100%” height=”100%” nowrap=”0″]
int led = 13; // LED 제어를 위한 변수
void setup() {
pinMode(led, OUTPUT); // LED 핀을 출력 모드로 설정
}
void loop() {
digitalWrite(led, HIGH); // LED 핀의 전압을 5V로 설정
delay(1000); // 1초 멈춤
digitalWrite(led, LOW); // LED 핀의 전압을 0V로 설정
delay(1000); // 1초 멈춤
}
[/cc][/toggle]

프로젝트의 성과를 확인하기 위해 IDII 학생들에게 회로도만 찍혀있는 빈 회로 보드를 나눠준 뒤 직접 보드를 만들고 무언가를 만들도록 시켰다. 그렇게 했더니 어렵지 않게 보드를 똑같이 만들고, 만든 보드를 이용해 재밌고 기발한 것을 구현하는 걸 볼 수 있었다. 그 중 첫 번째로 만든 것이 천장에 매달린 알람 시계였다. 이 시계는 알람이 울릴 때 멈춤 버튼을 누르면 더욱 시끄럽게 울리다가 사용자가 침대에서 일어나면 그제서야 꺼지도록 만들어진 제품이다.

학생들을 대상으로 한 실험이 완료된 뒤 마시모 반지의 친구가 처음으로 보드를 구매했다. 그리고 얼마 지나지 않아 소문을 듣고 보드를 사고 싶어하는 사람들이 몰려오기 시작했다. 프로젝트가 본격적으로 가속화되기 시작하면서 그들은 그제서야 중요한 걸 놓쳤다는 것을 깨달았다. 바로 보드의 이름을 짓지 않은 것이다. 단골 술집인 아두인 왕의 술집에서 이름을 고민하던 이들은 아두인 왕의 이름을 따서 아두이노라고 짓기로 결정했다. 그렇게 비운의 왕으로 기억되던 아두인은 다시 오픈소스 하드웨어 왕 아두이노로 불리게 된다.

세상에 알려지다
아두이노는 특별한 마케팅이나 광고가 없었음에도 온라인을 통해 소문이 빠르게 퍼지기 시작했다. 시간이 얼마 지나지 않아 뉴욕대에 있는 팀 이고(Tim Igoe) 교수도 아두이노에 대한 소문을 듣게 된다. 당시 팀 이고는 학교에서 피지컬 컴퓨팅을 가르치고 있었고, 프로그래밍 경험이 없는 학생들을 위해 베이직 스탬프를 사용하고 있었다. 팀 이고는 실험적으로 아두이노를 사용해 학생들을 가르치기 시작했다. 그리고 곧 그 효과를 확인할 수 있었다. 학생들은 베이직 스탬프에 비해 아두이노를 쉽게 가지고 놀았다. 아두이노가 30달러라는 데 감명 받은 팀 이고는 후에 마시모 반지를 만나 아두이노 팀의 핵심 멤버가 된다.

아두이노가 출시되기 전에는 마이크로컨트롤러를 프로그래밍하고 제어하기 위해 상당한 시간을 학습해야 했다. 필요한 경우에는 소프트웨어 엔지니어조차 어려워하는 어셈블리어도 공부해야 했다. 따라서 전자회로에 대한 배경지식이 없는 사람들에게는 하드웨어란 미지의 세계처럼 보이기 일쑤였다. 하지만 아두이노는 그와 같은 벽을 허물었다. 아두이노를 통해 초보자도 자신이 원하는 프로토타입을 쉽게 만들어낼 수 있게 됐고, 기존 하드웨어들이 특허와 기술 보호로 폐쇄적이었던 것에 반해 오픈소스로 공유한다는 것도 신선한 자극을 주었다.

하지만 모든 사람들이 아두이노를 반긴 것은 아니었다. 아두이노로 인해 저수준의 제품이 시장에 쏟아져 나오는 것 아니냐는 우려의 목소리가 있었다. 또한 하드웨어 엔지니어의 가치가 떨어지지 않을까 걱정하는 사람도 있었다. 시간이 지나자 그와 같은 생각이 바뀌기 시작했다. 아두이노를 기반으로 한 메이커(Maker) 열풍이 불기 시작했고, 엔지니어와 디자이너 그리고 일반인이 어울려 만든 기발하고 재밌는 프로젝트가 넘쳐나기 시작했다.

실비아 토드의 워터칼러봇
실비아 토드의 워터칼러봇




은 실비아 토드(Sylvia Todd)라는 10대 아이가 만든 워터컬러봇(WaterColorBot)이라는 프로젝트다. 이 프로젝트는 아이패드로 그림을 그리면 똑같이 그림을 그려주는 기계다. 실제로 소셜펀딩 사이트인 킥스타터(KickStarter)에서 펀딩을 진행해 거의 1억 가까이 투자를 받기도 했다.

아두이노의 현재
데이비드 꾸아르띠에예스의 발표에 따르면 아두이노 정품보드가 2013년까지 대략 70만대 이상 판매됐다고 한다. 여기에 소위 호환 보드라고 불리는 복제품을 고려하면 훨씬 더 많은 수의 아두이노가 확산됐을 것으로 추정된다. 중국의 알리익스프레스(Aliexpress)의 경우 아두이노 UNO 호환 보드가 4.5달러, 아두이노 PRO MINI가 2.2달러에 판매된다. 가격이 싸다고 결코 성능이 떨어지거나 하지도 않는다. 아두이노 홈페이지에 공개된 회로도와 부품대로 똑같이 만들고 외양만 다르게 해 놓았기 때문에 성능이나 기능이 정품 보드와 동일하다. 따라서 이들 복제품의 판매량을 제대로 계산하면 정품보드 판매량의 몇 배가 될 지도 모른다.

이제 아두이노는 메이커들에게 없어서는 안 될 존재가 됐다. 메이커들의 성경책이라 불리는 메이크(Make)라는 잡지를 만든 데일 도허티(Dale Dougherty)는 다음과 같이 말하기도 했다.

“아두이노는 메이커 프로젝트들의 두뇌이다!”
실제로 수많은 메이커 프로젝트에서 아두이노가 사용되고 있다. 전 세계 메이커들의 축제인 메이커 페어(Maker Faire)에서는 아두이노로 구현한 다양한 프로젝트를 엿볼 수 있다. 소셜펀딩 사이트인 킥스타터나 인디고고(indiegogo)에서는 아두이노로 프로토타입을 만들어 투자를 유치하는 사람들도 종종 볼 수 있다.

아두이노 MEGA ADK
아두이노 MEGA ADK


구글도 2011년에 안드로이드 ADK(Android Accessory Development Kit)라는 아두이노 기반의 보드를 출시한 바 있다. 안드로이드 ADK는 안드로이드에서 아두이노를 이용해 하드웨어를 제어할 수 있도록 고안된 플랫폼이다. 역으로 아두이노에서 안드로이드의 API를 사용할 수도 있다.
구글뿐만 아니라 다른 기업들도 아두이노와 새로운 것을 시도하고자 진행 중이다. 인텔 같은 경우 아두이노와 파트너십을 맺고 자사의 칩인 쿼크 X1000을 기반으로 한 인텔 갈릴레오라는 제품을 출시했다. 텍사스 인스트루먼트, 비글보드 재단과 아두이노가 함께 개발해 만드는 아두이노 TRE도 2014년 연말에 출시될 것으로 예상된다.

한국에서도 아두이노에 대한 관심이 높아지고 있다. 2014년 7월 8일 창립된 ICT-DIY 포럼도 전 국민을 대상으로 소프트웨어와 아두이노, 3D 프린터 등을 교육하는 것을 목표하고 있다. 특히 7월 9일에 열린 ICT-DIY 컨퍼런스에서는 만들래, 아두이노 스토리 등과 같은 국내 커뮤니티들이 아두이노로 만든 재밌는 프로젝트들을 전시하기도 했다. 또한 이날 3000명 이상의 사람들이 몰려 국내의 아두이노와 3D 프린터에 대한 관심이 높다는 것도 확인할 수 있었다.

아두이노가 이와 같이 많은 사람들의 주목을 받고 있지만 그래도 보완할 점이 있기 때문에 계속 다양한 모델이 만들어지고 있다. 다음 시간에는 사용자들의 요구사항과 트렌드에 맞춰 진화하는 아두이노에 대해 분석하고자 한다. 특히 아두이노 각각의 모델이 가진 의미와 중요성에 대해 자세히 알아볼 예정이다.

답글 남기기