아두이노 개요
아두이노는 Atmel사의 MCU를 이용하여 매우 간단하고 쉽게 하드웨어 제어와 응용을 할 수 있게 만든 오픈소스 형태로 개발된 마이컴 기기입니다.
기존의 AVR시스템들이 레지스터들을 직접 비트조작등을 해야했고, 기계어나 어셈블리같은 복잡한 프로그래밍 기법을 이용해야 했으나 아두이노는 스케치라는 보다 간단한 그리고 직관적인 소스개발 방식으로 보다 쉽게 사용이 가능합니다.
이로인해서 전자/전기관련 비전공자들도 쉽게 접근하여 원하는 하드웨어 제품을 다룰 수 있게하였습니다.
아두이노 s/w
아두이노의 통합 개발 환경(IDE)은 Java와 C를 기반으로 개발되는 크로스 플랫폼 응용 소프트웨어이 입니다. 컴파일러는 avr-gcc을 사용한다. 따라서 avr-gcc가 제공하는 많은 C언어의 표준라이브러리를 함수를 사용할 수 있다.
아두이노 개발환경은 C++을 사용하여 원하는 동작을 하도록 코딩을 하고 이것을 보드에 업로드하면 아두이노가 동작한다.아두이노 업로드는 플래시 메모리에 써지므로 다음부터는 전원만 인가하면 동작한다. 만약 PC나 안드로이드에서 아두이노에 오는 데이터를 받아 처리하고 싶다면, 해당 운영 체계에 맞는 개발 도구를 활용하여 프로그램을 작성해야 한다. PC의 비주얼 스튜디오나 안드로이드의 SDK 등이 대표적이다. 이러한 개발도구가 좀 어렵다고 느낀다면, 프로세싱을 사용하여 쉽게 코딩 할 수 있다. 프로세싱은 아두이노 개발환경과 별개로 PC에서 동작하며, 아두이노에서 COM포트로 통신을 하고 이 데이터를 화면 등에 처리하여 보여 줄수 있다. 그래픽 처리를 할 수 있는 함수도 제공한다. 프로세싱에서 안드로이드 모드로 변경하면 안드로이드에서 처리할 수도 있다.
소프트웨어 개발에 생소한 사용자들도 쉽게 프로그래밍할 수 있도록 설계되어 있다. 이러한 아두이노 IDE를 통해 작성된 프로그램이나 코드를 "스케치(Sketch)"라고 부른다
아두이노 통합 개발 환경
아두이노 통합환경은 편집기, 컴파일러, 업로드 등이 합쳐진 환경이다. 이와 더불어 기타 개발에 필요한 각종 옵션 및 라이브러리 관리를 할 수 있다. 실행 시, 개인용 컴퓨터와 시리얼 통신을 할 수 있는 모니터를 제공한다. 보통 USB을 통해 업로드를 하므로 아두이노 보드는 USB를 UART 통신으로 바꾸는 방법이 제공되고, MCU가 실행할 때는 이 UART 통신을 이용하여 필요한 통신을 할 수 있다. 이렇게 되려면 아두이노의 MCU는 부트로더가 올라가 있어야 한다.
아두이노 H/D 구성도
마이크로 컨트롤러,플래시메모리,SRAM,EEPROM
클럭,사용 전압,디지털 입출력 핀,아날로그 입력 핀
아두이노 응용분야
각종 로봇, 제조, 공업 등의 산업 분야는 물론이고 농업에서도 멋진 기능을 수행할 수 있습니다.특히 3D 프린팅과 IoT(사물인터넷)를 결합하여 더욱 멋진 제품을 만들 수도 있습니다. 햇빛을 감지해 햇빛이 일정 세기 이상이 감지되면 자동으로 커튼을 치고, 퇴근 후 집에 들어오면 스스로 집안의 형광등을 켤 수도 있고 욕조에 물을 받게 할 수도 있습니다. 로봇 키트를 이용해 직접 나만의 드론을 만들어보기도 하고 무선조종 자동차를 설계할 수도 있습니다. 이러한 발전 가능성 때문에 지금 세계는 융합인재를 양성하려는 움직임을 많이 보이고 있답니다. 우리나라도 융합인재, IoT 인재양성, 3D 프린팅 교육에 열을 올리고 있습니다.