안녕하세요. 오늘은 소리 센서를 사용하는 방법을 알아보고자 합니다.

소리 센서는 말 그대로 소리를 탐지하는 센서입니다.
여기에서 소리를 탐지한다는 것은 소리의 크기만 탐지하는 것이지, 음의 높낮이 등의 정보는 얻을 수 없음에 유의하시기 바랍니다.

그림 1 : 소리 센서
[그림 1 : 소리 센서]

이번 실험에서는 소리 센서로 입력받은 값을 시리얼 모니터로 출력합니다.
시리얼 모니터의 사용법을 잘 모르시는 분들은 시리얼 모니터와 가변저항 포스팅을 참고하시기 바랍니다.

1. 회로 연결

이번에는 회로도 없이 바로 연결된 사진을 보시겠습니다.

그림 2 : 아두이노에 소리 센서 연결
[그림 2 : 아두이노에 소리 센서 연결]

아두이노 보드 핀 소리 센서
아날로그 0번 핀 A0
GND(그라운드) GND
VCC(5V) VCC

[표 1 : 아두이노 - 소리 센서 핀 연결]

표1에 나와있는 것처럼 각 핀들을 연결해주면 됩니다.
소리 센서 뿐만 아니라, 보통 센서들은 전원과 그라운드를 연결해줘야 하고, 추가적으로 입력을 받기 위한 핀이 한개 이상 존재합니다.
소리 센서는 단 하나의 입력 핀이 있네요. 이 핀(A0)을 아두이노 보드의 A0에 연결해주면 되겠습니다.

2. 스케치

이번에는 스케치도 정말 간단합니다.

const int SOUND_SENSOR_PIN = A0;
int sensorValue;

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(SOUND_SENSOR_PIN);
  Serial.println(sensorValue);
  delay(20);
}
  • 1 줄 : 입력 핀 A0를 상수로 정의합니다.
  • 5 줄 : 9600 baud rate로 Serial 통신을 시작합니다. 이는 소리 센서가 받아오는 입력 값을 보기 위한 용도로 시리얼 모니터를 쓰기 위함입니다.
  • 9 줄 : analogRead()함수를 이용해서 A0 핀으로부터 아날로그 입력을 받습니다. 값의 범위는 0~1023 사이 입니다.
  • 10 줄 : 소리 센서의 값을 시리얼 모니터에 출력합니다.
  • 11 줄 : 20ms 동안 대기합니다.



3. 결과

그림 3 : 소리 크기 측정 결과
[그림 3 : 소리 크기 측정 결과]

그림 3에서 보시는 바와 같이 시리얼 모니터를 통해 소리의 크기를 확인할 수 있습니다.
저는 현재 제 주변에서의 기본적인 소리의 크기가 17정도인 것 같고, 박수를 가볍게 치면 20정도의 값이 나오네요.

안녕하세요. 오늘은 지난 시간에 배운 PWM을 활용해서 LED의 밝기를 조절하는 것을 해볼까 합니다.

1. PWM을 사용할 수 있는 핀

아두이노 보드의 모든 핀이 PWM을 지원하고 있는 것은 아닙니다. 어떤 보드이냐에 따라 PWM을 사용할 수 있는 핀이 달라지게 되는데요, 저는 제가 사용하고 있는 UNO 보드를 기준으로 설명 드리겠습니다.

그림 1 : UNO 보드 PWM 표시
[그림 1 : UNO 보드 PWM 표시]

아두이노 UNO보드의 경우 그림 1과 같이 디지털 핀 부분을 살펴보면 DIGITAL(PWM~)이라고 되어 있습니다.
여기에 배치되어 있는 핀들은 모두 디지털 핀들인데, 특히 ~(물결) 표시가 되어 있는 핀은 PWM핀이라는 의미입니다.

3, 5, 6, 9, 10, 11번 핀의 숫자 왼쪽을 보면 ~(물결) 표시가 되어 있는 것을 알 수 있습니다. 따라서 이 핀들이 PWM을 사용할 수 있는 핀입니다.

