User Tools

Site Tools


getting_started_with_arduino

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

getting_started_with_arduino [2010/02/04 15:10] suapapagetting_started_with_arduino [2013/08/03 05:04] (current) – external edit 127.0.0.1
Line 6: Line 6:
  
 ====== 서문 ====== ====== 서문 ======
-몇년 전 나는 아주 흥미로운 과제를 맡은 적이 있다그것은 디자이너들에게 그들이 디자인하는 물체의 양방향성 프로토타입을 그들 스스로 만들 수 있도록 아주 기본적인 전자 지식을 가르치는 것 이었다.+몇 년 전 나는 아주 흥미로운 과제를 맡은 적이 있다그것은 디자이너들에게 그들이 디자인하는 물체의 양방향성 프로토타입을 스스로 만들 수 있도록 아주 기본적인 전자 지식을 가르치는 것이었다.
  
-나는 내가 학교에서 전자지식을 배웠던 것과 같은 방법을 따라 가르치려 했는데, 머지 않아 기대했던 대로 되지 않고 있음을 알게 되었다.  +무의식 적으로 내가 학교에서 전자에 대해 배웠던 방법을 사용해 가르치기 시작했는데 이 방법이 전혀 기대했던 대로 되지 않고 있음을 알게 되었고, 나 역시 실습이 전혀 없는 채로 교실에 앉아 쏟아지는 이론을 듣고만 있는 것이 끔찍하게 지루했다는 것이 기억나기 시작했다.
-무의식 적으로 나는 내가 학교에서 전자에 대해 배웠던 것과 같은 방법을 사용해 가르치기 시작했고, 그 후 이 방법이 전혀 기대했던 대로 되지 않고 있음을 알게 되었고, 실습이 전혀 없는 채로 교실에 앉아 쏟아지는 이론을 듣고만 있는 것이 끔찍하게 지루했다는 것이 기억나기 시작했다.+
  
-실제로 나는, 학교에서 전자를 배우기 전부터 매우 특별한 방법이론은 매우 부족하지만손으로 터득한 많은 경험으로 이미 전자 기술에 대해 알고 있었다. 교과과정 이전부터 나는 경험적으로 전자에 대해 알고 있었었다. 이론은 거의 없이 직접 만져서 얻은.+실제로 나는, 학교에서 전자를 배우기 전부터 매우 특별한 방법인 이론은 매우 부족하지만 손으로 터득한 많은 경험으로 이미 전자 기술에 대해 알고 있었다.
  
 내가 전자지식을 얻게 된 진짜 과정들을 생각해 보니 다음과 같았다. 내가 전자지식을 얻게 된 진짜 과정들을 생각해 보니 다음과 같았다.
  
-  * 입수할 수 있는 전자장치들을 분해한다.+  * 입수할 수 있는 전자 장치들을 분해한다.
   * 천천히 각 부품들에 대해 배운다.   * 천천히 각 부품들에 대해 배운다.
-  * 더 깊게 생각해 보기 시작하여, 내부 연결점들을 바꿔 보고 장치에 어떤 변화가 있는지 살펴본다. 그 결과는 대부분 터지거나 연기가 피어났다.+  * 더 깊게 생각해 보기 시작하여, 내부 연결점들을 바꿔 보고 장치에 어떤 변화가 있는지 살펴본다. 대부분 부품이 터지거나 연기가 피어났다.
   * 전자 잡지들에서 파는 키트를 만들어 본다.   * 전자 잡지들에서 파는 키트를 만들어 본다.
-  * 헤집어 놨던 장치들과수정했던 키트들, 잡지에서 찾은 회로도를 조합하여 새로운 일을 하도록 만들어 본다.+  * 헤집어 논 장치들과 수정한 키트들, 잡지에서 찾은 회로도를 조합하여 새로운 일을 하도록 만들어 본다.
  
-내가 작은 꼬마였을 때, 나는 언제나 어떻게 물건들이 작동하는지 알아내는 일에 심취해 있었기 때문에, 물건들을 분해하곤 했다. 이 열정은 자라나 사용하지 않는 가전기기들을 그 대상으로 삼게 되었고, 결국 사람들은 모든 종류의 장치들을 분해하라고 내게 가져다주었었다. 그 당시 나의 가장 큰 규모의 프로젝트는 식기세척기와 보험 사무실에서 버려진커다란 프린터와 전자 카드, 마그네틱 카드 리더들이 딸린 초기 컴퓨터로 이를 완전히 분해하는 것은 매우 흥미롭고 도전적인 일 이었다.+어린 시절, 나는 물건들이 어떻게 작동하는지 알아내는 일에 심취해 있었기 때문에, 물건들을 분해하곤 했다. 이 열정이 자라나 사용하지 않는 가전기기들을 그 대상으로 삼게 되었고, 사람들은 모든 종류의 장치들을 분해하라고 내게 가져다주었었다. 당시 나의 프로젝트들 중 가장 큰 규모의 것은 식기세척기와 보험 사무실에서 버려진 커다란 프린터와 전자 카드, 마그네틱 카드 리더가 딸린 초기 컴퓨터였는데 이를 완전히 분해하는 것은 매우 흥미롭고 도전적이었다.
  
-이런 해부 실습을 꽤 많이 한 뒤에, 나는 어떤 전자 부품들이 있고 대략 어떤 역할을 하는지 알 수 있게 되었다. 이런 지식을 근원에는 우리 집에 가득한, 아버지가 1970년대 초부터 사 둔 오래된 전자잡지들이 있었다. 거의 대부분은 이해할 수 없었지만, 나는 그 기사들과 회로도들은 몇 시간씩 읽곤 했다.+이런 해부 실습을 꽤 많이 한 뒤에, 나는 어떤 전자 부품들이 있고 대략 어떤 역할을 하는지 알 수 있게 되었다. 이런 지식의 배경에는 아버지께서 1970년대 초부터 사 두어 집안에 가득했던 오래된 전자잡지들이 있었다. 거의 대부분은 이해할 수 없었지만, 나는 그 기사들과 회로도들을 몇 시간씩 읽곤 했다.
  
-기사들을 읽고 또 읽는 과정들은 회도들을 분해하면서 얻은 지식들을 합쳐져, 느리지만 효과적인 순환 과정이 되었다.+기사를 읽고 또 읽는 과정들은 회도들을 분해하면서 얻은 지식들을 합쳐져, 느리지만 효과적인 순환 과정이 되었다.
  
-아버지가 내게 십대들을 대상으로 한 전자 학습 키트를 선물해 주신 한 크리스마스에 비약적인 도약이 이루어졌다. 키트의 각 부품들은 플라스틱의 네모난 껍데기가 씌워져 있었고, 각 부품들은 자석을 사용해 서로 딸깍하고 연결되었다. 각 부품의 윗면에는 회로 기호가 표시되어 있었다. 이 장난감에 대해서 조금 더 알고 있었던 것은, 이 장난감의 독일 디자인의 한 획이라는 것으로, 왜냐하면 1960년대에 다이에터 스가 이 장난감을 디자인했기 때문이다.+아버지께서 내게 십대들을 대상으로 한 전자 학습 키트를 선물해 주신 어느 크리스마스에 비약적인 도약이 이루어졌다. 키트의 각 부품들은 플라스틱의 네모난 껍데기가 씌워져 있었고, 각 부품들은 자석을 사용해 딱각하는 소리를 내며 서로 연결되었다. 각 부품의 윗면에는 회로 기호가 표시되어 있었다. 이 장난감에 대해서 조금 더 알고 있었던 것은, 이 장난감의 독일 디자인의 한 획이라는 것으로, 왜냐하면 1960년대에 터 ((옮긴이 주: 독일의 유명한 산업 디자이너))가 이 장난감을 디자인했기 때문이다.
  
 이 새 도구를 사용해 나는 빠르게 회로를 만들고, 어떤 일이 일어나는지 확인해 볼 수 있었다. 이 프로토타입을 만드는 주기는 점점 더 짧아졌다. 이 새 도구를 사용해 나는 빠르게 회로를 만들고, 어떤 일이 일어나는지 확인해 볼 수 있었다. 이 프로토타입을 만드는 주기는 점점 더 짧아졌다.
  
-그 다음으로는라디오, 앰프, 끔찍한 노이즈나 괜찮은 소리가 나는 회로들, 강우 센서, 조그만 로봇들을 만들었었다.+그 다음으로는 라디오, 앰프, 끔찍한 노이즈나 괜찮은 소리가 나는 회로들, 강우 센서, 조그만 로봇들을 만들었었다.
  
-나는 일련의 계획을 세우지 않고 아이디어로 부터 시작해서 완전히 기대 밖의 결과를 얻어내는 일을 설명하기 위해 단어를 오랜 시간 동안 찾아왔고 마침내 "팅커(tinker)"이라는 단어를 찾게 되었다. 많은 다른 분야에서도 새로운 길을 개척하는 사람을 묘사하기 이 단어를 사용한다는 것을 알게 되었다. 예를 들면 프랑스에서 "누벨바그"의 탄생을 이끌었던 사람들은 "팅커러"((옮긴이 주: 이 단어의 의미를 함축하는 마땅한 한글 단어는 찾기 어려운데, 척척박사 같은 사람을 생각하면 된다))로 불린다. 내가 찾은 팅커링에 대한 정의 중 가장 좋은 것은 샌프란시스코의 박람회장에서 열린 박람회에서 알게 된 것으로 음과 같다:+나는 특별히 계획을 세우지 않고 아이디어로 부터 시작해서 완전히 기대 밖의 결과를 얻어내는 일을 설명하기 위해 단어를 오랫 동안 찾아왔고마침내 "팅커(tinker)"이라는 단어를 찾게 되었다. 많은 다른 분야에서도 새로운 길을 개척하는 사람을 묘사하는 데  이 단어를 사용한다는 것을 알게 되었다. 예를 들면 프랑스에서 "누벨바그"의 탄생을 이끌었던 사람들은 "팅커러"((옮긴이 주: 이 단어의 의미를 함축하는 마땅한 한글 단어는 찾기 어려운데, 척척박사 같은 사람을 생각하면 된다))로 불린다. 내가 팅커링에 대해 찾은 가장 좋은 정의는 샌프란시스코의 박람회장에서 열린 박람회에서 알게 된 것.
  
 +팅커링은 어떻게 해야 하는지 정확히 모르는 상태에서 직관, 상상, 호기심 등을 따라 일을 시도할 때 일어난다. 팅커링을 할 때 따라야할 교범 같은 것은 없다. 즉 실패란 없으며, 옳고 그름 나뉘지도 않는다. 이는 어떻게 작동하는지와 다시 작동하게 하는 방법을 알아내는 것에 관한 것이다.
  
