FXOS8700CQ ユニット (MCU ボード上ではない) を使用して正確なコンパスの方向を計算しようとしています。
当社では、デバイスに直接マウントされた FXOS8700CQ ユニットからのデータへのアクセスを提供する Windows Compact 2013 BSP を実行しています。BSP は次の 2 つの構造体を返すことができます。
struct COMPASS _READING { short X; short Y; short Z; } 磁力計から、そして
加速度センサからの struct ACCEL_READING { short X; short Y; short Z; } 。
NXP センサ Fusion|NXPからサンプル FreescaleSensorFusionRevision5 をダウンロードしましたが、サンプルのコードでは代わりに次の構造体が使用されています。
構造体MagSensor { int16 iBs[3]; int16 iBc[3]; float fBs[3]; float fBc[3]; int16 iCountsPeruT; float fuTPerCount; float fCountsPeruT; uint8 iWhoAmI; } および
構造体アクセルセンサー { int16 iGs[3]; int16 iCountsPerg; float fGs[3]; float fgPerCount; uint8 iWhoAmI; }
さらに、サンプルアプリケーションFreescaleSensorFusionRevision5は、ダウンロードに含まれていないヘッダーファイル(I2CFreedom.hなど)を使用します。UART.h、FTM.h)
融合アルゴリズムを実行するために BSP から十分な情報が得られるかどうか、または入手可能な情報に基づいて別のアプローチを取る必要があるかどうかを理解しようとしています。
コンパスの方向を決定するために、ピッチとロールの計算(傾きを補正するため)に基づく他のアルゴリズムを使用しようとしましたが、計算によって生成される結果は非常にノイズが多く、コンパスの方向とあまり関係がないようです。
受け取った読み取り値を含むサンプル ファイルが添付されています。
どなたかアドバイスを頂ければ幸いです
元の添付ファイルは、 compass_data.txt.zipに移動されました。
アンドリュー、
まず、返信が遅れたことをお詫び申し上げます。あなたの投稿の通知を見逃してしまいました。
BSP はセンサ値を返します。これは、生データに関して必要なすべてです。BSP に磁気キャリブレーション ソフトウェアがすでに含まれているかどうかご存知ですか?そうでない場合は、自分でそれを含める必要があります (センサ フュージョン ライブラリの一部です)。
5.00 センサ フュージョンから始めないことをお勧めします。7.xx バリアントは、ハードウェア インターフェイスを生成するためにプロセッサ Expert を必要とせず、代わりに、BSP に簡単に切り替えられる低レベルの SDK への直接アクセスに依存するため、目的に非常に適しています。7.xx ライブラリは、Welcome to MCUXpresso | MCUXpresso Config Toolsで生成された FRDM-K64F または FRDM-K22F SDK の一部として含めることができます。SDK を生成する前に、ISSDK および FreeRTOS オプションを選択してください。ドキュメントは
[email protected]まで直接お問い合わせいただければ、あなたの問題について話し合うために、喜んで Skype セッションを設定させていただきます。
よろしくお願いいたします。
Mike