2. analogWrite()함수

위에서 우리가 사용하게 될 PWM 핀들이 모두 디지털 핀임을 알게 되었습니다. 그런데 우리는 digitalWrite()가 아닌 analogWrite()를 사용해야 한다는 점에 유의해 주세요.

digitalWrite()는 HIGH 또는 LOW의 값만 넣어 줄 수 있는 함수이고, analogWrite()는 0~255까지의 값을 넣어 줄 수 있는 함수입니다.(그리고 PWM 핀에서만 사용할 수 있는 함수임에 꼭 유의해주세요!)
analogWrite()를 호출해주면, 해당 핀은 정해진 duty cycle의 square wave1를 계속해서 출력하게 됩니다.

3. 회로

그림 2 : LED Fade 회로
[그림 2 : LED Fade 회로]

그림 2와 같이 회로를 구성합니다.
LED와 220옴 저항을 직렬로 연결하고 LED의 긴쪽(anode)을 디지털 3번 핀에 연결합니다. LED의 짧은 쪽(cathode)는 그라운드(GND) 핀에 연결합니다.

4. 코드

const int LED_PIN = 3;

int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  analogWrite(LED_PIN, brightness);

  brightness += fadeAmount;

  if(brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}
  • 1번 줄 : 3번 PWM핀을 사용합니다.
  • 6~8번 줄 : 3번 핀을 출력모드로 설정합니다.
  • 11번 줄 : 3번 핀에 brightness 값을 아날로그 출력으로 보냅니다.
  • 13번 줄 : brightness에 fadeAmount 값을 더해줍니다.
  • 15~17번 줄 : brightness값이 경계값(0또는 255)에 도달한 경우에 fadeAmount 값의 부호를 바꿔줘서 반대로 동작하게 해줍니다. 예를들어 점점 밝아지고 있는 상황에서는 fadeAmount값이 5일 것이고, brightness가 255에 도달하게 되면 경계값이므로 fadeAmount는 -5로 변하게 됩니다. 그 후로는 brightness값이 점점 줄어들면서 LED가 점점 어두워지고 brightness값이 0이 되면 다시 fadeAmount가 5가 되면서 점점 밝아지는 로직으로 변하게 됩니다. 이러한 동작을 무한 반복하게 됩니다.
  • 19번 줄 : 30ms 동안 대기합니다. (현재 LED의 밝기를 30ms 동안 유지하는 것입니다.)


5. 결과

그림 3 : LED fade 결과
[그림 3 : LED fade 결과]


  1. square wave를 업계에서 한글로 어떻게 번역해서 쓰고 있는지를 잘 모르겠네요. 어쨌든 0또는 1의 두가지 값만을 갖는 각진 형태의 파형을 말합니다.

안녕하세요. 오늘은 LED를 깜빡이는 예제를 만들어 보겠습니다.

1. 필요한 하드웨어

  • 아두이노 보드
  • LED
  • 220옴 저항

1.1. LED

LED(Light Emitting Diode) 또는 발광 다이오드는 순방향 전압을 가했을 때 빛을 내는 반도체 소자입니다.
그림 1 : LED
[그림 1 : LED]

1.1.1. 정격 전압과 저항

저자는 일반적으로 많이 사용되는 LED를 사용하고 있는데요, 모든 전자부품에는 정격 전압이라는 것이 있습니다.
이게 뭐냐하면, 해당 전자 부품이 동작하는데에 필요한 적정한 값의 전압을 의미합니다.
해당 값보다 낮은 값을 할당해주면 제대로 동작하지 않을 수도 있고, 너무 높은 값을 할당하게 되면 부품이 파손될 수도 있습니다.

LED는 색상마다 정격 전압이 각각 다 다릅니다.
아래의 표는 제조사마다 내용이 달라질 수 있지만, 대략 이것과 비슷한 범위 안에 해당될 것 입니다.