-팅커링은 어떻게 해야 하는지 정확히 모르는 상태에서 직관상상호기심 등을 따라 일을 시도할 때 일난다. 팅커링을 할 때 따라야할 교범 같은 것은 없다-즉 실패란 없으며, 옳고 그름 뉘지도 않다. 는 어떻게 하는지와 다시 동하게 는 방법을 알아내는 것에 관한 것이다.+기묘한 발명품기계들크게 나 는 물체들이 조화롭게 동작하는 것. 이런 들이 팅커링이다.
  
-기묘한 발명품, 기계들, 크게 어긋나 있는 물체들이 조화롭게 동작하는 것-이런 것들이 팅커링이다. +팅커링은, 가장 기본적으로는 놀이, 탐구와 결혼하는 과정이다.
- +
-팅커링은, 가장 기본적으로는,  놀이, 탐구와 결혼하는 과정이다.+
  
 www.exploratorium.edu/tinkering www.exploratorium.edu/tinkering
  
-내 어릴 적 경험에 비추어, 나는 여러분이 원하는 회로를 만들기 위해서는 기본적인 부품들부터 시작해 얼마나 많은 경험이 필요한지를 알 수 있었다.+어릴 적 경험에 비추어, 나는 원하는 회로를 만들기 위해서는 기본적인 부품들부터 시작해 얼마나 많은 경험이 필요한지를 알게 되었다.
  
-다른 도약점은 1982년 여름에 부모님과 함께 런던에 가서, 그곳의 과학박물관을 관람하느라 많은 시간을 사용하던 시점에 찾아왔다. 그 당시 박물관은 컴퓨터 관을 새롭게 열었고 가이드를 따라 일련의 경험을 하며, 기본적인 이산수학과 프로그래밍의 기초에 대해 배울 수 있었다.+다른 도약점은 1982년 여름에 부모님과 함께 런던에 가서 과학박물관을 관람하느라 오랜 시간을 보내던 시점에 찾아왔다. 당시 박물관은 컴퓨터 관을 새롭게 열었는데, 가이드를 따라 다니면서 기본적인 이산수학과 프로그래밍의 기초에 대해 배울 수 있었다.
  
-그곳에서 나는 많은 어플리케이션에서엔지니어들은 더 이상 기본 부품들로부터 회로를 만들지 않는 대신, 마이크로프로세서를 사용해 다량의 지능을 구현한다는 것을 알게 되었다. 소프트웨어는 많은 시간이 필요한 전자 디자인을 대체하여, 팅커링 주기를 더 짧게 만들 수 있게 해 준다.+그곳에서많은 어플리케이션에서 엔지니어들은 더 이상 기본 부품들로부터 회로를 만들지 않, 마이크로프로세서를 사용해 다량의 정보처리를 구현한다는 것을 알게 되었다. 소프트웨어는 많은 시간이 필요한 전자 디자인을 대체하여, 팅커링 주기를 더 짧게 만들 수 있게 해 준다.
  
 그곳에서 돌아와서는 돈을 모으기 시작했는데, 왜냐하면 컴퓨터를 구입해서 프로그래밍 하는 방법을 배우고 싶었기 때문이다. 그곳에서 돌아와서는 돈을 모으기 시작했는데, 왜냐하면 컴퓨터를 구입해서 프로그래밍 하는 방법을 배우고 싶었기 때문이다.
  
-그 후로 나의 첫 번째 가장 중요한 프로젝트는 새로 산 ZX-81 컴퓨터를 사용해 용접기를 제어하는 것 이었다. 아주 흥미로운 프로젝트처럼 들리진 않겠지만, 필요한 곳이 있었고 막 프로그래밍을 하는 방법에 대해 배운 터라 대단한 도전이다. 이 시점에서 복잡한 회로를 수정하는 것 보다 몇 줄의 코드를 작성하는 게 시간이 덜 든다는 이 명확해 졌다.+그 후로 내게 가장 중요한 프로젝트는 새로 산 ZX-81 컴퓨터를 사용해 용접기를 제어하는 것이었다. 아주 흥미로운 프로젝트처럼 들리진 않겠지만, 필요한 곳이 있었고 막 프로그래밍하는 방법을 배운 터라 대단한 도전이기도 했다. 이 시점에서 복잡한 회로를 수정하는 것보다 몇 줄의 코드를 작성하는 게 시간이 덜 든다는 사실이 명확해 졌다.
  
-이십여 년이지나, 나는 이 경험들로 인해 내가, 학교에서 배운 수학 수업이 전혀 기억 못하는 사람들에게도 내 어린 시절부터 지녀온 것과 같은 열정과 팅커할 수 있는 능력을 가르칠 수 있게 되었다고 생각한다.+이십여 년이지나, 나는 이런 경험들 때문에, 학교에서 배운 수학 수업을 전혀 기억 못하는 사람들에게도 내가 어린 시절부터 지녀온 것과 같은 열정과 팅커링 하는 능력을 가르칠 수 있게 되었다고 생각한다.
  
 - 마시모 - 마시모
 +===== 감사의 글 =====
 +이 책을 루이자(Luisa)와 알렉산드라(Alexandra)에게 바친다.
 +
 +우선 아두이노 팀의 파트너 David Cuartielles, David Mellis, Gianluca Martino, Tom Igoe에게 감사를 전한다. 여러분과 함께 일한다는 것은 환상적인 일이다.
 +
 +그녀 자신은 모르겠지만 Barbara Ghella의 정확한 조언이 없었다면 아두이노와 이 책은 없었을 지도 모른다. 
 +
 +Bill Verplank는 내게 피지컬 컴퓨팅과 더 많은 것들을 가르쳐 주었다.
 +
 +내게 기회를 준 Gillian Crampton-Smith과 그녀에게 배운 모든 것들에 감사한다.
 +
 +Wiring 플랫폼을 만든 Hernando Barragan에게 감사를 전한다.
 +
 +Brian Jepson는 훌륭한 편집자로 전 과정에서 열정적인 도움을 주었다.
 +
 +Nancy Kotary, Brian Scott, Terry Bronson, Patti Schiendelman 는 내가 작성한 글들은 책으로 마무리 해 주었다.
 +
 +더 많은 사람들에게 감사를 전하고 싶지만, 브라이언이 공간이 부족하다고 하는 관계로 여러 이유에서 감사들 드리는 사람들의 이름을 나열한다.
 +
 +Adam Somlai-Fisher, Ailadi Cortelletti, Alberto Pezzotti,
 +Alessandro Germinasi, Alessandro Masserdotti, Andrea Piccolo,
 +Anna Capellini, Casey Reas, Chris Anderson, Claudio Moderini,
 +Clementina Coppini, Concetta Capecchi, Csaba Waldhauser,
 +Dario Buzzini, Dario Molinari, Dario Parravicini, Donata Piccolo,
 +Edoardo Brambilla, Elisa Canducci, Fabio Violante, Fabio Zanola,
 +Fabrizio Pignoloni, Flavio Mauri, Francesca Mocellin, Francesco
 +Monico, Giorgio Olivero, Giovanna Gardi, Giovanni Battistini,
 +Heather Martin, Jennifer Bove, Laura Dellamotta, Lorenzo
 +Parravicini, Luca Rocco, Marco Baioni, Marco Eynard, Maria
 +Teresa Longoni, Massimiliano Bolondi, Matteo Rivolta, Matthias
 +Richter, Maurizio Pirola, Michael Thorpe, Natalia Jordan,
 +Ombretta Banzi, Oreste Banzi, Oscar Zoggia, Pietro Dore,
 +Prof Salvioni, Raffaella Ferrara, Renzo Giusti, Sandi Athanas,
 +Sara Carpentieri, Sigrid Wiederhecker, Stefano Mirti, Ubi De Feo,
 +Veronika Bucko.
  
 ====== 1/도입 ====== ====== 1/도입 ======
 아두이노는 간단한 입/출력(I/O) 보드와 프로세싱(www.processing.org) 언어에 사용된 개발 환경으로 구성된 오픈소스 피지컬 컴퓨팅 플랫폼이다. 아두이노를 사용해 독립형 인터엑티브 장치를 개발할 수도 있고 여러분의 컴퓨터(플래시, 프로세싱, VVVV, Max/MSP)와 연동할 수도 있다. 보드는 직접 조립하거나, 조립된 상태로 구입할 수 있다. 오픈 소스인 IDE(통합 개발 환경) 은 다음 링크에서 자유롭게 다운로드 할 수 있다. www.arduino.cc 아두이노는 간단한 입/출력(I/O) 보드와 프로세싱(www.processing.org) 언어에 사용된 개발 환경으로 구성된 오픈소스 피지컬 컴퓨팅 플랫폼이다. 아두이노를 사용해 독립형 인터엑티브 장치를 개발할 수도 있고 여러분의 컴퓨터(플래시, 프로세싱, VVVV, Max/MSP)와 연동할 수도 있다. 보드는 직접 조립하거나, 조립된 상태로 구입할 수 있다. 오픈 소스인 IDE(통합 개발 환경) 은 다음 링크에서 자유롭게 다운로드 할 수 있다. www.arduino.cc
  
