(2014.5.18 作成)
ArduinoとSTM32F3Discoveryで共通して使えるMPU-6050クラスの関数リファレンスです。ファイルはこちらからダウンロードできます。
磁気センサのフルスケールです。
GYRO_FS_250 | ±250°/s |
GYRO_FS_500 | ±500°/s |
GYRO_FS_1000 | ±1000°/s |
GYRO_FS_2000 | ±2000°/s |
加速度センサのフルスケールです。
ACCEL_FS_2 | ±2G |
ACCEL_FS_4 | ±4G |
ACCEL_FS_8 | ±8G |
ACCEL_FS_16 | ±16G |
Digital low pass filterの係数です。
加速度センサ | ジャイロセンサ | |||
Bandwidth (Hz) |
Delay (ms) |
Bandwidth (Hz) |
Delay (ms) |
|
DLPF_BW_256 | 260 | 0 | 256 | 0.98 |
DLPF_BW_188 | 184 | 2.0 | 188 | 1.9 |
DLPF_BW_98 | 94 | 3.0 | 98 | 2.8 |
DLPF_BW_42 | 44 | 4.9 | 42 | 4.8 |
DLPF_BW_20 | 21 | 8.5 | 20 | 8.3 |
DLPF_BW_10 | 10 | 13.8 | 10 | 13.4 |
DLPF_BW_5 | 5 | 19.0 | 5 | 18.6 |
コンストラクタ |
||
プロトタイプ |
MPU6050( const DKS::I2C::II2C *I2Cx, const bool PinAD0isHigh); |
|
戻り値 |
なし |
|
引数 |
I2Cx |
I2Cクラスへのポインタ |
PinAD0isHigh |
AD0端子の設定。Highだとtrueを設定。GY-521基板の場合は何もしなければfalse
|
|
備考 |
なし |
接続確認 |
||
プロトタイプ |
bool TestConnection()const; |
|
戻り値 |
"Who am I"に応答すればtrue |
|
引数 |
なし |
|
備考 |
なし |
デバイスアドレス |
||
プロトタイプ |
uint8_t GetDeviceAddress()const; |
|
戻り値 |
デバイスアドレスを返す |
|
引数 |
なし |
|
備考 |
コンストラクタで指定されたアドレスを返す。 R/Wビットが付いた8bitフォーマット |
初期化 |
||
プロトタイプ |
void Init(void); |
|
戻り値 |
なし |
|
引数 |
なし |
|
備考 |
ソフトリセットを行います。 フルスケールはGYRO_FS_250, ACCEL_FS_2になります。 |
ジャイロセンサのフルスケールを変更 |
||
プロトタイプ |
void setFullScaleGyroRange(const FS_SEL scale); |
|
戻り値 |
なし |
|
引数 |
scale |
列挙型FS_SELの値 |
備考 |
|
加速度センサのフルスケールを変更 |
||
プロトタイプ |
void setFullScaleAccelRange(const AFS_SEL scale); |
|
戻り値 |
なし |
|
引数 |
scale |
列挙型AFS_SEL の値 |
備考 |
|
Digital lowpass filterを変更 |
||
プロトタイプ |
void setDigitalLowpassFilter(const LowPassFilter DLPF)const; |
|
戻り値 |
なし |
|
引数 |
DLPF |
列挙型LowPassFilter の値 |
備考 |
|
ジャイロセンサーのサンプリングレートを設定 |
||
プロトタイプ |
void setSampleRateDivider(const uint8_t divider)const; |
|
戻り値 |
なし |
|
引数 |
divider |
LowPassFilterがOffだと Rate = 8kHz/(1+divider) LowPassFilterがOnだと Rate = 1kHz/(1+divider) |
備考 |
加速度センサのレートは1kHz固定 |
ジャイロセンサーのサンプリングレートを取得 |
||
プロトタイプ |
void getSampleRateDivider(uint8_t ÷r)const; |
|
戻り値 |
なし |
|
引数 |
divider |
この値が更新される。 内容はsetSampleRateDivider参照 |
備考 |
|
データの取得 |
||
プロトタイプ |
void GetData( int16_t Acc[3], int16_t &Temp, int16_t Gyro[3] )const; |
|
戻り値 |
なし |
|
引数 |
Acc |
加速度センサ測定値 |
Temp |
温度 |
|
Gyro |
ジャイロセンサ測定値 |
|
備考 |
レジスタ値をそのまま返すので、絶対値の取得はfloat版を使うか、別途変換が必要です。 |
データの取得 |
||
プロトタイプ |
void GetData( float Acc[3], float &Temp, float Gyro[3] )const; |
|
戻り値 |
なし |
|
引数 |
Acc |
加速度センサ測定値 |
Temp |
温度 |
|
Gyro |
ジャイロセンサ測定値 |
|
備考 |
絶対値で値を返す。 |