본문 바로가기



관련 기술/SBC(싱글보드컴퓨터)

아두이노와 그 종류들, 그리고 대략적인 개발 순서

단일 보드 컴퓨터(Single Board Computer, SBC)는 컴퓨터의 필수 구성 요소인 마이크로 프로세서, 메모리, 입출력 등의 기능을 갖춘 단일 회로 기판으로 구성된 컴퓨터를 말합니다.
단일 회로이기때문에 초소형, 저전력을 특징으로 가진 SBC들이 개발될 수 있었죠.
대표적으로 라즈베리파이, 젯슨나노 등을 들 수 있습니다.
물론 그 이전에도 다양한 SBC들이 있었지만 최근 가장 많이 사용되는 것은 라즈베리파이와 젯슨나노라고 볼 수 있습니다.

 

그런데 아두이노는 SBC는 아닙니다.
SBC는 완전한 컴퓨터로 볼 수 있는데 아두이노는 완전한 컴퓨터라고 하기에는 기능적으로 부족하거든요.
아두이노는 단일 보드 마이크로 컨트롤러(Single Board Mircocontroller)로 분류됩니다.


단일 보드 마이크로 컨트롤러는 하나의 회로기판에 여러 제어 작업에 필수적인 모든 회로를 포함하고 있으며, 마이크로프로세서, 입출력 회로, 클럭 제너레이터, RAM, 프로그램 저장을 위한 메모리 등으로 구성되며 컨트롤러 하드웨어의 개발에 신경쓰지 않고 애플리케이션을 개발할 수 있도록 지원하는 역할을 하고 있습니다.

 

아두이노는 Atmel AVR을 기반으로 주로 개발되었는데 ARM 계열의 Cortex-M0(Arduino M0 Pro), Cortex-M3(Arduino Due)를 사용한 제품도 있습니다.
아두이노 이전에 많이 사용되었던 마이크로 컨트롤러들은 환경설정부터 개발까지 상당히 까다로운 과정을 거쳐야하며 이런 다양한 환경들로 인해 개발 난이도가 매우 높은 편이었습니다.
그러나 아두이노는 쉽게 마이크로 컨트롤러를 동작시킬 수 있다는 장점을 기반으로 폭발적인 인기를 끌게 되었죠.

 

또한 아두이노는 오픈소스 하드웨어이므로 그 회로도가 모두 공개되어 있기때문에 누구나 직접 보드를 만들고 수정, 개량할 수 있습니다.(뭐... 그만큼 능력이 따라줘야 하겠죠...)

 

아두이노는 꽤 많은 종류가 있는데 크기나 성능 등으로 구분할 수도 있지만 가장 중요한 분류 기준은 어떤 칩을 사용했는가.. 라고 할 수 있습니다.
아두이노는 대부분의 기능을 칩 하나에 넣어놓았고 나머지 회로들은 입출력, 전원, 회로보호 등을 지원하는 기능으로 구성되어 있습니다.
동일하거나 같은 계열의 칩을 사용하는 제품이라면 소스코드, 라이브러리 등도 대부분 호환된다고 할 수 있습니다.

 

 

아두이노의 종류를 (큼지막한 것들 위주로) 간단하게 살펴보면 다음과 같습니다.

 

  • 아두이노 우노(UNO): 현재 시점에서 아두이노의 표준 보드. ATmega328P 칩 탑재
  • 아두이노 나노(Nano): UNO의 소형화 버전. 잘 사용되지 않는 구성요소들을 제거해서 소형화 함
  • 아두이노 프로(Pro)/프로 미니(Pro Mini): UNO의 경량화?압축? 버전. 통신칩조차 제거되었기 때문에 초보자에겐 어려운 보드
  • 아두이노 메가(Mega, Mega2560): UNO보다 대형으로 개발된 보드. ATmega2560 칩을 탑재하여 핀 배치 등이 UNO와 다름
  • 아두이노 릴리패드(LilyPad): 웨어러블, 전자 바느질 등 패션쪽에 사용하기 좋게 개발된 보드. 꽃모양. UNO와 같은 계열의 칩 탑재
  • 아두이노 레오나르도(Leonardo): USB 통신기능을 자체 내장한 ATmega32U4 칩 탑재. 별도의 통신칩이 없어도 PC와 연결 가능. UNO와 특수기능 핀 설정이 다름
  • 아두이노 마이크로(Micro): Leonardo의 소형화 버전

위에서 살펴본 것 외에도 다양한 버전들이 있습니다.

그렇다면 아두이노를 이용하여 애플리케이션을 개발하려면 어떻게 해야 할까요?
세부적인 내용은 앞으로 진행하면서 반복해서 살펴보겠지만 대략적으로 살펴본다면 다음과 같은 과정을 거칩니다.

 

  1. 아두이노와 원하는 부품(LED, 저항 등)을 연결한다.
  2. 아두이노를 USB 케이블로 PC에 연결한다.
  3. 아두이노 개발환경 프로그램을 실행하고 연결한 부품들이 동작하도록 코드(스케치)를 작성한다.
  4. 코드(스케치)를 컴파일하고, 컴파일한 바이너리를 아두이노 보드에 업로드한다.
  5. 아두이노가 코드(스케치)대로 잘 동작하는지 확인한다.

위와 같은 과정으로 아두이노 프로젝트를 수행할 수 있습니다.
그럼 다음 글에서는 환경설정과 첫 번째 미니 프로젝트를 진행해 보겠습니다.

 

 

 

 

 

 

반응형