-다음과 같은 특징들이 아두이노를 다른 플랫폼과 구별되게 만들어 준다.+다음과 같은 특징들이 아두이노를 다른 플랫폼과 구별해 준다.
  
   * 멀티 플랫폼 환경이다 : 윈도, 매킨토시, 리눅스에서 실행 가능 하다.   * 멀티 플랫폼 환경이다 : 윈도, 매킨토시, 리눅스에서 실행 가능 하다.
-  * 아티스트와 디자이너들이 사용하는 쉬운 개발환경인, 프로세싱 프로그래밍 IDE에 기반을 두었다.+  * 아티스트와 디자이너들이 사용하기 쉬운 개발환경인, 프로세싱 프로그래밍 IDE에 기반을 두었다.
   * 시리얼 케이블이 아닌 USB 케이블을 통해 프로그램 할 수 있다. 최근의 컴퓨터에는 시리얼 포트가 없는 경우가 종종 있기 때문에, 이 특징은 유용하다.   * 시리얼 케이블이 아닌 USB 케이블을 통해 프로그램 할 수 있다. 최근의 컴퓨터에는 시리얼 포트가 없는 경우가 종종 있기 때문에, 이 특징은 유용하다.
   * 하드웨어와 소프트웨어 모드 오픈소스로 여러분이 원한다면 회로도를 다운로드 받고, 따로 모든 부품들을 구입하여 여러분만의 아두이노를 만들 수 있다. 아두이노의 창시자들에게 어떠한 대가도 지불할 필요 없다.   * 하드웨어와 소프트웨어 모드 오픈소스로 여러분이 원한다면 회로도를 다운로드 받고, 따로 모든 부품들을 구입하여 여러분만의 아두이노를 만들 수 있다. 아두이노의 창시자들에게 어떠한 대가도 지불할 필요 없다.
Line 74: Line 107:
  
 ===== 대상 독자 ===== ===== 대상 독자 =====
-이 책은 "원래의" 아두이노 사용자들인, 디자이너와 아티스트들을 위해 쓰였다. 그런고로, 엔지니어들이라면 아마도 참을 수 없는 방법으로 설명을 하고 있다. 사실, 엔지니어 중 한 명은 저자가 쓴 도입 장의 초고를 "허접 데기"라고 불렀다. 그 말이 정확히 맞다. 사실을 받아들이자: 대부분의 엔지니어들은 그들이 하는 일을 보통 사람은 말할 것도 없고, 다른 엔지니어에게도 설명하지 못한다. 이제부터 이 허접한 것들을 깊이 파고들어 보자.+이 책은 "원래의" 아두이노 사용자들인, 디자이너와 아티스트들을 위해 쓰였다. 그런고로, 엔지니어들이라면 아마도 참을 수 없는 방법으로 설명을 하고 있다. 사실, 엔지니어 중 한 명은 저자가 쓴 도입 장의 초고를 "허접 데기"라고 불렀다. 그 말이 정확히 맞다. 사실 대부분의 엔지니어들은 그들이 하는 일을 보통 사람은 말할 것도 없고, 다른 엔지니어에게도 설명하지 못한다. 그럼 이제부터 이 허접한 것들을 깊이 파고들어 보자.
  
 참고: 아두이노는 헤르난도 베르간(Hernando Barragan)이 이탈리아 이브레아 IDII에서 저자와 케이시 리스(Casey Reas)하에서 공부하며 작성한 와이어링(Wiring) 플랫폼을 기반으로 한 논문을 바탕으로 만들어졌다. 참고: 아두이노는 헤르난도 베르간(Hernando Barragan)이 이탈리아 이브레아 IDII에서 저자와 케이시 리스(Casey Reas)하에서 공부하며 작성한 와이어링(Wiring) 플랫폼을 기반으로 한 논문을 바탕으로 만들어졌다.
  
  
-아두이노가 대중화 되어감에 따라, 나는 경험자들, 취미가들, 각 분야의 해커들이 아두이노를 사용해 아름답거나 기괴한 물건들을 만들어 내는 것을 보게 되었다. 나는 여러분 모두가 스스로 자신을 아티스트이며 디자이너라고 여길 권리가 있다는 것을 깨달았다. 따라서 이 책은 바로 당신을 위한 책이기도 하다.+아두이노가 대중화 되어감에 따라 경험자들, 취미가들, 각 분야의 해커들이 아두이노를 사용해 아름답거나 기괴한 물건들을 만들어 내는 것을 보게 되었다. 나는 여러분 모두가 스스로 자신을 아티스트이며 디자이너라고 여길 권리가 있다는 것을 깨달았다. 따라서 이 책은 바로 당신을 위한 책이기도 하다.
  
-아두이노는 인터션 디자인(Interaction Design: 상호 작용하는 디자인)을 가르치기 위해 태어났다. 이런 디자인을 하기 위해서는 반드시 프로토타입을 만드는 과정을 거치게 된다. 교감형 디자인에 대한 정의는 많지만 내가 좋아하는 것은 다음 것이다:+아두이노는 인터션 디자인(Interaction Design: 상호 작용하는 디자인)을 가르치기 위해 태어났다. 이런 디자인을 하기 위해서는 반드시 프로토타입을 만드는 과정을 거치게 된다. 인터렉션 디자인에 대한 정의는 많지만 내가 좋아하는 것은 다음 것이다:
  
-인터션 디자인은, 모든 종류의 주고받는 경험에 대한 디자인이다.+인터션 디자인은, 모든 종류의 주고받는 경험에 대한 디자인이다.
  
-오늘날 인터션 디자인은 우리(사람)와 물체들 간 의미 있는 경험을 만드는 것이라 여겨진다. 이는 우리와 기술 간의 아름다운-그리고 아마도 논란이 될 수도 있는-경험의 창조를 살펴보기 위한 좋은 방법이다. 인터션 디자인은 계속 완성도를 높여가는 프로토 타입을 사용한 쌍방향 과정을 통한 디자인 방법이 좋다. 이러한 접근방법-이는 또한 일부 "전통적인" 디자인의 한 부분이다-은 기술을 사용한 프로토타입, 특히 전자기술을 사용한 프로토타입을 만드는 것을 포함하게 확장될 수 있다.+오늘날 인터션 디자인은 우리(사람)와 물체들 간 의미 있는 경험을 만드는 것이라 여겨진다. 이는 우리와 기술 간의 아름다운-그리고 아마도 논란이 될 수도 있는-경험의 창조를 살펴보기 위한 좋은 방법이다. 인터션 디자인은 계속 완성도를 높여가는 프로토 타입을 사용한 쌍방향 과정을 통한 디자인 방법이 좋다. 이러한 접근방법-이는 또한 일부 "전통적인" 디자인의 한 부분이다-은 기술을 사용한 프로토타입, 특히 전자기술을 사용한 프로토타입을 만드는 것을 포함하게 확장될 수 있다.
  
-특히 아두이노를 사용한 인터션 디자인은 피지컬 컴퓨팅(또는 피지컬 인터션 디자인)으로 구분된다.+특히 아두이노를 사용한 인터션 디자인은 피지컬 컴퓨팅(또는 피지컬 인터션 디자인)으로 구분된다.
  
 ===== 피지컬 컴퓨팅이란? ====== ===== 피지컬 컴퓨팅이란? ======
 피지컬 컴퓨팅에서는 디자이너나 아티스트들이 새로운 물체의 프로토타입을 만드는데 전자지식을 사용한다. 피지컬 컴퓨팅에서는 디자이너나 아티스트들이 새로운 물체의 프로토타입을 만드는데 전자지식을 사용한다.
  
-여기에는 마이크로컴퓨터(칩 안에 들어있는 작은 컴퓨터)안에 들어있는 소프트웨어를 실행해 동작을 구현한 센서와 엑튜레이터를 통해 사람과 소통하는 교감형 물체의 디자인도 포함되어 있다.+여기에는 마이크로컴퓨터(칩 안에 들어있는 작은 컴퓨터)안에 들어있는 소프트웨어를 실행해 동작을 구현한 센서와 엑튜레이터를 통해 사람과 소통하는 인터렉티브 물체의 디자인도 포함되어 있다.
  
 과거에는 전자지식을 사용하기 위해서는 처음부터 끝까지 엔지니어를 상대해야만 했고, 회로를 만드는 일은 한 번에 하나의 작은 부품을 만드는 것을 의미했었다: 이런 문제점들 때문에 창조적인 사람들은 중간 부분을 직접 가지고 놀 수 없었다. 대부분의 도구들은 엔지니어들만 사용할 수 있었고 전문 지식이 필요했다. 최근에 들어서, 마이크로컨트롤러들이 점점 더 싸지고 사용하기 쉬워졌기 때문에, 더 좋은 도구들을 만들 수 있게 되었다. 과거에는 전자지식을 사용하기 위해서는 처음부터 끝까지 엔지니어를 상대해야만 했고, 회로를 만드는 일은 한 번에 하나의 작은 부품을 만드는 것을 의미했었다: 이런 문제점들 때문에 창조적인 사람들은 중간 부분을 직접 가지고 놀 수 없었다. 대부분의 도구들은 엔지니어들만 사용할 수 있었고 전문 지식이 필요했다. 최근에 들어서, 마이크로컨트롤러들이 점점 더 싸지고 사용하기 쉬워졌기 때문에, 더 좋은 도구들을 만들 수 있게 되었다.
