최근 수정 시각 : 2024-11-27 16:57:21

Arduino

아두이노에서 넘어옴
파일:Arduino 로고.svg 파일:Genuino 로고.svg
1. 개요2. 하드웨어
2.1. 호환, 파생 제품들2.2. UNO Mini Limited Edition(한정판 UNO)
3. 소프트웨어 개발 환경4. 버전5. 용도6. 주의사항7. 한국 내 동향8. 상표권 분쟁 9. 기타10. 관련 문서

[clearfix]
파일:홈페이지 아이콘.svg

1. 개요

AVR 기반의 마이크로컨트롤러 개발환경인 Wiring에서 파생한 프로젝트다.
Arduino is an open-source electronics platform based on easy-to-use hardware and software.(arduino.cc) [1]
아두이노는 사용하기 쉬운 하드웨어 및 소프트웨어를 기반으로 하는 오픈 소스 전자 플랫폼입니다.(아두이노 공식사이트)
영어로 '아두이노', 이탈리아어로 '아르두이노'라고 읽는다. 영어권의 영향이 강한 국내에서 많이 사용되는 명칭은 아두이노. 이탈리아어로 '강력한 친구'라는 뜻이라는 듯. 2005년 이탈리아의 Massimo Banzi와 David Cuartielles가 처음 개발하였다. 개발자 Massimo Banzi가 직접 저술한 "Getting Started with Arduino(번역서:손에 잡히는 아두이노)"를 필두로 많은 입문서들이 나와 있다.

비관련자를 위해 쉽게 설명하자면, 간단한 초소형 컴퓨터 기판에 이런저런 기능을 할 수 있도록 프로그래밍을 하여 다양한 기계나 작업, 작품에 써먹는 경우가 많은데, 그것들 중에서도 교육에 특화되어 특히 더 쉬운 사용법을 자랑하는 시스템이라 보면 간단하다. 이곳에서 아두이노와 관련된 작품들을 많이 열람할 수 있다.

2. 하드웨어

파일:상세 내용 아이콘.svg   자세한 내용은 Arduino/하드웨어 문서
번 문단을
부분을
참고하십시오.
파일:external/arduino.cc/ArduinoUno_R3_Front_450px.jpg 파일:namuwiki Arduino IDE.png
Arduino Uno Rev 3 Arduino IDE
위 사진의 보드는 우노 Rev3 버전으로 2013년 기준 레퍼런스 보드이자 가장 보편적으로 사용되는 보드다. 사용하는 마이크로컨트롤러는 ATMega328P로 16MHz로 동작하고 프로그램 저장용 플래시 32KB를 내장한 프로세서이다.

주로 Atmel사의 AVR이 사용되는데, 아래 보드들 가운데 사용된 칩 이름 앞에 AT가 들어간 것들이다. 임베디드 개발 경험이 전혀 없는 사람을 위해 개발된 교육용 플랫폼이기 때문에 프로그램을 작성하고 보드에 프로그램을 올리는 과정을 단순화하여 다루기 쉽게 되어 있다.[2] 버전에 따라 조금씩 다르지만 아두이노 보드와 개발 환경은 대개 위와 같은 모습이며, 성능은 인텔 80286 정도이다.

2.1. 호환, 파생 제품들

아두이노의 설계는 CC BY-SA 2.5에 따라 공개되어 있으므로 누구나 해당 설계도에 따라 제품을 만들 수 있다. 따라서 아두이노 LLC에서 직접 판매하는 정품[3] 이외에도 중국 등지에서 만든 호환 보드들이 5000원 정도에 판매되고 있다. 다만 아두이노라는 명칭이나 로고 자체는 함부로 사용할 수 없으므로, 이러한 호환 보드에는 주로 로고나 이름 등이 제거된 채 출시된다.

이러한 호환 보드들은 주로 eBayAliExpress 등에서 판매되나 일부 아두이노 호환품은 국내에서도 판매되고 있다. 간단한 선에서는 일반 아두이노와 100% 동일하나 가격만 저렴하게 만든 것들부터 시작해서, 보드에 블루투스[4], 와이파이[5] 등의 통신 모듈을 내장시킨 것들은 흔하며 초소형화[6]된 것들도 볼 수 있다. 또한 기존의 B타입 USB 포트를 USB-C로 대체한 버전도 있다. 특히 중국제의 경우 추가적으로 핀을 연결할 수 있게 만들어져 있어 찾는 사람들도 꽤 많다.