색상 최소 전압 최대 전압 전류(일반) 전류(최대)
Red 1.8V 2.3V 20mA 50mA
Orange 2.0V 2.3V 30mA 50mA
Real Yellow 2.0V 2.8V 20mA 50mA
Emerald Green 1.8V 2.3V 20mA 50mA
Real Green 3.0V 3.6V 20mA 50mA
Sky Blue 3.4V 3.8V 20mA 50mA
Real Blue 3.4V 3.8V 20mA 50mA
Pink 3.4V 3.8V 20mA 50mA
White 3.4V 4.0V 20mA 50mA

[표 1 : LED 정격 전압 / 전류]

아두이노에서 제공하는 전압은 5V인데요, 적색 LED를 사용한다고 가정했을 때 LED에 걸리는 전압을 2V로 낮춰주기 위해서는 저항을 직렬로 연결해야 합니다. 그렇게해야 전압 강하가 일어나서 LED에 적정 전압이 걸리게 되죠.

필요한 저항을 구하는 식은 다음과 같습니다.

저항값 = (전원 전압 - LED 전압) / LED 전류


예를들어, 적색 LED를 사용한다고 했을 때 저항 값을 구해보죠.

  • 아두이노의 전원 전압 = 5V
  • LED 전압 = 2V
  • LED 전류 = 20mA

저항값 = (5 - 3) / 0.02 = 100[옴]

따라서 적색 LED를 사용할 때에는 100옴 이상의 저항을 사용하면 됩니다. 일반적으로 220옴 저항을 직렬 연결하면 무리없이 사용할 수 있습니다.

1.1.2. 방향성

LED는 PN접합이라는 구조로 되어 있습니다. 그래서 P형 부분에 +전압을 걸어줘야 하고, N형 부분에 -전압을 걸어줘야 합니다.
LED를 자세히 보면 두개의 다리가 길이가 다릅니다.

그림 2 : Anode / Cathode

[그림 2 : Anode / Cathode]

길이가 긴 쪽을 Anode라고 부르며 +전압을 걸어줘야하는 부분이고, 짧은 쪽을 Cathode라고 부르며 -전압을 걸어줘야하는 부분입니다.

주의 : 만약 전압을 반대로 걸어주게 되면 소자가 망가질 위험이 있습니다.

2. 회로 구성

위에서 설명한 것처럼 회로에서 LED와 저항을 직렬로 연결해줘야 합니다.
그림 3과 같이 회로를 구성합니다.

그림 3 : LED 회로
[그림 3 : LED 회로]

LED의 긴쪽을 아두이노 보드의 디지털 13번 핀에 연결하고 LED의 짧은 쪽을 저항과 직렬 연결하여 아두이노 보드의 GND(그라운드)에 연결합니다. 이 때, 저항을 13번 핀 쪽에 연결할지, 그라운드에 연결할지는 전혀 상관없습니다. 어느 쪽에 연결하든 직렬로만 연결하면 됩니다.

3. 코드

const int LED = 13;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH);   // LED를 켭니다
  delay(1000);               // 1초 동안 멈춥니다
  digitalWrite(LED, LOW);    // LED를 끕니다
  delay(1000);               // 1초 동안 멈춥니다
}
  • 1 줄 - 아두이노 보드의 디지털 13번 핀을 LED라는 상수로 정의합니다.
  • 3~5 줄 - LED 핀을 출력 모드로 설정합니다.
  • 7~12 줄 - 계속 반복 수행되는 코드입니다.
  • 8 줄 - LED 핀에 HIGH 값을 넣어 줍니다. HIGH 값을 넣는다는 것은 5V 전압을 가한다는 의미이므로 LED에 전류가 흐르게 되고 따라서 LED가 켜지게 됩니다.
  • 9 줄 - 1초 동안 멈춥니다.
  • 10 줄 - LED 핀에 LOW 값을 넣어 줍니다. LOW 값을 넣는다는 것은 전압을 가하지 않는다는 의미이므로 LED에 전류가 흐르지 않게 되고 따라서 LED가 꺼지게 됩니다.