Line 102: Line 135:
 아두이노의 철학은 말로 설명하는 것 보다는 디자인을 직접 만드는 것에 기반을 두고 있다. 이것은 더 나은 프로토타입을 만들기 위한 더 빠르고 강력한 방법을 찾아 온 결과이다. 우리는 여러 프로토타이핑 기술들과 손을 사용해 생각하는 방법들을 거쳐 왔다. 아두이노의 철학은 말로 설명하는 것 보다는 디자인을 직접 만드는 것에 기반을 두고 있다. 이것은 더 나은 프로토타입을 만들기 위한 더 빠르고 강력한 방법을 찾아 온 결과이다. 우리는 여러 프로토타이핑 기술들과 손을 사용해 생각하는 방법들을 거쳐 왔다.
  
-종래의 엔지니어링은 A로 부터 B를 얻는 고정된 과정을 기반을 두고 있다: 아두이노 방식은 그 과정에서 길을 잃고 C를 찾아낼 수도 있다는 즐거움 이다.+종래의 엔지니어링은 A로 부터 B를 얻는 고정된 과정을 기반을 두고 있는데 반해, 아두이노 방식에는 그 과정에서 길을 잃고 C를 찾아낼 수도 있다는 즐거움이 다.
  
 이는 우리가 찾아낸 팅커링 방법으로-목표가 정하지 않은 채로 놀다가 기대하지 않았던 것들을 찾는 것이다. 또한, 더 나은 프로토타입을 만들기 위한 방법을 찾는 과정에서 우리는 소프트웨어와 하드웨어의 중간단계를 수정할 수 있게 해 주는 몇몇 소프트웨어 패키지들을 선택했다. 이는 우리가 찾아낸 팅커링 방법으로-목표가 정하지 않은 채로 놀다가 기대하지 않았던 것들을 찾는 것이다. 또한, 더 나은 프로토타입을 만들기 위한 방법을 찾는 과정에서 우리는 소프트웨어와 하드웨어의 중간단계를 수정할 수 있게 해 주는 몇몇 소프트웨어 패키지들을 선택했다.
Line 147: Line 180:
  
 ===== 우리는 고물이 좋아 ===== ===== 우리는 고물이 좋아 =====
-요즘 사람들은 구형 프린터, 컴퓨터, 희한한 사무기기, 기술 장비, 군용 물품 같은 수많은 과학 기술들을 버린다. 특히 젊고 가난한 해커들과 갓 입문한 초심자에게 유용한 이 넘치는 과학 기술을 위한 커다란 시장은 항상 있어왔다. 이런 시장은 우리가 아두이노를 개발한 곳인 이탈리아 이브레아에서도 분명히 있었다. 이 도시는 올리베티(옮긴이 주: Olivetti 이탈리아의 컴퓨터 회사)사의 본사가 있던 곳이다. 이 회사는 1960년대부터 컴퓨터를 만들어 왔다1990년대 중반에 들어 그들은 고물상에 모든 종류의 것들을 버렸다. 그 곳에는 컴퓨터 부품들, 전자 부품들 및 모든 종류의 이상한 장치들이 가득 있었다. 우리는 수없이 많은 시간을 그곳에서 보냈고, 아주 적은 돈으로 모든 종류의 기묘한 장치들을 구입하여, 우리의 목적에 맞게 해킹하였다. 여러분이 커다란 스피커 천개를 매우 적은 돈으로 구입할 수 있다면, 여러분도 머릿속에도 결국 어떤 아이디어가 떠오르게 될 것이다. 아무것도 없는 상태에서 만들기 시작하기에 앞서 쌓아놓은 고물들을 사용해 보자.+요즘 사람들은 구형 프린터, 컴퓨터, 희한한 사무기기, 기술 장비, 군용 물품 같은 수많은 과학 기술들을 버린다. 특히 젊고 가난한 해커들과 갓 입문한 초심자에게 유용한 이 넘치는 과학 기술을 위한 커다란 시장은 항상 있어왔다. 이런 시장은 우리가 아두이노를 개발한 곳인 이탈리아 이브레아에서도 분명히 있었다. 이 도시는 올리베티(옮긴이 주: Olivetti 이탈리아의 컴퓨터 회사)사의 본사가 있던 곳이다. 이 회사는 1960년대부터 컴퓨터를 만들어 왔다1990년대 중반에 들어 그들은 고물상에 모든 종류의 것들을 버렸다. 그 곳에는 컴퓨터 부품들, 전자 부품들 및 모든 종류의 이상한 장치들이 가득 있었다. 우리는 수없이 많은 시간을 그곳에서 보냈고, 아주 적은 돈으로 모든 종류의 기묘한 장치들을 구입하여, 우리의 목적에 맞게 해킹하였다. 여러분이 커다란 스피커 천개를 매우 적은 돈으로 구입할 수 있다면, 여러분도 머릿속에도 결국 어떤 아이디어가 떠오르게 될 것이다. 아무것도 없는 상태에서 만들기 시작하기에 앞서 쌓아놓은 고물들을 사용해 보자.
  
 ===== 장난감 해킹 ===== ===== 장난감 해킹 =====
Line 172: Line 205:
 아두이노 보드는 작은 마이크로컨트롤러 보드이다. 마이크로컨트롤러 보드란, 작은 칩(마이크로 컨트롤러)안에 컴퓨터 전체를 구현한 부품을 포함하는 자극 회로 기판(보드)이다. 이 컴퓨터는 저자가 이 책을 쓰는데 사용하고 있는 맥북에 비해 적어도 천 배는 더 저 성능이다. 하지만 훨씬 싸며 재미있는 장치들을 만드는데 매우 유용하다. 아두이노 보드를 보면, 28개의 "다리"가 달린 검은색 칩을 볼 수 있다-이 칩이 ATmega328((옮긴이 주: 오래된 아두이노 보드들은 더 적은 저장용량과 메모리가 있는 ATMega168을, 그 이전에는 ATMega8을 사용했었다.))로 여러분의 보드의 심장이다. 아두이노 보드는 작은 마이크로컨트롤러 보드이다. 마이크로컨트롤러 보드란, 작은 칩(마이크로 컨트롤러)안에 컴퓨터 전체를 구현한 부품을 포함하는 자극 회로 기판(보드)이다. 이 컴퓨터는 저자가 이 책을 쓰는데 사용하고 있는 맥북에 비해 적어도 천 배는 더 저 성능이다. 하지만 훨씬 싸며 재미있는 장치들을 만드는데 매우 유용하다. 아두이노 보드를 보면, 28개의 "다리"가 달린 검은색 칩을 볼 수 있다-이 칩이 ATmega328((옮긴이 주: 오래된 아두이노 보드들은 더 적은 저장용량과 메모리가 있는 ATMega168을, 그 이전에는 ATMega8을 사용했었다.))로 여러분의 보드의 심장이다.
  
-우리(아두이노 팀)는 이 마이크로컨트롤러가 잘 동작하고, 여러분의 컴퓨터와 통신하기 위해 필요한 모든 부품들을 아두이노 보드에 준비해 두었다. 보드는 여러 가지 버전이 존재하는데이 책에서 우리가 사용할 것은 Arduino Duemilanove로, 가장 간단하게 사용할 수 있으며, 배우기에 최적인 보드이다. 하지만 이 책의 학습 과정들은 바로 전 버전인 Arduino Diecimila 보드와 더 오래된 Arduino NG 같은 이전 버전의 보드들에도 적용된다. 그림 3-1에서 Arudino Duemilanove를 볼 수 있다. 그림 3-2는 오래 된 Arduino NG 보드이다.+우리(아두이노 팀)는 이 마이크로컨트롤러가 잘 동작하고, 여러분의 컴퓨터와 통신하기 위해 필요한 모든 부품들을 아두이노 보드에 준비해 두었다. 보드는 여러 가지 버전이 존재하는데이 책에서 우리가 사용할 것은 Arduino Duemilanove로, 가장 간단하게 사용할 수 있으며, 배우기에 최적인 보드이다. 하지만 이 책의 학습 과정들은 바로 전 버전인 Arduino Diecimila 보드와 더 오래된 Arduino NG 같은 이전 버전의 보드들에도 적용된다. 그림 3-1에서 Arudino Duemilanove를 볼 수 있다. 그림 3-2는 오래 된 Arduino NG 보드이다.
  
 이들 그림들은 아두이노 보드를 확인할 수 있다. 처음에는, 이 모든 커넥터들이 약간 혼란스러울 수도 있다. 보드를 구성하고 있는 모든 부분들에 대한 설명이 여기 있다: 이들 그림들은 아두이노 보드를 확인할 수 있다. 처음에는, 이 모든 커넥터들이 약간 혼란스러울 수도 있다. 보드를 구성하고 있는 모든 부분들에 대한 설명이 여기 있다:
Line 247: Line 280:
  
 ====== 4/정말로 아두이노 시작하기 ====== ====== 4/정말로 아두이노 시작하기 ======
-이제 여러분은 교감형 장치를 만들고 프로그램 하는 방법을 배울 것이다. +이제 여러분은 인터렉티브 장치를 만들고 프로그램 하는 방법을 배울 것이다. 
-===== 교감형 장치의 해부도 ===== +===== 인터렉티브 장치의 해부도 ===== 
-우리가 아두이노를 사용해 만드는 물건들은 "교감형 장치"라는 아주 간단한 패턴을 따르게 된다. 교감형 장치는 전자 회로로, 센서(실제 세계를 측정해 전자 신호로 변환해 주는 전자 부품)를 통해 주변 환경을 감지할 수 있다.+우리가 아두이노를 사용해 만드는 물건들은 "인터렉티브 장치"라는 아주 간단한 패턴을 따르게 된다. 인터렉티브 장치는 전자 회로로, 센서(실제 세계를 측정해 전자 신호로 변환해 주는 전자 부품)를 통해 주변 환경을 감지할 수 있다.
  
 이러한 장치는 센서를 통해 받은 내용을 소프트웨어로 구현된 행동을 따라 처리한다. 그리고 엑츄에이터(acturator)라 불리는 전자 신호를 물리적 행동으로 바꾸는 장치를 통해 실제 세상과 교감한다. 이러한 장치는 센서를 통해 받은 내용을 소프트웨어로 구현된 행동을 따라 처리한다. 그리고 엑츄에이터(acturator)라 불리는 전자 신호를 물리적 행동으로 바꾸는 장치를 통해 실제 세상과 교감한다.
  
