티스토리 뷰

개요

Genuino101에는 IMU 센서가 내장되어 있어서 별도의 board를 구매할 필요가 없다.
센서의 검출방향은 아래와 같다.

코드

raw 데이터를 읽는 코드는 다음과 같다.

#include "CurieIMU.h" float gx,gy,gz; // gyroscope's value float ax,ay,az; // accelerometer's value void setup() { Serial.begin(19200); initIMU(); // IMU initialize } void loop() { CurieIMU.readGyroScaled(gx, gy, gz); CurieIMU.readAccelerometerScaled(ax, ay, az); } void initIMU() { Serial.println("Initializing IMU device..."); CurieIMU.begin(); CurieIMU.setGyroRate(100); //set rate of Gyrometer sensor CurieIMU.setGyroRange(250); //set range of Gyrometer sensor CurieIMU.setAccelerometerRate(12.5); //set rate of Accelerometer sensor CurieIMU.setAccelerometerRange(2); //set range of Accelerometer sensor CurieIMU.autoCalibrateAccelerometerOffset(X_AXIS, 0); //set offset of Accelerometer sensor's X axis CurieIMU.autoCalibrateAccelerometerOffset(Y_AXIS, 0); //set offset of Accelerometer sensor's Y axis CurieIMU.autoCalibrateAccelerometerOffset(Z_AXIS, 1); //set offset of Accelerometer sensor's Z axis }

설명

기본적으로 Genuino101의 IMU 센서에 사용할 CurieIMU.h 라이브러리가 제공된다.
initIMU 함수에서는 센서의 rate와 range를 설정하고 초기값을 지정한다.

rate는 회로에서 값을 읽는 주기를 말하며 사용자가 데이터를 처리하는 주기를 말하는 것은 아니다. 주기를 빨리 할 수록 값 변화를 빨리 검출하나 노이즈가 커질 것이다.
Gyrometer의 rate로 설정 가능한 값은 (25, 50, 100, 200, 400, 800, 1600, 3200) 이다.
Accelerometer의 rate로 설정 가능한 값은 (12.5, 25, 50, 100, 200, 400, 800, 1600) 이다.

range는 센서가 검출하는 범위이며 값은 -32768 ~ 32768으로 출력된다. 작게 잡을 수록 정밀하게 검출 가능하겠지만 필요한 범위만큼 지정해야 한다.
Gyrometer는 아래 표와 같이 설정 가능하다.
예를 들어 범위를 2000으로 설정한 경우 -32768 ~ 32768의 값이 -2000°/s ~ 2000°/s를 나타내게 되며 1°/s가 변할 경우 출력은 16.4가 변하게 된다.

설정값

범위

출력변화(/°/s)

2000

+/-2000°/s

16.4

1000

+/-1000°/s

32.8

500

+/-500°/s

65.5

250

+/-250°/s

131

125

+/-125°/s

262

Accelerometer는 아래 표의 값으로 설정 가능하다. (g는 중력가속도이며 9.8m/s^2)
범위를 2로 설정한 경우 -32768 ~ 32768의 값이 -2g ~ 2g를 나타내게 되며 1g 당 출력은 16384가 변하게 된다.

설정값

범위

출력변화 (/g)

2

+/-2g

16384

4

+/-4g

8192

8

+/-8g

4096

16

+/-16g

2048

참조 링크

https://www.arduino.cc/en/Reference/CurieIMU

'개발 > Genuino101' 카테고리의 다른 글

Using motor shield in Genuino (Arduino) 101  (0) 2018.02.20
Arduino101(Genuino101)에서 BLE 통신  (0) 2017.04.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함