All Things IT

아두이노(Arduino)란 무엇? 아두이노를 소개합니다! 지금 확인해 보세요! 본문

사물 인터넷(IoT)

아두이노(Arduino)란 무엇? 아두이노를 소개합니다! 지금 확인해 보세요!

올티아티 2020. 7. 15. 05:17

아두이노는 다양한 유형의 기기를 손쉽게 조종할 수 있는 작은 기판입니다. 오픈소스 하드웨어이기 때문에 설계가 모두 공개되어 있다는 점이 특징이고요. 컴퓨터에 아두이노 개발 프로그램(IDE)를 설치하고 간단하게 프로그램을 만든 다음 기판에 프로그램을 업로드하여 실행할 수 있습니다.

아두이노는 Ivrea Interaction Design Institute에서 시제품을 쉽고 빠르게 만들기 위한 바탕으로 만들어낸 기술인데요. 초기에는 전기 전자나 프로그래밍 전공이 아닌 학생만을 대상으로 했지만, 지금은 관심이 있는 사람이라면 누구나 도전하고 다룰 수 있는 도구로 진화했습니다. 아두이노(Arduino) 기판과 개발 프로그램(IDE)은 예술가, 디자이너, 취미 활동가, 해커, 초보자를 가리지 않고 모든 사람이 사용할 수 있도록 설계 및 구성되어 있고요. 누구나 아두이노를 활용하여 주변 환경이나 특정 조건에 따라 움직이는 ‘무언가’를 만들어 낼 수 있습니다.

아두이노는 사람들의 요구 사항을 수용하고 기존의 문제를 해결하며 다른 단순한 8비트 기판과 차별화를 꾀하고 있습니다. 아두이노는 사물 인터넷(IoT), 웨어러블 기술, 3D 프린팅, 임베디드 환경 등 다양한 분야에서 활용되고 있는데요. 버튼, LED 전구 및 스크린, 모터, 스피커, GPS 기기, 카메라, 인터넷, 스마트폰, TV 등 다양한 기기를 연동하고 제어할 수 있습니다.

아두이노의 인기 비결은?


아두이노가 다른 오픈소스 보드를 제치고 인기를 끄는 비결은 아래와 같이 요약해 볼 수 있겠네요.


* C++ 언어로 프로그래밍 할 수 있습니다.
* 컴퓨터와 더 빠른 속도로 자료를 주고 받을 수 있습니다.
* 메모리 용량이 더 큰 ATmega328 마이크로컨트롤러를 기본으로 장착하고 있습니다.
* 프로세서 손상 시 손쉽게 교체할 수 있습니다.
* 3.3 볼트 전원 공급 장치로 더 많은 전류 공급이 가능합니다.



아이들이 아두이노를 배우면 좋은 이유


* 다양한 활용이 가능하고, 다루기도 쉽습니다.
* 국내외 교육 현장에서 활발히 도입되고 있고, 활용 사례도 많습니다.
* 아이들의 사고력과 분석 능력을 키울 수 있습니다.


아두이노의 장점


아두이노 인기는 시간이 지나도 식을 줄을 모르고 있는데요. 아래와 같은 아두이노의 장점과 특징이 아두이노의 꾸준한 인기를 뒷받침하고 있습니다. 아두이노를 돋보이게 하는 장점을 살펴보겠습니다.




윈도우, 맥, 리눅스를 가리지 않고 어디서나 실행 가능한 개발 프로그램


아두이노의 개발 프로그램은 윈도우 뿐만 아니라 맥이나 리눅스에서도 사용할 수 있습니다. 그 뿐만 아니라 기본 구조가 잘 짜여있고 지원도 탄탄하게 이루어지고 있고요. 오픈소스 gcc 툴체인을 활용한데다 자바로 래핑(Wrapping)하여 감싼 형태를 취하고 있기 때문에 다른 환경에 이식하기도 쉽고 오류나 문제도 비교적 쉽게 발견하고 고칠 수 있습니다.




두터운 팬층

각계 각층의 다양한 사람이 아두이노 개발 프로그램의 개선에 활발히 참여하고 있습니다. 아두이노는 부담 없는 저렴한 가격과 높은 완성도 덕분에 생각보다 열혈 팬층이 두텁습니다.




윈도우, 맥, 리눅스를 비롯하여 어느 환경에나 설치 가능한 드라이버

