매우 유명하여 딱히 설명할 필요가 없는 센서인데,
예제또한 풍부합니다.
하지만 깔끔하게 센서제어 및 액세스에 관련한 부분만 만들어진것은 안보이는것 같아
제가 참고 했던 예제중 하나를 클래스로 래핑하여, 라이브러리화 했습니다.
사용법은 아래와 같습니다.
첨부 파일을 아두이노 라이브러리에 추가 하시고 사용하면됩니다.
칼만필터라는 예제를 수정한 버전인데 혹 이미 같은 라이브러리를 추가해놓으신경우에는
에러가 날 수 도 있겠습니다.
그런경우에는 CMPU6050.h 파일만 칼만필터 라이브러리 폴더내에 복사해 넣으시면되겠습니다.
첨부라이브러리
구글 블러그는 첨부 파일기능이 없어 불편하네요..
일전에 밸런싱 로봇을(http://eltgroup.tistory.com/266) 만들때 아래 라이브러리를 활용하여 만든것이니, 동작에 별문제 없다고 생각합니다.
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 
29 
30 
31 
 | 
#include <Arduino.h> 
#include <Wire.h> 
#include <Kalman.h> 
#include <CMPU6050.h> 
//mpu6050 매니저입니다. 단순히 누군가 만들어놓은 유명한 예제에서 mpu6050부분만 뽑아 클래스화 시킨겁니다. 
CMpu6050Manager g_Mpu6050; 
void setup() 
{ 
  g_Mpu6050.Init(); //setup에서 반드시 한번 호출해 줍니다. 
} 
void loop() 
{ 
  //매 루프마다 호출되게 해줍니다. 
  g_Mpu6050.Update(); 
  //x값은 -90 ~ 90 
  //y값은 -180 ~ 180범위 
  //상보 필터(Complementary Filter)  
  float companglex = g_Mpu6050.GetCompAngleX(); 
  float compangley = g_Mpu6050.GetCompAngleY(); 
  //칼만 필터,  
  float kalmananglex = g_Mpu6050.GetKalAngleX(); 
  float kalmanangley = g_Mpu6050.GetKalAngleY(); 
} 
 | cs | 

댓글 없음:
댓글 쓰기