라떼판다 등 다른 SBC 개발보드와 아두이노 호환 보드를 혼동할 수 있으나, 정확히는 큰 차이가 있다. 아두이노는 임베디드 개발 '보드'에, 라즈베리 파이는 초소형 '컴퓨터'에 가깝다. 그런데 둘 다 오픈 소스이기 때문에 마음대로 개조할 수 있고, 일반적으로 라즈베리 파이와 아두이노를 함께 사용하는 경우가 많은 것에 주목한 중국 회사가 이 둘을 하나로 합치고 성능을 엄청 끌어올린 것이 라떼판다이다. 이런 방식으로 개조된 보드들은 아두이노 칩셋이 내장되어 있어 아두이노로 할 수 있는 일을 모두 할 수 있지만, 아두이노가 할 수 없는 일 또한 할 수 있다. 그렇기에 일반적으로 호환 보드라고 표현하지 않고 아두이노 칩셋 내장 등으로 별도 표기한다.

2.2. UNO Mini Limited Edition(한정판 UNO)

파일:MINI_UNO_LE_Perspective-sml-1024x647.png
2021년 11월 24일 한정판 아두이노 UNO가 출시되었다공식 블로그. 전세계 단 10,000대만 판매하며 천만 대가 넘게 팔린 아두이노를 기념하기 위해 만들었다고 한다. 국내에는 400개가 들어온 모양. 크기는 34.2 × 26.7 mm로, UNO의 1/4 크기(UNO R3 대비 25%)이며 핀피치도 1.27mm[7]로 매우 작다. 무게도 8.05g 로 더 가볍다. 검은색 보드에 금색으로 글자가 쓰여있으며 각 보드마다 시리얼 넘버가 새겨져 있다. 프로세서는 ATmega328P로 일반 UNO와 동일한 성능을 제공한다. 전원 공급과 데이터 입출력 포트로 USB Type-C 포트가 달려 있다.
파일:상세 내용 아이콘.svg   자세한 내용은 Arduino/하드웨어 문서
번 문단을
UNO Mini Limited Edition 부분을
참고하십시오.

3. 소프트웨어 개발 환경

파일:상세 내용 아이콘.svg   자세한 내용은 Arduino/소프트웨어 개발 환경 문서
번 문단을
부분을
참고하십시오.
아두이노는 하드웨어 이름이자 소프트웨어(프로그래밍 언어)이름이기도 하다. 아두이노는 C언어에 기반하고 있다. 아두이노 개발환경(Arduino IDE)이라고도 한다.

4. 버전

2016년 기준 기본형이라고 할 수 있는 Arduino Uno를 비롯한 다양한 변종이 있다. 하드웨어의 회로도까지 오픈 소스라 아두이노와 호환되는 보드를 정품보다 훨씬 저렴한 값에도 구할 수 있다. 모든 소스가 공개되어 능력이 되면 자작도 가능하다.

긴 알파 테스트 기간을 거쳐서 2011년 11월 30일, 1.0 버전이 릴리즈되었다. 2012년 5월 21일 공개된 1.0.1버전부터는 UI의 언어가 다국어지원이 되는데 이 중에는 한글도 있어 초심자들의 접근이 더욱 쉽게 되었다. 2024년 현재 최신버전은 2.3.2버전이다.

2012년 7월 즈음 아두이노 신제품인 아두이노 Leonardo(레오나르도)가 출시했다. 온칩 USB 컨트롤러가 내장된 Atmega32U4를 메인으로 채택해 단가를 줄이고 마우스, 키보드로 인식시킬 수 있어 다양한 활용이 가능하다. 참고로 아두이노 우노를 dfu-program울 이용해서 펌웨어를 업데이트하면 레오나르도처럼 USB 입력 장치로 사용이 가능하지만 이 경우에는 레오나르도처럼 바로 업로딩 후에 인식이 가능하지 않고, dfu 모드 진입과 해제의 과정을 거친 후에 HID 장치로 인식이 가능하다. 그래서 한번 펌웨어를 업데이트시킨 상태에서 수정하려면 좀 번거롭다. 그러니 아두이노를 입력장치로 써 먹으려면 그냥 레오나르도를 사용하는 편이 좋다. 그리고 dfu-program으로 펌웨어를 올리는 과정에서 잘못하다가 아두이노의 UART 컨버터가 벽돌이 될 수 있으니 조심하도록 하자.

