잘 알려지지 않았지만, 유용한 아두이노 활용 방안 세가지
상태바
잘 알려지지 않았지만, 유용한 아두이노 활용 방안 세가지
  • 신동윤 기자
  • 승인 2018.05.09 16:17
  • 댓글 0
이 기사를 공유합니다

대부분의 엔지니어는 툴박스에 들어있는 아두이노(Arduino)를 사용하기 쉽지 않거나 심지어 사용할 수 없는 것으로 느끼기도 한다. 대부분의 경우, 이는 완전히 틀린 생각도 아니기 때문에, 여기서 이를 두고 논쟁을 하고자 하는 것은 아니다. 하지만 많은 사람들이 인지하지 못하는 것 중 하나는, 저렴한 개발보드인 아두이노는 강력한 ‘형태 변형(Shape Shifting)’ 도구라는 점이며, 이런 특성을 활용한다면 상당히 쓸모 있는 툴이 될 수도 있다는 것이다. 다음은 아두이노에 대해 일반적으로 간과되는 세가지 용도다.

디지털 로직 애널라이저

OLS(Open Source Logic Sniffer)는 디지털 로직 분석기의 기능을 구현하는 간단한 소프트웨어 툴이다[그림 1]. OLS 클라이언트는 자바(Java) 기반이므로 대부분의 운영체제에서 쉽게 실행할 수 있다. 아두이노가 갖고 있는 단순화된 직렬 프로토콜로 인해 버스 파이레잇(Bus Pirate)나 로직 파이레잇(Logic Pirate), 그리고 물론 아두이노와 같은 다양한 오픈소스 도구가 OLS에 대한 기본적인 지원을 제공한다. 별도의 외부 부품이 필요 없으며(와이어 제외), 앤드류 길햄(Andrew Gillham)의 오픈소스 코드가 있기 때문에 아두이노 우노(Arduino UNO)를 프로그래밍해 간단하게 디지털 로직 분석기로 만들 수 있다.

[그림 1] OLS는 디지털 로직 분석기의 기능을 구현하는 간단한 소프트웨어 툴이다.

다음은 ATmega328 기반 아두이노를 통해 구현할 수 있는 대표적인 기능이다.

• 최대 4MHz의 샘플링 속도

• 1024 샘플

• 6 채널

• 마스크 트리거링

• Pre/Post 레코딩 비율 제어 기능

• 측정 도구: 주파수, 주기, 듀티 사이클 등

굉장히 뛰어난 사양을 갖추고 있는 것은 아니지만, 충분히 사용할 수 있는 수준의 기능을 제공한다. 필자는 개인적으로 이를 아두이노나 FPGA 구현 시 통신 프로토콜이나 비트-뱅잉(Bit-banging) 코드를 검증하는 용도로 자주 사용한다.

아트멜 AVR 프로그래머

대학생들뿐만 아니라, 대부분의 의사결정에는 비용이 큰 비중을 차지한다. 예를 들면 마이크로 컨트롤러 디자인을 위한 인 시스템 프로그래머를 구매하는 데 소요되는 추가 비용과 같은 문제가 발생할 수 있다. 실제로 프로젝트를 PCB에 영구적으로 만들 수도 있고, AVR(Alf and Vegard's RISC processor)를 수동으로 프로그래밍할 수 있는 방법을 찾아야 할 수도 있다. 어떤 경우라도 아두이노가 제공하는 이런 기능은 매우 유용하게 사용할 수 있다.

방법은 매우 간단하다. 실제로 이런 방법은 어떤 버전의 아두이노 IDE(Integrated Development Environment)에도 포함돼 있다. 실행하는 과정은 다음과 같다.

1. IDE를 열고 파일→예제►ArduinoISP로 이동한다.

2. 일반적인 방법과 마찬가지로 스케치를 컴파일하고 업로드한다.

업로드가 완료되면, 이제 대상 AVR 장치를 프로그래밍하기 위해 RESET과 MOSI, MISO, SCK로 아두이노 인터페이스의 10, 11, 12, 13번 핀을 사용할 수 있다. 이제 남은 유일한 일은 makefile이나 avrdude 명령 줄에 다음 플래그를 추가하는 것이다.

 -P -c avrisp -b 19200  

UART를 통한 USB 연결

잘 알려져 있는 사실이지만, 아두이노에는 FTDI USART-to-USB 칩이 내장돼 있다. 아두이노 UNO R3와 같은 홀(Hole) 스타일 MCU가 장착된 아두이노의 소켓에서 ATmega DIP 칩의 정보를 조심스럽게 확보하면, 직렬 핀(RX/TX)를 다른 용도로도 활용할 수 있다. 개인적으로는 마이크로 컨트롤러 프로그램에 유익한 메뉴를 프로그래밍할 때 주로 사용하고 있다. 때로는 모드를 변경하거나 런타임에 특정 데이터를 요청할 수 있는 간단한 인터페이스가 디버깅 시간을 크게 단축시킬 수 있다. [그림 2]는 직접 제작한 캠퍼스 버스 노선을 위한 버스 추적 시스템을 설계하는 과정에서 만든 메뉴로, 바로 이런 활용 방법에 대한 좋은 사례다.

[그림 2] 버스 추적 시스템을 위한 사용자 정의 메뉴

 

아두이노는 스위스 아미 나이프만큼이나 다재다능함에도 불구하고 지금까지 과소평가당하고 있다. 이제 방치된 아두이노에서 먼지를 털어내고 전자제품 영역에서 새로운 시대를 열어가라고 말하고 싶다.

 

Written by 다니엘 행케위츠(Daniel Hankewycz) & Provided by 마우저 일렉트로닉스(Mouser Electronics)

 

다니엘 행케위츠는 펜스테이트 대학의 컴퓨터공학 전공 학생이다. 그는 임베디드 시스템 설계와 디지털 로직 오류 테스트를 즐긴다. 그는 현재 보안과 이식성에 초점을 맞춘 오픈소스 홈 오토메이션 시스템용 하드웨어를 연구하고 있다.

 

[편집자 주] 본 기사는 글로벌 전자부품 유통회사인 마우저 일렉트로닉스 (Mouser Electronics)의 후원을 바탕으로 진행되는 EPNC의 단독 외부 기고입니다.