아두이노 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
[[파일:아두이노 로고.png|썸네일|200픽셀|'''아두이노'''(Arduino)]]
 
[[파일:아두이노 글자.png|썸네일|300픽셀|'''아두이노'''(Arduino)]]
 
 
 
'''아두이노'''(Arduino)란 [[사물인터넷]](IoT) 기기를 만들기 위하여 사용하는 [[오픈소스]] 기반의 컴퓨팅 [[플랫폼]]을 말한다. [[C 언어|C]], [[C++]] 등 다양한 언어를 사용하여 원하는 동작을 하도록 [[코딩]]을 한 후 [[기계어]]로 [[컴파일]]하여 [[마이크로컨트롤러]]<!--마이크로 컨트롤러-->(microcontroller) 보드에 [[업로드]]하면, 아두이노가 작동한다. 아두이노는 가격이 저렴하고 [[리눅스]](Linux), [[윈도우]](Windows), [[아이오에스]](iOS) 등 여러 [[운영체제]]에서 작동하며, [[오픈소스]] 기반이라는 장점이 있다.
 
'''아두이노'''(Arduino)란 [[사물인터넷]](IoT) 기기를 만들기 위하여 사용하는 [[오픈소스]] 기반의 컴퓨팅 [[플랫폼]]을 말한다. [[C 언어|C]], [[C++]] 등 다양한 언어를 사용하여 원하는 동작을 하도록 [[코딩]]을 한 후 [[기계어]]로 [[컴파일]]하여 [[마이크로컨트롤러]]<!--마이크로 컨트롤러-->(microcontroller) 보드에 [[업로드]]하면, 아두이노가 작동한다. 아두이노는 가격이 저렴하고 [[리눅스]](Linux), [[윈도우]](Windows), [[아이오에스]](iOS) 등 여러 [[운영체제]]에서 작동하며, [[오픈소스]] 기반이라는 장점이 있다.
  
 
==개요==
 
==개요==
 +
 
'''아두이노'''(Arduino)는 [[오픈소스]]를 기반으로 한 단일 보드 [[마이크로컨트롤러]](Microcontroller)로 완성된 보드와 관련 개발 도구 및 환경을 말한다. 2005년 이탈리아의 IDII(Interaction Design Institutelvera) 에서 [[하드웨어]]에 익숙지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있게 하려고 고안된 아두이노는 처음에 [[AVR]]을 기반으로 만들어졌다.
 
'''아두이노'''(Arduino)는 [[오픈소스]]를 기반으로 한 단일 보드 [[마이크로컨트롤러]](Microcontroller)로 완성된 보드와 관련 개발 도구 및 환경을 말한다. 2005년 이탈리아의 IDII(Interaction Design Institutelvera) 에서 [[하드웨어]]에 익숙지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있게 하려고 고안된 아두이노는 처음에 [[AVR]]을 기반으로 만들어졌다.
 
아두이노는 통합 개발 환경 [[IDE]]를 제공하며, [[소프트웨어]] 개발과 실행코드 업로드도 제공한다. 또한 [[어도비 플래시]](Adobe Flash), [[프로세싱]](Processing) 과 같은 [[소프트웨어]]와 연동할 수 있다.   
 
아두이노는 통합 개발 환경 [[IDE]]를 제공하며, [[소프트웨어]] 개발과 실행코드 업로드도 제공한다. 또한 [[어도비 플래시]](Adobe Flash), [[프로세싱]](Processing) 과 같은 [[소프트웨어]]와 연동할 수 있다.   
10번째 줄: 8번째 줄:
 
아두이노는 다양한 [[스위치]]나 센서로부터 입력 값을 받아들여 LED나 모터와 같은 전자 장치들로 출력을 제어함으로써 환경과 상호작용이 가능한 물건을 만들어 낼 수 있다. 예를 들어 단순한 로봇, 온습도계, 동작 감지기, 음악 및 사운드 장치, 스마트 홈 구현, 유아 장난감 및 로봇 교육 프로그램들의 다양한 제품들이 아두이노를 기반으로 개발 가능하다.  또한 아두이노는 회로가 [[오픈소스]]로 공개되어 있어 누구나 직접 보드를 만들고 수정할 수 있다.  
 
