아두이노(Arduino)란 사물인터넷(IoT) 기기를 만들기 위하여 사용하는 오픈소스 기반의 컴퓨팅 플랫폼을 말한다. C, C++ 등 다양한 언어를 사용하여 원하는 동작을 하도록 코딩을 한 후 기계어로 컴파일하여 마이크로컨트롤러(microcontroller) 보드에 업로드하면, 아두이노가 작동한다. 아두이노는 가격이 저렴하고 리눅스(Linux), 윈도우(Windows), 아이오에스(iOS) 등 여러 운영체제에서 작동하며, 오픈소스 기반이라는 장점이 있다.
개요
아두이노(Arduino)는 오픈소스를 기반으로 한 단일 보드 마이크로컨트롤러(Microcontroller)로 완성된 보드와 관련 개발 도구 및 환경을 말한다. 2005년 이탈리아의 IDII(Interaction Design Institutelvera) 에서 하드웨어에 익숙지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있게 하려고 고안된 아두이노는 처음에 AVR을 기반으로 만들어졌다.
아두이노는 통합 개발 환경 IDE를 제공하며, 소프트웨어 개발과 실행코드 업로드도 제공한다. 또한 어도비 플래시(Adobe Flash), 프로세싱(Processing) 과 같은 소프트웨어와 연동할 수 있다. [1]
아두이노는 다양한 스위치나 센서로부터 입력 값을 받아들여 LED나 모터와 같은 전자 장치들로 출력을 제어함으로써 환경과 상호작용이 가능한 물건을 만들어 낼 수 있다. 예를 들어 단순한 로봇, 온습도계, 동작 감지기, 음악 및 사운드 장치, 스마트 홈 구현, 유아 장난감 및 로봇 교육 프로그램들의 다양한 제품들이 아두이노를 기반으로 개발 가능하다. 또한 아두이노는 회로가 오픈소스로 공개되어 있어 누구나 직접 보드를 만들고 수정할 수 있다. [2]
이런 아두이노를 활용한 예시로 장난감 회사 레고같은 경우 아두이노와 로봇 장난감을 활용한 교육 프로그램을 운영하고 있다.
특징
- 아두이노는 특별한 공부나 지식이 없어도 마이크로컨트롤러를 쉽게 동작시킬수 있다.
- 구성하는데 비용이 매우 저렴하고 단순하지만 다양한 소프트웨어와 연동이 가능해 뛰어난 호완성을 가진다.
- Windows를 비롯한 Mac OS X 및 Linux와 같은 다양한 OS환경을 지원한다.
- 오픈소스를 제공함으로서 많은 사용자에 의해 각종 회로도나 펌웨어 소스가 웹상에서 다량 공유되어 있어 쉽게 찾을 수 있다.
- 현존하는 AVR제품군중 뛰어난 기능과 저렴한 공급가로 교육용, 제작용, 예술가용 등으로 많이 사용되고 있다.
- 54핀 디지털입출력과 16개의 아날로그 입력이 가능하다.
종류
- 아두이노 우노 (R3)
가장 보편적으로 사용하는 보드이다. 우노보드는 Duemilanoves 와 같은 프로세서를 사용하지만 USB 통신을 위한 FTDI칩을 기본으로 내장하고 있어 별도의 변환기 없이 PC등에 USB로 연결해서 사용이 가능하다. 5V, 3.3V 모두 지원하기 위해 레귤레이터가 내장되어 있고, USB 전원을 사용 가능하며 외부 입력 전원도 지원한다. 안드로이드 표준 보드로 핀 배열 등이 우노를 기준으로 맞춰져 있으므로 확장 쉴드 등을 사용하는데 최적화 되어있어 처음 아두이노를 접할 때 가장 많이 사용한다.
- 아두이노 레오나르도 (Leonardo)
우노 보드와 생김새가 비슷하지만 성격이 다른 보드로 ATmega32u4 칩을 탑재하고 있다.
ATmega32u4 칩은 내부에 USB 통신을 위한 기능을 갖추고 있기 때문에 우노 보드와 같이 별도의 변환기를 필요로 하지 않는다. 우노 보드에서는 PC와 serial로 통신하기 위해 디지털1번(D0), 디지털2번(D1)핀을 사용하는데 이 보드에서는 필요 없어 디지털1번(D0)핀과 디지털2번(D1)핀을 다른 모듈과의 serial 통신에 사용할 수 있다. 별도의 serial 통신용 핀이 더 생겨 고속으로 동작하는 통신 모듈을 함께 사용할 때 유리하다.
그 밖에도 핀의 수가 우노 보다 많고 특수한 기능을 담당하는 핀이 우노와는 전혀 틀리기 때문에 충분한 메뉴얼을 습득하고 사용해야 한다.
- 아두이노 나노 (Nano)
우노보드의 소형화 버전으로 우노보드와 같은 ATmega328 칩을 사용하여 우노의 기능을 그대로 제공하고 mini-B 타입 USB도 내장되어 있다. 우노보드와 같은 칩을 사용하여 사용방법도 동일하고 라이브러리도 그대로 쓸 수 있다.
나노보드는 직접 USB로 업로딩이 가능하며 3.3V, 5V 전원 핀을 가지고 있어 외부 센서의 전압을 맞추기 간편하다. 우노보드와 같이 브레드보드에 직접 꽂아서 사용하면 회로 구성하기도 편리해 작은 우노, 브레드보드용 우노 라고 불린다.
- 아두이노 마이크로(Micro)
나노보드가 우노보드의 소형화 버전이라면, 마이크로보드는 레오나르도 보드의 소형화 버전이다. 이 보드역시 레오나르도 보드처럼 ATmega32u4칩을 탑재하고 있기 때문에 특징도 레오나르도 보드와 거의 비슷하다.
나노 보드와 비교할 때 핀수가 훨씬 많기 때문에 긴 사각형 형태를 띄고 있으며, 나노보드처럼 브레드보드 친화적인 보드이고 9V 배터리를 통해 휴대용으로 제작이 가능하다.
- 아두이노 메가(Mega)
우노보드의 확장 버전으로 우노보드의 약 2배 크기이다. 많은 핀을 가지고 있으며 더 빠르고 저장용량도 더 많이 가지고 있어 다른 보드에 비해 훨씬 많은 기기와 통신할 수 있는 고성능 보드이다. 우노보드로 처리하기 힘든 멀티미디어 관련 작업, 로봇이나 이미지, 음성, 영상 등과 같은 복잡한 제어가 필요한 작업에 사용된다.
참고 자료
같이 보기
이 아두이노 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
개발 : 프로그래밍 □■⊕, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
프로그래밍 언어
|
ASP • C 언어 • C++ • C# • CSS • D 언어 • HTML • HTML5 • JSP • PHP • R • XHTML • XML • XSLT • 고(Go) • 고급언어 • 기계어 • 델파이 • 러스트 • 루비 • 루아 • 리액트 • 리퀴디티 • 무브 • 미켈슨 • 베이직 • 브이비스크립트 • 비주얼 C++ • 비주얼베이직(VB) • 비주얼베이직닷넷(VB.NET) • 솔리디티 • 스몰토크 • 스위프트 언어 • 스칼라 • 스크립트 언어 • 알골 • 어셈블리 • 언리얼스크립트 • 얼랭 • 에이잭스(Ajax) • 엠에프씨(MFC) • 오브젝티브-C • 오브젝트 파스칼 • 오카멜 • 웹어셈블리(WASM) • 이와즘(eWASM) • 자바 • 자바스크립트 • 저급언어 • 제이슨(JSON) • 제이쿼리(jQuery) • 카멜 • 코볼 • 코틀린 • 콜드퓨전 • 타입스크립트 • 파스칼 • 파워스크립트 • 파이썬 • 펄(Perl) • 포트란 • 프로씨(Pro-C) • 피엘에스큐엘(PL/SQL) • 피엘원(PL/I) • 하스켈
|
|
개발방법론
|
CBD 개발방법론 • EA • 구조적 개발방법론 • 객체지향 개발방법론 • 라이브러리 • 람다 아키텍처 • 모듈 • 모듈화 • 벤치마킹 • 소프트웨어 개발방법론 • 스크럼 • 스프린트 • 아키텍처 • 아키텍트 • 애자일 • 웹개발방법론 • 정보공학 개발방법론 • 컴포넌트 • 테일러링 • 템플릿 • 폭포수 모델 • 프로젝트 • 프로토타입 • 피드백
|
|
코딩
|
EUC-KR • UTF-8 • 값 • 글루웨어 • 디버깅 • 디코딩 • 마크업 • 버그 • 부트스트랩 • 세이브포인트 • 소스코드 • 시큐어코딩 • 아스키 • 액티브엑스 • 오픈소스 • 유니코드 • 인코딩 • 재컴파일 • 주석 • 컴파일 • 컴퓨터 프로그램 • 코드 • 코딩 • 태그 • 테스트 • 테이블 • 텍스트 • 파싱 • 퍼블리싱 • 퓨니코드 • 하드코딩 • 하이퍼링크 • 하이퍼텍스트
|
|
프로그래밍
|
C 명령어 • 객체 • 객체지향 • 객체지향 프로그래밍 • 거짓 • 관계연산자 • 기본형 변수 • 널 • 논리 • 논리연산 • 논리연산자 • 다중상속 • 다형성 • 대입 • 대입문 • 대입연산자 • 더블 • 도스 명령어 • 디폴트 • 레지스터변수 • 루프 • 리눅스 명령어 • 리턴 • 메모리 주소 • 메소드 • 멤버 • 명령문 • 명령어 • 무한루프 • 문자 • 문자열 • 바이트 • 반복문 • 배열 • 변수 • 분기 • 분기문 • 불린 • 브레이크 • 비교연산자 • 비트연산자 • 산술연산자 • 상속 • 상수 • 생성자 • 선언 • 선언문 • 설정자 • 속성 • 스위치 • 스태틱 • 시프트연산자 • 실행 • 실행문 • 어노테이션 • 에코 • 역참조 • 연산 • 연산문 • 연산자 • 오버로딩 • 오버라이딩 • 외부변수 • 윈도우 명령어 • 유닉스 명령어 • 인스턴스 • 인스트럭션 • 인클루드 • 인터페이스 • 임포트 • 입력 • 입력문 • 입출력 • 입출력문 • 자료형(데이터 타입) • 자바 명령어 • 자바 예약어 • 자바 컬렉션 • 전역변수 • 접근자 • 접근제어자 • 정보은닉 • 정수형 • 정적변수 • 제어 • 제어문 • 제어자 • 조건 • 조건문 • 조건연산자 • 주소 • 증감연산자 • 지역변수 • 참 • 참조 • 참조변수 • 초기화 • 추상메소드 • 추상클래스 • 추상화 • 출력 • 출력문 • 캡슐화 • 케이스 • 클래스 • 파라미터(매개변수) • 파이널 • 패키지 • 퍼블릭 • 포인터 • 프라이빗 • 프로텍티드 • 필드(멤버변수) • 함수 • 환경변수
|
|
명령어
|
abstract • array • boolean • break • byte • case • char • continue • default • double • do while • echo • elif • else • else if • false • final • float • for • gosub • goto • if • if else • import • include • int • join • long • long long • null • print • printf • println • private • protected • public • return • scanf • short • stdio.h • static • string • switch • temp • then • true • unsigned • void • while
|
|
디자인패턴
|
구조패턴 • 동시성패턴 • 동시실행패턴 • 모델-뷰-컨트롤러 패턴 • 상태패턴 • 생성패턴 • 싱글톤패턴 • 아키텍처패턴 • 전략패턴 • 커맨드패턴 • 행동패턴
|
|
프로그래밍 인물
|
귀도 반 로썸 • 그레이스 머레이 호퍼 • 니클라우스 비르트 • 댄 브릭클린 • 더그 커팅 • 데니스 리치 • 리누스 토르발스 • 리처드 그린블라트 • 마거릿 해밀턴 • 마크 앤드리슨 • 빈트 서프 • 빌 게이츠 • 빌 조이 • 스티브 잡스 • 에이다 러브레이스 • 제임스 고슬링 • 척 벤턴 • 켄 톰슨 • 팀 패터슨
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|
- ↑ (아두이노1) <[1]> <<위키백과>> 2019-04-14
- ↑ (아두이노2) <[2]> <<두피디아 백과사전>>