mpu9250のライブラリ、I2Cを利用。開発段階のため微妙

Dependents:   library

Embed: (wiki syntax)

« Back to documentation index

mpu9250 Class Reference

mpu9250 Class Reference

mpu9250を比較的簡単に利用できるようにしたライブラリ More...

#include <mpu9250_i2c.h>

Public Member Functions

 mpu9250 (I2C &_i2c, AD0 celect=AD0_HIGH)
 mpu9250インスタンスを生成する
bool senserTest ()
bool mag_senserTest ()
 地磁気センサと通信ができているか確認する
void setAcc (ACC_RANGE a_range=_4G)
 加速度センサのレンジを設定
void setGyro (GYRO_RANGE g_range=_500DPS)
 角速度センサのレンジ設定
void setMag (MAG_RATE rate=_100HZ)
 地磁気センサのデータレート設定
void frequency (int Hz)
 I2Cの通信速度を変更できます.余程のことがない限り使用しなくていいです・
void setAccLPF (A_BAND_WIDTH band)
 mpu9250のデジタルローパスフィルタの設定
void setOffset (double ax, double ay, double az, double gx, double gy, double gz, double mx, double my, double mz)
 ゼロ点のずれを補正するオフセット値を設定する
template<typename T >
void getAcc (T *ax, T *ay, T *az)
 加速度を取得します.
template<typename T >
void getAcc (T *acc)
 加速度を取得します.
template<typename T >
void getGyro (T *gx, T *gy, T *gz)
 角速度を取得します.
template<typename T >
void getGyro (T *gyro)
 角速度を取得します.
template<typename T >
void getMag (T *mx, T *my, T *mz)
 磁束密度を取得します.
template<typename T >
void getMag (T *mag)
 磁束密度を取得します.
template<typename T >
void getGyroAcc (T *imu)
 角速度と加速度を同時に取得します.

Detailed Description

mpu9250を比較的簡単に利用できるようにしたライブラリ

Note:
ローパスフィルタまわりの実装がまだです.外部でよろです!
Author:
Gaku MATSUMOTO

Definition at line 103 of file mpu9250_i2c.h.


Constructor & Destructor Documentation

mpu9250 ( I2C &  _i2c,
AD0  celect = AD0_HIGH 
)

mpu9250インスタンスを生成する

Parameters:
_i2cメインプログラムで宣言したI2Cインスタンスのアドレス
celectAD0ピンがHIGHならAD0_HIGH,LOWならAD0_LOW
Note:
第二引数なしだとAD0_HIGHになります.

Definition at line 12 of file mpu9250_i2c.cpp.


Member Function Documentation

void frequency ( int  Hz )

I2Cの通信速度を変更できます.余程のことがない限り使用しなくていいです・

Definition at line 21 of file mpu9250_i2c.cpp.

void getAcc ( T *  ax,
T *  ay,
T *  az 
)

加速度を取得します.

Parameters:
axx軸方向の加速度[G]
ayy軸方向の加速度[G]
azz軸方向の加速度[G]
Note:
型はfloat でも doubleでも構いません.

Definition at line 120 of file mpu9250_i2c.cpp.

void getAcc ( T *  acc )

加速度を取得します.

Parameters:
acc各軸方向の加速度[G],x,y,zの順
Note:
型はfloat でも doubleでも構いません.

Definition at line 109 of file mpu9250_i2c.cpp.

void getGyro ( T *  gx,
T *  gy,
T *  gz 
)

角速度を取得します.

Parameters:
gxx軸方向の角速度[degree/s]
gyy軸方向の角速度[degree/s]
gzz軸方向の角速度[degree/s]
Note:
型はfloat でも doubleでも構いません.

Definition at line 138 of file mpu9250_i2c.cpp.

void getGyro ( T *  gyro )

角速度を取得します.

Parameters:
gyro各軸方向の角速度[degree/s], x,y,zの順
Note:
型はfloat でも doubleでも構いません.

Definition at line 127 of file mpu9250_i2c.cpp.

void getGyroAcc ( T *  imu )

角速度と加速度を同時に取得します.

Parameters:
imuデータを入れる配列,角速度[degree/s],加速度[G]の順
Note:
配列数は6以上で

Definition at line 163 of file mpu9250_i2c.cpp.

void getMag ( T *  mx,
T *  my,
T *  mz 
)

磁束密度を取得します.

Parameters:
mxx軸方向の磁束密度[uT]
myy軸方向の磁束密度[uT]
mzz軸方向の磁束密度[uT]
Note:
型はfloat でも doubleでも構いません.

Definition at line 156 of file mpu9250_i2c.cpp.

void getMag ( T *  mag )

磁束密度を取得します.

Parameters:
mag各軸方向の磁束密度[uT],x,y,zの順
Note:
型はfloat でも doubleでも構いません.

Definition at line 145 of file mpu9250_i2c.cpp.

bool mag_senserTest (  )

地磁気センサと通信ができているか確認する

Note:
trueが返ってきたら成功,falseなら...

Definition at line 31 of file mpu9250_i2c.cpp.

bool senserTest (  )

慣性センサと通信ができているか確認する

Note:
trueが返ってきたら成功,falseなら...

Definition at line 24 of file mpu9250_i2c.cpp.

void setAcc ( ACC_RANGE  a_range = _4G )

加速度センサのレンジを設定

Parameters:
a_range_2G, _4G, _8G, _16Gの中から選択
Note:
引数無しで±4Gになる

Definition at line 71 of file mpu9250_i2c.cpp.

void setAccLPF ( A_BAND_WIDTH  band )

mpu9250のデジタルローパスフィルタの設定

Parameters:
bandNO_USE, _460HZ, _184HZ, _92HZ, _41HZ, _20HZ, _10HZ, _5HZから選択
Note:
カットオフ周波数なのかサンプルレートなのかよく分かりません.正直効果が見られません

Definition at line 182 of file mpu9250_i2c.cpp.

void setGyro ( GYRO_RANGE  g_range = _500DPS )

角速度センサのレンジ設定

Parameters:
g_range_250DPS, _500DPS, _1000DPS, _2000DPSの中から選択
Note:
引数無しで±500DPS

Definition at line 50 of file mpu9250_i2c.cpp.

void setMag ( MAG_RATE  rate = _100HZ )

地磁気センサのデータレート設定

Parameters:
rate_8HZ か _100HZを選択
Note:
あえて8Hzにする必要は無いと思います.
void setOffset ( double  ax,
double  ay,
double  az,
double  gx,
double  gy,
double  gz,
double  mx,
double  my,
double  mz 
)

ゼロ点のずれを補正するオフセット値を設定する

Parameters:
ax,ay,az加速度のオフセット
gx,gy,gz角速度のオフセット
mx,my,mz地磁気のオフセット
Note:
とても重要です.地磁気は定期的にキャリブレーションをしてください.ちなみに,これらの値は測定値より引かれています.

Definition at line 38 of file mpu9250_i2c.cpp.