반응형

 이번 시간에는 아두이노 라이브러리에 관해 살펴볼까 합니다.
특히, 아두이노 라이브러리 설치 경로 ,  아두이노 라이브러리 에러, 아두이노 라이브러리 추가 방법 등 아두이노 라이브러리 관련된 개념을 종합적으로 정리해 보겠습니다.

아두이노는 전자 관련 분야뿐 아니라, 이공계 및 비전문 분야인 인문계 등 전분야에서 두루 활용되고 있습니다.
특히 대학 같은 곳에서 졸업논문 대신 창의적 종합설계 능력을 반영한 캡스톤 디자인 작품을 만드는 것에도 아두이노가 많이 활용되고 있습니다.
 그만큼 비전공자도 접근하기 쉽고 빠른 시간 내에 수준 있는 작품을 만들어 낼 수 있기 때문에 인기가 높은데요, 
이를 가능하게 해주는 것이,
1. 하드웨어적으로는 주요 회로 부품의 모듈화를 들 수 있겠습니다. 
  : 예를 들어 예전에는 초음파 센서를 이용한 장애물 회피 RC카를 만든다고 할 때,  수십 개의 전자부품을 이용해서, 초음파 센싱 회로, 모터 구동회로, 마이크로 프로세서 보드 등을 직접 만들어야 했고, 각각의 회로 동작을 검증한 다음, 회로들을 연결하여 동작이 잘 되는지 등 관련 전공자도 제법 많은 시간과 쉽지 않은 과정을 거쳐야 만들 수 있었다면, 
이젠 이런 각각의 회로들을 모듈로 제품화 하였기에 쉽게 각 모듈을 구매 후 연결만 하면 동작이 잘되기 때문에 전자부품 및 회로에 대한 이해의 깊이가 없더라도 충분히 다룰 수 있게 된 것이 하나의 이유가 되겠습니다.  

두 번째로,
2. 소프트웨어적으로 간단하게 코딩 할 수 있도록 다양한 라이브러리가 제공되며,  심플하면서 강력한 IDE툴 무료 제공.
 : 소프트웨어적으로 예전에는 각각의 모듈 회로들을 제어하고 통제하는 코드를 일일이 작성하고 전체 코드를 연결 작성해야 하는 코딩의 어려움이 있었다면,  이제는 제품화된 모듈들의 어려운 제어 코드들을 제조사 또는 유저 그룹 등에서 모듈화 하여 라이브러리로 제공되고 있기 때문에, C 또는 C++ 언어의 기초만 알고 있어도 쉽게 코딩이 가능하다는 것이 아두이노 활용의 큰 매력이며, 장점이라고 말할 수 있습니다. 

 하지만, 아두이노를 시작하고 가장 크게 부딪히는 문제가 바로, 라이브러리 관련 에러라고 할 수 있습니다.

그리고 사실 아두이노에서는 하드웨어 못지 않게 하드웨어를 컨트롤하기 위한 소프트웨어 특히 라이브러리를 관리하고 다루는 것이 매우 중요합니다. 
 따라서 다음의 주요 주제에 대해 알아두면, 아두이노를 활용할 때 부딪히는 문제에 대해 쉽게 해결할 수 있을 것입니다.

 
 [ 1. 아두이노 IDE 표준 라이브러리의 설치 위치 / 경로 파악하기 ]

 아두이노를 사용하기 위해 처음 설치하는 프로그램이 아두이노 IDE입니다.
 아두이노 IDE는 통합개발 환경툴(Integrated Development Enviroment)로서  코드 편집 기능, 컴파일러, 코드 업로더 등이 합쳐진 툴로서 인터페이스가 매우 심플해서 접근하기 쉽고 사용하기에도 아주 편리한 툴입니다.

 아두이노 IDE를 처음 설치하게 되면, 윈도기준으로  C:\Program Files (x86)\Arduino 경로로 설치가 되며,


표준 라이브러리라 하여 기본적으로 설치되는 라이브러리가 있습니다.  C:\Program Files (x86)\Arduino\libraries

표준라이브러리 및 임의 추가된 라이브러리 위치

IDE 설치 버전에 따라 표준라이브러리가 다를 수 있으며, 위·아래 이미지의 경우 일부 사용자 임의로 추가된 것도 포함되어 있습니다. 

표준 라이브러리 위치

 

[ 2. 아두이노 라이브러리 추가하기 / 라이브러리 위치 파악하기 ]

 아두이노에는 엄청나게 많은 모듈들이 있고 이 모듈들을 사용하기 쉽게 라이브러리를 제공하고 있습니다. 