2013년 초 ARM Cortax-M3 SAM3E8X(512KB 플래시 메모리, 96KB SRAM, 클럭 84MHz)를 채택한 Arduino Due가 출시되었다. 기존의 Arduino Mega 2560[8]의 후속모델에 가깝다. ARM 기반이니만큼 프로세서 성능은 훨씬 고성능이다. 다만 아날로그 입력/PWM 출력이 12핀으로 MEGA보다 약간 적다. DAC 두 개와 CAN 핀 때문에 그렇다. 총 4개가 줄어든 셈. 동작 전압이 다른 보드와 다른 3.3V이므로 I/O 핀에 5V를 인가하면 핀이 나가는 수가 있으니 주의. 일반적인 아두이노 보드의 동작전압은 5V이다. 3.3V는 FTDI에 내장된 레귤레이터나, UNO 같이 FTDI가 없으면 온보드 레귤레이터로 출력한다.

2013년 10월에는 인텔에서 갈릴레오라는 이름으로 자사 펜티엄 기반의 32nm 공정을 사용한 새로운 인텔 쿼크 SoC를 탑재한 호환 보드를 발표하였다. 며칠 뒤에는 TI에서 Cortex-A8 기반의 자사 1GHz Sitara SoC와 ATmega32U4를 동시에 내장한 아두이노 Tre라는 보드를 발표하였다. Tre는 Uno와는 100배 이상의 성능 차이가 있다고 하는데 레오나르도에 탑재된 ATmega32U4까지 동시에 내장해서 호환성 문제는 없다. 인텔의 갈릴레오는 2014년 4월경 단종 수순 (핀 호환성이 영 안 좋다는 이야기가 있다. 인텔 쿼크 문서 참조)이고 대신 갈릴레오2가 출시되었다. 갈릴레오 2 이후 사물인터넷을 위한 Intel Edison 보드가 출시되었다. 아두이노와 꽤 협력적인 관계를 구축한 듯. 실제로 아두이노 공식적으로 인증된 타회사제 아두이노 기판은 삼성에서 내놓기 전까지 죄다 인텔제였다. Tre는 2019년 현재도 감감무소식이다.

2014년 5월 15일 Arduino Uno의 후속으로 Arduino Zero가 발표되었다. 가장 큰 변경점은 마이크로컨트롤러가 기존의 ATMega 계열에서 ARM Cortex-M0+ 계열로 변경되면서 연산 속도와 메모리 공간 등이 늘어났다. ARM 계열의 칩을 사용한 보드들은 대부분 작동 전압이 3.3V이기 때문에 I/O핀에 3.3V 이상의 전압이 인가되는 경우 보드가 손상될 수 있으니 주의할 것.

이외에 아두이노 Yun이라는 리눅스 OS로 구동되는 보드나 브레드보드같은 곳에 꽂아 사용 가능한 아두이노 Micro, Nano, (Pro)Mini, Yun Mini 같은 물건들도 발매되었다. 리눅스 OS 기반은 갈릴레오같이 에뮬레이션 방식은 아니고 32U4와 리눅스 머신이 같이 내장된다.

Arduino 101은 인텔과 협작으로 나온 보드다. 특징은 인텔 Curie 칩을 사용하고 BLE와 가속도계, 자이로스코프가 보드에 기본 내장된다. 또 작동 전압이 3.3V이지만 5V를 인가해도 핀이 손상되지 않는다.[9] 가격도 국내에서 4만원 후반~5만원 초중반대의 가격.[10] 라즈베리 파이와 비슷하다.[11] 101은 구조상 프로세서가 2개 붙어있어서 한쪽은 RTOS 서비스를 돌리고 다른쪽 코어는 유저의 코드와 라이브러리를 돌린다. 여기에 둘을 연결하는 메일박스를 두고 양측이 필요한 작업요청을 주고받는 메시지패싱 구조를 가지고 있다. 이때 유저는 OS와 메모리를 나눠 쓰기 때문에 느낌상 메모리가 적어보이게 된다. 그러나 OS가 제공하는 편의성이 괜찮아서 큰 손해는 아니다. 다만 이 OS와 라이브러리는 아직 문서와 예제가 부실해서 문서가 없으면 소스 코드를 보면 된다는 정도의 기본기는 있어야 본격적으로 응용을 해볼 수 있는 상태라는게 문제. 이렇게보면 이게 무슨 입문용이냐 싶겠지만 어차피 기본 문법의 스케치라면 똑같게 돌아가는 것이고, 5V 입력 핀이 달려있어서 태워 먹을 위험 없이 UNO용 회로들을 시도해볼 수 있으며, 32비트 보드 중에는 가격도 적절해서 입문용이라고 해도 별 문제는 없다.[12]

