아두이노 활용 사례
아두이노란?
아두이노의 통합 개발 환경(IDE)은 Java와 C를 기반으로 개발되는 크로스 플랫폼 응용 소프트웨어이 입니다. 컴파일러는 avr-gcc을 사용한다. 따라서 avr-gcc가 제공하는 많은 C언어의 표준라이브러리를 함수를 사용할 수 있다.
아두이노 개발환경은 C++을 사용하여 원하는 동작을 하도록 코딩을 하고 이것을 보드에 업로드하면 아두이노가 동작한다.아두이노 업로드는 플래시 메모리에 써지므로 다음부터는 전원만 인가하면 동작한다. 만약 PC나 안드로이드에서 아두이노에 오는 데이터를 받아 처리하고 싶다면, 해당 운영 체계에 맞는 개발 도구를 활용하여 프로그램을 작성해야 한다. PC의 비주얼 스튜디오나 안드로이드의 SDK 등이 대표적이다. 이러한 개발도구가 좀 어렵다고 느낀다면, 프로세싱을 사용하여 쉽게 코딩 할 수 있다. 프로세싱은 아두이노 개발환경과 별개로 PC에서 동작하며, 아두이노에서 COM포트로 통신을 하고 이 데이터를 화면 등에 처리하여 보여 줄수 있다. 그래픽 처리를 할 수 있는 함수도 제공한다. 프로세싱에서 안드로이드 모드로 변경하면 안드로이드에서 처리할 수도 있다.
소프트웨어 개발에 생소한 사용자들도 쉽게 프로그래밍할 수 있도록 설계되어 있다. 이러한 아두이노 IDE를 통해 작성된 프로그램이나 코드를 "스케치(Sketch)"라고 부른다
IoT (Internet of Things) - 사물인터넷
아두이노는 유선, 무선으로 인터넷에 연결이 가능하다. 또한 입출력 핀을 통하여 각종 센서 및 릴레이 등의 값을 읽거나 제어가 가능하므로 스마트폰 등을 이용하여 어디서나 인터넷이 연결되는 곳에서 집에 있는 각종 기기들의 제어가 가능하다. 요즘 화두가 되고 있는 사물인터넷을 아두이노로 비교적 간단하게 구현이 가능한 것이다. 요즘 광고에 많이 나오는 집에 도착하기 전에 에어컨이나 보일러, 전등 등을 ON/OFF 하거나 집안에 누가 침입한다면 인터넷을 통해 알려주도록 하는 것 등이 가능한 것이다. 아래는 유튜브에서 찾은 동영상인데 여러가지 재미있는 IoT 제품들을 설명해준다. 물론 아두이노를 이용하여 대부분 개발이 가능하다.
로봇, 드론 등의 개발
아두이노는 DC모터, 스텝핑모터, 서보모터의 정밀한 제어가 가능하다. 예를 들어 장애물 감지 센서와 모터를 아두이노와 연결하여 로봇을 만든다면 장애물을 피해가는 로봇을 만들 수 있으며 기울기 센서 등을 이용하여 드론을 만들면 모터의 출력을 조절하여 뒤집어지지 않는 드론을 만들어 띄울수도 있다. 물론 로봇이나 드론 등은 와이파이, 블루투스 등과 연결하여 RC 처럼 원격으로 조정도 가능하다.
산업분야 - 3D 프린터, CNC 등의 공작기계, 자동제어 분야
제작하기는 조금 어렵겠지만 아두이노로 여러개의 스텝모터를 제어하여 물건을 만드는 3D 프린터나 CNC, 밀링머신 같은 공작기계의 제작이 가능하다. 물론 아두이노보다 뛰어난 스펙의 보드들도 많이 있어서 산업용 기계에 아두이노를 사용하는 것은 조금 제한적인 일일 테지만 집에서 개인용, 취미용으로 만들어 사용한다면 손색이 없을 것이다. 하지만 복잡한 공작기계가 아니라 단순한 제어를 원하는 경우 싸고 간단하게 아두이노를 이용하여 산업현장에서도 사용할 수 있다고 생각한다.
예술분야
아두이노는 예술에도 쓰인다. 백남준의 비디오 아트가 그 창의성을 인정받아 예술로 인정을 받았듯이 아두이노를 이용하여 다양한 창작 및 표현활동을 할 수 있다. 아래의 테이블은 LED를 아두이노로 제어하여 여러가지 예쁜 모양을 만들기도 하고 게임도 하는 테이블로 발전시켰다.
농업분야
아두이노는 농업에도 이용이 된다. 연결된 센서 등을 통하여 농작물에 물을 준다든지 온도, 습도 등에 민감한 식물의 경우 아두이노를 통하여 모니터링 하여 생장에 최적의 환경을 만든다던가 농업도 과학이 기반이 되는 만큼 아두이노를 활용하면 한층 더 과학적인 농업을 할 수 있다.