아두이노는 다양한 [[스위치]]나 센서로부터 입력 값을 받아들여 LED나 모터와 같은 전자 장치들로 출력을 제어함으로써 환경과 상호작용이 가능한 물건을 만들어 낼 수 있다. 예를 들어 단순한 로봇, 온습도계, 동작 감지기, 음악 및 사운드 장치, 스마트 홈 구현, 유아 장난감 및 로봇 교육 프로그램들의 다양한 제품들이 아두이노를 기반으로 개발 가능하다.  또한 아두이노는 회로가 [[오픈소스]]로 공개되어 있어 누구나 직접 보드를 만들고 수정할 수 있다.  
  
이런  아두이노가 인기를 끌면서 이를 비즈니스에 활용하는 기업들이 있다. 장난감 회사 레고는 자사의 로봇 장난감과 아두이노를 활용한 로봇 교육 프로그램을 북미 지역에서 운영하고 있으며, 자동차회사 포드는 아두이노를 이용해 차량용 하드웨어와 소프트웨어를 만들어 차량과 상호작용을 할 수 있는 오픈XC라는 프로그램을 선보이기도 했다.<ref>〈[https://ko.wikipedia.org/wiki/아두이노 아두이노]〉, 《위키백과》</ref>
+
이런  아두이노가 인기를 끌면서 이를 비즈니스에 활용하는 기업들이 있다. 장난감 회사 레고는 자사의 로봇 장난감과 아두이노를 활용한 로봇 교육 프로그램을 북미 지역에서 운영하고 있으며, 자동차회사 포드는 아두이노를 이용해 차량용 하드웨어와 소프트웨어를 만들어 차량과 상호작용을 할 수 있는 오픈XC라는 프로그램을 선보이기도 했다.<ref>〈[https://ko.wikipedia.org/wiki/아두이노 아두이노]〉,《위키백과》</ref>
  
 
==역사==
 
==역사==
 +
 
* 2005년, 이탈리아 Ivrea 에서 초기 프로젝트가 만들어졌다.
 
* 2005년, 이탈리아 Ivrea 에서 초기 프로젝트가 만들어졌다.
 
* 2008년 10월, 아두이노 Duemilanove가 출시되었다.
 
* 2008년 10월, 아두이노 Duemilanove가 출시되었다.
64번째 줄: 63번째 줄:
  
 
===아두이노 메가(Mega)===
 
===아두이노 메가(Mega)===
우노보드의 확장 버전으로 우노보드의 약 2배 크기이다. 많은 핀을 가지고 있으며 더 빠르고 저장용량도 더 많이 가지고 있어 다른 보드에 비해 훨씬 많은 기기와 통신할 수 있는 고성능 보드이다. 우노보드로 처리하기 힘든 멀티미디어 관련 작업, 로봇이나 이미지, 음성, 영상 등과 같은 복잡한 제어가 필요한 작업에 사용된다.<ref>〈[http://www.hardcopyworld.com/ngine/aduino/index.php/archives/274 아두이노 종류]〉, 《하드카피월드》</ref>
+
우노보드의 확장 버전으로 우노보드의 약 2배 크기이다. 많은 핀을 가지고 있으며 더 빠르고 저장용량도 더 많이 가지고 있어 다른 보드에 비해 훨씬 많은 기기와 통신할 수 있는 고성능 보드이다. 우노보드로 처리하기 힘든 멀티미디어 관련 작업, 로봇이나 이미지, 음성, 영상 등과 같은 복잡한 제어가 필요한 작업에 사용된다.<ref>〈[http://www.hardcopyworld.com/ngine/aduino/index.php/archives/274 아두이노 종류]〉,《하드카피월드》</ref>
  
 
==프로그래밍==
 
==프로그래밍==
77번째 줄: 76번째 줄:
  
 
===기본 문법===
 
===기본 문법===
 +
 
* 구분 기호 : {} , ;
 
* 구분 기호 : {} , ;
 
* 주석 : //, /* */
 
* 주석 : //, /* */
93번째 줄: 93번째 줄:
  
 
===상수===
 
===상수===
 +
 
* HIGH / LOW : 입출력 핀의 상태를 말하며, 디지털 회로의 논리 표현과 같다. LOW(논리 0, 0 V 근처), HIGH(논리 1, 높은 전압, 5 V 또는 3.3 V 논리 게이트 VCC 전압)
 
* HIGH / LOW : 입출력 핀의 상태를 말하며, 디지털 회로의 논리 표현과 같다. LOW(논리 0, 0 V 근처), HIGH(논리 1, 높은 전압, 5 V 또는 3.3 V 논리 게이트 VCC 전압)
 
* INPUT / OUTPUT: 입출력의 방향으로 입력과 출력. INPUT (입력), OUTPUT(출력)
 
* INPUT / OUTPUT: 입출력의 방향으로 입력과 출력. INPUT (입력), OUTPUT(출력)
98번째 줄: 99번째 줄:
  
 
===변수 데이터 유형 및 C++ 클래스===
 
===변수 데이터 유형 및 C++ 클래스===
 +
 
* void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double
 
* void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double
 
* string, array
 
* string, array
  
 
===디지털 입출력 함수===
 
===디지털 입출력 함수===
 +
 
* pinMode(pin, mode) - 핀의 입출력을 정의
 
* pinMode(pin, mode) - 핀의 입출력을 정의
 
* digitalWrite(pin, value) - 디지털 출력 핀에 출력하는 함수
 
* digitalWrite(pin, value) - 디지털 출력 핀에 출력하는 함수
108번째 줄: 111번째 줄:
 
==활용==
 
==활용==
  
=== 사물인터넷(IoT) ===
+
1. 사물인터넷 IoT(Internet of Things)  
아두이노는 유선, 무선으로 인터넷에 연결 가능하므로, [[사물인터넷]](IoT) 기기로 사용할 수 있다. 또한 입출력 핀을 통하여 각종 센서 및 릴레이 등의 값을 읽거나 제어가 가능하여 [[스마트폰]] 등을 이용하여 어디서나 인터넷이 연결되는 곳에서 집에 있는 각종 기기들의 제어가 가능하다. 밖에서 집에 도착하기 전에 에어컨이나 보일러, 전등 등을 끄고 키거나 집안에 누가 침입한다면 인터넷을 통해 알려주도록 하는 것 등이 가능한 것이다.  
+
 
 +
아두이노는 유선, 무선으로 인터넷에 연결 가능하다. 또한 입출력 핀을 통하여 각종 센서 및 릴레이 등의 값을 읽거나 제어가 가능하여 [[스마트폰]] 등을 이용하여 어디서나 인터넷이 연결되는 곳에서 집에 있는 각종 기기들의 제어가 가능하다. 밖에서 집에 도착하기 전에 에어컨이나 보일러, 전등 등을 끄고 키거나 집안에 누가 침입한다면 인터넷을 통해 알려주도록 하는 것 등이 가능한 것이다.  
 +
 
 +
2. 로봇, 드론
  
=== 로봇, 드론 ===
 
 
아두이노는 DC모터, 스텝핑모터, 서보모터의 정밀한 제어가 가능하다. 예를 들어 장애물 감지 센서와 모터를 아두이노와 연결하여 로봇을 만든다면 장애물을 피해가는 로봇을 만들 수 있으며 기울기 센서 등을 이용하여 드론을 만들면 출력을 조절하여 뒤집어지지 않는 드론을 만들어 띄울수도 있다. 로봇이나 드론 은 [[와이파이]], [[블루투스]] 등과 연결하여 [[RC]]처럼 원격으로 조종도 가능하다.  
 
아두이노는 DC모터, 스텝핑모터, 서보모터의 정밀한 제어가 가능하다. 예를 들어 장애물 감지 센서와 모터를 아두이노와 연결하여 로봇을 만든다면 장애물을 피해가는 로봇을 만들 수 있으며 기울기 센서 등을 이용하여 드론을 만들면 출력을 조절하여 뒤집어지지 않는 드론을 만들어 띄울수도 있다. 로봇이나 드론 은 [[와이파이]], [[블루투스]] 등과 연결하여 [[RC]]처럼 원격으로 조종도 가능하다.  
  
=== 농업 분야 ===
+
3. 농업 분야
 +
 
 
아두이노는 농업에도 이용이 된다. 연결된 센서 등을 통하여 농작물에 물을 준다던지 온도, 습도 등에 민감한 식물의 경우 아두이노를 통하여 모니터링 해 생장에 최적의 환경을 만들어 줄 수 있다. 농업도 과학이 기반이 되는 만큼 아두이노를 활용하면 한층 더 과학적인 농업이 가능하다.
 
아두이노는 농업에도 이용이 된다. 연결된 센서 등을 통하여 농작물에 물을 준다던지 온도, 습도 등에 민감한 식물의 경우 아두이노를 통하여 모니터링 해 생장에 최적의 환경을 만들어 줄 수 있다. 농업도 과학이 기반이 되는 만큼 아두이노를 활용하면 한층 더 과학적인 농업이 가능하다.
  
그 밖에도 아두이노는 3D프린터, 전기 자전거, 스마트 안경 등 다양한 분야에서 쓰일 수 있다.
+
* 그 밖에도 3D프린터, 전기 자전거, 스마트 안경등 다양한 분야에서 쓰일 수 있다.
  
 
==문제점==
 
==문제점==
  
=== 파워출력의 단일화 ===
+
1. 파워출력의 단일화
 +
 
 
보드의 파워 입력은 다양하지만, 파워 출력은 5V로 단일화 되어있다. 아두이노 정식 호환 부품이 아닌 경우 대다수는 그대로 사용하지 못하고 승압해야 하는 등 별도의 전자 공학적 지식이 필요해진다.
 
보드의 파워 입력은 다양하지만, 파워 출력은 5V로 단일화 되어있다. 아두이노 정식 호환 부품이 아닌 경우 대다수는 그대로 사용하지 못하고 승압해야 하는 등 별도의 전자 공학적 지식이 필요해진다.
  
=== 저사양 장치 ===
+
2. 저 사양 장치
 +
 
 
아두이노 두에를 제외한 아두이노 보드들은 8비트 [[마이크로컨트롤러]](Microcontroller)를 사용하고 있다. 대부분의 보드들이 16MHZ에서 동작하고 32KB의 프로그램 메모리를 가지고 있다. 이 말은 아주 저 사양의 장치라는 말이다. 그러므로 연산량이 많은 경우나 빠른 연산을 필요로 하는 경우, 고속의 데이터 전송을 요하는 경우는 아두이노가 적합하지 않다.
 
아두이노 두에를 제외한 아두이노 보드들은 8비트 [[마이크로컨트롤러]](Microcontroller)를 사용하고 있다. 대부분의 보드들이 16MHZ에서 동작하고 32KB의 프로그램 메모리를 가지고 있다. 이 말은 아주 저 사양의 장치라는 말이다. 그러므로 연산량이 많은 경우나 빠른 연산을 필요로 하는 경우, 고속의 데이터 전송을 요하는 경우는 아두이노가 적합하지 않다.
  
=== 적은 입출력 포트 ===
+
3. 적은 입출력 포트
 +
 
 
우노의 경우 아날로그와 디지털 합쳐서 약 20개 정도의 포트를 가지는데, 이것만 가지고는 LED몇개 켜고 [[디스플레이]]를 붙이고 스위치를 하나 추가하면 거의 소모가 되는 정도이다.  그래서 보통 사용 목적에 따른 확장 쉴드를 제공하는데, 목적에 따라 메가 확장 쉴드처럼 입출력의 포트수만 50 - 60개로 늘린 것도 있으며, [[LAN]]이나 [[와이파이]](WIFI) 또는 모터쉴드 등 목적에 따라 다양하다. 다만 쉴드를 결합하면 쉴드가 기존의 우노의 포트를 사용하기 때문에 기존의 포트를 사용하지 못하며 전체 크기 또한 배로 커진다.  
 
우노의 경우 아날로그와 디지털 합쳐서 약 20개 정도의 포트를 가지는데, 이것만 가지고는 LED몇개 켜고 [[디스플레이]]를 붙이고 스위치를 하나 추가하면 거의 소모가 되는 정도이다.  그래서 보통 사용 목적에 따른 확장 쉴드를 제공하는데, 목적에 따라 메가 확장 쉴드처럼 입출력의 포트수만 50 - 60개로 늘린 것도 있으며, [[LAN]]이나 [[와이파이]](WIFI) 또는 모터쉴드 등 목적에 따라 다양하다. 다만 쉴드를 결합하면 쉴드가 기존의 우노의 포트를 사용하기 때문에 기존의 포트를 사용하지 못하며 전체 크기 또한 배로 커진다.  
  
 
{{각주}}
 
{{각주}}
  
==참고자료==
+
==참고 자료==
 +
 
 
* 〈[https://ko.wikipedia.org/wiki/아두이노 아두이노]〉, 《위키백과》
 
* 〈[https://ko.wikipedia.org/wiki/아두이노 아두이노]〉, 《위키백과》
 
* 〈[https://ko.wikipedia.org/wiki/아두이노_프로그래밍 아두이노 프로그래밍]〉, 《위키백과》
 
* 〈[https://ko.wikipedia.org/wiki/아두이노_프로그래밍 아두이노 프로그래밍]〉, 《위키백과》
* 〈[http://www.doopedia.co.kr/doopedia/master/master.do?_method=view&MAS_IDX=150723001500362 아두이노]〉, 《두산백과》
+
* 〈[http://www.doopedia.co.kr/doopedia/master/master.do?_method=view&MAS_IDX=150723001500362 아두이노]〉 《두산백과》
 
* 〈[http://www.hardcopyworld.com/ngine/aduino/index.php/archives/274 아두이노 종류]〉, 《하드카피월드》  
 
* 〈[http://www.hardcopyworld.com/ngine/aduino/index.php/archives/274 아두이노 종류]〉, 《하드카피월드》  
 
* 〈[https://namu.wiki/w/Arduino 아두이노]〉, 《나무위키》
 
* 〈[https://namu.wiki/w/Arduino 아두이노]〉, 《나무위키》
* deneb21, 〈[https://deneb21.tistory.com/270 아두이노 실생활 활용 예]〉, 《티스토리》, 2016-03-09
+
* deneb21, 〈[ https://deneb21.tistory.com/270 아두이노 실생활 활용 예]〉, 《티스토리》, 2016-03-09
* moreer, 〈[http://moreer.blogspot.com/2017/05/blog-post.html 아두이노 장단점]〉, 《네이버 블로그》, 2017-05-19
+
* moreer, 〈[ http://moreer.blogspot.com/2017/05/blog-post.html 아두이노 장단점]〉, 《네이버 블로그》, 2017-05-19
 
* Code Dragon, 〈[https://codedragon.tistory.com/7014 아두이노 특징]〉, 《티스토리》
 
* Code Dragon, 〈[https://codedragon.tistory.com/7014 아두이노 특징]〉, 《티스토리》
  
153번째 줄: 163번째 줄:
 
* [[IOS]]
 
* [[IOS]]
  
{{솔루션|검토 필요}}
+
{{프로그래밍|검토 필요}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)