아두이노: 두 판 사이의 차이

(자동 찾아 바꾸기: 「왠만」(을)를 「웬만」(으)로)
편집 요약 없음
1번째 줄: 1번째 줄:
[[파일:Arduino_uno_compatible_board.png|섬네일|오른쪽|아두이노 우노 호환보드]]
[[파일:Arduino_uno_compatible_board.png|섬네일|오른쪽|아두이노 우노 호환보드]]
[https://www.arduino.cc/ 홈페이지]
==개요==
==개요==
'''아두이노'''(Arduino)는 [[이탈리아]] {{ㅊ|중국}}에서 만들어진 마이크로컨트롤러로 구성 된 보드(하드웨어)와 관련 개발 도구 및 환경(소프트웨어)이다. 보편화된 하드웨어는 아두이노 우노(UNO) R3이다.  
'''아두이노'''(Arduino)는 [[이탈리아]] {{ㅊ|중국}}에서 만들어진 마이크로컨트롤러로 구성 된 보드(하드웨어)와 관련 개발 도구 및 환경(소프트웨어)이다. 보편화된 하드웨어는 아두이노 우노(UNO) R3이다.  

2020년 3월 24일 (화) 18:30 판

아두이노 우노 호환보드

홈페이지

개요

아두이노(Arduino)는 이탈리아 중국에서 만들어진 마이크로컨트롤러로 구성 된 보드(하드웨어)와 관련 개발 도구 및 환경(소프트웨어)이다. 보편화된 하드웨어는 아두이노 우노(UNO) R3이다.

장점

  • 프로그래밍이 비교적 쉽다. 원래 마이크로프로세서를 다루기 위한 과정에서 필수인 엄청난 숫자의 레지스터(및 그 관련 문서)를 건드리지 않고서도 아두이노 라이브러리 만으로도 어느 정도 프로그래밍이 가능하다. 거기다가 라이브러리 자체가 유저 친화적인 설계나 하위 호환성 등의 이유로 굉장히 간결하다.
    • 라이브러리의 폭넓은 활용성으로 인해 GUI 기반의 프로그래밍 툴도 있어 초보자도 약간만 고생하면 어렵지 않게 아두이노를 프로그래밍 할 수 있다.
  • 유저 베이스가 넓다. 포럼이 매우 활성화 되어있고, 초보부터 고수까지 어마어마한 수의 유저들이 전 세계에 포진해 있다. 덕분에 막히는 점이 있을 때 이런저런 도움을 받기가 쉽다.
  • 기능 확장이 쉽다. 유저 베이스가 넓기 때문에(=돈이 되기 때문에) 확장 보드가 많다. 웬만한 마이크로프로세서 자작에 쓰일 법한 통신 모듈, 센서 모듈, 액추에이터 모듈들은 아두이노 쉴드(Arduino Shields)라는 이름으로 검색해보면 다 나온다.

단점

  • 성능이 영 좋지 않다. 실제 동작 속도가 그다지 빠르지 않은 AVR 기반의 프로세서[1]에다가, 아두이노를 돌리기 위한 시스템 오버헤드도 있다.
  • 고급 기능을 쓰기 힘들다. 초보자들도 프로그래밍을 쉽게 하기 위해 선택한 라이브러리의 간결함이 결국 고급 기능을 지원하지 않기 때문에, HW상으론 가능한 고급 기능들이 기본 라이브러리만으로는 구현할 수가 없다. 오히려 기본 라이브러리에서 어설프게 건드린 레지스터가 족쇄가 되어 프로그램이 더욱 복잡해질 여지도 많다.
  • 용어/축약어 문제
    • 아두이노 함수 중에 analogWrite() 라는 출력용 함수가 있는데, 아날로그라는 이름과는 달리 실제로는 디지털 방식인 PWM(Pulse Width Modulation, 펄스 폭 변조)을 이용하여 출력을 한다. 이런 경우 아두이노에서 나오는 2.5V 출력(=analogWrite(127))을 측정하면 2.5V DC 신호가 아닌 50% 듀티 사이클인 5V 구형파(사각파)로 출력된다. 자세한 내용은 PWManalogWrite 참조.

제품 목록

보통은 정품보다 많이 저렴한 호환 보드를 사용한다. 회로도 및 기판 배치, 프로그램 라이브러리 등 각종 정보가 크리에이티브 커먼즈 라이선스로 전부 풀려져 있어[2], 약간의 관련 지식만 있으면 똑같은 성능의 카피 보드를 누구나 만들 수 있기 때문.

사용 동향

고급 사용자들에겐 단점이 많지만, 이는 결국 성능과 접근성 사이의 선택에 의한 결과이다. 저 많은 단점에도 불구하고 아두이노가 유행하는 이유는 프로그래밍이나 임베디드 시스템에 대한 지식이 전혀없는 사람도 며칠만 고생하면 각종 센서와 액추에이터로 꽤 그럴싸한 물건을 만들 수 있을 정도의 쉬운 난이도를 자랑하기 때문이다. 덕분에 취미로 임베디드 시스템을 입문하려는 사람이나 공학적 소양이 거의 없는 예술 분야에서 활용하는 사람들이 많이 찾고, 또 유용하게 사용한다.

그러나 결국, 복잡한 동작을 하기 위해서는 아두이노만으로는 만족하지 못하는 순간이 온다. 근데 사실 뭘 써도 100% 만족할 수는 없다. 시간 노력 돈의 트레이드오프가 있을 뿐요구하는 동작이 복잡해지고 타이밍이 빠듯해질 수록 결국 모자라는 성능을 위해 기존 라이브러리를 대체/우회하게되고, 그러다보면 라즈베리 파이 같은 비슷한 분야의 더 성능이 좋은 프로세서로 옮겨가거나 아두이노는 제어용 보드로 전락하고 PC에서 모든 연산을 하는 쪽으로 나아가게 된다.

각주

  1. Due 같은, 고성능 프로세서를 쓰는 버전도 있기는 하다.
  2. Arduino UNO & Genuino UNO/Documentation , schematics in .pdf 파일 참고. nano, mega, due 등 다른 제품들은 해당 제품 Documentation 문단의 schematics in .pdf 파일을 참고