레이블이 종류인 게시물을 표시합니다. 모든 게시물 표시
레이블이 종류인 게시물을 표시합니다. 모든 게시물 표시

2015년 5월 29일 금요일

아두이노 라이브러리의 분류

 아두이노는 주변 기기들을 간편하게 제어할 수 있는 다양한 라이브러리가 존재한다. arduino.cc 에서는 이들 라이브러리를 표준 라이브러리와 그외의 것들로 구분하는데 표준 라이브러리는 아두이노 IDE에 포함된 것으로 다음과 같은 것들이 있다.

[표 1] 아두이노 표준 라이브러리
라이브러리명
기능
비고
EEPROM
EEPROM에 읽고 쓰는 기능을 하는 함수들.
Ethernet
Arduino Ethernet Shield를 이용한 인터넷 접속.
Firmata
시리얼 프로토콜을 이용하여 PC와 연결하여 데이터를 주고 받기.
GSM
GSM shield를 이용하여 GSM/GRPS 네트워크에 접속하기.
LiquidCrystal
LCD 제어.
SD
SD카드에 읽고 쓰기.
Servo
서보모터 제어.
SPI
SPI(Serial Peripheral Interface) 통신.
SoftwareSerial
시리얼통신을 소프트웨어적으로 구현한 것.
Stepper
스테핑모터 구동.
TFT
Arduino TFT screen에 문자, 이미지, 도형 표시하기.
WiFi
Arduino WiFi shield를 이용하여 인터넷 접속하기.
Wire
TWI (I2C) 통신.

[표 2] 특수 라이브러리
라이브러리명
기능
비고
Audio
SD카드에 저장된 오디오파일 재싱.
Due
Scheduler
다중 non-blocking 태스크 관리.
USBHost
마우스와 키보드 같은 USB주변장치와의 통신.
Esplora
Esplora 보드의 센서와 작동기를 쉽게 접근하도록 함.
Esplora
Keyboard
연결된 컴퓨터에 키보드 입력 전송.
Leonardo, Micro,Due,Esplora
Mouse
연결된 컴퓨터의 마우스 커서 제어.

[표 3] 기타 라이브러리 (사용하기 위해서는 설치 과정이 필요함)
라이브러리명
기능
비고
Messenger
PC로부터의 텍스트기반 메시지 처리.
통신
NewSoftwareSerial
SoftwareSerial 라이브러리의 개선판
OneWire
1-wire protocol을 사용하는 장치 제어(Dallas Semiconductor)
PS2Keyboard
PS2 키보드로부터 문자 읽어들이기.
Simple Message System
아두이노와 PC간 메시지 보내기.
SSerial2Mobile
휴대폰을 이용하여 문자메세지나 이메일 보내기.
Webduino
확장가능한 웹서버 라이브러리(이더넷쉴드)
X10
AC전원선으로 x10신호 보내기.
XBee
XBee와의 통신.
SerialControl
시리얼 통신으로 다른 아두이노 제어하기

Capacitive Sensing
두 개 혹은 그 이상의 핀을 정전식 터치센서로 사용.
센싱
Debounce
(버튼으로부터) 바운싱을 제거하기.

GFX
기반 클래스(표준 그래픽 루틴)
디스플레이/LED
GLCD
KS0108 칩 기반의 그래픽 LCD 라이브러리
Improved LCD library
LCD라이브러리의 오류 수정 버전
LedControl
LED행렬/7세그먼트 제어 (MAX7221/MAX7219)
LedControl
여러개의 LED를 Maxim칩으로 제어하는 다른 라이브러리
LedDisplay
HCMS-20xx 스크롤링 LED디스틀레이 제어.
Matrix
기본적인 LED매트릭스를 제어하는 라이브러리.
PCD8544
Nokia55100 LCD 제어기(Adafruit ind.)
Sprite
LED매트릭스의 애니메이션 사용을 위한 기반 클래스
ST7735
1.8“ TFT 128x160 스크린 제어 라이브러리(adafruit)

FFT
오디오 혹은 다른 아날로그 신호의 주파수 해석.
audio
Tone
오디오 주파수의 구형파 생성.

TLC5940
16채널 12비트 PWM 제어기
PWM

DateTime
현재 날짜와 시간을 추적.
타이밍
Metro
정해진 시간 간격으로 수행.
MsTimer2
타이머2를 써서 매 N밀리초마다 정해진 일을 수행

PString
버퍼에 프린팅을 하기위한 가벼운 클래스
유틸
Streaming
프린트문을 간략히 하기위한 메쏘드
 여기에 소개된 리스트 외에도 사용자들이 작성한 수 많은 라이브러리들이 공유되고 있다. 따라서 본인이 필요한 기능을 구현하기 위해서 직접 작성하기 전에 그 기능을 지원하는 라이브러리가 있는지 검색해 보는 과정을 거쳐야 한다.


2015년 4월 17일 금요일

[00012a] AVR기반의 아두이노(arduino)의 종류

 아두이노(arduino)보드는 하드웨어와 소프트웨어 구조가 모두 개방된 오픈소스 플랫폼이기 때문에 정품뿐만 아니라 수많은 변종 보드들이 존재한다. 여기에서는 동일한 Arduino IDE를 사용해서 개발할 수 있고 기본적으로 많이 사용되는 보드들 위주로 설명하도록 하겠다.

우노(uno), 나노(nano) / 프로(pro), 미니(mini), 프로미니(pro mini)


 이 다섯 가지 보드는 모두 atmega328p 라는 프로세서를 기반으로 한 보드들이므로 코어 부분은 모두 동일하다. 다만 크기를 작게 만들거나 또는 양산을 위해서 USB통신부가 제거되었거나 하는 부분이 다를 뿐이다.

