18
PART I 아두이노와 친해지기 ……………………………………… CHAPTER 01 아두이노 소개 ………………………………………… 1. 아두이노 하드웨어 2. 아두이노 우노 3. 아두이노 소프트웨어 4. 아두이노 프로그래밍 5. 스케치의 구조 6. 맺는말 CHAPTER 02 아두이노 기본 클래스 ……………………………… 1. UART 시리얼 연결 2. Serial 클래스 3. String 클래스 4. 맺는말 CHAPTER 03 디지털 데이터 입력 ………………………………… 1. 블링크 2. 시리얼 모니터로 LED 제어 3. 맺는말 CHAPTER 04 디지털 데이터 출력 ………………………………… 1. 풀업 풀다운 저항 2. 버튼 테스트 3. 버튼을 누른 횟수 세기 4. 맺는말 CHAPTER 05 아날로그 데이터 입출력 …………………………… 1. 아날로그 데이터 입력 2. 아날로그 데이터 출력 3. 맺는말 머리말…………………………………………………

PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

목차

PART I아두이노와 친해지기 ………………………………………

C H A P T E R 01 아두이노 소개 …………………………………………

1. 아두이노 하드웨어

2. 아두이노 우노

3. 아두이노 소프트웨어

4. 아두이노 프로그래밍

5. 스케치의 구조

6. 맺는말

C H A P T E R 02 아두이노 기본 클래스 ………………………………

1. UART 시리얼 연결

2. Serial 클래스

3. String 클래스

4. 맺는말

C H A P T E R 03 디지털 데이터 입력 …………………………………

1. 블링크

2. 시리얼 모니터로 LED 제어

3. 맺는말

C H A P T E R 04 디지털 데이터 출력 …………………………………

1. 풀업 풀다운 저항

2. 버튼 테스트

3. 버튼을 누른 횟수 세기

4. 맺는말

C H A P T E R 05 아날로그 데이터 입출력 ……………………………

1. 아날로그 데이터 입력

2. 아날로그 데이터 출력

3. 맺는말

머리말…………………………………………………

Page 2: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

C H A P T E R 06 주기적인 데이터 처리

1. delay 함수

2. millis 함수

3. 맺는말

PART II아듀카를 위한 부품 ………………………………………

C H A P T E R 07 DC 모터 ………………………………………………

1. DC 모터

2. DC 모터 제어

3. 맺는말

C H A P T E R 08 서보 모터 ………………………………………………

1. 서보 모터

2. 서보 라이브러리

3. 가변저항으로 서보 모터 제어

4. 시리얼 모니터 입력으로 서보 모터 제어

5. 맺는말

C H A P T E R 09 초음파 거리 센서 ………………………………………

1. 초음파 거리 센서

2. 물체 감지 경보기

3. 맺는말

C H A P T E R 10 적외선 통신 ……………………………………………

1. 적외선

2. 적외선 데이터 포맷

3. IRremote 적외선 라이브러리

4. 리모컨으로 LED 제어

5. 요약

Page 3: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

C H A P T E R 11 라인트레이서 모듈 ……………………………………

1. 포토트랜지스터

2. 라인트레이서 모듈

3. 맺는말

C H A P T E R 12 블루투스 통신 …………………………………………

1. 블루투스

2. HC-06 블루투스 모듈

3. 스마트폰 설정

4. 블루투스 통신

5. 맺는말

C H A P T E R 13 텍스트 LCD ……………………………………………

1. 텍스트 LCD

2. I2C (Inter-Integrated Circuit) 통신

3. I2C 방식 텍스트 LCD

4. 맺는말

PART III아듀카 - 아두이노로 제어하는 자동차 …………………

C H A P T E R 14 아듀카 만들기 …………………………………………

1. 아듀카(ArduCar : Arduino Controlled Car)

2. 모터 연결

3. 텍스트 LCD 연결

4. 아듀카 라이브러리

5. 맺는말

C H A P T E R 15 블루투스로 제어하는 아듀카 ………………………

