아두이노는 하드웨어에 익숙하지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있도록 이탈리아의 IDII(Interaction Design Institute Ivrea)에서 2005년에 고안한 컴퓨팅 플랫폼이다. 아두이노는 아두이노 보드 뿐만 아니라 아두이노 프로그램을 통틀어 말한다.
아두이노는 오픈 소스를 기반으로 하여 보드의 회로도가 공개되어 있다. 이를 활용하여 여러 회사에서 아두이노 호환 보드를 만들고 있다. IDII에서 만든 것을 ‘정품 보드’라 하고, 다른 회사에서 만든 것을 ‘호환 보드’라고 한다. 호환 보드는 가격이 싸지만 칩셋이 다를 수 있고, 다른 칩셋을 쓰는 것은 드라이버를 설치해야 정상적으로 동작한다. 아두이노에서 칩셋은 컴퓨터와의 통신을 위해 사용된다. 컴퓨터에 칩셋에 맞는 드라이버가 설치되어 있지 않으면 컴퓨터는 아두이노가 연결되어 있지 않은 것으로 알게 된다.
아두이노 보드에 추가의 보드를 꽂아 기능을 확장할 수 있다. 이러한 보드를 쉴드(shield)라고 한다. 위의 사진은 Xbee라는 쉴드를 꽂은 모습이다. 이렇게 함으로써 아두이노를 사용하듯이 Xbee 통신을 할 수 있다. 와이파이 쉴드, 블루투스 쉴드, SD 카드 쉴드와 같이 여러 종류의 쉴드가 있다.
기능을 확장하기 위해 아두이노 보드에 쉴드를 꽂아서 사용할 수도 있고, 처음부터 원하는 기능이 들어있는 아두이노 보드를 사용하는 방법이 있다.
그림 4는 블루투스의 일종인 BLE 기능이 포함된 아두이노 우노 보드의 예이다. 핀 배열은 아두이노 우노 보드와 동일하다.
아두이노 보드를 사용하려면 프로그램 작성, 컴파일, 업로드 과정을 거쳐 프로그램이 아두이노 보드에 심어져야 한다. 프로그램을 작성하고 수정하기 위해서는 편집기라는 소프트웨어가 필요하다. 편집기로 프로그램을 작성하는 과정을 흔히 ‘코딩’이라고 한다. 아두이노는 C++라는 프로그래밍 언어를 기본으로 사용한다. C++로 작성하고 편집하지만 아두이노 보드는 기계어를 사용하기 때문에 편집한 프로그램을 기계어로 번역해야 한다. 이 과정을 컴파일(compile)이라 하고, 컴파일하는 소프트웨어를 컴파일러(compiler)라고 한다. 컴파일이 끝난 프로그램을 아두이노 보드에 싣는 과정을 업로드(upload)라 하고, 업로드하는 소프트웨어를 업로더(uploader)라고 한다.
아두이노 보드를 동작시키기 위해 편집기, 컴파일러, 업로더 세 가지의 소프트웨어를 넘나들며 다룬다면 불편함이 클 것이다. 아두이노는 통합 개발 환경(IDE; Integrated Development Environment)을 무료로 제공한다. 통합 개발 환경은 편집기, 컴파일러, 업로더 등을 하나로 묶은 소프트웨어이다. 아두이노 통합 개발 환경을 흔히 ‘아두이노 IDE’라고 부르고, 아두이노가 동작하도록 작성한 프로그램을 ‘스케치(sketch)’라고 부른다. 아두이노 IDE 내에 예제로서 많은 스케치를 담고 있다. 예제로 제공하는 스케치는 프로그램을 개발할 때 큰 도움을 준다. 예제로 제공하는 스케치를 이용하여 작은 부분의 프로그램이 제대로 동작하는지 확인하면서 큰 프로그램을 완성해갈 수 있다. 또, 인터넷에 많은 스케치가 공개되어 있으므로 잘 활용하면 프로그램 개발 기간을 줄일 수 있다.
아두이노에 연결한 주변장치를 동작시키기 위해서는 그 주변장치를 구동하기 위한 프로그램이 필요하다. 아두이노는 주변장치를 구동하기 위한 번거로운 작업을 함수와 라이브러리를 통해 대신해 주고 있다. 아두이노가 설치된 디렉터리 아래의 library 디렉터리를 살펴보면 주변장치에 필요한 라이브러리들을 확인할 수 있다. 만일 없다면 주변장치를 구입한 곳이나 인터넷에서 라이브러리를 다운받아 사용할 수 있다.
3.1 아두이노에 대해: 링크
(1) 마이크로프로세서와 마이크로컨트롤러: 링크
(2) 마이크로컨트롤러 보드: 링크
(3) 아두이노(Arduino)에 대해: 링크 (여기)
'책 미리 보기 > "스마트 수경재배기 만들기"' 카테고리의 다른 글
3.2 소프트웨어 설치하기: (1) 아두이노 IDE 설치하기 (0) | 2025.04.07 |
---|---|
3.2 소프트웨어 설치하기 (0) | 2025.04.07 |
3.1 아두이노에 대해: (2) 마이크로컨트롤러 보드 (0) | 2025.04.04 |
3.1 아두이노에 대해: (1) 마이크로프로세서와 마이크로컨트롤러 (0) | 2025.04.04 |
3.1 아두이노에 대해 (0) | 2025.04.03 |