4. 결과

결과는 연결된 회로의 LED가 1초 동안 켜졌다가 1초 동안 꺼졌다가를 반복해야 합니다.

그림 4 : 실제 연결한 회로
[그림 4 : 실제 연결한 회로]

안녕하세요.
지난 포스트에 이어, 오늘은 3색 LED 모듈을 사용하는 방법을 알아볼까 합니다.

1. 3색 LED 모듈

3색 LED 모듈은 R, G, B 3개의 핀으로 입력을 받아서 해당 색상을 LED로 출력해주는 모듈입니다.

그림 1 : 3색 LED 모듈
[그림 1 : 3색 LED 모듈]

그림 1을 보시면 알겠지만, 이 모듈에는 총 4개의 핀이 있습니다.
각각 R, G, B, - 라고 쓰여져 있습니다.
R은 빨간색을 출력하기 위한 핀이고, G는 녹색을 출력하기 위한 핀, B는 파란색을 출력하기 위한 핀, 마지막으로 -는 그라운드1에 연결하기 위한 핀입니다.

2. 3색 LED 모듈을 아두이노 보드에 연결

그림 2처럼 아두이노 보드와 3색 LED 모듈을 연결합니다. 빵판을 통해서 연결하셔도 되지만, 워낙 간단한 연결이라서 점퍼 케이블로 빵판을 거치지 않고 직접 연결했습니다.

그림 2 : 3색 LED 모듈과 아두이노 보드의 연결
[그림 2 : 3색 LED 모듈과 아두이노 보드의 연결]

3색 LED 모듈의 각 핀과 아두이노 보드의 각 핀 연결은 표1에 다시 정리를 해 두었으니 참고 바랍니다.

3색 LED 모듈 핀 아두이노 보드 핀
- GND
R 디지털 2번
G 디지털 3번
B 디지털 4번

[표1 : 3색 LED 모듈과 아두이노 보드의 핀 연결]

그림 3은 fritzing을 이용해서 회로 연결을 다이어그램으로 표현한 모습입니다.
3색 LED 모듈은 제품마다 핀의 위치가 다를 수 있습니다. 실제로 제가 가지고 있는 모듈은 왼쪽부터 R, G, B, -의 순서지만, 그림 3의 모듈은 왼쪽부터 B, -, G, R의 순서입니다. 따라서 여러분이 가지고 있는 모듈에 맞게 연결을 하시면 됩니다.

그림 3 - 3색 LED 모듈 연결 다이어그램
그림 3 - 3색 LED 모듈 연결 다이어그램

3. 스케치 작성

회로 연결은 여기까지 보고, 코드를 작성해 보겠습니다.

const int LED_R = 2;    // 디지털 2번 핀 = Red
const int LED_G = 3;    // 디지털 3번 핀 = Green
const int LED_B = 4;    // 디지털 4번 핀 = Blue

void setup() {
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);
}

void loop() {
  turnOnAndOff(LED_R, 500, 500);
  turnOnAndOff(LED_G, 500, 500);
  turnOnAndOff(LED_B, 500, 500);
}