1. 블루투스 설정

2. 블루투스로 제어하는 아듀카

3. 맺는말

Page 4: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

C H A P T E R 16 리모컨으로 제어하는 아듀카 ………………………

1. 적외선 수신 모듈

2. 리모컨으로 제어하는 아듀카

3. 맺는말

C H A P T E R 17 라인 트레이싱 아듀카 ………………………………

1. 라인트레이서 모듈

2. 라인트레이서

3. 맺는말

C H A P T E R 18 장애물 회피 아듀카 …………………………………

1. 서보 모터와 초음파 거리 센서

2. 장애물 회피 아듀카

3. 맺는말

appendix부록 …………………………………………………………

A P P E N D I X 01 아두이노 기본 함수 …………………………………

I. 디지털 입출력 함수

II. 아날로그 입출력 함수

III. 고급 입출력 함수

IV. 시간 함수

V. 수학 함수

VI. 삼각 함수

VII. 문자 함수

VIII. 난수 함수

IX. 비트 조작 함수

X. 외부 인터럽트 함수

XI. 인터럽트 함수

A P P E N D I X 02 아두이노 기본 클래스 ………………………………

I. Serial

II. String

Page 5: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

머리말

아두이노가 처음 출시된 지도 10년이 넘게 지났다. 지난 10여 년이

아두이노가 ‘누구나 쉽게 사용할 수 있는 마이크로컨트롤러 보드’라

는 기반을 다지는 시기였다면, 다가올 10년은 ‘누구나 실생활에 필요

한 도구를 만들어 사용할 수 있는 마이크로컨트롤러 보드’로 생활 속

으로 들어오는 시간이기를 바라고 있다. 어찌 보면 작은 변화일 수 있

지만 실생활에서 사용될 수 있다는 것은 상상만 하던 일을 현실에서

만날 수 있다는 의미이며, 더 이상 구경만 하면서 부러워할 필요 없이

직접 만들어 사용할 수 있다는 의미이기도 하다.

아두이노가 성공할 수 있었던 이유에는 오픈 소스 정책을 따랐기 때

문에, 쉬운 프로그래밍 방식을 도입했기 때문에, 사물인터넷의 보급

에 영향을 받았기 때문에 등등 기술적인 장점들을 여러 가지 이야기

할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장

난감’이라는 점이 아닐까 싶다. 어릴 적 트랜지스터와 몇 개의 부품만

으로 라디오를 만들어 본 경험이 있다면 아두이노에서 어린 시절의

추억을 찾아낼 수 있으리라 생각한다.

이미 많은 아두이노 관련 책들이 판매되고 있으며 이들은 서로 다른

방향에서 아두이노를 바라보고 있다. 하지만 실생활에서 사용되는 위

해서는, 어른들을 위한 장난감으로 매력을 가지기 위해서는 단편적인

내용들을 하나로 합해서 만들 수 있는 무언가가 필요하다. 잠깐의 검

Page 6: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

색만으로도 신기하고 흥미로운 것들을 찾아낼 수 있고, 필요한 것들

은 대부분은 공개되어 있지만 이들을 아울러 하나의 완성품으로 만들

어 낼 수 있는 방법까지 알려줄 수 있다면 더 좋으리라는 생각에 이

책을 준비하였다. 아두이노 관련 책을 한 권 쯤 읽고 나서 다음에는

무엇을 해야 할 지 망설이는 독자를 위해 이 책을 준비하였다.

아두이노로 만들 수 있는 것은 많다. 그 중에서도 이 책에서는 아두

이노로 움직이는 자동차를 선택한 것은 많은 관련 내용을 쉽게 찾아

낼 수 있을 만큼 접근하기가 쉬운 것이 그 하나이며, 그럼에도 아직까

지 다양한 응용이 가능하기 때문이 다른 하나다. 구슬이 서말이라도

꿰어야 보배라는 말처럼 여기저기 흩어져 있는 것들을 모아 줄거리

