秋月電子通商のBMX055使用9軸センサーモジュールのサンプルプログラムが誤っていた
2021/09/01
以下のセンサを授業用のロボットに使用予定.現状の方位センサの置き換え用に動作確認をした.
BMX055使用9軸センサーモジュール: センサ一般 秋月電子通商-電子部品・ネット通販
サンプルプログラム通りに動作させると,なぜか磁気センサの出力が離散的な値になっていた
磁気センサは,x,yが13ビット,zが15ビットのデータらしい.
生の16ビットのデータから3軸方向の磁気センサの出力値に変換するところの関数が間違っていた
arduinoでbmx055という9軸センサを使っていて、初めに秋月に出ていた... - Yahoo!知恵袋
磁気センサの関数の部分をこのように修正したら(多分)正しいセンサの出力値が得られた.
code:関数修正版.cpp
void BMX055_Mag()
{
for (int i = 0; i < 8; i++)
{
Wire.beginTransmission(Addr_Mag);
Wire.write((0x42 + i)); // Select data register
Wire.endTransmission();
Wire.requestFrom(Addr_Mag, 1); // Request 1 byte of data
// Read 6 bytes of data
// xMag lsb, xMag msb, yMag lsb, yMag msb, zMag lsb, zMag msb
if (Wire.available() == 1)
}
// Convert the data
xMag = ((data1 <<8) | (data0)); xMag =xMag>>3;
if (xMag > 4095) xMag -= 8192;
yMag = ((data3 <<8) | (data2)); yMag = yMag>>3;
if (yMag > 4095) yMag -= 8192;
zMag = ((data5 <<8) | (data4)); zMag = zMag>>1;
if (zMag > 16383) zMag -= 32768;
}
回路図の誤りもあるようだ
https://gyazo.com/03dd51bc817768596f9f6b61b2bd48ee
秋月電子に報告してみる
2021/09/06 秋月電子のHPのサンプルプログラムが修正されていた