2023년 6월쯤에 Arduino Uno R4[13]가 출시되었다. MINIMA와 WIFI 두가지 버전으로 출시되었다. MINIMA는 일반버전이고
(디버깅등을위한 swd10핀 포트가있다) WIFI는 wifi와 Bluetooth를 위한esp32와 Led matrix가 탑재되어있다.두버전 모두 32비트MCU인 Renesas RA4M1
(Arm® Cortex®-M4)칩이 사용되었다.

5. 용도

원래 교육 용도의 보드라 저학년층 교육에 쓰긴 했으나 현재로써는 저학년 뿐만 아니라 다양한 계층에 대한 전자공학 입문 용도로 많이 쓰이며 나이, 학력, 전공 가리지 않고 전자공학을 활용하는 용도로 쓰이고 있다. 특히 일부 대학 등에서는 전자공학도들의 입문교육 등에도 활용되는 등 전공, 비전공 가리지 않고 많이 쓰는 기기가 되었다.

특히 저학력층보다 비전공 일반인 사용이 더 많은 모습을 보여주는데, 기존에 아이디어는 있지만 전공지식이 없어서 구현을 못하던 문, 예, 체 쪽의 개발인원들에 대해서 매우 각광받고 있다. 오히려 저학력층 교육용 보드의 경우 아두이노에서 마이크로비트 등으로 넘어가기도 한다.

이외에도 아두이노 폼팩터 자체가 오픈 소스인데다가 이와 관련된 하드웨어 수요 또한 많기에 기존의 유명 부품 제조사들 또한 여기에 발 맞추어서 빠르게 자사의 제품들을 아두이노화 한 부품들을 내놓고 있으며[14], 따라서 전공자들 또한 어느정도 아두이노에 대해서 접하게 되는 경우가 많다. 덕분에 8비트 AVR말고도 다양한 칩을 활용하는 식으로 나오고 있으며 현 시점에서는 시장에서 버려진 제품이 아닌 이상 거의 대부분의 마이크로컨트롤러로 아두이노 개발이 가능해진 상황이다. 서드파티 보드 지원상황[15]

실 사용 예를 들자면, 낮은 컴퓨팅 파워(3.3 또는 5), 그리고 자유로운 I/O 지원 덕분에 센서나 외부 스위치 등을 연결해 간단한 자동화를 하는 작업이 많다. 냉장/냉동고 자동 온도조절장치라든지, 날씨에 따라 정원에 물을 주는 장치, 방범센서, 평범한 아날로그 악기에 센서를 달아 디지털 악기 또는 MIDI악기로 바꿔주는 컨트롤러, 만능리모콘, 조이스틱, 가스 감지기, 전광판, 애완동물 자동 출입구나 먹이 주는 기계 등등 대부분 이런 특성을 잘 살린 것들이다.

관련 프로젝트는 다음과 같다.
  • Moppy - PC나 미디 등으로부터 신호를 받아 구형 하드웨어가 적절히 소리를 내도록 제어하는 데에 아두이노가 쓰인다.
  • 커스텀 키보드 - 키보드 컨트롤러가 요구하는 사항(저전력, 많은 I/O단자, USB통신 등)을 아두이노가 정확하게 가지고 있다.
  • 조이스틱 - 키보드로 인식시키기, 자동발사, 매크로 등 다양한 기능을 집어넣을 수 있다.
  • 3D 프린터 - 3D프린터를 DIY에 이용하는 것이 보통이지만, 3D프린터 자체를 DIY로 만들 수도 있다. 구현 사례
  • 드론 - 3D프린터를 사용해 몸체를 만든 뒤 모터, 프로펠러 등을 이용해 비행할 수 있는 드론을 만들 수 있다. 구현 사례
  • 안면 인식 카메라 - 컴퓨터와 웹캠을 아두이노로 연결한 뒤 안면을 인식하는 코드를 작성하면 안면 인식 카메라를 만들 수 있다. 구현 사례
  • 로봇 팔 - 3D프린터 혹은 키트를 이용하여 조립한 뒤 작동하는 코드를 작성하면 로봇 팔을 만들 수 있다. 구현 사례