가 있는 이야기로 풀어나가고 싶었다. 어찌 생각하면 이 책에서 신기

한 무언가를 발견할 수 없어 실망할 수도 있겠지만 시작부터 끝까지,

준비부터 완성까지를 경험하고 스스로에게 자문할 수 있기를 바란다.

이 책을 통해 아두이노라는 또 다른 재미를 발견할 수 있기를, 아두이

노를 사용하여 무언가 만들어 보고 싶은 것이 생기기를, 그 무언가를

완성해서 즐거워할 때 이 책이 기억난다면 더 바랄 것이 없겠다.

Page 7: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한
Page 8: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

아두이노와 친해지기

IP A R T

Page 9: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한
Page 10: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

PART I 아두이노와 친해지기

131. 아두이노 하드웨어

1-1 마이크로컨트롤러 + α

최근 마이크로컨트롤러와 관련하여 가장 주목을 받는 단어 중 하나는 아두이

노가 아닐까 싶다. 아두이노는 이탈리아 밀라노 옆에 위치한 이브레아(Ivrea)

에서 예술가와 디자이너가 쉽게 사용할 수 있으며, 저렴하고 간단한 제어 장

치를 만들 수 있도록 시작된 오픈 소스 프로젝트 중 하나다. 2005년 처음 발

표된 이후 아두이노는 쉬운 사용법으로 수많은 참여자들을 끌어 들여 독자적

인 생태계 구축에 성공함으로써 마이크로컨트롤러 관련 오픈 소스 프로젝트

중 가장 많은 참여자를 가진 프로젝트의 하나로 자리매김하고 있다.

아두이노에 관해 간단히 설명 하였지만 아두이노가 무엇인지 정의하기는 쉽

지 않다. 그 이유 중 하나는 아두이노라는 단어가 마이크로컨트롤러를 이용

아두이노 소개

아두이노는 비전공자들을 위한 오픈 소스 기반 마이크로컨트롤러 프로젝트 중 하나로, 쉽고 간단한

사용 방법으로 다양한 사용자층을 끌어들여 독자적인 생태계를 구축함으로써 마이크로컨트롤러 관련

프로젝트 중 가장 많은 관심을 받고 있다. 이 장에서는 아두이노 보드가 가지는 하드웨어 측면의 특징

과, 아두이노 보드를 사용하여 쉽고 빠른 개발이 가능하도록 해주는 소프트웨어 개발 환경에 대해 알

아본다.

01C h a p t e r

Page 11: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

아듀카, 아두이노로 미는 자동차

14

하여 만들어진 개발 보드, 즉, 하드웨어에 해당하는 아두이노 보드와 아두이

노 보드를 동작시키기 위해 필요한 (흔히 펌웨어라고 불리며 아두이노에서는 스

케치라 부르는) 프로그램을 개발할 수 있는 소프트웨어 개발 환경까지 함께 가

리키기 때문이다.

아두이노 하드웨어에 대해서도 간단히 설명하기는 쉽지 않다. 아두이노 하드

웨어를 이해하기 어렵게 만드는 이유 역시 여러 가지가 있지만 ‘마이크로컨

트롤러’와 ‘마이크로컨트롤러 보드’를 명확히 구분하지 못하는 이유가 그 중

하나다. 아두이노는 ‘마이크로컨트롤러를 사용하여 만들어진 개발 보드’다.

주의할 점은 ‘개발 보드’지 ‘마이크로컨트롤러’가 아니라는 점이다. 마이크로

컨트롤러는 싱글 칩 컴퓨터(single chip computer)라고도 불리는, 컴퓨터의 본체

에 해당하는 기능을 하나의 칩으로 집약시켜 놓은 성능이 낮은 컴퓨터다. 컴

퓨터의 본체에 전원만 공급하면 컴퓨터로 기능할 수 있는 것처럼 마이크로컨

트롤러 역시 전원만 주어진다면 마이크로컨트롤러로서, 즉, 낮은 사양의 컴

퓨터로 동작할 수 있다. 하지만 아두이노 보드에는 마이크로컨트롤러 이외에

