요즘은 거의 모든 것을 컴퓨터로 만들 수 있습니다. 키패드가 있는 LED나 LCD를 보면 그 안에 노트북이 들어있을 확률이 높습니다. 이런 기기 중에는 소형 컴퓨터인 마이크로컨트롤러가 6~7개 이상 들어있는 것도 있습니다.
그중에서 가장 인기 있는 것이 아두이노(Arduino)입니다. 내장 컴퓨터가 있는 전자 기기를 직접 만들고 싶다면, 그것들이 무엇이고 어떻게 작동하는지 이해해야 합니다.
그때 비로소 PCB 샵에서 키트를 구매해 프로젝트를 시작할 수 있습니다.
아두이노란 무엇인가?
이 작은 마이크로컨트롤러 컴퓨터는 임베디드 컨트롤러 또는 마이크로컨트롤러 유닛(MCU)이라고도 불립니다. 상상할 수 있는 컴퓨터의 모든 요소를 갖춘 완전한 컴퓨터 시스템입니다. 프로그램 실행을 위한 중앙처리장치(CPU), 임시 저장용 RAM, 영구 저장 시스템, 주변기기 및 액세서리용 포트를 모두 갖추고 있습니다.
마이크로컨트롤러는 몇 가지 특정 작업만 수행하도록 설계된 특수 목적 컴퓨터입니다. 대부분 단일 프로그램을 ROM에 저장해 실행하지만, 외부 저장장치를 연결할 수도 있습니다. 어찌 되었든 저전력 장치로 분류되며, 이것이 매력입니다. 배터리만으로도 구동할 수 있습니다.
아두이노는 마이크로컨트롤러의 오픈소스 버전입니다. 직접 기기를 설계하고 제작하는 데 사용할 수 있는 하드웨어 개발 보드 형태로 제공됩니다. 땜장이, 취미 개발자, 메이커에게 완벽하며, 아두이노는 특정 보드 디자인과 이를 제조하는 회사, 그리고 이를 사용하는 개발자 커뮤니티를 모두 지칭합니다. 덕분에 거의 모든 전자부품샵이나 PCB 부품 카탈로그에서 찾아볼 수 있습니다.
이 플랫폼은 물리적 프로그래밍 가능 회로 보드(마이크로컨트롤러 자체)와 장치가 실행할 프로그램을 작성하는 소프트웨어 또는 IDE(통합 개발 환경)로 구성됩니다. 초보 개발자들에게 인기가 많은 이유는 별도의 프로그래머 장치가 필요 없어 시중의 다른 마이크로컨트롤러 키트보다 사용자 친화적이기 때문입니다. 심지어 C++ 프로그래밍 언어의 간소화된 버전을 사용해 프로그래밍이 쉽습니다.
1.1 아두이노의 구성 요소
아두이노 보드에는 마이크로컨트롤러 키트로서 단일 인쇄회로기판(PCB)에 몇 가지 구성 요소와 인터페이스가 사전 설치되어 있습니다. 이 구성 요소들은 마이크로컨트롤러를 더 접근하기 쉽게 만드는 표준 폼 팩터를 설정합니다.
기본 구성 요소
디자인은 수년간 변경되었지만, 기본 아두이노 키트에는 다음 구성 요소가 포함됩니다:
핀 커넥터
특정 패턴으로 배열된 두 가지 유형의 핀이 있어, MCU를 맞춤형 기기의 다른 보드 및 부품과 연결할 수 있습니다. 또한 '실드(shield)'라고 불리는 딸린 애드온 보드를 장착할 수도 있습니다.
디지털(Digital): 켜짐/꺼짐 두 상태만 가능한 입출력(I/O) 커넥터. 대부분 아두이노에 14개 디지털 핀이 있습니다.
아날로그(Analog): 값의 범위를 읽을 수 있는 다중 상태 커넥터. 더 세밀한 제어에 사용. 보통 6개 있습니다.
그라운드(Ground): GND로 표시, 기기를 접지하는 3개 핀.
전원(Power): 애드온과 기타 부착물에 전원 신호를 제공하는 5V 핀 4개와 3.3V 핀 5개.
펄스 폭 변조(PWM): 8개 디지털 핀이 PWM 커넥터로도 작동. LED 디밍 같은 애플리케이션을 위한 아날로그 출력 신호 시뮬레이션 가능.
아날로그 레퍼런스(AREF): 외부 전압 조절에 가끔 사용되지만, 이 9개 핀은 거의 사용되지 않음.
전원 커넥터
장치에 전원을 공급하고 LED, 센서 등에 저전압 전원을 생성합니다. AC 어댑터나 소형 배터리와 함께 사용할 수 있습니다.
메인 프로세서
마이크로컨트롤러 CPU는 플랫폼의 심장입니다. 다양한 입력과 실행 중인 프로그램을 기반으로 아두이노가 명령을 실행하고 결정을 내릴 수 있게 합니다. 아두이노 유형에 따라 칩셋이 다르지만, 대부분 온보드 메모리가 다른 Atmel 칩셋을 제공합니다. 표준 프로세서 모델:
ATmega8
ATmega168
ATmega328
ATmega1280
ATmega2560
시리얼 커넥터
대부분 아두이노 보드에는 표준 USB 포트가 있어 MCU를 컴퓨터에 연결해 새 프로그램을 로드할 수 있습니다. 일부 보드에서는 USB 포트가 전원 커넥터 역할도 겸합니다.
리셋 버튼
아두이노 보드에는 리셋 버튼이 있습니다. 버튼을 누르면 리셋 핀이 트리거되어 현재 실행 중인 코드가 재시작됩니다. 프로그램이 재시작 기능이 없을 때 테스트하기에 완벽합니다.
전원 LED 표시등
일부 아두이노 MCU에는 장치 전원 상태를 나타내는 전원 LED가 있습니다. 일반적으로 전원 소스에 연결하면 LED가 켜집니다. 이 불이 안 들어오면 무언가 잘못된 가능성이 높습니다.
신호 송수신 LED
TX(송신)와 RX(수신)로 표시되며, 시리얼 통신 활동을 보여줍니다. 장치가 데이터를 송수신할 때 미세한 시각적 단서를 제공합니다.
전압 레귤레이터
사용자 프로그래밍은 불가능하지만, 아두이노 보드에는 전압 레귤레이터가 있습니다. 보드를 통과하는 전압량을 제어합니다. 한계가 있지만, 대부분 프로젝트는 20볼트를 넘지 않습니다.
1.2 아두이노 애드온 및 액세서리
위 구성 요소들은 모든 아두이노 MCU에 포함되지만, 플랫폼과 함께 사용할 수 있는 전자 부품이 이뿐만은 아닙니다. 보드는 모든 IEEE 및 ISO 표준을 준수합니다. 따라서 시판 부품을 사용해 가치 있는 아두이노 프로젝트를 만들 수 있습니다. 하지만 아두이노 플랫폼 사양은 일부 플랫폼 호환 애드온을 요구합니다. 따라서 대부분 아두이노 공급업체도 아두이노 센서와 실드를 취급합니다. 이 없이는 어떤 아두이노 프로젝트도 완성될 수 없습니다.
센서
약간의 코드로 아두이노가 다양한 센서를 제어하고 상호작용하게 할 수 있습니다.
대부분 아두이노 공급업체는 다음 측정을 위한 센서를 제공합니다:
조도
온도
굴곡도
압력
근접
가속도
일산화탄소
방사능
습도
기압
아두이노 브레드보드
프로젝트용 무납 브레드보드도 구매할 수 있습니다. 이 보드를 사용하면 부품을 PCB에 영구 납땜하지 않고도 회로 설계와 레이아웃을 프로토타이핑하고 실험할 수 있습니다. 레이아웃과 설계 아이디어를 실험하고 테스트할 수 있습니다. 브레드보드에는 전원 어댑터가 없으므로, 메인보드를 통해 점퍼 와이어로 전원을 공급해야 합니다.
실드(Shields)
아두이노 퍼즐의 마지막 조각은 아두이노 실드입니다. 이 사전 제작된 딸린 보드는 메인 아두이노 보드 위에 장착되어 추가 기능을 제공합니다.
일반적인 실드 기능:
모터 제어
인터넷 연결
모바일 및 셀룰러 네트워킹/통신
LCD 화면 제어
아두이노 개발자들은 공식 아두이노 통합 개발 환경(IDE)을 사용해 프로그램을 작성합니다. 오픈소스 자바 기반 IDE는 Windows, Mac, Linux 모든 플랫폼에서 작동합니다. 장치에 업로드하기 전에 Processing 프로그래밍 언어로 작성된 코드를 작성하고 테스트할 수 있는 고유한 환경을 제공합니다.
아두이노 우노(Uno) - 가장 인기 있는 아두이노
어떤 두 프로젝트도 같지 않기 때문에, 아두이노 그룹은 여러 아두이노 보드 유형에 대한 사양을 공개했습니다. 그중 가장 인기 있는 보드 유형이 아두이노 우노입니다.
초보자에게 탁월한 선택인 22달러짜리 아두이노 우노 MCU는 필수 구성 요소만 갖춘 베어본 보드입니다. 하지만 나만의 방식으로 프로젝트를 설계할 수 있습니다. 무게 25g, 크기 68.5 x 53.4mm의 이 PCB는 인클로저 안에 넣기에도 충분히 가볍습니다.
현재 버전인 아두이노 우노 R3 사양:
ATmega328P 마이크로프로세서
14개 디지털 입출력 핀
6개 PWM 출력
내장 LED (핀 13 연결)
5V, 3.3V, 그라운드 핀 전압 출력
6개 아날로그 핀
USB 포트
전원 잭
리셋 버튼
5V 동작 전압
32KB 플래시 메모리
2KB SRAM 및 1KB EEPROM
우노가 최초의 아두이노 보드는 아니지만, 가장 활발히 사용되고 있습니다. 인터넷에 수많은 프로젝트 튜토리얼과 포럼이 있는 가장 잘 문서화된 폼 팩터이기도 합니다.
아두이노 메가(Mega) - 대형 프로젝트를 위한 MCU
사실상 우노 MCU 4개를 합친 아두이노 메가는 대규모 프로젝트를 위한 보드입니다. Atmel ATmega2560 칩으로 구동되며, 별도의 USB 포트를 통해 컴퓨터와 인터페이스하는 4개의 시리얼 포트를 제공합니다. 추가 USB 포트 전용 ATmega16U2 프로세서까지 탑재했습니다. 배터리로도 구동 가능합니다.
메가 사양:
54개 디지털 입출력(I/O) 핀 (14개 PWM 호환)
16개 아날로그 I/O 핀
USB 포트
전원 잭
리셋 버튼
메가의 수많은 핀이 이 보드의 강점입니다. 많은 디지털 I/O 연결, LED, 버튼이 필요한 프로젝트에 활용할 수 있습니다.
메가 MCU의 나머지 성능은 프로세서에서 나옵니다. ATmega2560 마이크로프로세서는 던져지는 모든 작업을 처리할 수 있습니다. 16MHz 클럭 속도, 256KB 플래시, 8KB SRAM, 4KB EEPROM을 갖추고 있습니다. 이 모든 것이 아두이노 메가를 3D 프린터와 로봇 공학의 필수 보드로 만듭니다.
아두이노 ESP8266 - 프로젝트를 무선으로
어떤 아두이노 보드에도 무선 네트워킹 기능은 내장되어 있지 않습니다. 사용 가능한 실드에서도 찾을 수 없습니다. 프로젝트를 무선으로 만들고 싶다면 아두이노 ESP8266 Wi-Fi 모듈이 필요합니다.
더 새로운 모듈들도 있지만, ESP8266은 오리지널입니다. 독립형 MCU로 작동하도록 설계되지 않았지만, 오늘날의 모바일 시장에서는 프로젝트에 필수적입니다.
나름 괜찮은 무선 연결을 제공합니다. 보드에는 메인 아두이노에 연결하기 위한 전원, 그라운드, 송신, 수신 핀과 온오프 '칩 제어 파워 다운'(CH_PD) 핀이 있습니다. 리셋 핀과 2개의 GPIO 데이터 핀도 있습니다.
단점이 하나 있습니다. ESP8266은 5V 전원 신호가 필요합니다. 아두이노 표준 3.5V에서는 작동하지 않습니다.
PWM 서브시스템 및 프레임워크
5.1 아두이노 PWM
펄스 폭 변조(PWM)는 주파수와 진폭이 변하는 사각파 신호를 사용해 아날로그 신호를 시뮬레이션합니다. 아두이노 플랫폼은 이 신호를 사용해 디지털 출력으로 아날로그 회로를 제어합니다.
아두이노 PWM 플랫폼은 별도의 하드웨어가 아닙니다. 모든 아두이노 보드에 시스템 콜이 내장되어 있습니다. 이를 사용하는 프로그램을 작성하기만 하면 됩니다. 이 명령은 호환되는 핀을 통해 사각파를 생성합니다.
5.2 아두이노 나노(Nano) - 소형 기기 및 프로젝트에 최적
아두이노 플랫폼의 가장 작은 버전인 아두이노 나노는 ATmega328P 프로세서와 ATmega168 코프로세서로 구동되며, 우노와 같은 기능을 훨씬 작은 패키지에 담았습니다. 다른 아두이노 보드와 동일한 아두이노 IDE 소프트웨어를 사용합니다.
나노 사양:
14개 디지털 I/O 핀 (6개 PWM 호환)
8개 아날로그 핀
5V 동작 전압
리셋 버튼
USB 포트
시리얼 포트
32KB 플래시 메모리
8KB SRAM
1KB EEPROM
작은 크기에도 불구하고 나노는 다음 프로젝트 유형에 탁월합니다:
임베디드 시스템
자동화
로봇 공학
제어 시스템
계측
아두이노 vs 라즈베리 파이: 왜 아두이노를 선택해야 할까?
아두이노 플랫폼이 시장의 유일한 MCU는 아닙니다. 라즈베리 파이를 비롯한 많은 MCU가 아두이노와 비슷한 기능을 제공합니다. 하지만 라즈베리 파이는 아두이노와 완전히 다른 제품입니다.
첫째, 라즈베리 파이는 완전한 컴퓨터입니다. 아두이노는 그렇지 않습니다. 마이크로컴퓨터는 컴퓨터를 구성하는 작은 구성 요소 중 하나일 뿐입니다. 따라서 아두이노 플랫폼은 라즈베리 파이가 제공하는 것의 작은 부분집합만 제공합니다. 예를 들어, 완전한 컴퓨터 운영체제가 아닌 작은 애플리케이션만 실행할 수 있습니다.
6.1 아두이노의 강점과 약점
그렇다고 아두이노가 무용지물이라는 뜻은 아닙니다. 컴퓨터 전체가 필요 없는 전자 프로젝트에 완벽합니다. 부품과 센서를 직접 연결하면 거의 설정 없이 바로 작동합니다.
아두이노가 이렇게 할 수 있는 건 펌웨어 덕분입니다. 펌웨어는 아두이노 보드 라인을 구동하는 핵심 소프트웨어로, USB를 통해 컴퓨터와 통신하며 모든 프로그래밍 가능 기능에 접근하게 해줍니다. 펌웨어를 교체할 수는 있지만, 절대 교체할 필요가 없습니다. 재부팅할 필요도 없습니다. 코드를 업로드하면 즉시 어디서든 실행할 수 있습니다. 키보드, 디스플레이, 애플리케이션 선택 수단도 필요 없습니다. 보드가 맡은 단 하나의 일을 수행합니다.
6.2 라즈베리 파이는 완전한 컴퓨터
반면 라즈베리 파이는 완벽하게 작동하는 컴퓨터입니다. 운영체제가 필요하고, 운영 유지를 위해 재부팅이 필요합니다. 내부 저장장치도 없어 프로그램을 저장할 외부 마이크로 SD 카드를 직접 준비해야 합니다. 내장 이더넷이 있어 카드를 빼지 않고도 소프트웨어 업데이트가 가능합니다.
라즈베리 파이는 메모리와 HDMI 그래픽 프로세서를 갖춘 Broadcom Arm-v6 CPU로 구동됩니다. 키보드와 마우스와도 잘 작동해 리눅스 변종을 로드할 수 있으며, 아무도 이 작은 기계로 모든 것을 구동한다는 사실을 알아채지 못할 만큼 강력합니다. 완전한 사용자 인터랙티비티와 처리 성능이 필요한 프로젝트에 완벽한 플랫폼입니다.
하지만 이 강력함이 소형 프로젝트에는 부적합하게 만듭니다. 예를 들어 아두이노 보드에 LED를 꽂아 8줄 코드로 켤 수 있지만, 라즈베리 파이는 코드 외에 추가 라이브러리가 필요하며, 보드에 이미 운영체제가 설치되어 있어야 시작할 수 있습니다.
라즈베리 파이와 아두이노를 같은 유형 프로젝트에 사용할 수 없다는 뜻은 아닙니다. 프레임워크 라이브러리를 설치하면 파이에도 아두이노와 같은 기능을 부여할 수 있습니다. 단지 파이를 프로젝트에 사용하려면 훨씬 더 많은 시간과 노력이 필요할 뿐입니다.
아두이노는 더 큰 개발자 커뮤니티를 보유하고 있습니다. 전자 프로젝트용 가장 인기 있는 플랫폼으로서, 초보자가 시작하는 데 도움이 되는 수많은 튜토리얼이 있습니다.
어쨌든 이 두 보드 중 하나를 선택할 필요는 없습니다. 둘은 훌륭하게 함께 작동합니다. 적절한 부착으로 아두이노를 라즈베리 파이의 딸린 확장 보드로 만들면, 두 보드 모두 서로의 기능에 접근할 수 있습니다.
결론
아두이노는 DIY 전자 프로젝트를 위해 특별히 설계된 마이크로컨트롤러 플랫폼 제품군입니다. 이 단일 용도 보드에는 작업을 자동화하는 데 필요한 모든 것이 들어있습니다. 컴퓨터에 꽂고 코드를 작성해 실행하기만 하면 나머지는 알아서 처리합니다.
프로젝트에 필요한 아두이노나 기타 부품을 구매하려면 지금 바로 문의하세요. 담당자들이 아두이노를 잘 이해하고 있으며, 여러분의 프로젝트에 적합한 보드와 애드온을 결정하는 데 도움을 드릴 수 있습니다. 아두이노를 라즈베리 파이에 연결해 기기를 다음 단계로 끌어올리는 데 필요한 부품도 구해드릴 수 있습니다.