# 개발 환경 구축

## 개발 환경 구축

이 문서에서는 아두이노 개발을 위한 프로그램을 설치하는 방법에 대해서 살펴본다.

### 통합 개발 환경(IDE)

`IDE`란 `Integrated Development Environment`의 줄임말로 애플리케이션 개발에 필요한 도구들의 모음을 말한다. 많은 이용자들을 보유한 프로그래밍 언어들은 효율적으로 사용할 수 있는 `IDE`가 존재하며 아두이노 역시 개발 편의성을 위해 `IDE`를 제공한다.

### 설치 파일 다운로드

[공식 홈페이지](http://www.arduino.cc) 에 접속하여 아두이노 `IDE`를 다운로드한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NXKYaQyXprhr6Ew5%2Fimage.png?alt=media\&token=cc6fda45-5c59-4f55-9c40-e8fc36d2f2e7)

현재 시점에서는 온라인과 오프라인 `IDE` 두 가지의 선택지가 있으며, 온라인 에디터는 회원가입 후 바로 이용이 가능하다. 오프라인 에디터는 설치 과정이 필요하기 때문에 오프라인 에디터를 설치하는 과정에 대해서 먼저 살펴본다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NZQzMwkye_cfFrAM%2Fimage.png?alt=media\&token=c352cc39-8289-4248-beaf-d802f7c36efb)

`Downloads`를 누른 뒤 나오는 화면에서 `Download the Arduino IDE` 를 찾은 뒤 원하는 운영체제와 버전에 맞게 다운로드를 누른다. 윈도우 기준으로 설치형, 무설치형, 앱 형태 총 3가지를 지원하며 이 문서에서는 무설치형을 다운받도록 한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NaAxBaoOrXSsps_P%2Fimage.png?alt=media\&token=fd042e0a-98f7-4a6d-b87d-5c60c2c60faa)

### 개발 도구 실행(오프라인 IDE)

원하는 위치에 압축을 해제하면 다음과 같은 파일로 구성되어 있음을 확인할 수 있다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NbxDr4e0-O1iDjrL%2Fimage.png?alt=media\&token=5edf0cc9-1bcf-4f4b-ae14-89e0fd45d6ce)

`arduino.exe` 파일을 실행하면 `IDE`가 실행된다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NdOvkMO3wXbYcEAL%2Fimage.png?alt=media\&token=d5f3579a-4a00-4077-87ef-2cc259381d9e)

### 아두이노 보드 연결(오프라인 IDE)

PC에 `아두이노 보드`를 연결하기 위해서는 아래의 USB 케이블을 사용한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NetL7dgnHmpnDucf%2Fimage.png?alt=media\&token=c613ed1d-233a-4f0f-8123-6b6630c2b39f)

케이블이 연결되었다면 개발도구에서 `툴` → `포트` → 연결된 포트를 선택 한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NgHe7AE1PSj4RKUT%2Fimage.png?alt=media\&token=6566da48-f86a-470b-9027-8d89e35cba6c)

윈도우 10에서는 따로 드라이버 설치가 필요하지 않으나, 기타 OS에서 드라이버 설치가 필요할 경우 무설치판에서는 압축 해제 폴더의 `drivers` 폴더에 파일이 존재한다.

### 기본 예제 실행(오프라인 IDE)

아두이노 보드에는 기본 실행 가능 여부를 확인할 수 있도록 램프가 부착되어 있다. 이 램프를 구동하는 예제를 만들어 보드의 정상 작동 여부를 확인한다.

#### 예제 생성

파일 → 예제 → 01.Basics → Blink 선택하여 예제를 생성한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NhsrrBvGY_Usdn4c%2Fimage.png?alt=media\&token=7b7f24d8-1081-4b91-a080-aa6e96bf2b59)

#### 코드 생성 확인

예제 생성 시 화면에 다음과 같은 코드가 나오는 것을 확인한다.

```cpp
/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
```

#### 예제 컴파일 및 실행

연결까지 마쳤다면 생성한 예제를 실행해야 한다. 아두이노는 다음의 과정을 거쳐 실행된다.

* 스케치 → 컴파일(Ctrl + R)
* 스케치 → 업로드(Ctrl + U)

`컴파일`은 코드를 실행 가능한 형태로 변환하는 작업을 말하며, `업로드`는 컴파일된 코드를 기기에 탑재하는 것이다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NrwFyL0kTXi36_Co%2Fimage.png?alt=media\&token=45891028-495e-48da-a9e0-32c3f5c9567a)

컴파일과 업로드를 순서대로 진행하면 기기에서 코드가 작동한다.

### 개발 도구 실행(온라인 IDE)

온라인에서도 `IDE`를 이용할 수 있다. `Software` → `Online Tools` 를 선택하면 온라인 `IDE` 화면으로 이동한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NuSMZETANkxZU0HI%2Fimage.png?alt=media\&token=3830b04d-0804-4bd4-92dd-bfd417c0979d)

