'리눅스'에 해당되는 글 2건

  1. 2017.04.11 아두이노 라이브러리의 설치
  2. 2016.05.08 비밥을 해부하다!(2)
Embedded Lecture/Arduino2017. 4. 11. 21:10


아두이노 라이브러리는 다른 언어와 마찬가지로 코드의 재사용성을 높혀 유지관리를 쉽게 만들어줍니다. 물론 상업용 업체에서는 코드를 컴파일하여 제공하므로써 우선 코드 암호화를 통한 보안 등에 더 관심을 갖을 수는 있지만, 아두이노(Arduino)나 리눅스(Linux)처럼 컴파일된 파일 혹은 실행 파일과 더불어 소스 코드도 제공하는 경우에는 사용자가 코드의 디버그(debug)와 같은 효율성 및 유지관리 측면에서 보다 촛점을 맞출 수 있습니다.


라이브러리(Library)는 기본적으로 사용자가 작성한 코드로 자주 사용하는 코드를 모듈화하여 추후에 쉽게 불러다 사용할 수 있도록 소스 코드 자체나, 컴파일하여 목적코드(object) 형태로 저장한 것입니다. 사실 사용자 뿐만 아니라 소프트웨어 환경제공자나 제조업체에 의해서 제공되는 경우가 많습니다. 이러한 라이브러리는 재사용이 가능한 루틴이나 함수 등으로 구성되며, 이 루틴이나 함수의 내부를 모르고도 설명만으로 누구나 헤더파일에 선언하여 컴파일 시 쉽게 가져다 사용할 수 있습니다.


여기서는 인터넷상에서 다운로드한 아두이노용 라이브러리를 설치하는 방법과 직접 라이브러리를 작성하는 방법에 대해서 설명합니다. 우선 Arduino IDE를 설치하면 {내문서}\Arduino\libraris 폴더가 생성되고, 여기에 다운로드 받은 라이브러리를 복사하거나 사용자가 직접 작성한 라이브러리를 저장합니다. 컴파일을 수행할 때 이 폴더는 자동으로 'include'되어서 여기에 있는 라이브러리들이 링크하게 됩니다.


라이브러리는 기본적으로 폴더 단위로 저장되어야 하는데, 예를 들어 'MyLib' 라는 이름(통상 라이브러리명은 대문자로 시작함)으로 라이브러리를 작성한다면, {내문서}\Arduino\libraris 폴더 밑에 MyLib라는 폴더가 있어야 하고, 이 폴더 밑에 MyLib.h 헤더 파일과 MyLib.cpp 파일이 있어야 합니다. 만일 예제 파일을 제공하고 싶다면 별도의 example 폴더 밑에 예제 파일의 이름과 같은 폴더를 두고 그 밑에 .ino 파일을 위치해 두어야 합니다. 이와 같은 폴더 구조를 유지하는 것이 다수의 사용자들에게 통일되고 익숙하기 때문입니다.



통상 라이브러리는 클래스나 변수 등을 선언한 헤더 파일(*.h)과 클래스 멤버함수의 정의부가 있는 *.cpp 파일로 나뉩니다. 그리고 헤더 파일에는 MyLib 클래스가 선언되어 있어야 합니다. 보통은 헤더 파일과 *.cpp 파일로 구분되지만 모든 선언과 정의를 헤더 파일에 둘 수도 있습니다만, 헤더 파일에는 클래스의 선언부를 작성하고 그것을 구현한 *.cpp 파일을 별도로 두는 것이 더 일반적이고 바람직하다는 것입니다. 이렇게 구성하면 이 라이브러리를 사용하는 스케치 파일에서는 헤더 파일만 include 해서 사용할 수 있고, 여러 곳에서 중복해서 사용할 경우에도 헤더 파일만 포함하면 되기 때문입니다.


아두이노 홈페이지에서 다양한 아두이노 라이브러리를 제공하고 있습니다. 사용자는 여기에서 필요한 라이브러리를 다운로드 받아서 설치할 수 있습니다. 예를 들어 OneWire 라는 라이브러리를 다운로드 받았다고 가정하면, 다운로드 폴더에 OneWire.zip 파일이 다운로드 되어 있을 것입니다. 이 압축파일에는 OneWire.h, OneWire.cpp 파일이 들어 있습니다. 이 경우 이 압축파일을 이용하여 바로 사용자 라이브러리 폴더에 복사할 수 있는데 다음과 같이 'Sketch>Include library > Add .ZIP Library' 메뉴를 이용하여 압축파일을 선택해 주면 됩니다.


아두이노 라이브러리