void turnOnAndOff(int pin, unsigned long onDuration, unsigned long offDuration) {
  digitalWrite(pin, HIGH);
  delay(onDuration);

  digitalWrite(pin, LOW);
  delay(offDuration);
}
  • 1~3 줄 - 아두이노 보드에 연결한 핀을 상수로 정의합니다. 이렇게 상수로 정의를 하면 코드를 읽기가 더 편해집니다.
  • 5 줄 - setup() 함수에서 단 한번 수행할 작업들을 정의합니다.
  • 6~8 줄 - pinMode() 함수를 이용해서 각 핀을 출력 모드로 설정해줍니다. pinMode()는 앞으로 많이 보게될 함수이므로 확실히 이해하고 넘어가는 것이 좋겠습니다. 이 함수에는 총 2개의 매개변수를 받는데, 첫번째 매개변수는 핀 번호이고 두번째 매개변수는 해당 핀을 어떤 모드로 사용할 것인지를 나타냅니다. 여기에서는 2번 핀(LED_R), 3번 핀(LED_G), 4번 핀(LED_B)을 모두 출력모드(OUTPUT)로 설정하고 있습니다. OUTPUT이라는 상수는 아두이노에서 미리 정의하고 있는 상수입니다.
  • 11 줄 - loop() 함수에서 무한 반복할 코드를 정의합니다.
  • 12~14 줄 - 제가 정의한 함수는 turnOnAndOff()를 LED_R, LED_G, LED_B 각각의 핀에 대해서 한번씩 호출해줍니다.
  • 18 줄 - digitalWrite() 함수를 이용해서 매개변수로 들어온 pin에 디지털 신호를 보냅니다. 이 함수는 두개의 매개변수를 받는데, 첫번째가 핀 번호, 두번째가 디지털 신호 값입니다. 핀 번호를 말 그대로 아두이노 보드에 연결한 핀의 번호를 넣으면 되고, 디지털 신호 값은 아두이노에서 미리 정의하고 있는 HIGH 또는 LOW를 사용하면 됩니다. 디지털 신호이기 때문에 HIGH가 1을 의미하고(5v 회로에서는 5v가 들어가고, 3.3v 회로에서는 3.3v가 들어갑니다), LOW는 0을 의미합니다.
  • 19 줄 - delay() 함수를 이용해서 다음에 나오는 코드를 지연시킵니다. 이 함수는 미리 세컨드(ms) 단위의 값을 받아서 해당 ms만큼 딜레이시킵니다.
  • 17~23 줄 - 첫번째 매개변수인 pin을 두번째 매개변수인 onDuration만큼 켠 후, 세번째 매개변수인 offDuration만큼 끄는 함수를 정의했습니다.
  • 최종적으로 이 스케치에서 하는 일을 정리해보면, 아두이노 보드의 2, 3, 4번 핀을 출력 모드로 설정한 후 2번, 3번, 4번 핀을 차례대로 500ms 동안 켰다가 500ms 동안 끄는 작업을 무한 반복하게 됩니다.

이렇게 3색 LED 모듈 실습을 해보았는데요, 저는 코드에서 한번에 하나의 색상만 켰지만, 실제로는 동시에 2개 이상의 색상을 켤 수도 있습니다. 이런 실험들은 직접해보시는게 모듈을 이해하는데 더 많은 도움이 될 것 입니다. 오늘 포스트는 이것으로 정리하겠습니다.


  1. 그라운드 - 그라운드는 전위차를 발생시키기 위한 기준 전압이 되는 핀 입니다. 물을 흘려보내기 위해서는 높은 곳에서 낮은 곳으로 흘려야 하듯이, 전류는 흘려보내기 위해서는 전위차를 발생시켜야하는데 이를 위해 필요한 개념이죠. 회로에 따라 GND라 표기하는 곳도 있고 -로 표기하는 곳도 있습니다.

안녕하세요. 지난 포스트에 이어, 오늘은 아두이노 프로그래밍을 할 수 있는 개발 환경을 설정해 보겠습니다.

1. 아두이노 소프트웨어 다운로드

소프트웨어 다운로드는 여기에서 할 수 있고, 그림 1에서 볼 수 있듯이 각 플랫폼 별 개발 환경을 제공하고 있습니다.

그림 1 - 아두이노 소프트웨어 다운로드
그림 1 - 아두이노 소프트웨어 다운로드

설치 과정에서 어려운 부분은 없기 때문에 이 과정은 넘어가도록 하겠습니다.

2. 아두이노 소프트웨어

설치 후에 프로그램을 실행시킨 모습은 그림 2와 같습니다.