(a) 아두이노 우노와 나노


 아두이노 우노는 가장 많이 사용되는 기본적인 아두이노 보드이다. 이 보드의 핀 배열이 거의 표준과 같이 사용된다. 2014년 현재 세 번째 버전인 우노 R3 가 유통되고 있다.



아두이노 나노(nano)는 우노와 거의 동일한 구성을 가지고 있다. 빵판에서 실험할 수 있도록 작은 크기와 핀배열을 가진다.


(b) 아두이노 프로와 프로 미니


 다량의 완성품에 장착하기 용이하도록 소형화시키고 usb시리얼 변환 칩을 제거한 제품이다. 따라서 프로그래밍을 위한 별도의 usb시리얼 변환기가 필요하다. Atmega328 (혹은 Atmega168) 기반으로서 아두이노 우노와 거의 동일한 스펙을 가진다.

<아두이노 미니> - 프로미니와 핀배열이 거의 동일함

아두이노 레오나르도 (arduino leonardo)와 마이크로(micro)


레오나르도 보드는 USB기능이 내장된 atmega32u4 를 메인 프로세서로 사용한다. (이에 반해 우노 보드는 usb 통신을 위해서 메인 프로세서와 별도의 칩을 사용한다.) 따라서 프로그램 다운로드와 시리얼통신 포트가 독립적으로 동작된다. 단가가 우노보다 낮다.(고는 하지만 우노나 레오나르도나 -최저가로 검색하면- 만원대에 구입 가능함) 키보드/마우스/조이스틱과 같은 주변기기로 인식시킬 수 있어서 활용도가 높다.


아두이노 마이크로는 레오나르도 보드와 동일한 프로세서를 사용한 소형 보드이다.


아두이노 메가 2560 / 메가 ADK


 프로세서로 ATmgea2560 을 사용하여 우노 보드보다 기능과 핀수가 많은 보드이다.


아두이노 두에 (arduino due)


 다른 아두이노 제품들이 8-bit 마이크로콘트롤러인 AVR 기반인 것과 달리 아두이노 두에는 32-bit ARM core 프로세서를 사용한다. 기능과 성능이 높고 핀 수가 매우 많아서 보다 전문적인 제품 개발과 연구 목적으로 사용할 수 있다.


아두이노 제로 (arduino zero)


 Atmel사와 아두이노가 동동 개발한 거승로 프로세서는 AVR 이 아니라 ATSAMD21 이라는 ARM 계열의 32비트 프로세서를 채용하였다. 48MHz 의 클럭 주파수로 동작하는데 이것만 놓고 보면 아두이노 우노 성능의 3배이다.


클럭 속도 외에 우노와 비교하여 특이한 점은 0번과 1번을 제외한 모든 디지털 핀에서 PWM 기능을 사용할 수 있다는 점과 플래시메모리가 256KB 로서 우노의 8배 정도로 늘었다는 것이다. 개발 환경에서도 별도의 usb 통신 단자를 통해서 atmel 의 Embedded Debugger (EDBG) 기능을 사용할 수 있어서 디버깅에 별도의 장치가 필요없다는 점도 눈에 띈다. 우노와의 차이점을 정리하면 다음과 같다.

  • 32비트 프로세서 채용
  • 3.3V로 동작
  • 48MHz의 클럭 주파수 (우노대비 4배)
  • 12개의 PWM핀 (우노의 PWM핀은 6개)
  • 256KB의 플래시메모리 (우노대비 8배)
  • 디버깅(EDBG)을 위한 별도의 usb 단자 내장
  • 12비트 ADC (우노는 10비트 ADC임)

현재(2015년 4월) 아직 출시되지는 않았지만 조만간 나올 예정이다.

아두이노 융 (arduino yun)


 레오나르도 기판과 HTTP 통신과 같은 온갖 텍스트 기반의 작업을 처리하는 Linino(리눅스 변형 OS)를 구동하는 WI-FI 리눅스 기판을 내장하고 있다. USB통신 뿐만 아니라 와이파이를 통해 프로그램이 가능하다.


갈릴레오 보드 (galilero board)


 인텔의 쿼크(Quark) 프로세서 X1000 를 이용한 고성능의 아두이노 호환 보드이다.
최대 400MHz의 클럭속도를 가지는 초전력 x86 기반의 프로세서이다.
기존 아두이노 우노의 핀배열을 가지며 유사한 개발 환경을 이용할 수 있다.
별도의 갈릴레오보드 전용 IDE가 제공되지만 사용법은 아두이노 IDE 와 동일하다.


기타 변종 아두이노들


 '아두이노'는 등록된 상표이므로 정품 보드만 이 이름을 사용할 수 있다. 이런 이유로 보통 파생 제품들은 두이노(duino)라는 접미어로 새로운 이름을 만들어서 사용한다. 개중에는 공식 아두이노와 완벽하게 호환되면서 가격은 더 저렴한 것들이 많으므로 이것을 이용해도 같은 개발도구와 라이브러리로 작업을 할 수 있다.

몇몇 예를 들어보면 다음과 같다.

  • Freeduino
  • Funduino
  • Seeeduino
  • Korduino
  • Meduino (make block)
  • Paperduino
  • Boraduino
  • Roboduino
  • Femtoduino (가장 작은 아두이노 호환 복제품)
  • Ruggeduino (I/O 보호 기능이 내장된 아두이노 보드)
  • pcDuino (갈릴레오보드와 비슷한 개념)

등등 이 외에도 수많은 변종 보드들이 존재한다.