6. 주의사항

8비트 임베디드 시스템 프로그래밍에 있어서는 프로그램 최적화에 매우 신경써야 한다. 마이크로 컨트롤러같이 메모리 리소스가 크게 제한되는 장치에서 프로그래밍을 할 경우 항상 주의해야 하는 부분이다. 아두이노는 성능이 매우 떨어지기 때문에 다른 기계에서는 문제없을만한 부분이 유독 문제를 일으키기도 한다. 컴파일은 잘 해놨는데 정작 보드에서 장비가 멈추는 경우가 발생할 수 있다. 개발과정에서 문제가 생겼다면 마지막으로 추가한 내용들을 살펴보며 코드의 내용을 최대한 다이어트 시켜보자.

Arduino IDE 컴파일러는 C++ 언어를 사용하지만, 문자열을 관리하기 위해 C++의 std::string이 아니라 자체적으로 설계된 Arduino.h의 String[16] 객체를 사용하는 것에는 다 이유가 있는 것이다. 둘다 char* 메모리의 관리를 돕는 wrapper class이고 const char* c_str() 함수를 통해 내부 데이터 포인터에 직접 접근할 수 있고 덧셈 operator가 적절히 overload 되어있다는 공통점이 있지만, std::string에서 제공하는 여러 기능들이 Arduino String에서는 빠져서 마이크로 컨트롤러를 위한 최적화가 되어있다. 사실 어지간하면 이것도 안 쓰고 char*로만 때우는 것이 가장 좋다.

C에서 함수가 중복 호출될 경우 스택 오버플로를 일으키면서 장비가 정지될 수 있다. 예를 들어, 장비가 정지했는데 개발 도중에 동작 테스트를 위해 추가한 Serial.print();문 몇 줄을 지워보니 추가한 코드들이 갑자기 정상적으로 돌아가는 경우도 있다. 이 때문에 deploy판에 디버그용 print를 지우고 보내는 것은 기본이다. 하드웨어 시리얼로 블루투스 통신을 꼭 해야만 한다던지 등 예외적인 경우에만 놔두는 것이 좋다.

아두이노 자체의 성능 제약을 피하려면, 라즈베리 파이 같은 다른 장치를 연결해 각종 연산은 다른 데에서 처리하고, 아두이노 보드는 센서나 액추에이터 등 각종 주변기기의 신호 입출력을 관리하는 관제탑으로만 사용하는 게 나을 수도 있다. 아두이노에 Firmata라는 펌웨어를 올리면[17] Firmata 프로토콜을 통해서 외부에서 아두이노를 컨트롤할 수 있게 된다. Processing을 비롯해 꽤 많은 언어를 이용하여 Firmata로 아두이노를 컨트롤할 수 있으니 이쪽을 알아보는 것도 괜찮다. 이걸 잘 활용하면 아두이노에는 최소한의 코드만 올리고 연산 부하가 큰 나머지 부분은 PC나 라즈베리 파이 같은 별도의 장치의 자원을 사용하여 돌리는 식으로 동작시키는 게 가능하다. 아두이노 자체로는 센서값 읽어서 판단하고 트윗올리는 것만 짜넣어도 빡빡한 경우가 있으니 판을 크게 벌일 거라면 다른 장치를 사용해 통제하는 걸 고려해보자. 실제로 많은 작업들이 이렇게 제작된다. 판이 크지 않다고 하더라도 외부 컴퓨터-아두이노 사이의 통신이 필요한 프로젝트인 경우, 시리얼 통신으로 메시지를 주고받는 것보다 자연스러운 형태로 코딩이 가능하므로 Firmata를 적극 사용해보는 것도 괜찮다. 이런 과정이 번거롭다면 내부 플래시와 램 용량이 크게 늘어난 아두이노 두에 혹은 2016년 기준 최신형인 제로[18]나 전술한 101 또는 Primo, Star를 쓰는 것도 좋은 선택.

그리고 또 주의할 점이 있는데, 아두이노 IDE에 내장된 예제들 중 아두이노를 ISP로 쓸 수 있게 해주는 ArduinoISP 예제를 이용해 다른 아두이노에 업로드를 진행할 경우, 해당 아두이노는 부트로더가 지워진다! 그렇기 때문에 웬만하면 USB TO UART 컨버터를 이용해 업로드하자.