이 경우에, OneWire.zip 파일을 선택하면 자동으로 사용자 라이브러리 폴더에 압축이 해제되서 복사하게 됩니다. 만일에 인터넷 상에서 특정 라이브러리의 특정 버젼을 필요로 하는 경우에는 사용자가 직접 압축을 해제한 후에 필요한 폴더 혹은 파일만을 사용자 라이브러리 폴더에 수동으로 복사해도 무방하다는 것입니다.



'Embedded Lecture > Arduino' 카테고리의 다른 글

인터럽트의 처리(2)  (0) 2017.05.08
초음파 센서를 이용한 거리 측정 예제  (0) 2017.04.16
아날로그 출력(PWM)  (0) 2017.03.20
아날로그 입력 및 온도계 예제  (0) 2017.03.19
아날로그 입력  (0) 2017.03.18
Posted by Nature & Life
Drone News/Review2016. 5. 8. 12:40


Parrot Bebop 드론 제품의 사양입니다.



연결성 : Wi-Fi 802.11a/b/g/n/ac

    • Wi-Fi 안테나: 이중 대역 MIMO 안테나와 2.4GHz 및 5GHz용 쌍극 안테나 2 더블셋 (FIG.7)

    • 출력파워: 최대 21dBm

    • 신호범위: 최고 250m


몸체 : 고강도

    • 4 브러시리스 통돌이 모터(FIG.3)

    • 유리 섬유 강화(15%) ABS 구조 (FIG.4)

    • 고강도 EPP 아웃도어용 선체: 실내 비행과 야외 비행에 맞춰 클립을 죄거나 풀어 쉽게 장착 및 해체 가능, 혹시 일어날 수 있는 충격으로부터 프로펠러를 보호, 기체의 바람 마찰면을 줄이기 위해 제거 가능 (FIG.9)

    • 신속 해체 시스템을 갖춘 폴리카보네이트 소재 오토블록 3 날개 프로펠러(FIG.5)

    • 진동 방지 범퍼(FIG.10)


속도 : 13m/s


카메라 : CMOS 14Mpx

    • 180° 1/2.2 인치 센서 어안렌즈 카메라: 6개 광학소자와 14메가픽셀 센서(FIG.2)

    • 동영상 안정화: 3축 디지털

    • 동영상 해상도: 1920x1080P (30FPS)

    • 사진 해상도: 4096x3072 픽셀

    • 동영상 인코딩: H264

    • 사진 파일 형식: JPEG, RAW, DNG

    • 내장 메모리: 8GB 플래시


배터리 : 리튬 폴리머

    • 자율성: 내장 배터리 2개로 22분

    • 배터리 유형: 리튬 폴리머 1200mAh


Processor : 듀얼 코어 CPU

    • 마더보드: (FIG.1)

- Parrot P7 더블 코어 CPU Cortex 9

- 쿼드 코어 GPU

- 8Gb flash memory

    • 8GB 플래시 메모리 전체가 전자기 차폐 및 쿨링 시스템 기능을 수행하는 마그네슘 지지대에 고정되어 있음

    • OS: 리눅스

    • 개발: 오픈 소스 SDK

Parrot Bebop Drone Mainboard(front)

Parrot Bebop Drone Mainboard(back)

센서 : 3축

    • 3축 자력계

    • 3축 자이로스코프

    • 3축 가속도계 (FIG.6)

    • 수직 안정화 카메라 (FIG.8): 1,000분의 16초마다 지상 이미지 촬영 후 직전에 찍은 이미지와 비교해 Bebop 드론의 속도 식별

    • 초음파 센서: 고도 분석 최고 8m

    • 기압계


지리 위치 정보 : GNSS

    • GNSS (GPS + GLONASS) (FIG.6)


크기 : 28 x 32 x 3.6cm

    • 선체 미포함 시: 28 x 32 x 3.6cm

    • 실내용 선체 포함 시: 33 x 38 x 3.6cm


중량 : 400g

    • 배터리 장착 상태에서 보호 덮개 제거 시 400g, 보호덮개 장착 시 420g.


호환성 : 아이폰 OS , Android , Windows Phone 스마트폰/태블릿


제품 구성 : USB, Battery, ...

    • Parrot BeBop 드론 1개

    • 배터리 2개

    • 충전기 1개. 플러그 형식은 US/ JP / UK / EU / ANZ

    • 마이크로 USB 케이블 1개

    • 8GB 내장 메모리

    • 실내용 선체 1개

    • 프로펠러 추가분 4개

    • 프로펠러 조립 도구 1개

    • 빠른 시작 가이드 1개

 

 

 

Posted by Nature & Life