많은 것들이 추가되어 있다. 그림 1은 아두이노 보드 중 가장 많이 사용되는

아두이노 우노를 나타낸 것이다.

아두이노는 개발 보드이므로 편리한 개발을 위해 컴퓨터 또는 주변장치와 연

결할 수 있는 방법, 전원을 공급할 수 있는 방법 등을 제공하고 있다. 실제로

아두이노 우노에는 아두이노 우노에서 핵심이라 할 수 있는 ATmega328 마이

크로컨트롤러 이외의 부가적인 부품들이 더 많은 공간을 차지하고 있다. 이

처럼 아두이노 보드는 ‘마이크로컨트롤러 + α = 마이크로컨트롤러 보드’를

의미한다.

Page 12: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

PART I 아두이노와 친해지기

15

그림 1. 아두이노 우노1

1-2 아두이노 보드의 종류 - 핀 헤더의 유무

아두이노를 이해하기 어렵게 만드는 또 다른 이유는 아두이노 보드가 한 가

지 보드만을 지칭하는 것이 아니라는 점이다. 아두이노의 제품 소개 페이지

2에는 수많은 보드들이 나열되어 있다. 아두이노라고 이름 붙은 보드들은 크

기와 형태가 다양하여 외형적으로는 공통점을 쉽게 찾아볼 수 없다. 아두이

노 보드의 공통점은 아두이노의 개발환경을 사용하여 작성된 펌웨어를 서로

다른 아두이노 보드들이 함께 사용할 수 있다는 점에서 찾아야 한다.

마이크로컨트롤러는 그 종류에 따라 펌웨어를 작성하는 방법은 조금씩 다르

다. 동일한 회사에서 만들어진 마이크로컨트롤러의 경우에도 예외는 아니다.

즉, 동일한 기능을 구현하기 위해 작성해야 하는 펌웨어는 마이크로컨트롤러

에 따라 일부 달라지거나 전혀 다른 형태를 가질 수 있다. 하지만 아두이노라

1 http://www.arduino.cc

2 http://www.arduino.cc/en/Main/Products

리셋 버튼 디지컬 핀

아날로그 핀

ATmega328

외부 전원

16MHz 클록

USB 커넥터

ISP 연결 커넥터

USB 시리얼 변환 마이크로커트롤러

Page 13: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

아듀카, 아두이노로 미는 자동차

16

고 이름 붙여진 보드들은 모두 동일한 방식으로 펌웨어를 작성할 수 있으며

이러한 공통의 개발 환경이 아두이노의 장점 중 하나라고 할 수 있다.

아두이노를 특징짓는 중요한 요소 중 한 가지가 개발 환경에 있는 것은 사실

이지만, 이는 하드웨어의 지원이 바탕이 되어야 하는 것도 사실하다. 서로

다른 형태로 공통점을 찾기 어려운 아두이노 보드들이 공통점을 가지기는 한

것일까? 아두이노 보드들을 그룹으로 묶어 보면 아두이노 보드들 사이의 공

통점을 발견할 수 있다. 먼저 아두이노 보드를 피메일(female) 형태의 핀 헤더

가 존재하는 보드와 존재하지 않는 보드로 나누어 보자.

(a) 아두이노 우노 (b) 아두이노 나노

(c) 아두이노 레오나르도 (d) 아두이노 마이크로

그림 2. ATmega328과 ATmega32u4 마이크로컨트롤러를 사용하는 아두이노 보드3

3 http://www.arduino.cc

Page 14: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

PART I 아두이노와 친해지기

17

그림 2의 아두이노 우노와 아두이노 나노는 동일한 마이크로컨트롤러를 사

용하여 만들어진 보드다. 가장 큰 칩이 마이크로컨트롤러로, 크기와 형태가

달라 보이지만 패키징의 차이일 뿐 ATmega328이라는 동일한 마이크로컨트

롤러를 사용하고 있다. 동일한 마이크로컨트롤러를 사용하는 서로 다른 보드