따라서 IDE 설치 이후에 이런 라이브러리를 추가하게 되는데요, 추가할 라이브러리의 설치 위치는 기본적으로 문서 폴더에 설치됩니다.
C:\문서\Arduino    또는  C:\Document\Arduino

 

 

따라서, 아두이노의 경우 설치될 때 표준 라이브러리가 설치되는 곳과 추가 사용자 라이브러리가 설치되는 곳 등 2곳이 존재합니다.     만약 두 곳 모두에 동일한 이름의 라이브러리가 설치될 경우,  해당 라이브러리가 포함된 아두이노 코드를 컴파일할 때 모두 인식되어 충돌 에러를 발생시키게 됩니다. (충돌 해결법은 아래에 소개)


 [ 3. 아두이노 라이브러리 추가하는 3가지 방법 ]


   ① 라이브러리 매니저를 통하여 라이브러리 검색 후 설치하는 방법 :
      아래 이미지의 메뉴 중에서 라이브러리 관리... 를 선택합니다


 아래 이미지의 라이브러리 매니저 검색창에서 원하는 라이브러리를 검색하고 버전 선택을 할 수 있으며 설치 버튼을 누르면 라이브러리가 자동으로 선택됩니다.  (라이브러리 검색 시 이름을 일부만 입력하면 해당 철자가 들어간 모든 라이브러리를 검색해 줍니다)

      이때, 설치되는 파일 위치는 사용자 문서 폴더인 C:\Document\Arduino  위치에 설치됩니다.  (추후 자동 업데이트 포함)

②  또한 라이브러리를 깃허브(Git Hub) 또는 인터넷 검색으로 검색할 때  xxx.zip 형태의 압축파일로 다운로드하게 되는데,  압축 파일을 풀어서 C:\Document\Arduino\ 위치에 폴더 형태로 붙여 넣기 하면 해당 라이브러리를 사용할 수 있습니다. (단, 아두이노 IDE를 재실행해야 적용됩니다),  물론 표준 라이브러리가 설치되는 폴더인 C:\Program Files (x86)\Arduino\libraries\  에 붙여 넣기 하여도 됩니다. 

중요~!  두 가지 폴더 위치 모두에 동일한 이름의 라이브러리를 설치할 경우 에러가 발생합니다!  둘 중 한 곳은 삭제(제거) 해야 합니다.   그냥 라이브러리 폴더 째로 삭제하세요.
그리고 두 폴더의 차이는 두 가지 라이브러리 중 사용자가 설치한 문서 폴더에 있는 라이브러리가 먼저 적용됩니다.  그리고 만약 표준 라이브러리 폴더에 있는 라이브러리보다 버전이 낮더라도 먼저 인식 처리되며, 만약 중복될 경우 표준 라이브러리에 있는 라이브러리를 중복 에러로 표시하게 됩니다.
 또한, 압축을 풀지 않고 압축파일 속이 아래와 같은 특정한 형식으로 된 압축 파일이라면 .zip 파일 추가하기 메뉴로 바로 추가할 수 있습니다.

.zip 파일 추가하기 파일 속 구조( src 폴더 아래에 각종 라이브러리 헤더 파일이 포함 되어 있다)

 

③ 사용자가 직접 만들어 라이브러리를 추가할 수 있습니다.(사용자 정의 라이브러리 만들어 추가하기)
  
조금 전에 설명한  .zip 파일 라이브러리 구조와 같은 구조를 만들어 추가할 수 있습니다. 

src 폴더 아래에 라이브러리 헤더파일(.h)과 소스코드파일(.c)을 작성해서 위치시킨다

 