-  그림 4-1. 교감형 장치+  그림 4-1. 인터렉티브 장치
  
 ===== 센서와 엑츄에이터 ===== ===== 센서와 엑츄에이터 =====
Line 364: Line 397:
 { {
 </code> </code>
-loop()는 여러분의 교감형 장치의 주 행동을 결정하는 곳이다. 이 함수는 보드를 끄기 전까지 계속 반복해서 수행된다.+loop()는 여러분의 인터렉티브 장치의 주 행동을 결정하는 곳이다. 이 함수는 보드를 끄기 전까지 계속 반복해서 수행된다.
 <code c> <code c>
 digitalWrite(LED, HIGH);      // LED 켜기 digitalWrite(LED, HIGH);      // LED 켜기
Line 402: Line 435:
  
 ===== 앞으로 우리가 만들어 볼 것 ===== ===== 앞으로 우리가 만들어 볼 것 =====
-나는 언제나 빛과 기술을 사용해 다양한 광원을 조절하는 능력이 매력적이라고 생각했다. 운 좋게도, 나는 빛을 제어해 사람들과 교감하는 흥미로운 프로젝트에 충분히 참여해 보았다. 아두이노는 정말로 이러한 일에 걸맞다. 이 책을 통해 우리는 아두이노를 어떻게 교감형 장치를 만드는지 배우는 방법으로 사용하여, "교감형 램프"를 디자인 해 보도록 하겠다.+나는 언제나 빛과 기술을 사용해 다양한 광원을 조절하는 능력이 매력적이라고 생각했다. 운 좋게도, 나는 빛을 제어해 사람들과 교감하는 흥미로운 프로젝트에 충분히 참여해 보았다. 아두이노는 정말로 이러한 일에 걸맞다. 이 책을 통해 우리는 아두이노를 어떻게 인터렉티브 장치를 만드는지 배우는 방법으로 사용하여, "인터렉티브 램프"를 디자인 해 보도록 하겠다.
  
 다음 장에선, 엔지니어에겐 지루할 테지만, 신입 아두이노 프로그래머를 겁주지 않는 방법으로 전기의 기본에 대해 설명할 것이다. 다음 장에선, 엔지니어에겐 지루할 테지만, 신입 아두이노 프로그래머를 겁주지 않는 방법으로 전기의 기본에 대해 설명할 것이다.
Line 499: Line 532:
 앞서 언급했듯이. 불을 켜기 위해 손가락으로 계속 누르고 있어야 한다는 건 그다지 실용적이지 못하다. 그러므로 "메모리", 소프트웨어 메커니즘의 형태로 언제 버튼을 눌렀는지 기억하여, 버튼에서 손을 떼도 불이 계속 들어와 있도록 하도록 구현하여야 한다. 앞서 언급했듯이. 불을 켜기 위해 손가락으로 계속 누르고 있어야 한다는 건 그다지 실용적이지 못하다. 그러므로 "메모리", 소프트웨어 메커니즘의 형태로 언제 버튼을 눌렀는지 기억하여, 버튼에서 손을 떼도 불이 계속 들어와 있도록 하도록 구현하여야 한다.
  
-이 동작을 위해서 우리는 변수라 불리는 것을 사용할 것이다.(벌서 사용해 봤지만 아직 변수에 대해 설명하지는 않았다.) 변수는 아두이노에서 여러분의 데이터를 저장할 수 있는 곳인 메모리에 존재한다. 이는 접착식 메모지와 같은 것이라고 생각할 수 있다. 보통 메모지는, 한 장 뽑아서, "루이자 02 555 1212" 라고 쓴 뒤, 컴퓨터 모니터나 냉장고에 붙여둔다. 아두이노 언어에서도 이와 동일하게 간단하다여러분은 저장하고 싶은 데이터의 종류(예를 들면, 숫자인지 문구인지)를 결정하고, 이름을 붙인 뒤, 아무 때나 그곳에 데이터를 저장하거나 불러 올 수 있다. 예를 들면: +이 동작을 위해서 우리는 변수라 불리는 것을 사용할 것이다.(벌서 사용해 봤지만 아직 변수에 대해 설명하지는 않았다.) 변수는 아두이노에서 여러분의 데이터를 저장할 수 있는 곳인 메모리에 존재한다. 이는 접착식 메모지와 같은 것이라고 생각할 수 있다. 보통 메모지는, 한 장 뽑아서, "루이자 02 555 1212" 라고 쓴 뒤, 컴퓨터 모니터나 냉장고에 붙여둔다. 아두이노 언어에서도 이와 동일하게 간단하다여러분은 저장하고 싶은 데이터의 종류(예를 들면, 숫자인지 문구인지)를 결정하고, 이름을 붙인 뒤, 아무 때나 그곳에 데이터를 저장하거나 불러 올 수 있다. 예를 들면: 
 <code c> <code c>
 int val = 0; int val = 0;
Line 554: Line 587:
 이제 이 코드를 테스트 해 보자. 동작을 하긴 하는데 이상한 점이 발견할 것이다. 빛이 너무 빠르게 꺼다 켰다를 반복해서 제대로 켜진 상태나, 꺼진 상태로 설정하기 힘들다. 이제 이 코드를 테스트 해 보자. 동작을 하긴 하는데 이상한 점이 발견할 것이다. 빛이 너무 빠르게 꺼다 켰다를 반복해서 제대로 켜진 상태나, 꺼진 상태로 설정하기 힘들다.
  
-그럼, 코드에서 흥미로운 부분을 살펴보자state는 변수로 LED가 끄고 켜짐에 따라 0과 1을 저장한다. 버튼이 떼어진 상태에서, 우리는 이 변수를 0(LED 꺼짐) 으로 초기화하였다. +그럼, 코드에서 흥미로운 부분을 살펴보자state는 변수로 LED가 끄고 켜짐에 따라 0과 1을 저장한다. 버튼이 떼어진 상태에서, 우리는 이 변수를 0(LED 꺼짐) 으로 초기화하였다.
- +
-그 후에, 버튼의 현재 상태를 읽어, 만약 눌려있다면 (val == HIGH), state를 0 에서 1로 바꾸고, 떼어져 있다면 반대로 바꾼다. 이 동작을 위해 우리는 작은 트릭을 사용했다. state 값이 1과 0만 될 수 있으므로, 1 - 0 은 1 이고 1 - 1 은 0 이라는 아이디어에 기반을 둔 간단한 수학식이 그것이다: +
- +
-     state = 1 – state;+
  
 +그 후에, 버튼의 현재 상태를 읽어, 만약 눌려있다면 (val == HIGH), state를 0 에서 1로 바꾸고, 떼어져 있다면 반대로 바꾼다. 이 동작을 위해 우리는 작은 트릭을 사용했다. state 값이 1과 0만 될 수 있으므로, 1 - 0 은 1 이고 1 - 1 은 0 이라는 아이디어에 기반을 둔 간단한 수학식이 그것이다.
 +<code c>
 +state = 1 – state;
 +</code>
 위 식은 수학에서는 말이 안 되는 이야기 일 수 있겠지만 프로그래밍에서는 맞는 식이다. 프로그래밍에서 기호 = 는 "내 뒤에 오는 결과를 내 앞의 변수 이름에 대입"하라는 의미이다. 이 경우, 1 - 이전 state 값이 새 state 값으로 대입된다. 위 식은 수학에서는 말이 안 되는 이야기 일 수 있겠지만 프로그래밍에서는 맞는 식이다. 프로그래밍에서 기호 = 는 "내 뒤에 오는 결과를 내 앞의 변수 이름에 대입"하라는 의미이다. 이 경우, 1 - 이전 state 값이 새 state 값으로 대입된다.
  
Line 568: Line 601:
 어떻게 수정할 수 있을까? 우리는 버튼이 눌려진 바로 그 순간을 감지해 내야하며, 이때가 우리가 LED의 상태를 바꿔야 할 때 이다. 저자가 좋아하는 방법은 새로운 val 값을 읽기 전에 이전 값을 저장해 두는 것이다; 그러면, 현재 버터의 위치를 이전의 위치와 비교해 볼 수 있으므로,버튼이 LOW에서 HIGH로 변했을 때만 상태 값을 바꿀 수 있다. 어떻게 수정할 수 있을까? 우리는 버튼이 눌려진 바로 그 순간을 감지해 내야하며, 이때가 우리가 LED의 상태를 바꿔야 할 때 이다. 저자가 좋아하는 방법은 새로운 val 값을 읽기 전에 이전 값을 저장해 두는 것이다; 그러면, 현재 버터의 위치를 이전의 위치와 비교해 볼 수 있으므로,버튼이 LOW에서 HIGH로 변했을 때만 상태 값을 바꿀 수 있다.
  
-예제 03B 에 그렇게 동작하는 코드를 포함해 봤다:+예제 03B 에 그렇게 동작하는 코드를 포함해 봤다.
 <code c> <code c>
 // 예제 03B: 버튼이 눌리면 LED를 켜기 // 예제 03B: 버튼이 눌리면 LED를 켜기
Line 614: Line 647:
 푸쉬버턴이 바운싱할 때 아두이노는 반복적으로 켜지고 꺼지는 신호가 아주 빠르게 바뀌는 것처럼 보게 된다. 바운싱을 제거하기 위한 기술적인 방법이 많이 개발되어 있지만, 경험 상, 이정도의 간단한 코드에서는 대개, 변경을 감지할 때 10~50 미리초의 정도 대기하도록 추가하는 정도면 충분하다. 푸쉬버턴이 바운싱할 때 아두이노는 반복적으로 켜지고 꺼지는 신호가 아주 빠르게 바뀌는 것처럼 보게 된다. 바운싱을 제거하기 위한 기술적인 방법이 많이 개발되어 있지만, 경험 상, 이정도의 간단한 코드에서는 대개, 변경을 감지할 때 10~50 미리초의 정도 대기하도록 추가하는 정도면 충분하다.
  
-예제 03C가 최종 코드이다:+예제 03C가 최종 코드이다.
  
 <code c> <code c>
Line 686: Line 719:
 예를 들어 4장의 마지막 예제와 PIR 센서를 사용하면, 사람이 근처에 있을 때 켜지는 램프를 만들어 볼 수 있다. 또는 기울기 스위치를 사용하여 기울였을 때 꺼지는 램프를 만들어 볼 수 있다. 예를 들어 4장의 마지막 예제와 PIR 센서를 사용하면, 사람이 근처에 있을 때 켜지는 램프를 만들어 볼 수 있다. 또는 기울기 스위치를 사용하여 기울였을 때 꺼지는 램프를 만들어 볼 수 있다.
 ===== PWM을 사용해 빛의 밝기를 조절하기 ===== ===== PWM을 사용해 빛의 밝기를 조절하기 =====
-지금까지 여러분이 얻은 지식들을 사용하면, 단지 켜고/꺼지는 램프가 아닌 좀 더 우아한 교감형 램프를 만들 수 있다. 지금까지 우리가 사용해 온 LED를 깜박이는 예제의 한 가지 단점이라면 단지 켜고 끌 수만 있다는 것이다. 고급형 교감형 램프라면 밝기를 조절할 수 있어야 한다. 이 문제를 해결하기 위해, 우리는 TV나 영화가 가능하게 만든 (잔상효과 라는) 작은 트릭을 사용해 볼 것이다.+지금까지 여러분이 얻은 지식들을 사용하면, 단지 켜고/꺼지는 램프가 아닌 좀 더 우아한 인터렉티브 램프를 만들 수 있다. 지금까지 우리가 사용해 온 LED를 깜박이는 예제의 한 가지 단점이라면 단지 켜고 끌 수만 있다는 것이다. 고급형 인터렉티브 램프라면 밝기를 조절할 수 있어야 한다. 이 문제를 해결하기 위해, 우리는 TV나 영화가 가능하게 만든 (잔상효과 라는) 작은 트릭을 사용해 볼 것이다.
  
 4장의 첫 번째 예제에서 귀뜸했던 것처럼, LED가 깜박이게 보이지 않는 시점까지 delay 함수의 숫자를 조절해 보면, LED가 본래의 50%의 밝기가 된다는 걸 확인해 볼 수 있다. 이제 4번 중 한번만 LED가 켜지도록 코드를 수정해 보자. 스케치를 실행하면 이제 대략 25%의 밝기가 됨을 볼 수 있다. 이것이 ,멋지게 말하면, 펄스 폭 변조(PWM)라 불리는 기술이다. LED를 충분히 빠르게 깜박거리면, 여러분의 눈은 LED가 깜박인다는 것을 인지하지 못하게 된다. 또한 켜져있는 시간과 꺼져 있는 시간의 비율을 조절하여 밝기를 조절할 수도 있다. 그림 5-3은 PWM의 동작 원리를 보여준다. 4장의 첫 번째 예제에서 귀뜸했던 것처럼, LED가 깜박이게 보이지 않는 시점까지 delay 함수의 숫자를 조절해 보면, LED가 본래의 50%의 밝기가 된다는 걸 확인해 볼 수 있다. 이제 4번 중 한번만 LED가 켜지도록 코드를 수정해 보자. 스케치를 실행하면 이제 대략 25%의 밝기가 됨을 볼 수 있다. 이것이 ,멋지게 말하면, 펄스 폭 변조(PWM)라 불리는 기술이다. LED를 충분히 빠르게 깜박거리면, 여러분의 눈은 LED가 깜박인다는 것을 인지하지 못하게 된다. 또한 켜져있는 시간과 꺼져 있는 시간의 비율을 조절하여 밝기를 조절할 수도 있다. 그림 5-3은 PWM의 동작 원리를 보여준다.
Line 698: Line 731:
 참고: PWM을 세 채널 가지고 있다는 건 꽤 좋은 일이다. 왜냐하면 빨강, 파랑, 녹색 LED를 사서 조합하면, 원하는 색을 모두 만들어 볼 수 있기 때문이다. 참고: PWM을 세 채널 가지고 있다는 건 꽤 좋은 일이다. 왜냐하면 빨강, 파랑, 녹색 LED를 사서 조합하면, 원하는 색을 모두 만들어 볼 수 있기 때문이다.
  
-그럼, 직접 사용해 보자. 그림 5-4에 보이는 회로를 만들어라. LED는 극성이 있음을 주의하자긴 핀(양극)이 오른쪽, 짧은 핀(음극)이 왼쪽에 와야 한다. 또한, 그림에서 보이는 것처럼 대부분의 LED는 음극 쪽에 평편한 면을 가지고 있다.+그럼, 직접 사용해 보자. 그림 5-4에 보이는 회로를 만들어라. LED는 극성이 있음을 주의하자긴 핀(양극)이 오른쪽, 짧은 핀(음극)이 왼쪽에 와야 한다. 또한, 그림에서 보이는 것처럼 대부분의 LED는 음극 쪽에 평편한 면을 가지고 있다.
   Figure 5-4. LED connected to PWM pin   Figure 5-4. LED connected to PWM pin
 이제, 아두이노에 새 스케치를 만들어 예제 04를 작성하자 (코드 예제들은 www.makezine.com/getstartedarduino 에서 다운로드 할 수도 있다): 이제, 아두이노에 새 스케치를 만들어 예제 04를 작성하자 (코드 예제들은 www.makezine.com/getstartedarduino 에서 다운로드 할 수도 있다):
Line 740: Line 773:
 이 레일들은 전원과 그라운드를 필요한 곳으로 분배하기 위해 사용된다.  이 예제에서 여러분이 만들어야 하는 회로의 경우, 아두이노의 GND(그라운드)핀에 연결되어야 하는 부품이 두개(둘 다 저항)있다. 아두이노에는 GND핀이 두개 있기 때문에 단순히 두 그림들에 보이는 대로 두 회로들을 연결할 수도 있다; 두 회로를 모두 동시에 아두이노에 연결하면 된다. 혹은, 전선 하나를 브레드보드의 그라운드 레일에서 아두이노의 GND 핀들 중 하나에 연결하고, 그림 상 아두이노의 GND핀에 연결되어 있는 전선을 따서 브레드보드의 그라운드 레일에 연결할 수도 있다. 이 레일들은 전원과 그라운드를 필요한 곳으로 분배하기 위해 사용된다.  이 예제에서 여러분이 만들어야 하는 회로의 경우, 아두이노의 GND(그라운드)핀에 연결되어야 하는 부품이 두개(둘 다 저항)있다. 아두이노에는 GND핀이 두개 있기 때문에 단순히 두 그림들에 보이는 대로 두 회로들을 연결할 수도 있다; 두 회로를 모두 동시에 아두이노에 연결하면 된다. 혹은, 전선 하나를 브레드보드의 그라운드 레일에서 아두이노의 GND 핀들 중 하나에 연결하고, 그림 상 아두이노의 GND핀에 연결되어 있는 전선을 따서 브레드보드의 그라운드 레일에 연결할 수도 있다.
  
-아직 이를 시도해본 준비가 되어 있지 않더라고 걱정하지 말라일단 그림 4-6과 5-4에 보이는 대로 양쪽의 회로를 모두 연결하자. 브레드보드에서 그라운드와 양극을 위해 레일을 사용하는 예제를 6장에서 보게 될 것이다.+아직 이를 시도해볼 준비가 되어 있지 않더라고 걱정하지 말라일단 그림 4-6과 5-4에 보이는 대로 양쪽의 회로를 모두 연결하자. 브레드보드에서 그라운드와 양극을 위해 레일을 사용하는 예제를 6장에서 보게 될 것이다.
  
-다음 예제로 돌아와서, 여러분에게 푸쉬버튼이 하나밖에 없다면 어떻게 램프의 밝기를 조절할 수 있을까? 우리는 또 다른 교감형 디자인 테크닉인 얼마나 오래 버튼이 눌렸는지 알아내는 방법을 사용할 것이다. 이를 위해서, 4장의 예제 03C를 서서히 켜지는(dimming) 기능을 추가하기 위해 업그레이드해야 한다. 이 아이디어는  버튼을 눌렀다 떼는 동작에 빛을 켜고 끄며, 계속 누르고 있으면 밝기를 변하게 하는 "인터페이스" 만들기 위한 것이다.+다음 예제로 돌아와서, 여러분에게 푸쉬버튼이 하나밖에 없다면 어떻게 램프의 밝기를 조절할 수 있을까? 우리는 또 다른 인터렉티브 디자인 테크닉인얼마나 오래 버튼이 눌렸는지 알아내는 방법을 사용할 것이다. 이를 위해서, 4장의 예제 03C를 서서히 켜지는(dimming) 기능을 추가하기 위해 업그레이드해야 한다. 이 아이디어는 버튼을 눌렀다 떼는 동작에 빛을 켜고 끄며, 계속 누르고 있으면 밝기를 변하게 하는 "인터페이스" 만들기 위한 것이다.
  
-그럼, 스케치를 살펴보자:+그럼, 스케치를 살펴보자.
 <code c> <code c>
 // 예제 05: 버튼이 눌렸을 때 LED를 켬 // 예제 05: 버튼이 눌렸을 때 LED를 켬
Line 819: Line 852:
 } }
 </code> </code>