아두이노의 개발 프로그램과 마찬가지로 드라이버 역시 윈도우, 맥, 리눅스를 가리지 않고 어디에나 설치 가능합니다. 시리얼 치과 이야기 쉬운 인터페이스는 프로그래밍 뿐만 아니라 디버깅에도 활용할 수 있으며, 자바, 파이썬, 펄, C, NET, BASIC, 델파이, MAX/MSP, PureData, Processing 등과 같은 소프트웨어 도구와도 손쉽게 결합할 수 있습니다.




어떤 일이든 가능한 라이브러리

핀 회전과 같은 단순한 작업에서 SD 카드에 쓰기, LCD 스크린 조작, GPS 분석등의 복잡한 작업 이르기까지 다양한 작업을 쉽게 할 수 있는 객체 지향 라이브러리가 많이 나와 있습니다.




불필요한 과정을 빼고 가볍게

검증된 컴파일러를 거친 이후 불필요한 과정을 빼고 코드를 바로 실행합니다. 닷넷(.NET)이나 베이직처럼 추가적인 과정을 거치지 않습니다. 덕분에 프로그램의 크기가 작고 가벼운데다 실행 속도가 빠릅니다. 헥스(HEX) 파일을 활용하면 여러 개의 새 칩에 프로그램을 한 번에 심을 수 있습니다.




거의 모든 센서 지원

아두이노는 아날로그 신호를 디지털 입력으로 변환할 수 있어 큰 인기를 끌고 있습니다. 아두이노에 센서를 연동하면 밝기, 온도 등을 측정하여 데이터를 수집할 수 있는데요. 아날로그 외에도 즉시 사용 가능한 SPI나 I2C를 통한 디지털 센서 연동도 지원합니다. 이를 통해 시장에 나온 99%에 달하는 거의 모든 센서를 지원합니다.




단순성

개발자를 대상으로 한 보드는 대체로 LCD 스크린, 버튼, LED 등 기능이나 성능을 최대한 보여 주기 위해 여러 종류의 확장 부품을 달고 나와 복잡합니다. 이와는 달리 아두이노는 최소한의 필수적인 요소만 갖추고 있습니다. 사용자가 원한다면 LCD나 등 필요한 부품을 부착하여 손쉽게 기능을 확장할 수 있고요.




초보자에게 안성맞춤

칩 제조사가 보드, 기판을 설계하지 않습니다. 아주 중요한 포인트라고 할 수 있는데요. 칩 제조사는 보통 다른 제품과의 차별화를 위해 다양한 기능과 요소를 추가하는데요. 아두이노는 차별화가 아니라 마이크로 컨트롤러의 공통성에 집중합니다. 덕분에 구조가 단순하여 초보자가 이해하고 다루기가 쉽고요. 아두이노에서 할 수 있는 일은 다른 모든 유형의 마이크로 컨트롤러에서 가능합니다.




부담 없는 가격

아두이노는 30달러(약 3만 6천 원)라는 비교적 저렴한 가격에 구입할 수 있습니다. 개발자를 대상으로 한 보드 대부분이 50달러(약 6만 원) 가격에서 시작해 최대 100달러(약 12만 원)의 가격이 넘어가는 시장 상황을 고려할 때 정말 착한 가격이죠. 그럼에도 완성도나 품질 만큼은 손색이 없을 만큼 뛰어납니다.


아두이노의 종류


아두이노는 다양한 종류가 있어 원하는 종류를 선택하기가 어렵지만, 이런 다양성 덕분에 상상 이상으로 많은 일을 해낼 수 있습니다. 아두이노는 종류 별로 특성과 기능이 서로 다른데요. 그 가운데 대표적인 몇 가지 종류만 정리해 보면 아래와 같습니다.


아두이노 우노(Arduino Uno)


우노는 아두이노로 다양한 실험을 하고 있는 초보자에게 적합합니다. 이제 막 시작하는 사람에게 탄탄한 기반을 제공하며 기초를 익히는데 필요한 모든 기능을 갖추고 있습니다. 또한, 거의 모든 종류의 확장 부품, 쉴드를 사용할 수 있습니다. 14개의 디지털 입출력, 6개의 아날로그 입력, USB 연결, 파워잭, 리셋 버튼 등을 갖추고 있습니다. 마이크로 컨트롤러를 지원하는 데 필요한 모든 것을 포함하고 있고요. USB 케이블로 컴퓨터에 연결하거나 AC-DC 어댑터 또는 배터리로 전원을 공급하면 됩니다.




