BT5-9DOF-DK / μAHRS - Roverdyn Datasheet... · 2020. 7. 21. · 2. 프로그래머를 실행시킨...

44
- 1 - BT5-9DOF-DK / μAHRS Datasheet & User Manual REV 1.0

Transcript of BT5-9DOF-DK / μAHRS - Roverdyn Datasheet... · 2020. 7. 21. · 2. 프로그래머를 실행시킨...

  • - 1 -

    BT5-9DOF-DK / μAHRSDatasheet & User Manual

    REV 1.0

  • 목 차

    1. 개요

    1. 1. 특징 및 활용 ······························································································ 1

    1. 2. 제품 성능 ···································································································· 2

    1. 3. 레이아웃 및 핀맵 ······················································································ 3

    2. 개발환경 구축하기

    2. 1. Eclipse CDT 및 플러그인 설치 ······························································ 7

    2. 2. OpenOCD 디버깅 환경 구성하기 ························································· 13

    2. 3. J-Link 디버깅 환경 구성하기 ································································· 15

    2. 4. Softdevice 다운로드 하기 ······································································· 21

    2. 5. 프로젝트 생성 및 예제코드 ···································································· 24

    2. 6. nRduino 프로젝트 사용하기 ·································································· 34

    3. 제품 사용하기

    3. 1. 아날로그 및 디지털 제어 ········································································ 36

    3. 2. MPU9250 9-DoF IMU 사용하기 ························································· 40

    3. 3. 블루투스5 사용하기 ················································································· 40

    3. 4. μAHRS 사용하기(해당 모델만) ······························································· 40

    3. 5. μAHRS 보정(해당 모델만) ······································································· 40

    3. 6. 블루투스 Application ··············································································· 40

    4. 지원

    4. 1. 고객센터 및 기술지원 ·············································································· 41

    4. 2. 수정 이력 ···································································································· 41

  • - 1 -

    1. 개요

    1. 1. 특징 및 활용

    본 제품은 3축 가속도 센서, 3축 자이로스코프 센서, 3축 지자기 센서를 포함하는 하나의 미소전기기계시

    스템(Micro Electro-Mechanics System, MEMS) 으로 제작된 관성측정장치(Inertial Measurement Unit, IMU)

    를 내장하고 있습니다. 9축의 IMU를 이용하여 모션과 관성 측정에 관한 다양한 시스템을 만들 수 있습니

    다. 또한 블루투스5 모뎀과 단정밀도 부동소수점 연산기(FPU)를 포함하는 Cortex-M4F 프로세서를 내장한

    SoC(System on Chip)가 포함되어 있습니다.

    Ÿ IoT 디바이스를 비롯한 각종 스마트 디바이스

    Ÿ 드론 및 AHRS 시스템

    Ÿ 모션 컨트롤러

    Ÿ 웨어러블 디바이스

    Ÿ 디지털 기압계 및 고도계

    Ÿ 유도항법시스템(Navigation & Guidance)

    Ÿ 환경 측정 센서

    해당 제품은 J-Link 혹은 OpenOCD를 이용하여 10핀 SWD 포트를 통하여 직접 소프트웨어를 디버깅하거

    나 펌웨어 업데이트를 할 수 있으며 Eclipse, IAR Embedded, Segger Embedded Studio(SES) 등 다양한 통

    합개발환경(IDE)를 지원합니다. 따라서 사용자는 빠르고 저렴하게 원하는 시스템이나 제품을 손쉽게 만들

    어 볼 수 있습니다.

    로버다인의 오픈소스 프로젝트인 nRduino 프로젝트를 이용하면 아두이노 같은(Arduino-like) 소스코드를

    구성할 수 있으며 통합개발환경 구축과 디버깅 환경만 구축하면 아두이노와 유사한 프로그래밍 인터페이

    스를 제공합니다.

  • - 2 -

    1. 2. 제품 스펙

    ■ Mainboard

    Dimension 24mm(L) × 20mm(W) × 6mm(H)

    Weight About 7.5g

    SoC Nordic nRF52832-QFAA 64MHz

    CPU Core ARM Holding Cortex-M4F

    RAM Internal 64KBytes

    Storage Internal 512KBytes Flash Storage

    Debug Interface 4-pin Serial Wire Debug(SWD) Interface

    Connectivity ADC(12-bit)×2, PWM×1, SWD×1, UART×1

    Wireless Type Bluetooth 5.0 Low Energy(BLE, 3dBi Antenna)

    Wireless Range Over 20m

    Operating Voltage 2.8V – 3.6V

    Input Voltage 5.0V – 5.5V (Max 6.0V)

    Working Temperature -20℃ - 60℃

    Power Consumption About 0.165Wh

    ■ IMU Specifications

    IC Part Number MPU-9250(IMU), LPS25HBTR(Barometer)

    IC Manufacturer Invensense / STmicroelectronics

    Connectivity I2C Fast Mode (400KHz), SDA(P0.11), SCL(P0.12)

    Accelerometer Range ±2g, ±4g, ±8g, ±16g

    Gyroscope Range ±250, ±500, ±1000, ±2000

    Magnetometer Range ±4912μT

    Barometer Range 260hPa to 1260hPa

    Update Rate

    8KHz(Gyroscope)

    1kHz(Accelerometer)

    25Hz(Magnetometer/Barometer)

    TTL 3.3V

    ■ AHRS Specifications(Optional)

    Range

    Roll : -180° ~ 180°

    Pitch : -90° ~ 90°

    Yaw : 0° ~ 360°

    AccuracyRoll/Pitch : ±1°

    Yaw : ±1.5°

    Noise Level

    Gyro : 0.1 dps/Hz

    Accel : 0.005 mg/Hz

    Mag : No data

    Signal Processing Correction-based 1st order Complementary Filter

    Operational Temperature -40℃ ~ 60℃

    Update Rate 1Hz ~ 400Hz

    Output Connectivity UART, I2C, SPI, Serial over BLE

  • - 3 -

    1. 3. 레이아웃 및 핀맵

    ■ Mainboard Layout

    ■ Drawing

  • - 4 -

    ■ Pinout

    ■ Pin connection of main SoC

    Pin No. Description

    P0.02 ~ P0.05 Analog Input (ADC)

    P0.13 ~ P0.20 GPIO / PWM

    P0.21 Reset Button (Active Low)

    P0.22 Custom Button

    P0.23 System Status LED

    P0.24 Bluetooth Status LED

    P0.25 SPI - MISO

    P0.26 SPI - MOSI

    P0.27 SPI - SCK

    P0.28 SPI – CS(SS)

    P0.29 I2C/TWI - SDA

    P0.30 I2C/TWI - SCL

  • - 5 -

    2. 개발환경 구축하기

    2. 1. Eclipse CDT 및 플러그인 설치

    ■ 필요 소프트웨어 목록

    - Eclipse CDT(다운로드 페이지)

    - JDK(최신 버전 상관 없음)

    - nRF5-SDK

    - openOCD / J-link 소프트웨어

    - ARM Windows Build Tool

    - ARM GNU MCU for Eclipse

    - Eclipse Cpp를 제외한 나머지 소프트웨어는 다음 링크에서 다운로드 받을 수 있음

    - http://www.aerodyn.co.kr/?page_id=447

    ■ JDK 설치하기

    1. 오라클 홈페이지에서 JDK 최신 버전을 다운로드 하여 설치합니다. 이 때, 설치할 PC의 윈도우 버전

    (32비트/64비트)에 따라 설치파일이 달라집니다.

    2. 설치파일을 다운로드 후 마우스 오른쪽 클릭하여 관리자 권한으로 실행, 설치합니다. 기본 설정으로

    설치 한 후 Close 버튼을 눌러 설치를 완료합니다.(환경변수 설정은 자동으로 잡히기 때문에 별도로

    할 필요는 없습니다)

    http://www.aerodyn.co.kr/?page_id=447

  • - 6 -

    ■ Eclipse CDT 설치하기

    1. 이클립스 최신 버전을 홈페이지에서 다운로드 후 관리자 권한으로 설치를 실행합니다. 실행 후 다음

    과 같은 창이 뜨면 C/C++ IDE를 설치합니다.

    2. 기본 설정으로 설치를 진행합니다. 설치 시 나타나는 드라이버는 모두 예/설치 버튼을 눌러 설치를

    진행합니다.

    ※ 만약 위의 창이 나타나지 않는다면 JAVA 설치 및 환경설정이 정상적으로 되어있지 않은 상태입

    니다. 다시 JDK부터 설치를 해 주세요.(환경 및 설치버전 JAVA Standard Edition DK 확인)

  • - 7 -

    3. 설치 후 Eclipse를 실행시켜줍니다. 상단 메뉴 중 Help를 선택한 후 [Eclipse Marketpalce...]을 선택

    하여 패키지 설치 관리자 창을 열어줍니다.

    4. 패키지 설치창이 나타나면 검색창에 ARM GCC MCU를 입력하여 검색한 후 설치버튼을 눌러 설치해

    줍니다.

    5. 패키지가 설치 된 후 재시작을 해 줍니다. 설치 완료 후 재시작 유무를 물어보는 팝업창이 나타난다

    면 재시작(Restart) 버튼을 눌러 자동으로 프로그램을 재시작합니다.

  • - 8 -

    ■ 필수 패키지 설치하기

    1. Aerodyn 홈페이지에서 필수 소프트웨어를 다운로드 받은 후 압축을 해제합니다. Eclipse 폴더를 C드

    라이브 최상단(C:\)에 이동 혹은 복사합니다.

    2. Eclipse 폴더 내부의 파일과 경로를 확인합니다. 이때, 압축을 정상적으로 해제하지 않거나 임의의

    폴더를 만들어서 해당 파일을 복사할 경우 오류가 발생할 수 있습니다. 하기 파일들이 위치한 폴더

    와 상위 폴더의 파일명은 영어로 작성이 되어있어야 합니다.

  • - 9 -

    ■ 환경변수 경로 설정하기

    1. 필수 패키지를 사용하기 위해서는 환경변수의 경로를 설정하여야 합니다. 시스템에 환경변수 경로를

    추가하기 위하여 시스템 속성 창을 열어줍니다. 시스템 속성 창은 [시작] - [실행] 혹은 [윈도우 키

    + R]을 눌러 실행 창을 열어준 다음 “sysdm.cpl” 명령어를 적은 후 확인 버튼을 누르면 나타납니다.

    2. 시스템 속성 창이 실행되면 상단 탭 메뉴 중 [고급] - [환경변수] 메뉴를 선택합니다.

  • - 10 -

    3. 환경변수 창에서 시스템 변수 항목 중 “Path”를 찾은 후 더블클릭 하거나 아래쪽의 [편집] 버튼을 클

    릭하여 변수 입력창을 열어줍니다.

    4. 이제 새로 만들기 버튼을 눌러 아래의 세 항목을 추가하겠습니다. 첫 번째 항목은 Windows Built

    Tool이며 두 번째는 ARM Embedded GCC 컴파일러, 세 번째는 OpenOCD의 bin 폴더를 추가합니다.

  • - 11 -

    5. 제일 먼저 Windows Build Tool의 bin 폴더를 추가합니다. 오른쪽의 [새로 만들기] 버튼을 클릭한 후

    바로 [찾아보기] 버튼을 순서대로 클릭하면 경로를 지정할 수 있는 창이 나타납니다.

    5. 필수 패키지 파일이 위치한 C:/Eclipse 폴더 내부의 Bulid Tools/2.12-20190422-1053/bin 폴더를 클

    릭한 후 확인 버튼을 눌러 추가해줍니다.

  • - 12 -

    6. 같은 방법으로 GNU MCU GCC 컴파일러의 bin 폴더와 OpenOCD의 bin 폴더를 추가해줍니다.

    6. 환경변수 설정이 완료되면 Eclipse CDT를 다시 실행시켜줍니다.

  • - 13 -

    2. 2. OpenOCD 디버깅 환경 구축하기

    OpenOCD는 J-link와 같은 상용 디버거를 사용하지 않고 JTAG와 SWD를 지원하는 오픈소스 하드웨어와

    소프트웨어를 바탕으로 만들어진 디버거를 이용하여 컴파일 및 디버깅 할 때 주로 사용됩니다.

    1. 이클립스 IDE를 실행시킨 후 상단의 [RUN] - [DEBUG CONFIGURATION] 메뉴를 클릭합니다.

    2. 설정창이 나타나면 왼쪽의 GDB OpenOCD Debugging 메뉴를 더블클릭하여 임의의 디버깅 환경설

    정을 생성한 후 오른쪽 Browse 버튼을 클릭하여 .out 확장자로 되어있는 바이너리 파일을 불러옵니

    다. 그리고 오른쪽 아래의 Apply 버튼을 눌러 적용합니다.

    ※ 기본 명칭은 New configuration으로 나타납니다.

  • - 14 -

    3. Executable path를 설정하기 위해서 상단의 Debug 탭을 선택하고 Browse 버튼을 클릭한 후 openo

    cd.exe 파일을 찾아서 입력합니다. openocd.exe 파일은 c:/Eclipse/OpenOCD-20190715-0.10.0/bin/op

    enocd.exe에 위치합니다. 브라우즈 버튼을 클릭하여 입력하는 것이 빠르고 간편합니다.

    4. Config Options에 다음과 같이 명령어를 작성한 후 하단의 Apply 버튼을 누릅니다.

    -f interface/cmsis-dap.cfg

    -f target/nrf52.cfg

    -c init

    -c halt

    -c "nrf51 mass_erase"

    -c "flash write_image erase c:/Eclipse/nRF5_SDK_15.3.0/components/softdevice/s132/hex/s132_nrf52_6.1.1_s

    oftdevice.hex"

    -c reset

    5. 하드웨어를 연결한 상태에서(전원인가 해야함) Debug 버튼을 눌러서 프로그램을 전송합니다.

  • - 15 -

    2. 4. J-Link 디버깅 환경 구축하기

    μAHRS를 디버깅 하는 또 다른 하드웨어 및 시스템으로는 J-link를 사용하는 방법이 있습니다. J-link는 독

    일의 SEGGER Microcontroller GmBH사가 만든 시스템으로서 Cortex-M 기반의 다양한 SoC와 MCU를 디버

    깅할 수 있는 툴입니다. J-link는 사용자와 목적에 따라서 다양한 버전이 있으며 교육용 모델의 경우 J-link

    EDU mini와 J-link EDU 버전이 있고 상용 버전의 경우에는 BASE, PLUS, ULTRA+, PRO 등등의 버전이 있

    습니다. 세부 항목은 SEGGER 홈페이지를 참조 해 주시기 바랍니다.

    1. 먼저 J-link 소프트웨어를 다운로드합니다. 홈페이지에 접속 후 상단 메뉴의 [Downloads] - [J-link /

    J-trace] 메뉴를 클릭한 후 [J-Link Software and Documentation Pack] 항목을 찾아서 [Click for

    downloads] 링크를 클릭합니다.

    2. 다운로드 항목이 열리면 [J-Link Software and Documentation pack for Windows] 항목을 찾아 다운

    로드합니다.

  • - 16 -

    3. 라이선스 동의를 한 후 소프트웨어를 다운로드합니다.

    4. 설치파일을 실행시킨 후 기본 설정대로 프로그램을 설치합니다.

    4-1. 아래와 같은 창이 나타나면 Ok 버튼을 눌러 업데이트를 합니다.

  • - 17 -

    5. 이클립스를 실행시킨 후 상단 메뉴 중 [Run] - [Debug Configurations]를 클릭합니다.

    6. 디버깅 환경창이 나타나면 왼쪽 메뉴 중 [GDB SEGGER J-Link Debugging] 항목을 더블클릭하여 디버

    깅 환경 설정창을 생성합니다. 만일 프로젝트가 생성되어 있는 상태라면 자동으로 프로젝트에 관한

    내용이 작성되어 있습니다.

  • - 18 -

    7. 위쪽 상단의 [Debugger] 탭을 눌러준 후 [Executable Path] 항목의 오른쪽에 있는 [Browse] 버튼을 클

    릭합니다. 이 작업은 앞서 설치한 J-Link 소프트웨어의 JLinkGDBServerCL.exe 파일의 위치를 지정하기

    위함입니다.

    8. J-Link 소프트웨어가 설치되어 있는 폴더를 찾아들어가 JLinkGDBServerCL.exe 파일을 선택한 후 확인

    버튼을 눌러 반영합니다. 기본 설정으로 설치하였다면 주소는 다음과 같습니다.

    C 드라이브 -> Program Files(x86) -> SEGGER -> JLink

    반드시 JLinkGDBServerCL.exe를 선택하여야 합니다. JLinkGDBServer.exe는 동작하지 않습니다.

  • - 19 -

    9. [Device name:] 항목을 nrf52832_xxaa로 작성합니다.

    10. Connection 항목을 USB로 선택한 후 오른쪽 빈칸에는 JLink의 시리얼 번호를 적어넣습니다. 시리얼

    번호는 JLink 본체의 뒷면에 위치합니다.

    시리얼 번호는 보유한 J-Link 버전에 따라 다릅니다.

  • - 20 -

    11. [Other Options]을 다음과 같이 작성합니다.

    -singlerun -strict -timeout 0

    12. 상단의 [Startup] 탭을 누른 후 [Enable flash braekpoints], [Enable semihosting], [Enable SWO] 항목

    을 모두 체크해제합니다.

    13. 모든 설정이 끝났습니다. 하단의 Debug 탭을 눌러 디버깅을 할 수 있으며 모든 설정은 저장이 되어

    다른 프로젝트를 만들어도 위의 설정이 유지됩니다.

  • - 21 -

    2. 4. Softdevice 다운로드 하기

    nRF52 시리즈의 칩셋의 기능을 온전히 사용하려면 Softdevice라는 스택 소프트웨어를 칩셋에 다운로드

    한 후 Application을 사용할 수 있습니다. 특히 BLE 등과 같은 핵심 기능은 Softdevice에 내장되어 있으

    므로 반드시 업로드 하는 것을 권고합니다. Softdevice는 SDK 폴더에 포함되어 있으며 nRF52 칩셋의 버

    전에 따라(예를들어 nRF52832, nRF52810 등) 적용되는 버전이 다릅니다. nRF52832 시리즈의 경우 S132

    스택을 다운로드 하여 사용하며 nRF52810의 경우 S113 스택을 다운로드 한 후 사용할 수 있습니다.

    위의 스크린샷은 nRF52832 칩 내부의 플래시 메모리의 사용 내역입니다. 주황색 영역은 Master Boot

    Record(MBR)이며 파란색 영역은 Softdevice의 영역입니다. 상단의 초록색 영역은 Application, 즉 사용자

    가 작성한 소스가 돌아가는 영역입니다.

    Softdevice는 버전, 종류에 따라서 메모리의 크기가 다릅니다. 예를들어 S132 버전은 6.6.0 버전과 7.0.1

    버전의 크기가 다릅니다. 따라서 메모리 크기에 유의해서 링커파일(LD)를 수정해주어야 합니다.

    예를 들어 위의 사진에서 메모리는 0x00001000부터 0x000258C0까지 차지하는 것을 알 수 있습니다.

  • - 22 -

    ■ nRF Connect 설치하기(J-Link only)

    Softdevice를 다운로드하기 위해서는 우선 J-Link와 같은 디버거가 필요합니다. OpenOCD를 사용하는

    경우에는 별도로 업로드 절차가 필요하지 않으며 2.2절의 명령어 상에서 Softdevice의 hex 파일의 주소

    를 지정해주면 디버깅 시 자동으로 업로드가 됩니다.

    J-Link를 사용하는 경우 nRF Connect를 사용하면 손쉽게 Softdevice를 업로드 할 수 있습니다. nRF

    Connect는 노르딕사 홈페이지에서 다운로드 할 수 있습니다.

    설치는 기본 설정 그대로 진행하면 됩니다.

    ■ Softdevice 다운로드 하기

    1. nRF Connect를 실행시킨 후 목록 중 Programmer를 설치합니다.

  • - 23 -

    2. 프로그래머를 실행시킨 후 디버거와 BT5-9DOF-DK 보드를 연결한 다음 컴퓨터와 디버거를 USB 케이

    블로 연결합니다. 그 후 왼쪽 상단의 [Select device] 메뉴를 눌러 디버거를 선택한 다음 오른쪽의

    [Add HEX file] 버튼을 눌러 Softdevice의 hex파일을 찾습니다.

    nRF52832에 사용되는 Softdevice S132 Hex 파일의 위치는 아래와 같습니다.

    C 드라이브 -> Eclipse -> nRF5_SDK_15.3.0(버전에 따라 다름) -> components -> softdevice

    -> S132 -> hex

    3. Hex 파일을 로드한 다음 오른쪽 아래의 Erase & write 버튼을 누르면 잠시 뒤 Softdevice가 업로드

    됩니다. 이 때 기존에 업로드했던 모든 내용은 삭제가 되므로 Application을 다시 업로드 해주어야 합

    니다.

  • - 24 -

    2. 5. 프로젝트 생성 및 예제 코드

    μAHRS의 메인 프로세서인 nRF52832는 Eclipse를 비롯한 다양한 환경에서 컴파일하여 디버깅할 수 있

    습니다. 본 제품의 통합개발환경(IDE)는 Eclipse CDT를 권장하며 Eclipse를 이용하여 컴파일 및 디버깅

    하는 경우에는 Makefile과 링커파일을 이용하여 크로스컴파일 할 수 있습니다. 따라서 일반적인 이클립

    스 프로젝트와 달리 Makefile 프로젝트를 생성하여야 하며 ARM Cross GCC 컴파일러를 이용하여 바이

    너리 파일을 생성합니다.

    본 매뉴얼은 [2. 1. Eclipse CDT 및 플러그인 설치]와 [2. 2. OpenOCD 디버깅 환경 구축하기] 혹은 [2.

    3. J-link 디버깅 환경 구축하기] 항목을 모두 적용한 후에 사용이 가능합니다.

    ■ 프로젝트 생성하기

    1. Eclipse CDT를 실행시킨 후 상단 메뉴 중 [New] - [C/C++ Project]를 선택합니다.

  • - 25 -

    2. 프로젝트 템플릿을 선택하는 창이 나타나면 C/C++ Managed Build를 선택합니다. 그리고

    Next 버튼을 눌러 다음으로 넘어갑니다.

    3. 먼저 프로젝트 명을 작성합니다.(1번) 그리고 [Project Type] 항목 중 [Makefile Project] 메뉴

    를 펼쳐 [Empty Project]를 선택하고(2번) 오른쪽 [Toolchains] 항목 중 ARM Cross GCC 메뉴

    를 클릭(3번)한 후 [Next >] 버튼을 눌러줍니다,

  • - 26 -

    4. [Select Configuration] 항목이 나타나면 Default를 선택하고 [Next >] 버튼을 누릅니다.

    5. [GNU ARM Cross Toolchain] 항목이 나타나면 아래와 같이 설정한 후 [Finish] 버튼을 누릅니다.

  • - 27 -

    6. 프로젝트 생성창이 닫힌 후 왼쪽상단의 [Project Explorer] 창을 열어줍니다. 창 두 개가 겹쳐

    있는 모양입니다.

    6-1. Project Explorer 아이콘이 나타나지 않는다면 아래와 같이 [Window] - [Show View] -

    [Project Explorer] 항목을 선택하여 활성화 할 수 있습니다.

  • - 28 -

    7. 프로젝트 익스플로러 창을 열면 아래와 같이 나타납니다. Includes 항목에는 헤더파일을 추가

    할 수 있으나 Makefile을 이용하므로 헤더파일이 있는 폴더를 굳이 추가하지 않아도 됩니다.

    8. 생성한 프로젝트를 컴파일 하기 위해서는 몇 개의 필수 파일을 복사해야 합니다. 컴파일하기

    위해서는 Makefile, sdk_config.h, 링커파일이 필요합니다. 해당 파일은 모두 nRF52 SDK에 포

    함되어 있습니다. 이 파일을 복사하기 위하여 먼저 생성한 프로젝트 폴더를 찾아서 들어갑니

    다. 프로젝트 폴더는 사용자가 설정한 값에 따라 다릅니다.

    9. 다음은 필수 파일을 복사하기 위해 다음 폴더를 찾습니다. 위의 예제를 따라했다면 주소는

    다음과 같습니다.

    C 드라이브 -> Eclipse -> nRF5_SDK_15.3.0(버전에 따라 다름) -> config -> nrf52832

  • - 29 -

    10. 제일 먼저 링커파일을 복사합니다. 링커파일은 9번에서 찾은 폴더의 armgcc 폴더 내부에

    있습니다. generic_gcc_nrf52.ld 파일을 8번에서 찾은 프로젝트 폴더로 복사합니다.

    11. 다음은 sdk_config.h 파일을 복사합니다. 9번에서 찾은 폴더의 config 폴더 내부에 있습니다.

    sdk_config.h 파일을 8번에서 찾은 프로젝트 폴더로 복사합니다.

    12. 마지막으로 Makefile 폴더를 복사합니다. Makefile 폴더는 9번에서 찾은 주소와 달리 예제

    폴더 내부에 있습니다. 아래의 주소로 찾아가서 Makefile을 프로젝트 폴더로 복사합니다.

    C 드라이브 -> Eclipse -> nRF5_SDK_15.3.0(버전에 따라 다름) -> examples -> peripheral -> blinky

    -> pca10040 -> s132 -> armgcc

    13. 모든 파일의 복사가 끝나면 프로젝트 폴더는 아래와 같이 파일이 있습니다.

  • - 30 -

    14. 다시 Eclipse로 돌아와서 프로젝트 탐색기를 열어줍니다. 프로젝트 탐색기 중에서 생성한 프

    로젝트 폴더를 선택한 후 F5키를 눌러주거나 마우스 오른쪽 버튼 클릭 후 Update 버튼을

    클릭하여 새로 추가된 파일을 반영합니다.

    15. 컴파일 하기 위해서는 Makefile을 수정해야합니다. 프로젝트 탐색기에서 Makefile 파일을 더

    블클릭하여 열어준 후 SDK_ROOT := 항목을 C:/Eclipse/nRF5_SDK_15.3.0 으로 바꾸어줍니

    다.(1번) 그리고 LINKER_SCRIPT 항목을 generic_gcc_nrf52.ld로 바꾸어줍니다.(2번) 다음은 컴

    파일 할 소스 파일을 지정하는 항목입니다. 새로 추가할 소스는 main.cpp이므로 SRC_FILES

    항목에 한 칸을 만든 후 $(PROJ_DIR)/main.cpp \를 추가합니다.(3번) \(역슬래쉬)는 ‘\’ 키

    와 같습니다. 마지막으로 복사한 sdk_config.h 파일의 위치를 지정합니다. INC_FOLDERS 항

    목에 $(PROJ_DIR) \을 추가해줍니다.(4번)

  • - 31 -

    16. INC_FOLDERS 항목중 ../config\ 줄을 지워줍니다.

    17. 다음은 프로그램을 작성할 소스파일을 만듭니다. 왼쪽의 프로젝트 탐색기에서 프로젝트 폴

    더를 선택한 후 [마우스 오른쪽 클릭] - [New] - [Source File]을 선택합니다.

    18. [Source file:] 항목에 main.cpp를 적습니다. 그리고 [Finish] 버튼을 눌러줍니다.

  • - 32 -

    19. 소스파일을 작성하면 아래와 같이 기본 코드를 작성해줍니다. 아래 코드는 예제로서 마음대

    로 바꿀 수 있으며 int main() 함수는 반드시 있어야 합니다.

    20. 디버깅 하기 위해서는 상단의 [Run] - [Debug Configurations] 메뉴를 선택합니다.

  • - 33 -

    21. 디버깅 설정창에서 OpenOCD 혹은 GDB SEGGER J-Link Debugging 항목을 선택합니다. 해

    당 항목은 가지고 있는 디버거에 따라 달라집니다. 2.2 항목과 2.3 항목을 따라하셨다면 기

    본 설정이 되어 있습니다. 따라서 바로 [Debug] 버튼을 누르면 디버깅을 시작합니다.

    22. 한번 디버깅 환경을 설정해두면 메인 화면에서 손쉽게 디버깅을 할 수 있습니다. 왼쪽 상단

    의 벌레모양 아이콘을 누르면 컴파일과 디버깅이 동시에 진행됩니다.

  • - 34 -

    2. 6. nRduino 프로젝트 활용하기

    nRduino는 nRF52832 프로세서를 비롯한 nRF52 시리즈의 칩셋을 아두이노처럼 프로그래밍 하

    게 위해 시작된 프로젝트입니다. 사용자가 레지스터를 직접 건드리지 않고도 아두이노 표준 함

    수를 이용하여 nRF52 칩의 다양한 기능을 이용할 수 있도록 디자인되었습니다. nRduino는 ㈜로

    버다인이 소유하고 관리하는 오픈소스 프로젝트로서 GPL 라이선스를 기반으로 하고 있습니다.

    따라서 해당 소스코드를 활용 및 수정하여 배포하는 경우 해당 소스코드 또한 공개 할 의무가

    있습니다.

    nRduino 프로젝트를 사용하기 위한 기본 구조는 다음과 같습니다.

    #include "arduino.h"

    extern _Serial Serial;

    void setup(){

    // Setup 프로그램

    }

    void loop(){

    // Loop 프로그램

    }

    int main(){

    setup();

    while(1){

    loop();

    }

    return 0;

    }

    ■ nRduino 프로젝트 시작하기

    1. nRduino 기본 소스 및 헤더파일을 다운로드 받습니다. 로버다인 홈페이지나 Github에서 다

    운로드 하실 수 있습니다. Github 주소는 다음과 같습니다.

    https://github.com/aerodyn890/nRduino

    2. 프로젝트를 새로 생성한 후 다운로드받은 소스코드와 헤더 파일을 프로젝트 폴더에 넣습니다.

  • - 35 -

    3. main.cpp 파일을 생성한 후 위의 기본 포맷대로 작성합니다. 만약 추가 헤더파일을 사용할

    경우 클래스명을 extern 형식으로 선언해줍니다. 예를 들어 Wire 기능을 사용하고 싶다면

    Wire.h 헤더를 Include 한 다음 아래쪽에 extern _Wire Wire; 라는 클래스 명을 작성해야 클

    래스 멤버 함수를 사용할 수 있습니다.

    4. Makefile 함수로 이동하여 Source 파일의 위치를 설정합니다. SRC_FILES 항목을 수정해야하

    며 아래와 같이 사용하고자 하는 모듈에 따라서 추가하면 됩니다.

  • - 36 -

    3. 제품 사용하기

    3. 1. 아날로그 및 디지털 제어

    μAHRS 모듈은 총 8개의 GPIO를 사용할 수 있습니다. I2C, SPI 통신 기능을 사용하지 않는다

    면 추가로 6개의 GPIO를 더 사용할 수 있습니다. 사용자는 nRF52 내부의 레지스터를 이용하

    여 각종 기능을 제어할 수 있으며 일부 기능이 활성화 되어 있는 경우 특정 기능을 사용하지

    못하는 경우도 있습니다.

    nRF52 시리즈는 Cortex-M4 코어가 내장되어 있어 GPIO핀의 용도가 정해져 있지 않습니다.

    따라서 사용자가 원하는 핀을 원하는 기능으로 손쉽게 할당할 수 있으나 NFC와 같이 특정

    기능의 경우 사용할 수 있는 포트가 별도로 정해져 있어 설정을 바꾸어 사용해야 하는 경우

    가 있습니다. 보다 자세한 사항은 Nordic Semiconductor 사에서 배포하는 nRF52832 /

    nRF52810 데이터시트를 참조 해 주시기 바랍니다.

    디지털 입출력은 가장 기본적인 기능이며 LED의 켜고 끄기, 버튼 입력 등과 같이 기본적인

    사용자 인터페이스를 구축하는데 사용될 수 있습니다. μAHRS는 VDD_IO의 레퍼런스 전압이

    3.3V로 설정되어 있으므로 디지털 신호를 출력 할 때 HIGH로 설정시에는 3.3V의 전압을 출력

    하며 LOW로 설정시에 0V의 전압을 출력합니다. 디지털 입력의 경우 이와 반대로 3.3V 전압

    이 입력되면 1(True) 0V의 전압이 측정되면 0(False)로 간주합니다. 이 때 기준 전압인 3.3V를

    초과한 입력은 제품이 파손될 수 있습니다. 해당 PCB 이외에 다른 보드를 연결하는 경우에

    이에 주의하여야 합니다.

  • - 37 -

    ■ 디지털 출력 예제

    1. 먼저 프로젝트를 생성합니다. 프로젝트 생성은 2.4 항목을 참조해 주시기 바랍니다. 프로

    젝트를 생성한 후 소스파일(main.cpp)를 열어준 후 다음과 같이 코드를 작성합니다.

    #include�

    #define� LED_BUILTIN0� 23 //� 기본�내장� LED0

    #define� LED_BUILTIN1� 24 //� 기본�내장� LED1

    int�main(void){

    //� 핀의�방향을�설정

    NRF_GPIO->DIRSET� =� 0x01�

  • - 38 -

    ■ 디지털 입력 예제

    1. 먼저 프로젝트를 생성합니다. 프로젝트 생성은 2.4 항목을 참조해 주시기 바랍니다. 프로

    젝트를 생성한 후 소스파일(main.cpp)를 열어준 후 다음과 같이 코드를 작성합니다.

    #include� "nrf_gpio.h"

    #define� BUTTON0� 22 //� 버튼

    #define� LED_BUILTIN0� 23 //� 기본�내장� LED0

    #define� LED_BUILTIN1� 24 //� 기본�내장� LED1

    int�main(void){

    //� 버튼이�연결된�핀의� 방향�설정(INPUT)

    //� PULL� UP� 설정

    NRF_GPIO->PIN_CNF[22]� =� 0x0C;

    //� LED� 핀의� 방향�설정

    NRF_GPIO->DIRSET� =� 0x01�

  • - 39 -

    2. 왼쪽 상단의 컴파일 및 디버깅 버튼을 눌러 프로그램을 다운로드 한 후 상단 메뉴 중 재

    생 버튼이나 F8키를 이용하여 프로그램을 실행시킵니다.

    3. PCB 상의 버튼 중 아래쪽에 있는 버튼을 누르면 LED가 켜집니다.(위쪽 사진 참조) 버튼

    에서 손을 떼면 LED가 꺼집니다.

    ■ 다양한 예제 파일 이용하기

    빠르고 편리하게 개발 하기 위해 별도의 예제 파일과 프로젝트를 당사 홈페이지(www.rove

    rdyn.com)이나 Github 채널(https://www.github.com/aerodyn890)을 통해서 제공하고 있습니

    다. 해당 소스코드는 무료로 이용하실 수 있으며 수정하여 사용하실 수 있으나 소스코드 원

    본을 다른 곳에 게재하거나 배포하는 행위는 금지되어 있습니다.

    위의 두 예제 이외에 다른 예제는 홈페이지나 Github에 공개되어 있습니다.

  • - 40 -

    3. 2. MPU9250 9-DoF IMU 사용하기

    해당 모듈은 MPU9250 9-DoF 디지털 IMU를 내장하고 있습니다. 3축 가속도 센서, 3축 자이

    로스코프센서, 3축 지자기 센서를 사용하여 다양한 분야에 모션 센서를 적용할 수 있습니다.

    IMU를 사용해서 자세를 측정하는 ARS & AHRS 모듈을 만들 수 있으며 옵션으로 해당 모듈

    에 맞는 uAHRS 소프트웨어를 별도로 구매할 수 있습니다.

    로버다인에서는 MPU9250 센서를 보다 쉽게 사용할 수 있도록 별도의 라이브러리를 제공하

    고 있습니다. 해당 라이브러리는 몇 개의 함수를 이용하여 손쉽게 Raw 데이터와 DMP를 사용

    할 수 있도록 구성되어 있습니다. 라이브러리는 당사 홈페이지나 공식 Github 계정에서 다운

    로드 받으실 수 있습니다.

    3. 3. 블루투스5 사용하기

    해당 모듈은 블루투스5를 지원하는 nRF52832 SoC를 내장하고 있습니다. 이를 사용하기 위

    해서는 Softdevice를 Flash memory에 업로드 해두어야 하며 Softdevice 함수를 사용하여야

    합니다. Softdevice는 SDK 폴더 내부에 HEX 파일 형태로 저장되어 있으며 SDK는 당사 공식

    홈페이지에서 환경설정이 된 상태의 SDK를 다운로드 받으실 수 있습니다.

    nRF52 시리즈의 칩셋은 블루투스 클래식 버전을 지원하지 않으며 LE(저에너지) 버전만 지원

    합니다. nRF52832는 블루투스 Mesh network를 지원하므로 다른 모듈과 Node를 구성하여

    Mesh network 망을 구축하여 다양한 용도로 사용할 수 있습니다.

    해당 모듈에서 블루투를 사용하기 위해서는 별도로 소스코드를 작성하여야 하며 예제 소스

    코드는 로버다인 홈페이지에서 다운로드 받으실 수 있습니다.

    3. 4. μAHRS 사용하기(해당 모델만)

    BT5-9DoF-DK 보드에 옵션으로 별도로 판매하고 있는 AHRS 소프트웨어를 보드에 다운로드

    하여 초소형 AHRS 모듈로 사용할 수 있습니다. AHRS는 자세 및 방위 추정 시스템(Attitude

    & Heading Reference System)의 약자로서 Roll, Pitch, Yaw 자세와 각 축에 대한 각속도를 사

    원수(Quaternion), 오일러각(Euler angle) 형태로 USB, UART, I2C, SPI 및 블루투스LE를 통하여

    다양한 시스템에서 읽을 수 있습니다.

    3. 5. μAHRS 보정(해당 모델만)

    - 추후 작성

    3. 6. 블루투스 Application

  • - 41 -

    4. 지원

    4. 1. 고객센터 및 기술지원

    회사명 로버다인(Roverdyn)

    연락처 070-7808-9803

    홈페이지 http://www.aerodyn.co.kr

    기술지원 [email protected]

    주소 (14348)경기도�광명시�일직로� 72� 광명무역센터� A동� 605호

    ※ 방문 시 사전 연락을 부탁드립니다.

  • - 42 -

    4. 2. 수정 이력

    수정일 수정내용

    1 Nov.� 12,� 2019 최초�작성