-이제 이 코드를 시험해 보자. 여러분이 확인할 수 있는 것처럼, 우리의 교감형 모델이 점점 구체화 되고 있다. 여러분이 버튼을 눌렀다가 즉시 뗀다면, 램프의 스위치를 키고 끌 수 있다. 버튼을 계속 누르고 있으면 밝기가 변한다. 원하는 밝기가 될 때 까지 누르고 있으면 된다. +이제 이 코드를 시험해 보자. 여러분이 확인할 수 있는 것처럼, 우리의 인터렉티브 모델이 점점 구체화 되고 있다. 여러분이 버튼을 눌렀다가 즉시 뗀다면, 램프의 스위치를 키고 끌 수 있다. 버튼을 계속 누르고 있으면 밝기가 변한다. 원하는 밝기가 될 때 까지 누르고 있으면 된다. 
  
 이제 좀 더 흥미로운 센서를 사용하는 방법을 배워볼 것이다. 이제 좀 더 흥미로운 센서를 사용하는 방법을 배워볼 것이다.
Line 956: Line 989:
  
 ===== 더 큰 부하를 다루기 (모터, 램프 등...) ===== ===== 더 큰 부하를 다루기 (모터, 램프 등...) =====
-아두이노 보드의의 각 핀들은 20 미리 암페어(20mA) 까지 전원을 공급할 수 있다이는 꽤 작은 량의 전류로, LED를 다루는 정도까지만 가능하다. 이 핀으로 모터같은 것을 켜려 한다면, 절대로 동작하지 않을 뿐더러, 프로세서를 홀랑 태워버릴 가능성도 있다. 모터나 백열전구 같이 큰 부화를 다루려면 아두이노로 제어할 수 있으면서, 큰 부하를 켜고 끌 수 있는 추가 부품이 필요하다. 그런 부품으로 MOSFET(모스펫) 트랜지스터가 있다. -이상한 이름은 무시하자- MOSFET은 전기적인 스위치로 세 개의 핀(다리)중 게이트(Gate)라 불리는 핀에 전원을 인가하면 스위치가 켜진다. 이는 흡사 가정용 전등 스위치와 같다고 보면 되는데, 손가락으로 스위치를 켜는 대신, 아두이노의 핀에서 MOSFET의 게이트 로 전원을 보낸다고 볼 수 있다.+아두이노 보드의의 각 핀들은 20 미리 암페어(20mA) 까지 전원을 공급할 수 있다이는 꽤 작은 량의 전류로, LED를 다루는 정도까지만 가능하다. 이 핀으로 모터같은 것을 켜려 한다면, 절대로 동작하지 않을 뿐더러, 프로세서를 홀랑 태워버릴 가능성도 있다. 모터나 백열전구 같이 큰 부화를 다루려면 아두이노로 제어할 수 있으면서, 큰 부하를 켜고 끌 수 있는 추가 부품이 필요하다. 그런 부품으로 MOSFET(모스펫) 트랜지스터가 있다. -이상한 이름은 무시하자- MOSFET은 전기적인 스위치로 세 개의 핀(다리)중 게이트(Gate)라 불리는 핀에 전원을 인가하면 스위치가 켜진다. 이는 흡사 가정용 전등 스위치와 같다고 보면 되는데, 손가락으로 스위치를 켜는 대신, 아두이노의 핀에서 MOSFET의 게이트 로 전원을 보낸다고 볼 수 있다.
  
 참고: 모스펫(MOSFET)이라는 이름은, "금속 산화막 반도체 전계효과 트랜지스터" (metal-oxide-semiconductor field-effect transistor)의 약자 이다. 모스펫은 전계효과 이론에 기반을 둔 특별한 종류의 트랜지스터 이다. 이 말은 게이트(G)핀에 전압이 인가되면, 반도체 물질로 된 조각을 따라 -드레인(Drain)에서 소스(Source) 핀으로- 전기가 흐른다는 의미이다. 게이트(G)핀은 금속 산화막 위의 나머지 부분으로 부터 절연되어 있기 때문에 아두이노에서 모스펫으로 흘러 들어가는 전류가 없기 때문에 아주 간단하게 다룰 수 있다. 모스펫은 큰 부하를 빠른 주파수로 껐다 켜기에 이상적인 부품이다. 참고: 모스펫(MOSFET)이라는 이름은, "금속 산화막 반도체 전계효과 트랜지스터" (metal-oxide-semiconductor field-effect transistor)의 약자 이다. 모스펫은 전계효과 이론에 기반을 둔 특별한 종류의 트랜지스터 이다. 이 말은 게이트(G)핀에 전압이 인가되면, 반도체 물질로 된 조각을 따라 -드레인(Drain)에서 소스(Source) 핀으로- 전기가 흐른다는 의미이다. 게이트(G)핀은 금속 산화막 위의 나머지 부분으로 부터 절연되어 있기 때문에 아두이노에서 모스펫으로 흘러 들어가는 전류가 없기 때문에 아주 간단하게 다룰 수 있다. 모스펫은 큰 부하를 빠른 주파수로 껐다 켜기에 이상적인 부품이다.