아두이노 컴파일러에서 소스 코드를 보드에 업로드할 때, 우분투 같은 리눅스로 하는 것이 Windows로 하는 것보다 훨씬 빠르다.

7. 한국 내 동향

국내에서도 미디어 아트나 취미로 임베디드 프로그래밍을 하는 계층에게 인기를 끌고 있으며 일부 대학에서도 커리큘럼을 개설하고 교육하는 곳이 있다. Processing과 마찬가지로 공학적 지식이 전무한 디자인/예술 전공 학생 등 공학 비전공 학생들에게 여러모로 놀라움과 동시에 고통을 안겨주는 존재. 다만 공학 비전공 학생들은 날 것 그대로 프로그래밍 학습을 하게 되는 Processing보다는 뭔가 물리적인 리액션을 경험할 수 있는 아두이노 쪽을 재미있어하는 경향이 있고, MCU를 깊숙하게 파고 들어가는 것에 비하면 침대에 누워서 잠자는 수준으로 쉽다. 애초에 디자인/예술 전공 학생들은 자기 전공 하기에도 바쁜데 전혀 다른 분야를 얕게라도 접하니 어려워 하는 것이 당연하다. 반대로 전자공학 전공자들에게 디자인/예술 개론실습과목 들으라고 해도 카오스가 벌어지듯이...

공대 졸업 작품으로도 유용한데, 이 경우 학과의 성향과 교수의 눈치를 잘 봐둬야 된다. 아무래도 아두이노가 비전문가들이 쉽게 프로젝트를 완성할 수 있도록 만들어진 물건이다 보니 일부 학과에서는 시선이 곱지 않은 편이다. 특히 전자공학 분야에서 일부 보수적인 교수들은 아두이노를 써서 졸업 작품을 제작하는 경우 통과시키지 않기도 하며 심한 경우에는 아두이노를 쓰지 말라는 암묵적인 분위기를 조성하기도 한다. 다만 교수 입장에서는 학생들을 최대한 빨리 졸업시키는 것이 목적이기 때문에 너무 못 만들지 않는 이상 아두이노 썼다고 해서 태클을 걸거나 하지 않는 것이 일반적이니 안심해도 된다. 아두이노를 사용할 수 없다고 할 시 학과나 지도교수가 미리 공지를 할 것이다. 하지만 아두이노가 프로그램이 쉽다고 해서 프로젝트 자체가 쉽다는 말은 아니다. 물론 8bit, 16MHz 프로세서인 특성상 성능적인 제약이 심하기 때문에 ADC/DAC 같이 폴링 레이트가 높은 센서나 부품을 사용한다던지 등의 응용은 고급 컨트롤러에 비해 불리한 것은 맞다. 그래도 단순한 자이로센서나 가속도센서같이 아두이노로도 충분히 작동이 가능한 부품을 응용한 로봇들도 학부생 수준에서 봤을때 충분히 훌륭한 작품이 될 수 있다. 로봇공학 쪽에서는 아두이노 사용을 적극적으로 하되, 아두이노를 활용하여 더욱 뛰어난 로봇을 만들도록 하는 것을 중요시한다.[19] 사실 개발환경이 상향 평준화된 상태에서 프로그래밍 난이도 자체는 컨트롤러의 종류와 무관하게 대동소이하며, 작품이 요구하는 사양을 해당 컨트롤러가 충족시킬수만 있으면 된다. 사실 졸업작품 평가에 있어서는 작품의 기능의 복잡도와 그 복잡한 기능들을 얼마나 완벽하게 구현했는지가 중요하지 컨트롤러의 종류가 중요한 게 아니다. 아두이노를 사용하지 말라고 한 것은 너무 간단한 작품을 만들지 말라는 걸 돌려 말한 것일 가능성이 크다. 그래서 학부생 수준에서는 충분히 도전적인 작품을 만들겠다고 하면 쓰게 해줄 가능성도 있다.

