개발하는 기획자

반응형

1. 아두이노 개발보드


 아두이노 개발보드는 '마이크로컨트롤러'로 이루어진 오픈소스 기반의 단일 보드를 의미한다. 일반적으로 사용하는 제품은 ATMEL 사의 AVR을 기반으로 한 칩셋을 사용하고 있는편이고, 최근엔 CORTEX 사의 칩셋 또한 사용해서 개발되는 보드가 있다. 

 

 통합 개발환경(IDE)를 사용해 소프트웨어를 개발할 수 있는 보드로, 통합 개발환경에 대한 설명은 다른 포스팅(https://techman-tooltip.tistory.com/17)을 참고 가능하다.

 

[기초 1] 아두이노 통합개발환경

1. 통합개발환경(IDE) 란? 통합개발환경(IDE, Integrated Development Environment)는 프로그래밍을 위한 사용자의 개발환경으로 코드를 작성하는 에디터(Editor), 컴파일러(Compiler), 디버그(Debug)와 같이 프로..

techman-tooltip.tistory.com

 

 아두이노 개발보드의 큰 장점은 LED, 스위치 및 각종 외부 센서를 쉽게 연결시키고 통제할 수 있으며, 마이크로프로세스를 쉽게 제어할 수 있는 간단한 방식을 가진데에 있다. 일반적으로 마이크로프로세스를 공부해본 전공생이면 실제 개발환경을 설치하는 부분에서부터 WinAVR 등의 지원되는 컴파일러를 설치하고 개발 프로그램과 연동시키고 업로드를 하는 과정에서부터 많은 피로감을 느끼게되기 마련이다. (심지어 같은 칩셋을 사용하더라도 회사나 강의를 진행하는 교수에 따라 일부 개발환경이 다른 불가사의한 상황도 발생한다.) 최근에 많이 간소화되고 쉬워진 부분이 있지만, 처음 공부하고 접근했을 때 꾀나 복잡하다라는 생각을 지울 수가 없는 것이 사실이다.

 

 이런 부분에 있어 아두이노의 통합 개발환경을 설치하는 것으로도 코드를 컴파일하고 보드로 '펌웨어'를 업로드하는 과정까지 아주 간결하게 처리할 수 있다는 장점을 가져 일반인들도 조금의 프로그래밍 사전 지식을 공부한다면 쉽게 사용할 수 있는 보드이다.

 

 특히나 아두이노 보드의 경우 가격적인 부분에서도 굉장한 장점을 나타내는데, 일반 AVR 개발 보드나 STM, ARM 개발 보드의 가격에 비해 저렴한 편이며, 오픈소스의 특성 상 모든 하드웨어의 데이터(회로도, 거버 파일, 부품 리스트 등)가 공개 되어있어 동일한 사양을 가지는 호환보드(커스텀보드)가 대량으로 중국 등에서 굉장히 저렴한 가격에 공급되고 있어 상당히 싼 가격에도 다양한 보드를 접해볼 수 있는 기회를 가질 수 있다. 

 

 

 

2. 마이크로컨트롤러(MCU, Micro Controller)


 마이크로컨트롤러는 MCU(Micro Controller Unit)이라 불리기도 하며, 입출력 모듈을 하나의 칩으로 만든 임베디드 컴퓨터를 의미한다. 일반적으로 CPU코어, 메모리 및 프로그램을 통해 제어 가능한 입출력 핀 등을 가지고 있다. 

 

 컴퓨터는 넓게 생각하면 연산 능력을 가지며 프로그램을 이용해 데이터를 저장하고 처리하는 전자 기기를 의미하는 단어이다.

 

 여기서 임베디드 컴퓨터는 일반적으로 사용되는 개인 컴퓨터. 즉, 퍼스널 컴퓨터(PC, Personal Computer)의 반대 개념으로 생각하면 이해가 편하다. 우리가 사용하는 PC는 특정 목적으로 개발된 컴퓨터가 아닌 사용자가 본인이 필요한 프로그램을 설치하고 복합적으로 사용한다. 예를 들면 인터넷을 하며 동영상을 보거나 문서 작업을 하기도 하며, 영상편집을 하는 사람들도 있듯이 하나의 목적을 위해 개발된 것이 아닌 컴퓨터를 의미한다. 임베디드 컴퓨터는 반대로 특정한 목적을 가지고 사용되는 컴퓨터들을 말한다. 지금 우리가 사용하고 있는 전자레인지, 세탁기, 냉장고 제어를 위해 내부에 들어 있는 전자 하드웨어가 모두 임베디드 컴퓨터에 속한다. 

 

 마이크로 컨트롤러는 이런 임베디드 컴퓨터 프로그래밍을 위해서 개발되었으며, 다양한 동작이 아닌 지정된 특정 제어를 프로그래밍해서 사용하는 용도로 이용되고 있다. 주로 간단한 동작을 수행하도록 프로그램밍 되고 설계되었기 때문에 성능은 일반용 컴퓨터에 비해 낮으며, 시스템을 구성하기 위한 가격도 낮다.

 

 예를 들어 냉장고는 설정된 온도 보다 높은경우 냉각을 하고 설정 온도보다 냉장고 내부의 온도가 낮은 경우 냉각을 중지한다라는 기본 로직으로 작동되고 있는 것이다. (최근 스마트 기기들이 나오면서 마이크로컨트롤러의 성능도 월등히 향상되는 모습도 보이고 있다.)

 

 

 

3. 아두이노 개발보드 구성


 아두이노 개발보드는 다양하지만 제일 처음 사용자가 접하는 보드는 아마도 90퍼센트 이상 아두이노 우노 R3 보드일 것이다. 해당 보드는 아두이노 기본보드로 가장 유명하고 가격이 저렴한 장점과 초기 사용하기에 여유로운 입출력 핀을 가지고 있어 초급자 키트에 필수적으로 선택되어 포함되어 있는 보드이다. 구성은 아래와 같다.

아두이노 우노 R3 보드의 내부 구성

 조금더 세부적으로 공급되는 전원을 일정하게 변압시키고 안정화시키는 레귤레이터 및 상태 표시 LED, 내부 클럭을 발생시키는 부품 등이 포함되어 있지만, 처음 접할 때는 위에 부품과 핀들이 어떤 역할을 가진지만 알고 있으면 사용하는데에 있어 큰 무리가 없다.

 

- ATmega328 마이크로컨트롤러는 메인 제어장치로 위 사진처럼 보드에 소형화해서 들어간 경우도 있지만, 조금 더 큰 직사각형의 칩으로 되어 있는 보드도 많다.(실제 크기만 일부 차이가 있을 뿐 기능은 동일하다.)

- USB 커넥터는 PC와 연결해 아두이노 보드에 전원을 공급하거나 내가 개발한 프로그램을 업로드 하는데이 사용되며, 

- 외부 커넥터는 아두이노 보드를 사용해 무선 시스템을 구성한 경우 배터리 등을 연결해 별도 동작을 시킬 수 있는 전원 공급부이다.

- 디지털, 아날로그 입출력 핀은 외부 LED, 스위치 및 각종 센서등을 연결해 시스템을 구성하기 위해 구성되어 있다.

- 시리얼 프로그래밍 핀은 USB가 아닌 별도 커넥터를 이용해 프로그램을 업로드할 수 있는 핀들로 솔직히 크게 초급 단계에서는 사용되지 않는 핀이다.

 

 별도로 센서 모듈이 포함되서 개발된 커스텀 보드나, 또는 입출력 핀이 추가된 보드, 마이크로컨트롤러의 기능적인 사양이 향상된 보드가 있긴하지만, 위의 아두이노 우노 U3 보드를 설명한 것과 같이 구성은 대부분이 동일하다.

 

 

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver
-->