Line 1197: Line 1230:
 다음으로, 여러분은 스케치가 아두이노와 대화하기 위해 올바른 시리얼 포트를 사용하는지 확인해야 할 필요가 있다. 아두이노 회로를 조립하고, 아두이노 스케치를 올려보기 전에 이를 확인해야 한다. 대부분의 시스템에서 이 프로세싱 스케치는 잘 동작할 것이다. 하지만 그렇지 않고, 아두이노의 동작을 전혀 볼 수 없고, 화면에 빛 센서로부터 온 정보가 전혀 보이지 않는다면, 프로세싱 스케치의 주석 중 "중요 노트" 부분을 찾아 그곳의 설명대로 따라해 보기 바란다. 다음으로, 여러분은 스케치가 아두이노와 대화하기 위해 올바른 시리얼 포트를 사용하는지 확인해야 할 필요가 있다. 아두이노 회로를 조립하고, 아두이노 스케치를 올려보기 전에 이를 확인해야 한다. 대부분의 시스템에서 이 프로세싱 스케치는 잘 동작할 것이다. 하지만 그렇지 않고, 아두이노의 동작을 전혀 볼 수 없고, 화면에 빛 센서로부터 온 정보가 전혀 보이지 않는다면, 프로세싱 스케치의 주석 중 "중요 노트" 부분을 찾아 그곳의 설명대로 따라해 보기 바란다.
  
-다음은 아두이노 스케치이다. (www.makezine.com/getstartedarduino 에서도 다운 가능하다.):+다음은 아두이노 스케치이다. (www.makezine.com/getstartedarduino 에서도 다운 가능하다.)
 <code c> <code c>
 // 예제 08B: 아두이노 네트워크 램프 // 예제 08B: 아두이노 네트워크 램프
Line 1292: Line 1325:
 그림 6-2에서 어떻게 회로를 조립하는지 볼 수 있다. 다이어그램에서 LED에 연결된 저항을 제외한 모든 저항에는 10K 옴을 사용해야한다. LED에는 더 낮은 값의 저항을 사용한다. 그림 6-2에서 어떻게 회로를 조립하는지 볼 수 있다. 다이어그램에서 LED에 연결된 저항을 제외한 모든 저항에는 10K 옴을 사용해야한다. LED에는 더 낮은 값의 저항을 사용한다.
  
-5장의 PWM 예제에서 살펴봤듯이 LED들은 극성이 있음을 기억하자:+5장의 PWM 예제에서 살펴봤듯이 LED들은 극성이 있음을 기억하자.
 회로에서, 긴 핀(양극)은 오른쪽으로, 짧을 핀(음극)은 왼쪽으로 가야 한다. (그림에 보이는 것처럼 대부분의 LED는 음극 부분에 평편한 면이 있다.) 회로에서, 긴 핀(양극)은 오른쪽으로, 짧을 핀(음극)은 왼쪽으로 가야 한다. (그림에 보이는 것처럼 대부분의 LED는 음극 부분에 평편한 면이 있다.)
  
Line 1303: Line 1336:
 세 개의 LED를 각기 사용하는 대신에, 하나의 다리가 네 개 달린 RGB LED를 사용할 수도 있다. RGB LED도 그림 6-2에서 보이는 것과 매우 유사한 방법으로 연결한다. 한 가지 변경해야 하는 것은 각기 세 개의 아두이노 그라운드 핀으로의 연결 대신, 하나의 다리(공동 캐소드로 불림)를 그라운드에 연결하면 된다. SparkFun 에서 4리드(다리) RGB LED를 몇 달러에 판매한다. (www.sparkfun.com; 파트번호 COM-00105) 단색 LED와 달리, RGB LED에서는 가장 긴 다리가 그라운드에 연결된다. 나머지 짧은 다리들은 (분리된 빨강, 파랑, 녹색 LED처럼 다리와 핀 사이에 저항을 사용하여) 아두이노의 9번, 10번, 11번에 연결한다. 세 개의 LED를 각기 사용하는 대신에, 하나의 다리가 네 개 달린 RGB LED를 사용할 수도 있다. RGB LED도 그림 6-2에서 보이는 것과 매우 유사한 방법으로 연결한다. 한 가지 변경해야 하는 것은 각기 세 개의 아두이노 그라운드 핀으로의 연결 대신, 하나의 다리(공동 캐소드로 불림)를 그라운드에 연결하면 된다. SparkFun 에서 4리드(다리) RGB LED를 몇 달러에 판매한다. (www.sparkfun.com; 파트번호 COM-00105) 단색 LED와 달리, RGB LED에서는 가장 긴 다리가 그라운드에 연결된다. 나머지 짧은 다리들은 (분리된 빨강, 파랑, 녹색 LED처럼 다리와 핀 사이에 저항을 사용하여) 아두이노의 9번, 10번, 11번에 연결한다.
  