아두이노 나노(Arduino Nano)

나노는 아두이노 우노와 거의 비슷하지만 크기가 3분의 1 정도에 불과해 쉴드를 쉽게 사용할 수가 없습니다. 우노는 프로젝트에서 특정 위치에 지속적으로 고정해 놓고 사용하거나 일명 ‘빵판’으로 불리는 브레드보드와 연동하여 다양한 테스트를 할 때 주로 사용합니다.


아두이노 릴리패드(Arduino Lilypad)

릴리패드는 착용 가능한 형태의 웨어러블 관련 프로젝트나 예술 등에 활용할 수 있도록 옷감이나 직물에 바느질하기 쉽게 독특한 디자인을 채택하고 있습니다. Leah Buechley가 개발했고, Leah와 SparkFun이 공동으로 디자인했네요. 릴리패드는 큰 커넥팅 패드와 평평한 뒷면을 통해 전도성 실로 옷에 꿰매도록 설계되어 있습니다.




아두이노 메가 2560(Arduino Mega 2560)

아두이노 메가 2560은 UNO의 큰 형이나 마찬가지입니다. 다른 아두이노 종류 보다 메모리 용량이 많고 I/O 핀이 많습니다. 디지털 입출력 핀 54개, 아날로그 입력 16개, USB 연결, 파워잭, 리셋 버튼 등이 탑재됐습니다. 마이크로 컨트롤러를 지원하는 데 필요한 모든 것을 포함하고 있고요. USB 케이블로 컴퓨터에 연결하거나 AC-DC 어댑터 또는 배터리로 전원을 공급하면 됩니다. 가격이 비싼 만큼 확장성이 높고 비교적 큰 규모의 프로젝트에서 활용하기에도 좋습니다.




레드보드(RedBoard)

레드보드는 USB Mini-B 케이블로 연결한 상태에서 아두이노 개발 프로그램(IDE)을 통해 프로그래밍할 수 있습니다. 윈도우 8(Windows 8)에서 보안 설정 변경 없이도 연동하여 사용할 수 있습니다. 또한 USB/FTDI 칩으로 안정성이 뛰어나고 뒷면이 완전히 평평한 편이어서 어디에나 배치하기가 편합니다. USB 또는 배럴 잭을 통해 RedBoard에 전원을 공급할 수 있습니다.




지금까지 아두이노의 대표적인 종류 몇 가지를 살펴봤습니다.


아두이노 우노의 특징


앞서 아두이노가 고유한 여러 특장점 덕분에 인기를 끌었다고 말씀드렸는데요. 아두이노는 8051이나 8052 등의 마이크로 컨트롤러를 사용할 때 발생하는 문제점들을 해결했습니다. 아두이노 우노 역시 이러한 특징으로 눈길을 끌었고요. 아두이노 우노의 다른 장점으로는 아래와 같은 특징을 꼽을 수 있습니다.


* 쉽게 연결: USB로 컴퓨터에 바로 연결할 수 있습니다.
* 메모리: 아두이노는 32KB 메모리를 장착하고 있습니다. SRAM이 2KB이고, EEPROM이 1KB입니다.

* 작동 클럭 속도: 아두이노는 작동 클럭 속도가 16Mhz이기 때문에 다른 프로세서나 컨트롤러 보다 작업을 더욱 빠르게 실행할 수 있습니다.
* 입출력 전압: 아두이노 우노는 USB 연결을 통해 전원을 공급할 수 있으며, 필요하다면 외부 어댑터를 통해 전원을 공급할 수도 있습니다. 외부 전력 공급 시 전압은 6에서 20 볼트면 됩니다.

* 입력/출력 핀: 우노에 있는 14개의 디지털 핀 각각을 입력 또는 출력으로 사용할 수 있으며, 14개 중 6개는 PWM 출력으로 사용할 수 있고, 6개는 아날로그 핀으로 사용할 수 있습니다.
* 통신: 아두이노 우노 보드는 I2C 및 SPI 통신을 지원합니다.


아두이노와 마이크로 컨트롤러의 차이점은 무엇인가요?


마이크로 컨트롤러는 임베디드 마이크로 프로세서를 포함하고, 실시간으로 직접 사용할 수 있도록 필요한 인터페이스 회로를 갖춘 장치입니다.