아두이노 예제 파일(.ino)을 만들어 example 폴더 아래 예제명과 같은 폴더를 만들어 위치시킨다

  -  xxx.h (헤더 파일)과  필요에 따라 xxx.cpp 또는 xxx.c 로된 소스코드 파일  그리고 examples 예제 폴더를 만들고 그 안에 xxx.ino 와 같은 예제 파일을 만들어 놓으면 됩니다. 
  -  그리고 Readme.txt, keywords.txt와 같은 라이브러리 작성자 및 사용법에 관한 안내를 적절한 내용으로 만들면, 이 라이브러리를 다운 받아 사용하는 사람에게 도움이 될 수 있습니다. 
    ( xxx.h 헤더 파일과 examples 폴더 내 .ino 예제 파일 구성은 라이브러리를 추가할 때 인식시키기 위한 필수 항목입니다)
 이런 구조로  .zip 파일 형태로 추가했을 때, 아두이노 IDE 메뉴의 예제 메뉴에서 아두이노 예제 코드를 불러올 수도 있게 됩니다. 


 


 - 반드시 .zip 파일 형태로만 추가할 수 있는 것은 아니며,  단순히 폴더 하나 만들고 그 속에 xxx.h 헤더 파일과 또는 헤더 파일과 xxx.c 소스 파일만 넣고,  C:\Document\Arduino\ 위치에 폴더 형태로 붙여 넣기만 하면 됩니다. ( 아두이노 IDE 재시작 필요)

 

 [ 3. 아두이노 라이브러리 에러 대처하기 ]

 - 라이브러리 설치 시 배포자와 버전이 중요할 수 있는 이유 : 
 같은 이름의 라이브러리라 하더라도, 라이브러리 제작자가 다를 수 있으며 당연히 라이브러리 내의 코드 구성 내용이 다를 수 있어 라이브러리 관련 함수 사용 시 에러가 발생할 수 있습니다.  (이를 구분할 수 있는 방법은 메모장 같은 것으로 파일을 직접 열어보면 알 수 있고, 파일의 용량이 기본적으로 차이가 납니다). 
  또한 같은 라이브러리 제작자라 하더라도 제작 버전에 따라 함수 및 기능 추가, 삭제, 사용법 변경 등이 이루어 지기에 에러가 발생할 수 있습니다.   따라서 보통 인터넷 아두이노 관련 학습 게시글 중에서 게시자가 게시한 글에서 사용한 라이브러리의 버전과 차이가 나는 최신 버전 등을 설치하여 동작시키려 할 때에 에러가 발생할 수 있으므로,  이때는 최신 버전을 삭제하고 라이브러리 버전을 더 낮은 버전으로 선택해서 시도해 보면 에러가 해결될 수 있습니다.

- 같은 이름의 라이브러리가 중복으로 설치된 경우
  : 중복된 라이브러리 중, 하나의 라이브러리를 삭제하여야 합니다.  만약, 두 개의 라이브러리 버전이 다를 경우, 문서 폴더 아래에 설치되는 라이브러리가 먼저 적용이 되니 코드 실행에 필요한 라이브러리 하나를 가급적 문서 폴더에 남겨주세요. ( C:\Document\Arduino )

- 특정 모듈 제조회사에서 배포하는 라이브러리의 경우,  .zip파일 추가하기로 등록하지 말고  라이브러리 매니저를 통해 해당 라이브러리와 함께 연계된 라이브러리를 모두 설치해야 에러가 발생하지 않는 경우가 있습니다. 
 주로 Adafruit 사에서 출시하는 DHT센서 및 자사의 Neopixel LED Matrix 모듈 제품과 같은 경우에 이런 경우가 많은 데요,  아래 이미지처럼, 관련된 추가적인 라이브러리를 Install all로 해서, 모두 설치해 주어야 합니다. 



-  기타 : 원드라이브(OneDrive) 사용자의 경우  온라인 여부 체크하세요.
   간혹 원드라이브를 사용하고 있는 경우,  원드라이브 설정에 따라, 아두이노가 원드라이브에 속한 문서 폴더 아래에 설치되는 경우가 있고,  원드라이브 네트워크가 오프라인 일 때 ,  이를 인지 하지 못하고 라이브러리 에러를 쉽게 찾아내지 못하는 경우가 있습니다. 

- (중요!) 라이브러리 관련된 문제의 원인을 제거 또는 해결하였다면 항상 아두이노 IDE를 재시작해야 적용됩니다.

 

 [ 4. 아두이노 라이브러리 관리하기 ]

 - 자신의 코딩에 사용된 라이브러리는 항상 압축파일 형태로 백업해 두는 것이 좋습니다.
   또한 압축파일 이름이나 혹은 xxx.txt 파일을 만들어 어떤 아두이노 작품에 어떻게 사용한 라이브러리 인지를 기록해 두면 수개월 후 해당 라이브러리를 다시 사용하게 되었을 때,  즉각적으로 사용하기 수월해집니다. 
( 같은 이름의 라이브러리가 여러 개 존재하고 있고,  그 라이브러리마다 적용할 수 있는 함수도 다를 수 있는데, 어떤 코드에는 동작되지만 또 다른 코드에서는 동작이 안 되는 경우가 발생하기 때문입니다. ) 

 - 문서 폴더 아래에 있는 아두이노 라이브러리 폴더 전체를 하나의 파일로 압축 백업해 두면,  컴퓨터에 문제가 있어 윈도를 다시 설치해야 하는 경우에 아두이노 관련 라이브러리를 쉽게 복원할 수 있습니다.

반응형