-===== 이제부터는 조립 방법이다=====+===== 이제부터는 조립 방법이다 =====
 램프를 분해하여 밑 부분에서 램프로 들어가는 케이블을 제거한다. 이 램프는 더 이상 전원 콘센트를 사용하지 않게 될 것이다. 램프를 분해하여 밑 부분에서 램프로 들어가는 케이블을 제거한다. 이 램프는 더 이상 전원 콘센트를 사용하지 않게 될 것이다.
  
Line 1316: Line 1349:
 여러분의 프로세싱 코드를 실행한다. 온/오프 버튼을 누르고, 램프가 살아나는지 보자. 여러분의 프로세싱 코드를 실행한다. 온/오프 버튼을 누르고, 램프가 살아나는지 보자.
  
-연습 삼아, 방안이 어두워지면 램프가 켜지도록 코드를 추가해 보자. 또 다른 추가 기능들로는 다음과 같은 것들이 있다:+연습 삼아, 방안이 어두워지면 램프가 켜지도록 코드를 추가해 보자. 또 다른 추가 기능들로는 다음과 같은 것들이 있다.
   * 기울기(틸트) 센서를 추가해 램프를 다른 방향으로 기울이면 꺼지거나 켜지도록 함.   * 기울기(틸트) 센서를 추가해 램프를 다른 방향으로 기울이면 꺼지거나 켜지도록 함.
   * 누군가 곁에 있는 것을 알아내도록 작은 PIR 센서를 추가하고, 근처에 아무도 없으면 램프가 꺼지도록 함.   * 누군가 곁에 있는 것을 알아내도록 작은 PIR 센서를 추가하고, 근처에 아무도 없으면 램프가 꺼지도록 함.
Line 1349: Line 1382:
 USB케이블로 아두이노를 여러분의 컴퓨터의 USB 포트에 연결한다. USB케이블로 아두이노를 여러분의 컴퓨터의 USB 포트에 연결한다.
  
-  * 컴퓨터가 켜져 있는지 확인한다(어리석게 들릴 수도 있지만 이런 일이 정말로 발생한다). PWR라고 표시된 녹색 빛이 들어와 있다는 것은 컴퓨터가 아두이노에게 전원을 공급하고 있다는 것을 의미한다. 이 LED가 매우 희미한 상태라면, 전원에 무엇인가 문제가 있을 것이다다른 USB케이블을 사용해 보고, 컴퓨터의 USB포트와  아두이노의 USB 플러그를 살펴 손상이 없는지 확인한다. 잘못된 부분이 없다면 컴퓨터의 다른 USB포트를 사용해 보거나, 아예 다른 컴퓨터를 사용해 본다.+  * 컴퓨터가 켜져 있는지 확인한다(어리석게 들릴 수도 있지만 이런 일이 정말로 발생한다). PWR라고 표시된 녹색 빛이 들어와 있다는 것은 컴퓨터가 아두이노에게 전원을 공급하고 있다는 것을 의미한다. 이 LED가 매우 희미한 상태라면, 전원에 무엇인가 문제가 있을 것이다다른 USB케이블을 사용해 보고, 컴퓨터의 USB포트와  아두이노의 USB 플러그를 살펴 손상이 없는지 확인한다. 잘못된 부분이 없다면 컴퓨터의 다른 USB포트를 사용해 보거나, 아예 다른 컴퓨터를 사용해 본다.
   * 아두이노가 새것이라면, L로 표시된 노란 LED가 불안정한 패턴으로 깜박이기 시작할 것이다. 이것은 공장에서 보드를 검사하기 위한 목적으로 심은 테스트 프로그램이다.   * 아두이노가 새것이라면, L로 표시된 노란 LED가 불안정한 패턴으로 깜박이기 시작할 것이다. 이것은 공장에서 보드를 검사하기 위한 목적으로 심은 테스트 프로그램이다.
   * 외장 전원(어댑터)을 사용 중이며, 이전 버전의 아두이노(Extreme, NG, Diecimila)를 사용한다면, 전원이 잘 꽂혔는지 확인하고, SV1이라고 표시된 점퍼가 외장 전원 쪽의 두 핀에 연결되어 있는지 확인한다.   * 외장 전원(어댑터)을 사용 중이며, 이전 버전의 아두이노(Extreme, NG, Diecimila)를 사용한다면, 전원이 잘 꽂혔는지 확인하고, SV1이라고 표시된 점퍼가 외장 전원 쪽의 두 핀에 연결되어 있는지 확인한다.
Line 1391: Line 1424:
  
 무엇이든 검색엔진에 잘라내어 붙여보고(컨트롤 + C, 컨트롤 + V) 그 문제에 대해 언급한 사람이 있는지 살펴보는 습관을 갖도록 하라. 예를 들어, 아두이노 IDE가 거칠게 오류 문구들을 뿜어낸다면, 그 내용을 복사하여 구글에 붙여서 검색하여 결과를 살펴보라.  무엇이든 검색엔진에 잘라내어 붙여보고(컨트롤 + C, 컨트롤 + V) 그 문제에 대해 언급한 사람이 있는지 살펴보는 습관을 갖도록 하라. 예를 들어, 아두이노 IDE가 거칠게 오류 문구들을 뿜어낸다면, 그 내용을 복사하여 구글에 붙여서 검색하여 결과를 살펴보라. 
-여러분이 작업하고 있는 코드의 일부분, 또는 단지 함수의 이름을 적어서 같은 방법으로 검색해 보자. 여러분의 주위를 둘러보라모든 것은 이미 발명되어 있고, 웹 페이지 어딘가에 저장되어 있다.+여러분이 작업하고 있는 코드의 일부분, 또는 단지 함수의 이름을 적어서 같은 방법으로 검색해 보자. 여러분의 주위를 둘러보라모든 것은 이미 발명되어 있고, 웹 페이지 어딘가에 저장되어 있다.
  
 더 깊이 살펴보려면, 메인 웹사이트인 www.arduino.cc 부터 시작하여 FAQ(자주 묻는 질문)를 살펴보라 (www.arduino.cc/en/Main/FAQ), 그리고 playground(놀이터)를 살펴보자 (www.arduino.cc/playground). 이곳은 자유롭게 편집할 수 있는 위키로, 문서에 공헌하기 원하는 사용자라면 누구나 참여 가능하다. 위키는 전체 오픈 소스 철학에서 가장 훌륭한 것들 중 하나이다. 사람들은 여러분이 아두이노 할 수 있는 모든 것에 대해 문서화 하고 예제를 만드는데 기여한다. 프로젝트를 시작하기 전에 playground를 찾아보면 시작하는데 도움이 되는 코드 조각이나 회로도를 찾을 수 있을 것이다. 더 깊이 살펴보려면, 메인 웹사이트인 www.arduino.cc 부터 시작하여 FAQ(자주 묻는 질문)를 살펴보라 (www.arduino.cc/en/Main/FAQ), 그리고 playground(놀이터)를 살펴보자 (www.arduino.cc/playground). 이곳은 자유롭게 편집할 수 있는 위키로, 문서에 공헌하기 원하는 사용자라면 누구나 참여 가능하다. 위키는 전체 오픈 소스 철학에서 가장 훌륭한 것들 중 하나이다. 사람들은 여러분이 아두이노 할 수 있는 모든 것에 대해 문서화 하고 예제를 만드는데 기여한다. 프로젝트를 시작하기 전에 playground를 찾아보면 시작하는데 도움이 되는 코드 조각이나 회로도를 찾을 수 있을 것이다.
  
-이 방법으로 아직도 답을 찾지 못했다면 포럼(www.arduino.cc/cgi-bin/yabb2/YaBB.pl)을 검색해 보라. 검색으로 찾을 수 없다면, 포럼에 질문을 올려라. 여러분의 문제점에 맞는 게시판을 골라야 한다. 하드웨어인지 소프트웨어 문제인지에 따라 각각의 영역이 있으며, 또한 포럼은 다섯 가지 언어를 지원한다. 질문에는 다음 내용을 포함하여 가능한 많은 정보를 적어라:+이 방법으로 아직도 답을 찾지 못했다면 포럼(www.arduino.cc/cgi-bin/yabb2/YaBB.pl)을 검색해 보라. 검색으로 찾을 수 없다면, 포럼에 질문을 올려라. 여러분의 문제점에 맞는 게시판을 골라야 한다. 하드웨어인지 소프트웨어 문제인지에 따라 각각의 영역이 있으며, 또한 포럼은 다섯 가지 언어를 지원한다. 질문에는 다음 내용을 포함하여 가능한 많은 정보를 적어라.
   * 사용하고 있는 아두이노 보드의 종류.   * 사용하고 있는 아두이노 보드의 종류.
   * 아두이노 IDE를 실행하기 위해 사용하는 OS의 종류.   * 아두이노 IDE를 실행하기 위해 사용하는 OS의 종류.
Line 1448: Line 1481:
  
 더 자세한 내용을 참조하려면 다음 링크를 살펴보라: arduino.cc/en/Reference/HomePage 더 자세한 내용을 참조하려면 다음 링크를 살펴보라: arduino.cc/en/Reference/HomePage
- 
  
 ===== 구조 ===== ===== 구조 =====
Line 1992: Line 2024:
   *[[http://web.suapapa.net:8080/PDS/%ec%95%84%eb%91%90%ec%9d%b4%eb%85%b8_%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0_%ec%98%88%ec%a0%9c_kor.zip|예제코드_한글주석]]   *[[http://web.suapapa.net:8080/PDS/%ec%95%84%eb%91%90%ec%9d%b4%eb%85%b8_%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0_%ec%98%88%ec%a0%9c_kor.zip|예제코드_한글주석]]
   *[[/코드 주석]]   *[[/코드 주석]]
 +  *[[/국내자작사이트]]
 +  *[[/옮긴이의글]]
 +  *[[/우분투리눅스에아두이노설치하기]]
 +  *[[/주의사항]]
   *[[/Todo]]   *[[/Todo]]
- 
getting_started_with_arduino.1265296230.txt.gz · Last modified: 2013/08/03 05:04 (external edit)