예를 들어, 8051은 마이크로 프로세서를 장착한 마이크로 컨트롤러이며 입력 출력 핀과 타이머, 카운터 등과 같은 기타 장치가 모두 내장되어 있습니다. 따라서 기본적으로 마이크로 컨트롤러는 실시간 응용 프로그램을 실행할 수 있고 프로그래밍 할 수 있는 마이크로 프로세서 기반 전자 장치입니다.

비슷한 의미에서 Arduino는 그냥 마이크로 컨트롤러 기반 개발 보드라고 보시면 되겠네요.



본질적으로,

마이크로 컨트롤러 = 마이크로 프로세서 + 인터페이스 회로입니다. 어셈블리 코드 또는 Keil C 중 하나만 사용하여 프로그래밍 할 수 있는데요. 이 두 가지 언어 모두 익히기가 어렵고 연습이 많이 필요하며 다루기가 어렵습니다.

Arduino = 마이크로 컨트롤러 + Crystal + 온보드 전원 공급 장치 핀, 부트 로더라고 볼 수 있습니다. 덕분에 Arduino IDE를 통해 쉽고 간단한 방법으로 프로그래밍 할 수 있습니다.

따라서 Arduino는 프로그래밍하기가 쉽고 즉시 사용할 수가 있습니다.



아두이노와 라즈베리 파이의 차이점


Raspberry Pi와 Arduino는 상당히 다른 보드입니다. 각 보드에는 고유한 장단점이 있습니다. 둘 중 하나를 결정하려면 프로젝트의 요구 사항에 따라 다릅니다. 이 두 보드를 자세히 살펴볼까요.

Arduino는 Massimo Benzi가 이탈리아에서 발명했습니다. Arduino는 간단한 하드웨어 프로토 타이핑 툴이었습니다. 영국 케임브리지 대학교의 Eben Upton 교수가 학생들의 프로그래밍 기술을 향상시키기 위해 발명한 것이 바로 라즈베리 파이고요.




두 가지 모두 초보자, 애호가에게 적합합니다. 이들 사이의 주요 차이점은 Arduino는 마이크로 컨트롤러 보드이며, 라즈베리 파이는 미니 컴퓨터입니다. 따라서 Arduino는 라즈베리 파이의 일부일 뿐이며, Raspberry Pi는 소프트웨어 응용 프로그램 실행에 능숙하고, Arduino는 하드웨어 프로젝트를 간단하게 구성하고 만들 수 있도록 도와줍니다.


이 두 보드는 매우 낮은 전력으로 작동합니다. 그러나 라즈베리 파이의 경우 전원 중단으로 인해 소프트웨어 및 응용 프로그램이 손상될 수 있습니다. Arduino의 경우 전원 차단이 있으면 다시 시작됩니다. 따라서 전원을 차단하기 전에 라즈베리 파이를 올바르게 종료해야 합니다.




Raspberry Pi에는 Raspbian이라는 완벽한 기능의 운영 체제가 제공됩니다. 프로세서, 메모리 및 그래픽 드라이버가 있는 컴퓨터의 모든 기능이 있습니다. Pi는 다른 운영 체제를 사용할 수 있습니다. 리눅스가 선호되지만 안드로이드도 설치할 수 있습니다. 아두이노에는 운영 체제가 없습니다. 펌웨어는 단순히 작성된 코드를 해석합니다. 간단한 코드를 실행하기가 매우 쉽습니다.




입력 및 출력 핀을 사용하면 이러한 보드를 다른 장치에 연결할 수 있습니다. Raspberry pi 2에는 2개의 입력, 출력 핀 팩이 있고 Arduino Uno에는 20 개의 핀이 있습니다.

Pi는 Arduino보다 클럭 속도가 40배 빠릅니다. Pi는 Arduino보다 메모리 용량이 128000배나 많이 있기 때문에 Raspberry Pi는 Arduino보다 강력합니다.




Arduino에는 32KB의 저장 공간이 있으며 코드 저장에 사용됩니다. 이 코드는 Arduino의 기능을 결정합니다.  Raspberry Pi는 온보드 저장 공간이 없지만, 대신에 마이크로 SD 단자를 제공합니다.

