아두이노는 아두이노 보드와 PC 프로그램인 아두이노 IDE로 구성된다.
아두이노 보드는 몇 가지 종류가 있지만 많이 사용하는 보드는 ATmega를 사용한 보드이다. 아두이노 보드는 메인 MCU와 USB-시리얼 변환을 위한 MCU 2개로 구성된다. USB-시리얼 변환을 위한 MCU는 단순한 USB-시리얼 컨버터로 다른 변환칩을 사용해도 된다.
아두이노 보드의 회로도는 공개되어 있고 ISP 포트도 있기 때문에 아두이노 프로그램을 사용하지 않고 다른 용도로 사용할 수도 있다.
기본적으로 아두이노 보드에는 시리얼을 통해 프로그램 헥사 파일을 받아 플래시로 다운로드 후 실행하는 부트로드가 내장되어 있다. 하지만, 부트로드 대신 다른 프로그램을 올려 사용할 수도 있다. 아두이노가 부팅되면 부트로드가 실행되고 부트로드는 처음 몇 초간 시리얼 데이터를 기다리고 만약 시리얼 데이터가 있으면 프로그램을 다운로드하여 플래시에 저장하고 만약 시리얼 데이터가 없으면 플래시 프로그램을 실행한다.
아두이노 IDE는 C++ 컴파일러, 시리얼 다운로드, 시리얼 모니터 기능이 통합된 프로그램으로 아두이노 IDE에서 컴파일하여 생성된 헥사 파일은 아두이노 보드의 부트로드 프로그램과 연계하여 다운로드 한다.
아두이노 IDE에서 C++ 컴파일러에서는 아두이노를 위한 다양한 라이브러리를 사용할 수 있다. 하지만, 라이브러리에는 버그가 좀 있기 때문에 사용에 주의해야 한다. 라이브러리 코드 내부에 버그가 있어 디버깅 하는데 시간이 많이 걸린다. 그리고, 비효율적인 라이브러리가 많기 때문에 웬만하면 직접 코딩하는 것이 좋다.
'전자공학' 카테고리의 다른 글
마그네토 (Magneto)란? (0) | 2018.05.11 |
---|---|
FSO (공중 광통신) (0) | 2018.05.10 |
노트북 전원 장치 (0) | 2018.05.06 |
교통카드에 사용되는 RFID 기술 (0) | 2018.04.30 |
스마트 카드 (0) | 2018.04.28 |
댓글