제공되는 기능들은 가입 후 이용할 수 있으며, 어떠한 기능 버튼을 눌러도 로그인 화면으로 이동한다. `Arduino Web Editor`를 눌러 회원가입(로그인)을 진행한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0NwZmamg-tyfq_xr_%2Fimage.png?alt=media\&token=2b766106-e4e7-43b8-af30-832e841cc554)

다음 화면과 같은 형태의 에디터가 표시되는 것을 확인할 수 있다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0O6sjsBkkE9sFlSkI%2Fimage.png?alt=media\&token=375e3c1b-4b03-4719-afd2-d59bdcb0eb95)

### 장치 연결(온라인 IDE)

온라인 `IDE`에서 장치를 연결하려면 `Device Manager`를 이용해야 한다. 메뉴에서 `Device Manager`를 선택한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VQLzbhoICimpa-B7%2Fimage.png?alt=media\&token=db32e5c3-95c3-4be5-8d4e-462105c2dde6)

다양한 장치들을 연결할 수 있도록 기능을 제공하며, 현재는 아두이노 보드를 추가해야 하므로 `Add New Board`를 선택한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VS9OUPJOGhW1YCLD%2Fimage.png?alt=media\&token=21d910fc-0621-4839-be36-7b59b4895eb1)

보드의 종류를 직접 설정할 수 있으며, 설정이 불필요할 경우 자동으로 장치를 찾도록 `Autodetect Arduino Board`를 눌러 계속 진행한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VU6tZESfSuyd3Kgi%2Fimage.png?alt=media\&token=aee004da-4e62-4b16-8b8f-289fbe8f8e1a)

아두이노 연결 설정 화면이 나오며, `START`를 눌러 다음으로 진행할 수 있다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VVU7lZbmQncWzV3E%2Fimage.png?alt=media\&token=b4f25628-94bc-4237-af34-a1dddf1298a5)

장치 연결을 도와주는 플러그인을 다운받는다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VWzvlTGuPyLDEK8n%2Fimage.png?alt=media\&token=2afe1769-da79-4164-8e55-35c5fe86fcf6)

다운받은 파일을 실행하여 플러그인을 설치한다. 설치가 완료되면 바로 다음 화면으로 진행된다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VYdfnnqp1e_FG1wI%2Fimage.png?alt=media\&token=604f5960-c05e-4cab-b54d-c9df83e2a57c)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0VZlPQOY6X5KX54TG%2Fimage.png?alt=media\&token=93e2562e-86c4-4ce0-b6d5-ace54b1f767b)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W1uhXfjcRkkEH8Ho%2Fimage.png?alt=media\&token=29bd04b3-0594-4df4-94a5-376b03ab94e2)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W3DPIv7Y9L8fq_17%2Fimage.png?alt=media\&token=116f54f9-107b-44bc-a86e-a8eb71fd351a)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W4ZXwIMP-fb3noiP%2Fimage.png?alt=media\&token=56d2685f-aee4-4354-9a2e-9663351c0ea6)

방화벽 제외 설정을 해야 정상적인 기기 접근이 가능하다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W5qkrLQOH8psBDCi%2Fimage.png?alt=media\&token=510f58fb-019c-4672-bb8d-577a33bd4623)

추가적으로 필요한 드라이버 설치도 허용한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W7aAR3LEyLw1Rtas%2Fimage.png?alt=media\&token=350fe150-06e1-4a75-9612-895ee3719844)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W8j-FY4zTD9NXp2j%2Fimage.png?alt=media\&token=0130dafe-85af-49f3-b7e2-18c7763d7363)

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0W9vIToCGnUuH2_z-%2Fimage.png?alt=media\&token=019217a4-6c9c-4197-9039-b7725c6c8d5a)

설치가 완료되면 홈페이지가 갱신되며, 만약 정상적으로 설치되지 않은 경우 다음과 같은 화면이 나오므로 다시 시도한다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0WC39QXll3ccAhNn4%2Fimage.png?alt=media\&token=50087f10-cff3-4ca5-9595-c7cc31757bd4)

정상적으로 인식되면 다음 단계를 진행할 수 있다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0WDaoOWuPqUimJomo%2Fimage.png?alt=media\&token=d54a9c45-136e-4386-a327-68cfe318a6f1)

다음 단계에서는 실제 장치를 연결해야 한다. 마찬가지로 장치가 감지되면 다음 단계로 이동할 수 있다. 만약 장치가 정상적으로 인식되지 않을 경우 USB 단자를 제거 후 다시 연결하면 정상적으로 인식된다.

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf0INK_HfNJswEcZc3r%2F-Mf0WLQrjRaMUfVIOKNU%2Fimage.png?alt=media\&token=0a20a384-70e1-4bb1-b3d4-d1a6029bae4c)

### 기본 예제 실행(온라인 IDE)