Arduino는 Wi-Fi, 이더넷, 터치 스크린, 카메라 등과 같은 외부 하드웨어를 사용하여 확장할 수 있습니다. 이 보드를 실드라고 합니다. 이 쉴드는 Arduino에 손쉽게 설치할 수 있습니다. 라즈베리는 자체적으로 확장에 제약이 있는데요. 그래도 별도의 연결 방식을 통해 터치 스크린, GPS, RGB 패널 등과 같은 하드웨어를 추가할 수 있습니다. 그럼에도 Arduino 보드 만큼 확장성이 높거나 선택지가 많지는 않습니다.

Arduino는 코드 개발을 위해 Arduino IDE를 사용합니다. Raspberry Pi는 Scratch, IDLE 등을 사용할 수 있고 Linux를 지원하는 프로그램이라면 무엇이든 사용 가능합니다.


아두이노 우노, 메가, 마이크로의 비교


Arduino 보드는 매우 다양한 보드로 시장에서 가장 인기 있는 마이크로 컨트롤러 중 하나가 되었습니다. 일부 Arduino 보드는 특정 응용 분야에 더 적합합니다. Arduino가 만든 인기 있는 보드 (Uno, Micro 및 Mega 2560)를 비교하고 다음 프로젝트에 가장 적합한 보드를 살펴 보겠습니다.


아두 이노 보드 크기 및 가격 비교

0.7”x 1.9”로 마이크로는 이름 그대로, 가장 작은 마이크로 컨트롤러 보드 중 하나입니다. 스펙트럼의 반대편에서 Arduino Mega 2560 보드 크기는 약 4”x 2.1”이므로 면적 크기면에서 Micro보다 약 6배 더 큽니다. 2.7 인치 x 2.1 인치의 Arduino Uno의 크기는 Micro와 Mega 2560의 중간에 해당합니다. Micro의 가격은 일반적으로 약 19~25달러이며, Uno는 약 20~23 달러이고, Mega 2560은 36~39달러 입니다.




연결성

컴퓨터에 연결하고 코딩을 시작하려면 Uno와 Mega 2560을 표준 A/B USB 케이블로 쉽게 연결할 수 있지만 Micro에는 Micro-USB 케이블이 필요합니다.




이 Arduino 각각에는 다른 수의 I/O 핀이 있습니다. 핀이 가장 많은 보드는 Mega 2560으로, 54개의 디지털 I/O핀 (15개에 PWM이 있음)과 16개의 입력 아날로그 핀이 있습니다. 놀랍게도 Micro는 세 가지 중 2번째로 많은 핀을 가지고 있으며 20개의 Digital I/O 핀 (7개는 PWM이 있음)과 12개의 Input Analog 핀이 있습니다. 마지막에는 14개의 디지털 I/O핀 (6개는 PWM이 있음)과 6개의 입력 아날로그 핀이 있는 Uno가 있습니다.




또한 우노와 메가 2560은 일반적으로 스루 홀로 제공되며 헤더 I/O의 마이크로 핀 레이아웃은 모든 브레드보드 또는 시스템에 적합합니다. 이것은 대부분의 Shield가 Uno 및 Mega 2560과 호환되지만 Micro는 해당되지 않음을 의미합니다.


처리 능력

Arduino 보드 세 가지 모두 처리 능력 수준이 다르므로 주파수/클럭 속도를 살펴보겠습니다. 보드의 주파수/클럭 속도는 명령의 실행 속도를 의미합니다. 16MHz에서 만큼은 모두 동일한 클럭 속도라는 사실이 놀랍습니다.

Uno와 Micro의 플래시 메모리는 32KB로 동일하지만 Mega 2560은 256KB로 8배 더 많은 메모리 공간을 제공합니다. 플래시 메모리는 Arduino에 얼마나 큰 스케치/코드를 업로드 할 수 있는지를 의미하므로 무거운 코드가 있으면 Mega 2560을 사용하는 것이 좋습니다.




Arduino 보드는 SRAM(Static Random-Access Memory)을 사용합니다. Mega 2560은 8KB로 가장 많은 SRAM 공간을 가지고 있으며 이는 Uno보다 4배, Micro보다 3.2배 더 큽니다. 더 많은 SRAM 공간이 있으면 Arduino가 변수를 실행할 때 변수를 생성하고 조작할 수 있는 여유 공간이 더 많아집니다.


소개한 내용이 아두이노를 이해하는데 도움이 되었기를 바랍니다. 추가로 알려주실 내용이 있을 경우 댓글을 통해 알려주세요.


0 Comments
댓글쓰기 폼