여기서 더 나아가고 싶다면 AVR MCU를 배우는 것을 추천한다. MCU 프로그래밍은 아두이노에 비해 심각하게 어려운 편은 아니다. 대부분의 전자공학 관련과에 MCU 관련된 강의가 못해도 1개 이상은 있을 테니 써 먹기도 좋다. 사실 아두이노 개발환경 자체도 AVR 개발 환경을 지원하기 때문에 그냥 AVR 프로그래밍 하는 식으로 아두이노를 프로그래밍 해도 문제가 없다. 비슷하게 타사 MCU를 아두이노 부트로더에 올려 사용 중이라면 타사 마이크로컨트롤러를 프로그래밍하는 것처럼 할 수 있다. 물론 HAL 라이브러리같은 외부 라이브러리 지원은 기대하지 않는 게 좋다.

2021년부터 전자산업기사 실기과제가 기존의 회로구성에서 아두이노 제어로 바뀌었다.

아두이노와 관련된 교육과정이 존재하는 대학은 아래와 같다. 아래에 언급되지 않은 학과들도 개설이 많이 된다. 특히 전자공학과와 기계공학과, 로봇공학과 등지엔 십중팔구 있다.
이외에도 문지문화원 사이, 메이크프로세싱, 아트센터 나비, 앨리스온 같은 사설 기관에서도 교육하기도 한다.

2012년부터 현재인 2015년에도, 삼성에서 이것을 기반으로해서 개조시킨 버전의 아두이노를 사용하여 삼성 주니어 소프트웨어 아카데미의 일환인 소프트웨어 교육을 초중고 학교에서 실시하고 있다. 삼성전자는 아두이노 기반의 IoT 플랫폼인 스마트싱스를 차세대 먹거리로 보고 있기 때문에 지원이 빵빵한 편.

8. 상표권 분쟁

한때 Arduino 브랜드는 미국 안에서만 쓰이고 미국 밖에서는 2015년 5월에 발표된 자매 브랜드인 Genuino 브랜드가 쓰인 적이 있는데, 이는 상표권 분쟁에 따른 결과였다.

2015년 7월 경, 해외에서 판매되는 아두이노 제품을 위한 브랜드인 Genuino가 발표되고, Arduino Leonardo 등의 몇몇 제품이 단종되었다. 당시에는 돈을 더 벌기 위한 것이 아니냐는 논란이 있었지만, 사실은 복잡한 사정이 있었다.

아두이노는 2008년 설립한 Arduino LLC가 상표권을 가지고, 실제 생산은 타 업체에서 진행하는 방식으로 제품 판매를 이어왔다. 그런데 2008년 말 창업자 중 한명인 Gianluca Martino의 회사인 Smart Projects에서 아두이노의 상표권을 몰래 이탈리아에서 등록하며 문제가 되기 시작한다. 당시에는 아무도 이 사실을 몰랐으나, 이 사실은 Arduino LLC에서 미국 이외 지역에 상표권 등록을 시도할때 이탈리아에서 이미 상표권이 등록되었다는 것이 밝혀지며 드러난다. Arduino LLC는 즉시 상표권 협상을 진행했으나 결렬되었다. 이후 Gianluca Martino는 회사를 Federico Musto에게 매각했는데 매각 이후 Smart Projects는 로열티를 내는 것을 거부하고 사명도 Arduino SRL로 바꾸기에 이른다.[22] 결국 Arduino LLC는 Arduino SRL을 고소하나 큰 진전은 없었고, 결국 2015년 7월 Arduino LLC는 미국외 지역 판매를 위해 Genuino라는 브랜드를 등록하게 된다.

이렇게 끝나지 않을 것 같던 분쟁은 Arduino LLC와 Arduino SRL간 합의로 종결된다. 2016년 10월 World Maker Faire에서 양측 회사 대표가 나와 Arduino LLC와 Arduino SRL이 앞으로는 "아두이노 홀딩(Arduino Holding)"이라는 이름으로 합병될 것이며, 소프트웨어 등 지원은 "아두이노 재단(Arduino Foundation)"에서 진행할 예정이라고 발표했다.

이후 아두이노 창업자 4명의 회사인 BMCI가 지분의 49%, Arduino SRL의 대표인 Musto가 50%, Gianluca Martino가 지분 1%를 가진 회사 Arduino AG를 설립하며 아두이노 브랜드에 대한 모든 권리를 가지게 되며, 그와 별도로 아두이노 재단이란 비영리 단체을 설립해 아두이노 IDE의 개발을 맡게 된다.

