아두이노

From Hidden Wiki
Revision as of 19:35, 7 November 2018 by Jimmy (talk | contribs) (Created page with "분류:SBC분류:Arduino * 상위 문서: 컴퓨터 관련 정보, 프로그래밍 언어, 예술 관련 정보, 미디어아트 [목차] http://a...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

분류:SBC분류:Arduino

* 상위 문서: 컴퓨터 관련 정보, 프로그래밍 언어, 예술 관련 정보, 미디어아트

[목차]

[홈페이지(arduino.cc)] [홈페이지(arduino.org)][* 현재 접속시 [[1]]로 리다이렉트된다.]

개요

||

<rowbgcolor=#FFF> 파일:external/arduino.cc/logo.png || 파일:GenuinoTile-01.png || AVR 기반의 마이크로컨트롤러 개발환경인 Wiring에서 파생한 프로젝트다. 영어로 '아두이노', 이탈리아어로 '아르두이노'라고 읽는다. 영어권의 영향이 강한 국내에서 많이 사용되는 명칭은 아두이노. 이탈리아어로 --강한 친구 육군-- '강력한 친구'라는 뜻이라는 듯. 2005년 이탈리아의 Massimo Banzi와 David Cuartielles가 처음 개발하였다. 개발자 Massimo Banzi가 직접 저술한 <Getting Started with Arduino>(번역명 <손에 잡히는 아두이노>)를 필두로 많은 입문서들이 나와 있다. 비관련자를 위해 쉽게 설명하자면, 간단한 초소형 컴퓨터 기판에 이런저런 기능을 할 수 있도록 프로그래밍을 하여 다양한 기계나 작업, 작품에 써먹는 경우가 많은데, 그것들 중에서도 교육에 특화되어 특히 더 쉬운 사용법을 자랑하는 시스템이라 보면 간단하다. 아두이노와 관련된 작품들을 보고싶다면 [[2]]을 추천한다. 많은양의 아두이노 작품들을 볼 수 있다.--다만 다른것을이용한 작품들도 있기는하다.--

Genuino

현재 Arduino 브랜드는 미국 안에서만 쓰인다. 미국 밖(유럽 등)에서는 옆에 있는 Genuino 브랜드가 쓰이며, 이는 2015년 5월에 발표된 자매 브랜드이다. --그러나 국내에서는 Genuino의 인지도가 바닥이다.--

2015년 7월 경, 해외를 위해 다른 제조사에서 제작을 하고 그 이름을 Genuino로 정했다며 브랜드 발표 후에 Arduino Leonardo 등의 몇몇 제품을 단종시킨 일과 겹쳐져 사용자들에게 돈을 더 벌기 위해 그러는 것이냐며 쓴소리를 듣고 있다...라고 적혀 있었는데, 사실은 훨씬 복잡한 사정이 있다.

Massimo Banzi의 동업자 친구가 메인 제조회사(현 Arduino.cc)를 맡고 있었는데, 그쪽에서 만들면 창립자 Banzi의 단체 Arduino LLC에 아두이노 상표명 개런티를 지불하고 판매하는 식이었는데 그 친구가 몰래 아두이노의 근원지인 이탈리아에서 Arduino 상표명을 선점해버렸다는게 드러났다. 다 사업을 위해서라며 Banzi를 비롯한 다른 동업자들을 안심시킨 그 친구는 이탈리아 밖 지역의 아두이노 원래 상표권의 갱신 시기가 되자 개런티 지불을 그만두고 소송을 걸어서 이탈리아에 상표권이 있으면 유럽연합에 다 적용되는거 아니냐는 논리로 유럽 전역의 Arduino 상표권을 뺏어가버렸다(...)

[[3]]와 [[4]] 양사가 합의를 했으며, 앞으로는 "아두이노 홀딩(Arduino Holding)"이라는 이름으로 합병하고 진행할 것이며, 소프트웨어 등 지원은 "아두이노 재단(Arduino Foundation)"에서 진행할 예정이라고 하며, 이것들은 내년부터 시행할 예정이라고 한다.

현재 합병이 된 것으로 보인다. 공동 IDE가 업데이트되었고, [[5]]측 사이트로 가 보아도 [[6]]쪽 보드들을 판매하고 있다.

2017년 10월 확인된 것으로는 [[7]]에 접속시 리다이렉트 안내 페이지가 나오며 몇 초가 지난 뒤 [[8]] 사이트로 리다이렉트된다. 언제부터 그랬는지는 추가바람.

하드웨어

||<rowbgcolor=#FFF>
<width=250px> width=100% ||<width=250px> width=100% || 위 사진의 보드는 우노 R3 버전으로 2013년 기준 레퍼런스 보드이자 가장 보편적으로 사용되는 보드다. 사용하는 마이크로컨트롤러는 ATMega328P로 16MHz로 동작하고 프로그램 저장용 플래시 32kb를 내장한 프로세서이다. 아두이노는 주로 Atmel사의 AVR을 사용하는 오픈소스 마이크로컨트롤러 보드이다. 아래 보드들 가운데 사용된 칩 이름 앞에 AT가 들어간 것들이 바로 그것. 임베디드 개발 경험이 전혀 없는 사람을 위해 개발된 교육용 플랫폼이기 때문에 프로그램을 작성하고 보드에 프로그램을 올리는 과정을 단순화하여 다루기 쉽게 되어 있다. 버전에 따라 조금씩 다르지만 아두이노 보드와 개발 환경은 대개 다음과 같은 모습이다. 상술하였지만, 미국에서는 아두이노(Arduino)로 불리며, 미국 밖에선 제누이노(Genuino)로 불린다. 자세한 내용은 Arduino/하드웨어 문서 참조. * [보드] * 엔트리 레벨 * width=30% [[9]] - ATmega328P 사용 * width=30% [[10]] - ATmega32u4 사용 * width=30% [[11]] - 인텔 Curie 사용 * width=30% [[12]] - ATmega32u4 사용 * width=30% [[13]] - ATmega32u4 사용 * width=30% [[14]] - ATmega32U4 사용 * width=30% [[15]] - ATmega168 또는 ATmega328 사용 * width=30% [[16]] - ATmega328 사용 * 향상된 성능 * width=30% [2560] - ATmega2560 사용 * width=30% [[17]] - ATSAMD21G18, 32-Bit ARM Cortex-M0+ 사용 * width=30% [[18]] - AT91SAM3X8E 사용 * width=30% [ADK] - ATmega2560 사용 * width=30% [[19]] - ATmega168 또는 ATmega328 사용 * width=30% [[20]] - ATSAMD21G18, 32-Bit ARM Cortex-M0+ 사용 * width=30% [PRO] - ATSAMD21G18, 32-Bit ARM Cortex-M0+ 사용 * width=30% [[21]] - SAMD21 Cortex-M0+ 32bit low power ARM MCU 사용 * width=30% [미니] - ATmega328 사용 * IoT * width=30% [[22]] - ATmega32U4,Atheros AR9331 사용 * width=30% [[23]] - ATmega328 사용 * width=30% [[24]] - Atheros AR9342,SAMD21G18 사용 * width=30% [101] - Atheros AR9331,ATmega32u4 사용 * width=30% [ETH] - ATmega32u4 사용 * width=30% [1200] - SAMD21 Cortex-M0+ 32bit low power ARM MCU 사용 * width=30% [[25]] - SAMD21 Cortex-M0+ 32bit low power ARM MCU 사용 * width=30% [미니] - Atheros AR9331,ATmega32u4 사용 * 웨어러블 * width=30% [[26]] - ATtiny85 사용 * width=30% [아두이노 USB] - ATmega32u4 사용 * width=30% [아두이노 메인 보드] - ATmega168 또는 ATmega328V 사용 * width=30% [아두이노 심플] - ATmega328 사용 * width=30% [아두이노 심플 스냅] - ATmega328 사용 * [보드] * [ARTIK] * width=30% [갈릴레오 Gen2] - 인텔 쿼크SoC X1000 사용 * width=30% [에디슨] 인텔 22nm ATOM 2코어 500MHz, MCU 100MHz 인텔 쿼크 프로세서 사용 * 단종 * width=30% [[27]] - ATmega328P 사용 * width=30% [갈릴레오(인증보드)] 인텔 쿼크 SoC X1000 사용 * [] * [보드] * 초급 * width=30% [와이파이] - ESP8266,ATmega328 사용 * 중급 * width=30% [[28]] - ESP8266,Nordic nRF52832,STM32F103RBT6 사용 * 고급 * width=30% [OTTO] - ESP8266,STM32F469BI 사용 * 단종 * width=30% [프로] - ATSAMD21G18, 32-Bit ARM Cortex-M0+ 사용

호환, 파생 제품들

오픈소스 하드웨어인 관계로 여러회사들에서 자체적으로 제작한 보드들을 eBayAliexpress 등에서 내놓고 있으며 이중에는 기능이 추가된 버전부터 시작해서 여러 버전들이 있다. 간단한 선에서는 그냥 저렴하게 만든 중국제들 부터 시작해서[* 진짜로 중국제 아두이노 보드는 거의 1만원이 안된다. 전자 상가에서는 호환 보드라고 말하면 준다.] [* 중국제 우노보드의 경우에는 추가적으로 핀을 연결할 수 있게 만들어져 있어 찾는 사람들도 꽤 많다.] 보드에 블루투스[* HC-06 등], 와이파이[* ESP8266 등] 등의 통신모듈을 내장시킨 것들은 흔하며 초소형화[* 흔하게는 미니, 마이크로 호환보드에서부터 그냥 ATmega328P에 아두이노 부트로더를 올린 모델이나 QFP형태로 만든 것도 찼아볼수 있다]된 것들도 볼 수 있다. 대표적으로 라떼판다가 있다.

소프트웨어 개발 환경

Arduino/소프트웨어 개발 환경 참고.

버전

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

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

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[* ATMega2560을 채용한 모델. 메모리 256kb, 54 디지털 I/O핀, 16 아날로그 입력핀을 갖춘 모델로 Uno 같은 레퍼런스 보드보다 많은 양의 입출력이 필요할 때 사용하는 모델이다.]의 후속모델에 가깝다. ARM 기반이니만큼 프로세서 성능은 훨씬 고성능이다. 다만 아날로그 입력/PWM 출력이 12핀으로 MEGA보다 약간 적다. DAC 두 개와 CAN 핀--쓸 수 있다고는 안 했다.-- 때문에 그렇다. 총 4개가 줄어든 셈. 동작 전압이 다른 보드와 다른 3.3V이므로 I/O 핀에 5V를 인가하면 핀이 나가는 수가 있으니 주의. 일반적인 아두이노 보드의 동작전압은 5V이다. 3.3V는 FTDI에 내장된 레귤레이터나, UNO 같이 FTDI가 없으면 온보드 레귤레이터로 출력한다.

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

2014년 5월 15일 아두이노 Uno의 후속으로 아두이노 Zero가 발표되었다[[29]]. 가장 큰 변경점은 MCU가 기존의 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를 인가해도 핀이 손상되지 않는다.[* 각 GPIO 에 TI 사의 로직레벨 쉬프터가 중간에 연결되어 있어서 5V 인가에 전혀 문제가 없다.] 가격도 국내에서 4만원 후반~5만원 초중반대의 가격. 라즈베리 파이와 비슷하다. [* 최신 보드라는 주제에 프로그램 메모리 60Kb, RAM 8Kb, 클럭 16Mhz가 줄었고 PWM지원 핀이 2핀 줄어든 4개라 성능이 줄었네? 할수 있지만 최신 아키텍처가 도입된 칩인 관계로 단순 연산성능은 2배 이상급이다. 이건 101을 입문용 보드, Zero를 중상급자용 보드로 디자인했다는 사실을 고려해야한다. 예를 들어 Zero에만 있는 고급 디버깅 기능 등이 있다.] 101은 구조상 프로세서가 2개 붙어있어서 한쪽은 RTOS 서비스를 돌리고 다른쪽 코어는 유저의 코드와 라이브러리를 돌린다. 여기에 둘을 연결하는 메일박스를 두고 양측이 필요한 작업요청을 주고받는 메시지패싱 구조를 가지고 있다. 이때 유저는 OS와 메모리를 나눠 쓰기 때문에 느낌상 메모리가 적어보이게 된다. 그러나 OS가 제공하는 편의성이 괜찮아서 큰 손해는 아니다. 다만 이 OS와 라이브러리는 아직 문서와 예제가 부실해서 문서가 없으면 소스코드를 보면 된다는 정도의 기본기는 있어야 본격적으로 응용을 해볼 수 있는 상태라는게 문제. 이렇게보면 이게 무슨 입문용이냐 싶겠지만 어차피 기본문법의 스케치라면 똑같게 돌아가는 것이고, 5V 입력 핀이 달려있어서 태워먹을 위험없이 UNO용 회로들을 시도해볼 수 있으며, 32비트 보드 중에는 가격도 적절해서 입문용이라고 해도 별 문제는 없다[* 물론 UNO와 비슷하다는 것이지 똑같은건 아니라서 고급 기능에 관심이 없다면 그냥 UNO로 입문하는게 더 좋다.]. 한편 2017년 들어 인텔의 저전력 하드웨어가 지속적으로 단종되는 가운데 101도 단종 절차에 들어갔다.

주의사항

앞서 언급했듯이 성능이 떨어지기 때문에 개발과정에서 생각 외의 부분이 장비를 정지시키는 경우가 있다. 컴파일까지 잘 해놓은 게 정작 보드에서는 장비가 멈춰버리는 경우가 있으니 개발과정에서 문제가 생겼다면 마지막으로 추가한 내용들을 살펴보며 코드의 내용을 최대한 다이어트 시켜보자. String값 처리하는 부분 때문에 멈췄다거나 하는 식으로 다른 데에서는 문제가 없을 만한 부분이 문제를 일으키는 경우가 있다. 한 예로 개발 도중에 동작 테스트를 위해 추가한 Serial.print();문 몇 줄을 지웠는데 추가한 코드들이 갑자기 정상적으로 돌아가는 경우도 있다.~~어?~~[* C에서 함수가 중복 호출될 경우 스택오버플로우를 일으키면서 장비를 정지시킬 수 있다. 마이크로 컨트롤러같이 메모리 리소스가 크게 제한되는 장치에서 프로그래밍을 할 경우 항상 주의해야 하는 부분. --애초에 deploy판에 디버그용 print를 안 지우고 보내는것 자체가 기본이... 물론 하드웨어 시리얼로 블루투스 통신을 한다던지 할 때는 쓸 수도 있다.--]

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

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

한국 내 동향

공대 졸업작품을 앞둔 학생의 한줄기 빛.~~이라곤 하는데 왠만하면 그냥 AVR 배워라[* 16진수하고 씨름하고 싶지 않다면 모를까 사실 MCU프로그래밍은 아두이노에 비해 심각하게 어려운편은 아니다. 무엇보다 대부분의 전자공학 관련과에 MCU관련된 강의가 못해도 1개 이상은 될텐데 안써먹는게 더 이상한거다.~~하지만 이거도 못해서 교수님들 한테 프로그래밍 부탁하는 사람이 꼭 있다.~~ ]~~

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

아두이노와 관련된 교육과정이 존재하는 대학은 아래와 같다. (가나다순)

* 경남대학교 컴퓨터공학과
* 경운대학교 모바일공학과, 컴퓨터공학과
* 고려대학교 디자인조형학부
* 계원예술대학교 융합예술과, 융합예술학과(심화과정)
* 동서대학교 컴퓨터공학부
* 동양미래대학교 전기전자통신공학부
* 두원공과대학교 메카트로닉스과
* 대진대학교 컴퓨터공학과
* 부산대학교 전기컴퓨터공학부, 의과대학(?)
* 서강대학교 Art & Technology 전공 "Physical Computing Studio"
* 서강대학교 전자공학과
* 서경대학교 컴퓨터공학부
* 서울대학교 연합전공 정보문화학
* 서울과학기술대학교
* 서울예술대학교
* 성공회대학교
* 성균관대학교
* 숭실대학교 글로벌미디어학부, 컴퓨터학부
* 신한대학교 기계자동차융합공학과
* 아주대학교 미디어학과
* 영남대학교 로봇기계공학과
* 영남이공대학교 전자정보계열
* 연세대학교 원주캠퍼스 디지털아트학전공
* 인덕대학교 메카트로닉스공학과
* 인천가톨릭대학교 시각디자인학과
* 인하대학교 전기공학과, 전자공학과
* 전남대학교 컴퓨터공학과
* 전북대학교 소프트웨어공학과
* 중앙대학교 사회기반시스템공학부, 융합공학부 디지털이미징전공
* 창원대학교 문화테크노학과
* 청강문화산업대학교 모바일스쿨 스마트미디어전공
* 추계예술대학교
* 한국과학기술원 산업디자인학과
* 한국외국어대학교 컴퓨터전자시스템공학부
* 한국예술종합학교 조형예술과, 멀티미디어영상과, 음악테크놀러지과
* 한국항공대학교 소프트웨어학과
* 한국해양대학교 전자통신공학과, 해사IT공학부
* 한남대학교 산업경영공학과
* 홍익대학교 시각디자인학과
* 홍익대학교 디지털미디어디자인학과
* U1대학교 미디어컨텐츠학과
* 조선대학교 디자인공학과
* 수원과학대학교 컴퓨터정보과
* 경희대학교 물리학과
* 상지대학교 건설시스템공학과
* 공주대학교 컴퓨터공학부

이외에도 문지문화원 사이, 메이크프로세싱, 아트센터 나비, 앨리스온 같은 사설 기관에서도 ~~간간이~~ 교육하기도 한다.

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

관련 문서

* 컴퓨터 관련 정보
* 프로그래밍 언어
* 예술 관련 정보
* 미디어아트
* MAX/MSP
* Processing
* vvvv
* Moppy
* 라즈베리 파이(컴퓨터)
* PCB
* C언어[* 아두이노 프로그램이 C언어로 개발된것이다.--사실은 C++로 개발된 부분도 있다.--  아두이노 헤더파일을 개발할때 c언어,c++가 동원된다. 참고로 CodeBlocks 에는 #include<arduino.h>를 사용한다는점을 알고있자.]