아두이노 기초 강좌는 아두이노를 처음 접하시는 전자분야 비 전공자를 위한 강좌입니다. 이해를 위해서는 간단한 프로그래밍 지식이 필요할 수 있습니다. 프로그래밍이 처음이라면 [아두이노 프로그래밍

아두이노 기초 강좌는 아두이노를 처음 접하시는 전자분야 비 전공자를 위한 강좌입니다. 이해를 위해서는 간단한 프로그래밍 지식이 필요할 수 있습니다. 프로그래밍이 처음이라면 [아두이노 프로그래밍 기초] 강좌를 먼저 읽으시길 권해 드립니다.

=============================================================

.

1. 아두이노 개발환경 설치

이제 본격적으로 아두이노 개발환경(IDE, Integrated Development Environment, 통합개발환경)을 설치해 보겠습니다. 아두이노 개발환경은 아두이노 소스 개발, 컴파일, 업로드, 디버깅을 위한 툴들을 제공하는 어플리케이션입니다. 이 강좌에서는 ‘아두이노 개발환경‘이라 칭하겠습니다.

먼저 아두이노 공식 홈페이지에서 압축 파일을 받습니다.

http://arduino.cc/en/Main/Software

현재 최신버전은 1.5.7 Beta 이고, 안정화 버전은 1.0.5 입니다. 1.5.7 버전은 아두이노의 최신 고성능 보드인 Yun, Due 를 지원합니다. 우리가 처음 쓰기에는 별 차이가 없으므로 일단 아무거나 받으시면 됩니다. 1.0 아래 버전은 1.0 이상의 버전과 소스 호환성에 문제가 있으므로 인터넷 상에서 받으실 때 주의하실 필요가 있습니다.

Window 용 설치파일은 2가지 버전이 있습니다. 자동 설치(installer) 버전과 무설치 버전. 어느것을 사용하셔도 상관 없으나 설치된 경로는 반드시 알고 계셔야 합니다. 자동설치 버전은 기본 경로가 [C:\Program Files\Arduino] 로 될 것이고, 무설치 버전은 압축을 푼 폴더가 설치 경로가 됩니다. 이게 중요한 이유는 라이브러리를 설치하고 수정할 경우 설치경로 안에 있는 [libraries] 폴더를 사용하기 때문입니다.

 

2. 아두이노 개발환경 기본기능

이제 설치가 완료되었으면 아두이노 아이콘 혹은 arduino.exe 를 실행합니다. 아래와 같은 실행화면이 보일 것입니다.

arduino_ide_1

처음 실행하면 아두이노 소스 기본 구조가 입력된 상태로 sketch_xxx 프로젝트 생성되어 있습니다. 이제 아두이노 개발환경에서 자주 쓰이는 기능들을 보겠습니다.

  1. 컴파일 버튼 : 이 버튼을 누르면 작성된 소스코드를 컴파일 합니다. 소스코드에 문법적인, 구조적인 에러가 없는지 확인할 수 있습니다. 컴파일 결과는 4번 영역(메시지 영역)에 표시됩니다.
  2. 업로드 버튼 : 컴파일 + 업로드 과정을 순서대로 실행해줍니다. 소스를 컴파일해서 아두이노에 올려주는 과정까지 이 버튼 하나로 해결합니다. 마찬가지로 소스코드에 문제가 있거나 아두이노와의 USB 연결에 문제가 있는 경우, 업로드 과정에 문제가 있는 경우 4번 영역에 에러가 표시됩니다. 업로드가 성공적으로 끝나면 4번 영역에 ‘업로드 완료’ 메시지가 표시됩니다.
  3. 시리얼 모니터 버튼 : USB로 아두이노와 연결된 상태로 아두이노가 동작하면 아두이노에서 PC로 메시지를 보낼 수 있습니다. Serial.write(), Serial.println() 등의 함수를 사용해서 serial 출력을 하도록 소스코드가 작성된 경우 Serial Monitor 를 통해 그 메시지를 확인할 수 있습니다. 보통 디버깅 용도로 사용합니다.
  4. 메시지 영역 : 아두이노 개발환경을 사용하면서 발생하는 알림 메시지나 컴파일, 업로드 결과 등등 메시지가 표시되는 영역입니다.

3. 아두이노 예제 실행

아두이노 개발환경은 아두이노 초심자에게 도움이 될만한 예제들을 미리 가지고 있습니다. 이 예제를 실행해 보면 기본 사용방법을 쉽게 익힐 수 잇습니다.

arduino_ide_2

위 그림처럼 [파일 – 예제 – 01.Basics – Blink] 를 선택합니다. 그럼 아두이노 개발환경이 하나 더 실행되면서 Blink 예제가 보일겁니다. [파일 – 예제] 메뉴를 통해 다양한 예제를 불러와서 테스트 해 볼수 있으니 기억해두세요. 위 그림에서 1번 영역이 2개로 나뉘어져 있는데 위쪽은 아두이노 개발환경이 기본으로 제공하는 예제이며, 아래는 아두이노에 설치된 라이브러리들이 제공하는 예제입니다.

Blink 예제를 불러왔으면 이제 컴파일을 해보겠습니다. 컴파일 버튼을 눌러보세요.

arduino_ide_3

그럼 메시지 영역에 컴파일 결과가 표시되는게 보이실겁니다. ‘컴파일 완료‘ 메시지가 떴으니 소스코드에 문제가 없는겁니다. 이제 이걸 아두이노에 올려서 확인해 볼 차례입니다. 아두이노 UNO 보드를 준비하시고 USB로 연결하세요. 그리고 업로드 하기전에 설정해야 할게 있습니다.

arduino_ide_4

위 그림과 같이 [도구 – 보드 – Arduino UNO]를 선택해줘야 합니다. 아두이노의 종류가 다양하기 때문에 현재 연결된 아두이노 보드의 종류를 미리 알려줘야 업로드 할 때 문제가 발생하지 않습니다. 업로드 중 발생하는 문제의 다수가 이걸 안해줘서 발생합니다.

그리고 한가지 더 설정해줘야 할게 있습니다. PC에 연결된 다양한 USB 장치 중 어떤것이 아두이노인지 알려줘야 합니다.

arduino_ide_5

위 그림과 같이 [도구 – 포트 – COMxx]를 선택합니다. 아두이노에 해당하는 COM port 를 선택하면 됩니다. 잘 모르겠으면 항목을 바꿔가면서 실험해보세요. 그래도 안되면 아두이노를 PC에서 인식하지 못한 것입니다. 이 경우는 USB 드라이버에 문제가 있는 경우일 수 있으니 드라이버를 확인해야 합니다. (이 부분은 넘어가겠습니다.)

이제 업로드 버튼을 누릅니다. 메시지 영역에 ‘업로드 완료’ 메시지가 보이고 아두이노 UNO 보드 중간에 있는 LED가 깜빡인다면 정상적으로 업로드되어서 아두이노가 소스코드대로 실행하는 것입니다.

 

4. Serial Monitor 사용법

이제 동작 중 발생하는 문제점을 찾기위해 사용되는 Serial Monitor를 이용한 디버깅 방법을 테스트 해보겠습니다. Blink 예제에서 소스코드를 아래와 같이 수정합니다. (전체를 복사해서 붙여넣기 하셔도 됩니다.)

/*
  Blink
  Turns on 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 and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

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

바뀐 부분은 딱 2줄 입니다.

  • setup() 함수 안에서 Serial.begin(9600); 추가
  • loop() 안에서 Serial.println(“LED on, off”); 추가

아두이노는 USB 로 PC와 물리적 연결이 되어 있는 상태이고 Serial 통신 방법을 이용해서 통신할 수 있습니다. Serial 통신은 2개의 핀(TX, RX)을 통해 양쪽이 통신하는 방법입니다. PC와의 통신 뿐 아니라 블루투스 모듈, WiFi 모듈과의 통신에도 사용됩니다. 아두이노 UNO는 내부에는 USB 연결을 통해 Serial 통신을 할 수 있게 해주는 변환 칩을 가지고 있습니다. 아두이노 UNO의 0번 핀과 1번 핀이 이 용도로 사용되도록 지정된 핀입니다. 따라서 특별한 경우가 아니면 0번 핀, 1번 핀은 사용하지 않는 것이 좋습니다. 디버깅 메시지를 PC로 보내기 위해서 Serial 통신을 해야 하니까요. 아두이노에서는 0번, 1번 핀을 이용한 Serial 통신을 HardwareSerial 이라고 합니다. 이해가 안되면 이 부분은 넘어가세요. 그냥 PC와는 Serial 통신을 한다고만 이해하셔도 됩니다.

각설하고, Serial 통신을 사용하는 Serial.begin(9600) 은 아두이노 보드의 기본 Serial 연결을 사용하겠다고 아두이노에게 알려주는 역할을 합니다. 이때 반드시 통신 속도를 지정해 줘야 합니다. Baudrate 라고 부르는데 보통 9600이 기본값처럼 쓰입니다. 이 값은 Serial 통신을 통해 연결되는 쪽에서도 같은 값을 사용해야 합니다.

Serial.println(“xxx”); 함수는 따옴표 안의 내용을 상대편으로 전송하는 역할을 합니다. 한 라인의 문자열을 보낼때 사용합니다. 위 예제에서는 LED를 on/off 할 때마다 한번씩 문자열을 보내도록 했습니다. loop 한번 실행할 때마다 1초 delay를 2번 사용했으니 약 2초마다 한번씩 메시지를 PC로 보내겠죠. PC에서 이 메시지가 정확히 출력되는지 확인하는게 이번 목표입니다.

소스 수정이 끝났으면 아두이노 개발환경에서 업로드 버튼을 누릅니다. 그리고 업로드가 정상적으로 완료되면 Serial Monitor를 실행합니다.

 

Serial Monitor에 LED on, off 메시지가 2초에 한번씩 보이면 끝.

 

# 팁 : 아두이노 개발환경에서 [파일 – 환결설정]으로 들어가시면 몇 가지 설정이 가능합니다. 이 중 “줄 번호 표시” 항목은 on 시켜두시는게 좀 더 편합니다. 아두이노 개발환경이 제공하는 Text editor 가 좀 부실해서.. 이런거라두 설정하고 쓰는게 좋습니다.

 

 

===============================================================

이 문서는 작성자의 동의없이 개인적인 목적 외의 상업적인 목적으로 활용되어서는 안됩니다.

이 문서의 일부 혹은 전체를 수정, 삭제, 재배포 하여서는 안됩니다.

작성자 : GodsTale (godstale@hotmail.com)