2017년에는 BMCI가 Arduino AG의 나머지 51%의 지분까지 모두 인수하며 완전히 자회사로 편입시킨다. 그와 동시에 홈페이지 또한 arduino.cc로 통합되었고 이후 arduino.org는 완전히 폐쇄되었다.[23]

9. 기타

서울 2033에서도 아이템으로 등장한다.

10. 관련 문서



[1] 아두이노 공식사이트(arduino.cc) - What is Arduino?https://www.arduino.cc/en/Guide/Introduction[2] 하지만 AVR 프로그래밍에 자신이 있다면 아두이노 코드를 작성하는 곳에 직접 해당 레지스터의 이름을 쓰며 설정해나갈 수 있다. 이를 통해 16비트 타이머, 고해상도 PWM 등 일반적으로 아두이노 기본 라이브러리가 제공하지 않는 기능에 접근할 수 있다. 예시[3] 국내에서는 약 만원 후반 ~ 2만원 정도 가격대에 팔린다.[4] HC-06 등[5] ESP8266 등[6] 흔하게는 미니, 마이크로 호환보드에서부터 그냥 ATmega328P에 아두이노 부트로더를 올린 모델이나 QFP형태로 만든 것도 찾아볼 수 있다.[7] UNO는 2.54mm(UNO는 0.1inch, UNO Mini는 0.05inch)[8] ATMega2560을 채용한 모델. 메모리 256kb, 54 디지털 I/O핀, 16 아날로그 입력핀을 갖춘 모델로 Uno 같은 레퍼런스 보드보다 많은 양의 입출력이 필요할 때 사용하는 모델이다.[9] 각 GPIO 에 TI 사의 로직레벨 쉬프터가 중간에 연결되어 있어서 5V 인가에 전혀 문제가 없다.[10] 인텔의 Curie 칩이 단종되면서 함께 Arduino 101도 단종되었다.[11] 최신 보드 주제에 프로그램 메모리 60Kb, RAM 8Kb, 클럭 16Mhz가 줄었고 PWM 지원 핀이 2핀 줄어든 4개라 성능이 줄었다고 생각할 수 있지만, 최신 아키텍처가 도입된 칩인 관계로 단순 연산 성능은 2배 이상이다. 이건 101을 입문용 보드, Zero를 중상급자용 보드로 디자인했다는 사실을 고려해야 한다. 예를 들어 Zero에만 있는 고급 디버깅 기능 등이 있다.[12] 물론 UNO와 비슷하다는 것이지 똑같은 건 아니라서 고급 기능에 관심이 없다면 그냥 UNO로 입문하는 게 더 좋다.[13] Uno R3와 핀배열과 보드크기는같고, 프로그래밍 포트가 C타입단자로 바뀌었다. 그리고 핀당 출력전류가 20mA에서 8mA로 줄었다.[14] STM32로 유명한 STMicroelectronics의 NUCLEO 시리즈 개발보드와 NUCLEO 확장보드가 대표적이고 이외에도 타사 제품들 또한 우노 레이아웃의 자사 개발보드를 내놓는 중이다.[15] Github 내 링크를 아두이노 IDE에 보드 매니저에 추가할 경우 해당 MCU 보드 기반으로 개발할 수 있다. 참고로 STM32는 유저제작 부트로더 말고도 ST에서 내놓은 공식 부트로더 또한 존재한다.[16] 대문자로 시작[17] 요즘에는 아예 아두이노 IDE 내부에 예제로 내장되어있다.[18] 거기다가, Uno와 똑같은 크기이고 디버거도 박혀있으며, 공식은 아니지만 미니 보드도 있다![19] 사실 로봇공학은 학부 수준에서 쉽게 접근하기 힘든 매우 어려운 분야이다. 로봇 응용은 둘째치고 DC 모터 하나 제어하는데도 생각보다 오랜 시간이 걸린다.[20] 융합소프트웨어학과에서 AI융합대학 지원사업으로 인해 학과 및 교육과정 개편으로 학과명이 변경됨[21] 2021년 신입생부터 컴퓨터공학부로 이름 변경[22] 이때 사이트 또한 Arduino.org로 분리되었다.[23] 현재 arduino.org로 접속을 시도하면 arduino.cc로 리다이렉트된다.[24] 참고로 CodeBlocks에는 <arduino.h>를 필수적으로 적고 시작한다. 필수는 아니나 Arduino IDE에서도 해당 전처리문을 써도 된다.