가 필요한 이유는 무엇일까? 바로 사용 목적의 차이다. 아두이노 우노는 아

두이노의 대표적인 보드 중 하나로 ‘개발 보드’의 목적에 충실하게 주변장치

나 컴퓨터와 간편하게 연결할 수 있는 다양한 부가장치들이 포함되어 있다.

하지만 아두이노 나노는 개발 목적이라기보다는 개발이 완료된 후 실제 작품

에 적용하는 단계에서 사용할 수 있도록 아두이노 우노와 동일한 기능의 보

드를 소형으로 만들어 놓은 것이다. 이처럼 보드의 형태는 다르지만 동일한

기능을 가지고 있는 아두이노 보드들이 존재한다. 아두이노 레오나르도와 아

두이노 마이크로의 관계 역시 아두이노 우노와 아두이노 나노의 관계와 동일

하다.

(a) 릴리패드 아두이노 (b) 아두이노 에스플로라

(c) 아두이노 로봇 (d) 아두이노 메가 ADK

그림 3. 전용 목적의 아두이노 보드4

4 http://www.arduino.cc

Page 15: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

아듀카, 아두이노로 미는 자동차

18

이외에도 웨어러블 기기 개발을 위한 릴리패드 아두이노, 센서가 결합되어

있는 아두이노 에스플로라(Esplora), 주행 장치를 만들 수 있는 아두이노 로

봇, 안드로이드용 액세서리 개발을 위한 아두이노 메가 ADK 등 특정 목적

에 맞게 사용할 수 있는 전용 아두이노 보드들이 존재한다. 이들 전용 아두

이노 보드는 아두이노 우노나 아두이노 레오나르도와 같은 기본 보드에 목

적에 맞는 주변장치를 추가하여 만들어진 것이므로 기본 보드와 호환성을

가진다. 예를 들어 아두이노 에스플로라는 아두이노 레오나르도와 동일한

ATmega32u4 마이크로컨트롤러를 사용하며, 릴리패드 아두이노는 아두이노

우노와 동일한 ATmega328 마이크로컨트롤러를 사용하고 있다.

1-3 아두이노 보드의 종류 - 핀 헤더의 배열

아두이노 보드의 또 다른 공통점을 찾아내기 위해 이번에는 핀 헤더의 위치

와 배열을 살펴보자. ATmega328 마이크로컨트롤러를 사용하는 아두이노 우

노와 ATmega2560 마이크로컨트롤러를 사용하는 아두이노 메가2560의 핀 헤

더에서 공통점을 발견하였는가?

(a) 아두이노 우노 (b) 아두이노 메가2560

그림 4. 아두이노 우노와 아두이노 메가25605

5 http://www.arduino.cc

Page 16: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

PART I 아두이노와 친해지기

19

아두이노 메가2560은 ATmega2560 마이크로컨트롤러의 70개 입출력 핀을 사

용할 수 있도록 해주므로, 아두이노 우노가 ATmega328 마이크로컨트롤러의

20개 입출력 핀을 사용할 수 있도록 해주는 것과 비교하면 훨씬 많은 입출력

핀을 사용할 수 있어 다양한 주변장치를 연결하여 사용할 수 있다. 따라서 아

두이노 메가2560에는 더 많은 수의 피메일 핀 헤더가 존재한다. 하지만 그림

4에서 아두이노 메가2560 보드의 왼쪽에 있는 핀 헤더들은 아두이노 우노와

동일한 배열을 가지고 있다. 즉, 아두이노 우노에서 연결한 주변장치를 그대

로 아두이노 메가2560에 연결하고 아두이노 우노에서 사용한 프로그램을 그

대로 업로드 하면 아두이노 우노에서와 동일한 동작을 아두이노 메가2560에

서도 확인할 수 있다.

핀 헤더 배열이 동일하다는 점은 아두이노 보드에 공통으로 사용할 수 있는

확장 보드인 쉴드(shield) 제작을 가능하게 해준다. 아두이노 홈페이지에도 여