그림 2 - 아두이노 소프트웨어를 실행시킨 모습
그림 2 - 아두이노 소프트웨어를 실행시킨 모습

군더더기 없는 정말 심플한 모습입니다.
사실 세부 설정이나 추가 기능들이 메뉴 바에 있지만, 대부분은 자주 쓰이는 기능이 아니므로 필요한 시점에 설명하도록 하겠습니다.

2-1. 툴바

먼저 아두이노 소프트웨어의 툴바에 있는 버튼들을 살펴보죠.

아이콘 버튼 이름 버튼 설명
play play 확인 - 코드의 에러를 체크하고 컴파일 합니다.
export export 업로드 - 코드를 컴파일하고 연결된 아두이노 보드에 컴파일된 코드를 올립니다.
new new 새파일 - 새로운 스케치를 생성합니다.
open open 열기 - 이전에 작성한 스케치를 엽니다. 버튼을 누르면 이전에 작성한 스케치 목록을 볼 수 있습니다.
save save 저장 - 스케치를 저장합니다.
serial_monitor serial_monitor 시리얼 모니터 - 시리얼 모니터를 엽니다.


2-2. 스케치 1

그림 2에서 하얀 부분이 실제 코딩을 해야하는 영역입니다. 기본적으로 setup() 함수와 loop() 함수가 들어가 있습니다.

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

setup함수는 프로그램을 구동시키면 최초에 한번만 호출되는 함수 부분입니다. 따라서 setup함수 안에는 필요한 초기화 작업이 들어갈 수 있습니다.

loop함수는 계속해서 호출되는 함수입니다. 아두이노 보드의 실질적인 작업이 이 loop함수 내에서 이루어진다고 볼 수 있습니다.

3. 아두이노 보드와 컴퓨터 연결

이번에는 아두이노 보드와 컴퓨터를 연결하는 방법을 알아 보겠습니다.
아두이노는 기본적으로 컴퓨터와 USB 연결을 할 수 있는 기능을 제공하고 있습니다. USB를 통해서 전원도 공급받고, 아두이노 소프트웨어로 작성한 스케치도 보드로 업로드할 수 있습니다.

그림 3은 아두이노 보드와 컴퓨터를 USB 케이블을 통해 연결한 모습입니다.

그림 3 - 아두이노 보드와 컴퓨터 연결
그림 3 - 아두이노 보드와 컴퓨터 연결

제대로 연결이 되었다면, 아두이노 보드에 불이 켜질 것 입니다.

여기에서 주의하셔야 하는게, 보드에 불이 들어왔다는 것은 USB 케이블을 통해서 전원이 연결되었음을 의미하기는 하지만, 보드와 컴퓨터가 서로 데이터를 주고 받을 수 있는 상태를 의미하지는 않습니다.
우리는 아두이노 소프트웨어에서 작성한 코드를 USB 케이블을 통해 아두이노 보드로 전달시켜야하기 때문에 서로 데이터를 주고 받을 수 있는 상태로 만들어줘야 합니다.

그림 4가 이러한 연결 상태를 확인할 수 있는 부분입니다.

그림 4 - 아두이노 포트 연결
그림 4 - 아두이노 포트 연결

사용하고 있는 OS에 따라 메뉴는 약간 달라질 수 있지만, 중요한 것은 포트 연결입니다.
제대로 포트 연결을 하지 않으면 열심히 작성한 코드를 보드에 올려볼 수 없습니다.
저는 지금 usb 연결을 하기 때문에, 그림 4에서 /dev/cu.usbmodem1421 (Arduino/Genuino Uno) 포트를 선택했습니다.
포트 이름은 정확히 일치하지 않을수도 있습니다. 중요한 것은 우리가 지금 USB 포트로 연결을 하려는 것이고 그래서 포트 이름에 반드시 usb가 포함되어 있을 거라는 점입니다.

