# 2. 아두이노란

아두이노는 2005년 이탈리아 이브레아(Ivrea) 지방 인터렉션 디자인 전문학교(IDII: Interaction Desigin Institute Ivrea)의 마시모 반지(Massimo Banzi)와 데이비드 쿠아르티에예스(David Cuartielles), 두 교수로 부터 출발했습니다. 해당 학교는 예술과 기술이 접목된 예술작품 구현을 교육하는 하는 곳으로 미디어 아트(Media Art)같은 작품을 만들기 위해서는 하드웨어를 프로그래밍으로 제어(다른 표현으로 피지컬 컴퓨팅)하는 지식이 반드시 필요했는데, 하드웨어 미숙련자 및 기술 분야 비전공 학생들을 위해 기초적인 지식만으로도 쉽게 프로그램 작성이 가능하고, 또한 저렴하게 구입 가능한 하드웨어 제어용 마이크로트롤러(Microcontroller)\* 보드를 개발하고자 했던 것으로부터 시작했습니다.

{% hint style="info" %}
**마이크로콘트롤러(Microcontroller) 또는  또는 마이크로 콘트롤러 유닛(MCU: Micro Controller Unit)**: 연산장치인 마이크로프로세서(Microprocessor)와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다. CPU(Central Processor Unit) 코어, 메모리 그리고 프로그램 가능한 입/출력을 가지고 있다.&#x20;

출처: 위키피디아

아두이노 보드는 Atmel 사의 ATmega328 라는 마이크로콘트롤러를 탑재하고있으며, ATmega328을 보다 쉽게 사용하기 위해 PCB(Printed Circuit Board) 위에 주변 장치들을 연결하여 사용자들이 ATmega328을 편리하게 사용할 수 있도록 제작된 마이크로컨트롤러 보드입니다.  <img src="https://1238842542-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MaoCrU7aM6SgouXppME%2F-MaysGR3v3z44vtCIdmn%2F-MaytyqEu9WPvpczcu7_%2Fimage.png?alt=media&#x26;token=661c145f-82eb-4c33-a9e9-7616e79ffe10" alt="" data-size="original">&#x20;
{% endhint %}

두 교수의 바람데로 **아두이노는 손쉬운 활용과 저렴한 가격이란 두 가지 목적을 완전히 달성했을 뿐만 아니라, 해당 프로젝트의 결과물이 오픈소스로(Open Source) 공개된 탓에 전 세계적인 호응와 함께 급속한 보급이 이루어졌으며, 현재는 예술가의 작품활동, 기술전문가의 제품 프로토타이핑(Prototyping), 일반인의 메이커 운동(Maker Movement)의 취미활동, 하드웨어 코딩교육 사용에 거의 표준적 도구가 되었습니다.**

아두이노는 두 가지로 구성되어 있는데 마아크로콘트롤러를 탑재한 하드웨어 보드와 그 보드에 탑재시킬 소프트웨어의 손쉬운 개발을 가능하게 통합개발환경(IDE: Integrated Development Environment)으로 구성되어 있습니다.&#x20;

![](https://1238842542-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MaoCrU7aM6SgouXppME%2F-MaysGR3v3z44vtCIdmn%2F-Maytk8Fp3A0Pcw_BSeg%2Fimage.png?alt=media\&token=943ec119-a636-4930-9b4a-e25956d82c82)

**아두이노가 비전공자의 손쉬운 하드웨어 제어라는 목적을 상당수 달성시킨 것은 사실이나, 여전히 입문하려는 사람들에게 진입장벽이 되는 것은** 하드웨어 제어용 소프트웨어를 개발하기 위한 텍스트 코딩 언어인 C++ 언어와 하드웨어를 구성하는 기본적인 전자부품과 전자회로에 대해서 깊게는 아니어도 어느정도 지식이 필요하다는 것입니다.

**본 서의 저술 목적은 하드웨어 코딩교육을 어떻게 하면 쉬우면서 동시에 실전과도 유사한 교육을 할 수 있을까를 고민하면서 첫 코딩교육을 엔트리를 통해 입문한 사람들이 이미 익숙해진 엔트리를 그대로 재사용해 하드웨어 코딩교육으로 까지 나아가는 배움경로(Learning Path)를 구성하는 것**입니다.

&#x20;