러 종류의 쉴드가 소개되고 있으며 그림 5는 그 중 일부다. 그림 5에 소개된

쉴드들 역시 아두이노 우노의 핀 헤더와 동일한 핀 헤더를 가지고 있으므로

여러 개의 쉴드를 적층하여 사용할 수 있다. 다만 동일한 입출력 핀을 사용하

는 여러 개의 쉴드를 적층하는 경우에는 사용에 제한이 있을 수 있다.

Page 17: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

아듀카, 아두이노로 미는 자동차

20

(a) 이더넷 쉴드 (b) USB 호스트 쉴드

(c) 모터 쉴드 (d) 릴레이 쉴드

그림 5. 아두이노 쉴드6

아두이노는 하드웨어가 공개되어 있기 때문에 누구나 아두이노에서 사용 가

능한 쉴드를 제작할 수 있다. 아두이노 홈페이지에 소개된 쉴드 이외에도 검

색을 통해 다양하고 신기한 기능의 쉴드들을 쉽게 찾아볼 수 있다.

1-4 아두이노 보드의 종류 - 사용된 마이크로컨트롤러

이외에도 아두이노 보드들은 대부분 마이크로칩(Microchip)7에서 제작한 마이

크로컨트롤러를 사용한다는 공통점이 있다. 마이크로칩 사에서 제작하고 아

6 http://www.arduino.cc

7 http://www.microchip.com

Page 18: PART I - manager3.dotname.krmanager3.dotname.kr/OHM_DATA/lE060408D/manual/... · 할 수 있지만 그보다 덜하지 않은 이유 중 하나가 ‘어른들을 위한 장 ... 필요한

PART I 아두이노와 친해지기

21

두이노 보드에 사용된 마이크로컨트롤러는 크게 두 종류로 나눌 수 있다. 아

두이노 우노, 아두이노 레오나르도, 아두이노 메가2560 등은 마이크로칩의

아키텍처를 바탕으로 하는 AVR 시리즈 마이크로컨트롤러를 사용하고 있다.

반면 아두이노 듀에, 아두이노 제로 등은 ARM의 아키텍처를 사용하고 마이

크로칩에서 제작한 Cortex-M 시리즈 마이크로컨트롤러를 사용하고 있다.

표 1은 마이크로칩에서 제작하고 아두이노에서 사용되고 있는 마이크로컨트

롤러의 종류를 요약한 것이다.

표 1. 아두이노 보드별 마이크로컨트롤러 종류

아두이노 보드 마이크로컨트롤러 아키텍처 CPU 비트 수

우노 ATmega328 AVR

8비트레오나르도 ATmega32u4 AVR

메가2560 ATmega2560 AVR

제로 ATSAMD21G18 ARM Cortex M0+32비트

듀에 AT91SAM3X8E ARM Cortex M3

애초 아두이노는 마이크로칩의 AVR 시리즈 마이크로컨트롤러를 사용하여

제작되었다. 하지만 높은 사양의 마이크로컨트롤러에 대한 요구가 증가함에

따라 ARM Cortex-M 기반의 아두이노 보드도 출시되고 있다. 아두이노 우

노의 경우 8비트 CPU에 16MHz 클록을 사용하지만 아두이노 듀에의 경우 32

비트 CPU에 84MHz 클록을 사용하는 등 Cortex-M 마이크로컨트롤러를 사

용하는 아두이노 보드들은 높은 성능을 보여준다. 하지만 아두이노는 비전공

자들을 위한 마이크로컨트롤러 프로젝트로 시작되었다는 점을 잊지 말아야

한다. 아두이노는 높은 사양도 중요하지만 간편한 사용 역시 중요하다. 따라

서 아직도 AVR 시리즈 마이크로컨트롤러를 사용한 아두이노 보드가 주류를

이루고 있으며 최초의 아두이노 보드를 계승한 아두이노 우노는 여전히 아두

이노의 대표 보드로 자리매김하고 있다.