혹시 아두이노 보드에 불이 켜져있는데, 아두이노 소프트웨어의 포트에서 USB 포트를 찾을 수 없는 경우가 있을 수 있습니다.
이 때에는 아두이노 보드와 USB 케이블이 제대로 연결되었는지 확인할 필요가 있습니다.
이러한 경우에는 아두이노 보드에 USB 케이블을 좀 더 꽉! 끼워보시길 바랍니다.

그림 5 - 아두이노 보드와 USB 케이블 연결 상태 체크
그림 5 - 아두이노 보드와 USB 케이블 연결 상태 체크

잘 따라오고 계신가요?!
혹시 잘 안되는 부분이 있다면 꼭 질문 남겨주시기 바랍니다.

이렇게 포트 연결까지 확인이 되시면, 드디어 아두이노 보드에 여러분이 작성한 스케치 코드를 넣을 수 있는 단계까지 오신 겁니다! 축하합니다!

오늘 포스트는 이것으로 마치고, 다음 포스트에서는 3색 LED에 불을 켜는 방법에 대해 알아보겠습니다.


  1. 스케치 - 아두이노에서 작성한 코드를 스케치라 부릅니다.

안녕하세요! 오늘부터 아두이노에 대한 글을 하나씩 쓸 예정이고, 오늘이 그 시작점입니다.

아두이노는 정말 말도 안되게 손쉽게 하드웨어와 소프트웨어를 같이 만질 수 있는 오픈 소스 프로토타이핑 플랫폼입니다. 아두이노의 장점에 대해서 간단히 살펴보면,

  1. 저렴하다.
  2. 윈도우즈, 맥, 리눅스 등 다양한 플랫폼을 지원한다.
  3. 간단하고 명확한 프로그래밍 환경을 제공한다.
  4. 오픈 소스이면서 확장 가능한 소프트웨어이다.
  5. 오픈 소스이면서 확장 가능한 하드웨어이다.

이러한 장점들 덕분에 교육용이나 취미용으로 정말 많은 인기를 끌고 있죠.

핵심 기능을 하는 하드웨어가 아두이노 보드인데, 이 보드도 용도에 따라 여러 종류를 제공하고 있습니다. 참고로 제가 사용하는 보드는 Arduino Uno 보드이며, 보드의 종류는 여기에서 확인하실 수 있습니다.

아두이노는 개별 제품으로도 판매를 하지만, Kit 형태로도 많이 판매를 하고 있습니다. 조금 익숙해지고, 특정 필요한 부품이 있는 경우에는 개별 제품을 구매하셔도 되지만, 처음 시작하는 입장에서는 여러 종류의 Kit이 편합니다. 특히 입문자도 고민하지 않고 살 수 있는 스타터 킷도 많이 판매하고 있으므로 각종 쇼핑몰에서 아두이노 스타터 킷이라고 검색해보시면 많은 결과를 보실 수 있을 것 입니다.

저는 Arduino Upgraded Learning Kit를 구매했습니다.

그림 1 - Arduino Upgraded Learning Kit
그림 1 - Arduino Upgraded Learning Kit

그림 2 - 킷 구성품
그림 2 - 킷 구성품

킷의 구성품을 보시면 아시겠지만, 정말 많은 부품들이 포함되어 있고, 그래서 아두이노를 이용해 여러가지를 배우기에 꽤나 괜찮은 것 같습니다.

그림 3은 아두이노 하드웨어의 핵심이라 할 수 있는 아두이노 보드의 모습입니다. 보드에는 입출력, 전원, 그라운드 등 여러가지 핀들이 존재합니다. 이런 것들에 대해서는 차차 알아나가도록 하죠.

그림 3 - 아두이노 우노 보드
그림 3 - 아두이노 우노 보드

오늘은 아두이노에 대해 정말! 간단한 소개와 제가 구매한 킷을 정말! 간단하게 살펴보았습니다.
다음 시간에는 아두이노 개발 환경 설정에 대한 내용으로 이어가겠습니다.

+ Recent posts