r4
| 1 | [[분류:Arduino]][[분류:통합 개발 환경]] |
|---|
r1
| 2 | [include(틀:상위 문서, top1=Arduino)] |
|---|
| 3 | [목차] |
|---|
r4
| 4 | [clearfix] |
|---|
r1
| 5 | == 개요 == |
|---|
| 6 | 아두이노 개발환경(Arduino IDE) 또는 아두이노(이 경우 하드웨어가 아닌 소프트웨어를 가리킨다)의 경우, [[Processing]]에서 제공하는 IDE와 90% 이상 동일한 인터페이스를 하고 있다. [* 다만 현재 [[http://arduino.org/download|여기]]에서 배포 중인 Arduino studio는 다르다. 이는 Processing의 파생 프로젝트였던 Wiring의 영향을 받은 것이다.] |
|---|
| 7 | |
|---|
| 8 | * [[http://arduino.cc|Arduino.cc]] 배포 |
|---|
| 9 | * Arduino IDE [[https://www.arduino.cc/en/Main/ReleaseNotes|릴리즈 노트]] |
|---|
| 10 | * [[http://create.arduino.cc/editor|Arduino.cc 웹 에디터]] Arduino.cc 계정이 필요하다. |
|---|
| 11 | (아래의 링크들은 현재 접속시 arduino.cc로 연결된다.) |
|---|
| 12 | * [[http://arduino.org|Arduino.org]] 배포 |
|---|
| 13 | * Arduino IDE [[http://labs.arduino.org/Arduino+IDE+Previous+Releases|릴리즈 노트]] |
|---|
| 14 | * Arduino Studio [[http://labs.arduino.org/Previous+versions+of+Arduino+Studio|릴리즈 노트]] |
|---|
| 15 | |
|---|
| 16 | == 설치 == |
|---|
| 17 | || 운영체제 || 설치 지원[* \[공식\] Arduino software Downloads [[https://www.arduino.cc/en/software]]] || |
|---|
| 18 | || MS윈도즈 ||Windows MSI installer 및 Windows ZIP file || |
|---|
| 19 | || 리눅스 || Linux AppImage 64 bits (X86-64) 및 Linux ZIP file 64 bits (X86-64) || |
|---|
| 20 | || 맥OS || macOS Intel(64 bits) 및 macOS Apple Silicon 지원 || |
|---|
| 21 | 우분투는 APT 자동설치를 지원한다. |
|---|
| 22 | > sudo apt-get install arduino |
|---|
| 23 | |
|---|
| 24 | == 버전 == |
|---|
| 25 | === 00xx === |
|---|
| 26 | 2005년 8월 25일 아두이노 IDE의 첫 버전인 0001이 릴리즈되었다. 특징이라면 [[Processing]]의 전처리기(Preprocessor)가 내장되어 있었으나 사용하지 않았다 [[카더라]]. |
|---|
| 27 | |
|---|
| 28 | 0013 릴리즈는 현재 구할 수 있는 가장 오래된 버전이다. delay() 함수의 전달인자가 밀리초로 바뀌었고, ATMega328에 대한 지원이 추가되었다. |
|---|
| 29 | |
|---|
| 30 | 2011년 11월 9일 0023 릴리즈를 마지막으로 아두이노 00xx는 지원이 끊기게 되었다. R3 보드들의 INF 파일들이 추가되었고, optiboot 버전이 4.4로 업데이트되었다. |
|---|
| 31 | === 1.0.x === |
|---|
| 32 | 2011년 11월 30일에는 아두이노 1.x의 첫 번째 버전인 1.0이 릴리즈되었다. 변경점은 파일 확장자가 .pde에서 .ino로 변경되었고, IDE의 밑에 현재 선택된 보드와 시리얼 포트가 표시되게 바뀌었다. 또 컴파일과 업로드 중에 상태 진행바(progress bar)가 표시되고, 시리얼과 [[I2C]]의 문법이 전반적으로 바뀌었다. 아두이노 미니 328이 보드 목록에 포함되었고, [[Microsoft Windows|윈도우]] 드라이버가 추가되었다. r3 보드(Uno, Mega 2560, Mega ADK)를 위한 ATMega16U2 펌웨어가 내장되어 있다. |
|---|
| 33 | 아두이노 API가 선언된 헤더 파일이 WProgram.h에서 Arduino.h로 바뀌었다. 이에 따라 라이브러리를 작성할 때 00xx와 1.x 모두 호환되게 하려면 |
|---|
| 34 | #if defined(ARDUINO) && ARDUINO >= 100 |
|---|
| 35 | #include "Arduino.h" |
|---|
| 36 | #else |
|---|
| 37 | #include "WProgram.h" |
|---|
| 38 | #endif |
|---|
| 39 | 이 구문을 추가해야 한다. |
|---|
| 40 | 1.0.1 버전부터는 다국어가 지원된다. 그리고 이 중에는 한국어도 포함되어 있어 초심자들의 접근이 더욱 쉬워졌다. pinMode() 함수에 INPUT_PULLUP 옵션이 추가되었다. |
|---|
| 41 | 1.0.6 버전은 1.0.x 릴리즈의 마지막 버전이다. 안정 버전이라 현재도 많이 쓰인다. |
|---|
| 42 | === 1.5.x 베타 === |
|---|
| 43 | ==== 1.5 ==== |
|---|
| 44 | 아두이노 ARM과 AVR 기반 보드를 동시에 사용할 수 있는 첫 버전이다. |
|---|
| 45 | ==== 1.5.8 ==== |
|---|
| 46 | 아두이노 IDE 베타 버전의 마지막 릴리즈이다. 물론 현재는 지원되지 않는다. |
|---|
| 47 | === 1.6.x === |
|---|
| 48 | ==== 1.6rc1 ==== |
|---|
| 49 | 스케치를 업로드하거나 컴파일할 때 자동으로 저장되도록 바뀌었다. |
|---|
| 50 | ==== 1.6 ==== |
|---|
| 51 | 번역이 업데이트되었다. |
|---|
| 52 | ==== 1.6.7 ==== |
|---|
| 53 | 2015년 12월 17일 배포되었다. 새로운 번역과, 새로운 빌더를 사용한다. |
|---|
| 54 | === 1.8.x === |
|---|
| 55 | ==== 1.8.0 ==== |
|---|
| 56 | [[http://arduino.cc|Arduino.cc]]와 [[http://arduino.org|Arduino.org]] 양사 합의 후 나온 첫 통합 IDE라는 것이 가장 큰 특징이다. 두 사이트 중 어느 곳에서 다운로드를 받더라도 동일한 소프트웨어를 받게 된다. 2016년 12월 20일에 배포[* 릴리즈노트 참조], [[https://blog.arduino.cc/2016/12/23/new-ide-for-all-arduino-boards/|2016년 12월 23일에 발표]]되었다. |
|---|
| 57 | ==== 1.8.1 ==== |
|---|
| 58 | 양사 합의 후 나온 두 번째 IDE이다. 2017년 1월 9일에 배포되었다. |
|---|
| 59 | ==== 1.8.2 ==== |
|---|
| 60 | 2017년 3월 22일에 배포되었다. |
|---|
| 61 | ==== 1.8.3 ==== |
|---|
| 62 | 2017년 5월 31일에 배포되었다. |
|---|
| 63 | === 2.0.x === |
|---|
| 64 | ==== 2.0.0 ==== |
|---|
| 65 | 2022년 9월 14일에 배포되었다. |
|---|
| 66 | 스케치 편집 중 자동 완성 기능을 지원하며 다크모드 등 UI테마를 변경할 수 있게 되었다. |
|---|
| 67 | Arduino Cloud 기능을 지원한다. |
|---|
| 68 | |
|---|
| 69 | == 문법 == |
|---|
| 70 | 프로그래밍 언어는 C언어에 기반한 객체지향언어의 일종이다. 문자열([[String]])과 같은 경우에서처럼 객체 내부 프로퍼티에 접근하는 방법인 점(.) 표기법을 사용할 수 있다. 게다가 C++의 template까지 지원하니 사실상 C++와 동일하지만, C++의 최신 버전 문법까지 Arduino IDE에 반영되어있지는 않으며 C++에서 제공하는 std 헤더와는 다른 자신만의 헤더 Arduino.h를 사용한다. 사실 C++ 헤더를 include하여 완전히 C++표준에 따라 개발할 수도 있지만, 메모리 제한이 빡빡한 마이크로 컨트롤러에 고급 기능들이 필요하지 않기 때문에 최적화된 Arduino.h를 따로 설계한 것이다. 결론적으로 "C++언어 초기 버전, 다만 C++ 헤더를 쓰지 않는" 상태로 개발을 하는 것이다. |
|---|
| 71 | 프로그램을 담은 소스코드는 setup()과 loop()의 2개의 함수를 기본 골격으로 가지고 있다. |
|---|
| 72 | |
|---|
| 73 | >void setup() { |
|---|
| 74 | >ㅤ// put your setup code here, to run once: |
|---|
| 75 | > |
|---|
| 76 | >} |
|---|
| 77 | > |
|---|
| 78 | >void loop() { |
|---|
| 79 | >ㅤ// put your main code here, to run repeatedly: |
|---|
| 80 | > |
|---|
| 81 | >} |
|---|
| 82 | > |
|---|
| 83 | |
|---|
| 84 | setup 1회 실행, 그리고 loop 함수 무한 반복이다. 데스크탑 컴퓨터의 일반적인 C언어 프로그래밍 기준으로 이 구조를 main 함수에 집어넣으면 다음과 같다. |
|---|
| 85 | |
|---|
| 86 | >int main() { |
|---|
| 87 | >ㅤsetup(); |
|---|
| 88 | >ㅤwhile(true) { |
|---|
| 89 | >ㅤㅤloop(); |
|---|
| 90 | >ㅤ} |
|---|
| 91 | >ㅤreturn 0; |
|---|
| 92 | >} |
|---|
| 93 | ~~ 영원히 실행되지 않는 return ~~ |
|---|
| 94 | == 시리얼 통신 == |
|---|
r3
| 95 | 아두이노는 장치의 입출력 데이터를 모니터링할 수 있는 시리얼 포트의 시리얼모니터를 제공한다. 일반적으로 9600bps,57600bps 등 다양한 속도를 지원한다. |
|---|
r2
| 96 | 한편 아두이노 포럼에서는 이러한 시리얼모니터에 출력되는 데이터를 파일로 저장하기 위해 putty를 사용하는 것이 제안된바있다.[* HOW TO EXPORT DATA from ARDUINO SERIAL MONITOR to a CSV or TXT FILE [[https://forum.arduino.cc/t/how-to-export-data-from-arduino-serial-monitor-to-a-csv-or-txt-file/354651/5]]] |
|---|
r1
| 97 | 하지만 특정문자의 [[글자 깨짐]] 문장이 들어있는 경우를 제외하고는 전체 복사(copy) 및 붙여넣기를 지원하고 있다. |
|---|
| 98 | |
|---|
| 99 | == 관련 문서 == |
|---|
r4
| 100 | * [[Arduino/하드웨어]] |
|---|