在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

驅動LSM6DS3TR-C實現高效運動檢測與數據采集(10)----融合磁力計進行姿態解算

嵌入式單片機MCU開發 ? 來源:嵌入式單片機MCU開發 ? 作者:嵌入式單片機MCU開 ? 2024-08-02 15:50 ? 次閱讀

概述

MotionFX庫包含用于校準陀螺儀、加速度計和磁力計傳感器的例程。 將磁力計的數據與加速度計和陀螺儀的數據融合,可以大幅提高姿態估計的精度。三軸加速度計提供設備的傾斜信息,陀螺儀提供角速度信息,而磁力計提供方位信息,三者結合可以提供更加準確和穩定的三維方向和姿態信息。

需要樣片的可以加群申請:615061293 。

視頻教學

[https://www.bilibili.com/video/BV1V4421S7Xs/]

樣品申請

[https://www.wjx.top/vm/OhcKxJk.aspx#]

源碼下載

[https://download.csdn.net/download/qq_24312945/89563161]

硬件準備

首先需要準備一個開發板,這里我準備的是自己繪制的開發板,需要的可以進行申請。
主控為STM32H503CB,陀螺儀為LSM6DS3TR-C,磁力計為LIS2MDL。

DataLogFusion

這里參考ST提供的DataLogFusion程序,DataLogFusion示例應用展示了如何使用STMicroelectronics開發的MotionFX中間件庫進行實時運動傳感器數據融合。

DataLogFusion的主要執行流程包括初始化硬件和傳感器、中間件庫(MotionFX)的配置與初始化、傳感器數據的采集、實時數據融合以及結果的輸出。

磁力計校準過程

MotionFX庫的磁力計校準庫用于補償硬鐵失真。磁力計校準可以以比傳感器融合輸出數據速率更慢的頻率進行(例如25 Hz)。
● 初始化磁力計校準庫:
● 調用 MotionFX_MagCal_init 或 MotionFX_CM0P_MagCal_init 函數。
● 定期調用校準函數:
● 調用 MotionFX_MagCal_run 或 MotionFX_CM0P_MagCal_run 函數,直到校準成功完成。
● 檢查校準是否成功:
● 調用 MotionFX_MagCal_getParams 或 MotionFX_CM0P_MagCal_getParams 函數。如果函數返回 mag_data_out.cal_quality = MFX_MAGCALGOOD 或 MFX_CM0P_CALQSTATUSBEST,則校準成功。

初始化磁力計

調用 MotionFX_MagCal_init 或 MotionFX_CM0P_MagCal_init 函數。這里通過調用 MotionFX_MagCal_init,確保磁力計校準模塊處于準備就緒狀態,能夠正確處理和校準磁力計數據。
通過初始化磁力計校準庫,并定期調用校準函數,可以確保磁力計數據的準確性,從而提高姿態估計的精度。

頻率定義。

#define ALGO_FREQ  100U /* Algorithm frequency 100Hz */
#define ALGO_PERIOD  (1000U / ALGO_FREQ) /* Algorithm period [ms] */

添加到初始化中進行調用。

文檔中提到的磁力計數據要除以50,這是因為MotionFX庫使用的單位是微特斯拉(μT)/50。

在lsm6ds3tr-c_app.h中添加定義。

#define FROM_MGAUSS_TO_UT50     (0.1f/50.0f)

MFX_Arithmetic_Init

MFX_Arithmetic_Init 的作用是初始化 MotionFX 算法庫,并進行相關參數設置和配置。 由于現在是9軸解析,需要新定義用于保存 MotionFX 算法狀態的數組。

static uint8_t mfxstate_9x[FX_STATE_SIZE];

函數功能:
● 初始化 MotionFX 算法庫。
● 配置傳感器的偏置值和方向。
● 設置輸出參考模式。
● 啟用或禁用 6 軸和 9 軸 MotionFX 引擎。

void MFX_Arithmetic_Init(void)
{
    MFX_knobs_t iKnobs;
    MFX_knobs_t *ipKnobs = &iKnobs;


    /* 初始化 MotionFX 算法庫,參考自 AlgoBuilded 生成代碼 */
    /* 初始化 MotionFX 引擎 */
    MotionFX_initialize((MFXState_t *)mfxstate_9x);

    /* 獲取當前的內部結構參數 */
    MotionFX_getKnobs(mfxstate_9x, ipKnobs);

    /* 設置傳感器 */
    ipKnobs- >gbias_acc_th_sc = GBIAS_ACC_TH_SC_9X;
    ipKnobs- >gbias_gyro_th_sc = GBIAS_GYRO_TH_SC_9X;
    ipKnobs- >gbias_mag_th_sc = GBIAS_MAG_TH_SC_9X;

    /* 未知作用操作,數據定向? */
    ipKnobs- >acc_orientation[0] = ACC_ORIENTATION_X;
    ipKnobs- >acc_orientation[1] = ACC_ORIENTATION_Y;
    ipKnobs- >acc_orientation[2] = ACC_ORIENTATION_Z;

    ipKnobs- >gyro_orientation[0] = GYR_ORIENTATION_X;
    ipKnobs- >gyro_orientation[1] = GYR_ORIENTATION_Y;
    ipKnobs- >gyro_orientation[2] = GYR_ORIENTATION_Z;

    ipKnobs- >mag_orientation[0] = MAG_ORIENTATION_X;
    ipKnobs- >mag_orientation[1] = MAG_ORIENTATION_Y;
    ipKnobs- >mag_orientation[2] = MAG_ORIENTATION_Z;  

    /* 設置輸出參考模式,數據參考系 */
    ipKnobs- >output_type = MFX_ENGINE_OUTPUT_ENU;
    ipKnobs- >LMode = 1;
    /* modx 代表 MotionFX_update 函數調用頻率,
     *    modx = 1,每調用 MotionFX_propagate 函數一次,可調用 MotionFX_update 函數一次,適用于STM32F4系列處理器,
     *    modx = 2,每調用 MotionFX_propagate 函數兩次,可調用 MotionFX_update 函數一次,適用于STM32F1系列處理器。
     */
    ipKnobs- >modx = 1;

    /* 設置內部結構參數 */
    MotionFX_setKnobs(mfxstate_9x, ipKnobs);

    /* 使能6軸 MotionFX 引擎*/
    MotionFX_enable_6X(mfxstate_9x, MFX_ENGINE_DISABLE);
    /* 關閉9軸 MotionFX 引擎*/
    MotionFX_enable_9X(mfxstate_9x, MFX_ENGINE_ENABLE);
}

卡爾曼濾波算法

運行卡爾曼濾波傳播算法MotionFX_propagate。
根據需要更新卡爾曼濾波器MotionFX_update。
需要注意的是這2各算法非常吃資源,需要注意MCU算力分配。

函數結構如下所示。

演示

和指南針一個方向。

偏移90度。

偏移180度。

偏移270度。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據采集
    +關注

    關注

    40

    文章

    7000

    瀏覽量

    115817
  • 運動檢測
    +關注

    關注

    0

    文章

    37

    瀏覽量

    12721
  • 磁力計
    +關注

    關注

    1

    文章

    71

    瀏覽量

    21288
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(1)----獲取ID

    本文將介紹如何驅動和利用LSM6DS3TR-C傳感器,實現精確的運動感應功能。LSM6DS3TR-C是一款先進的
    的頭像 發表于 11-13 15:45 ?3139次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(1)----獲取ID

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(6)----FIFO數據讀取與配置

    LSM6DS3TR-C是STMicroelectronics公司推出的iNEMO慣性模塊,集成了三軸加速度和三軸陀螺儀,具備低功耗、強大的運動檢測功能。該傳感器支持多種操作模式,并內置FIFO
    的頭像 發表于 07-18 10:58 ?2671次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(<b class='flag-5'>6</b>)----FIFO<b class='flag-5'>數據</b>讀取與配置

    驅動LSM6驅動LSM6DS3TR-C實現高效運動檢測數據采集(7)----MotionFX庫解析空間坐標DS3TR-C實現高效運動檢測數據

    本文將探討如何使用MotionFX庫解析空間坐標。MotionFX庫是一種用于傳感器融合的強大工具,可以將加速度、陀螺儀和磁力計數據融合
    的頭像 發表于 07-18 11:02 ?1742次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6</b><b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(7)----MotionFX庫解析空間坐標<b class='flag-5'>DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據</b>采

    陀螺儀LSM6DSV16X與AI集成(11)----融合磁力計進行姿態

    MotionFX庫包含用于校準陀螺儀、加速度磁力計傳感器的例程。 將磁力計數據與加速度和陀螺儀的
    的頭像 發表于 09-06 16:57 ?2917次閱讀
    陀螺儀<b class='flag-5'>LSM6</b>DSV16X與AI集成(11)----<b class='flag-5'>融合</b><b class='flag-5'>磁力計</b><b class='flag-5'>進行</b><b class='flag-5'>姿態</b><b class='flag-5'>解</b><b class='flag-5'>算</b>

    lsm6ds3tr-c傳感器集合模式無法使用的原因?

    );/*讀取外掛磁力計代碼*///禁用I2C直通,禁用內部上拉,禁用I2Cbsp_spi_write(LSM6DS3TR_MASTER_CONFIG, 0x00, 2);//關閉加速度
    發表于 03-07 06:26

    請問LSM6DS3TRLSM6DS3TR-C兩個型號能否完全兼容?

    LSM6DS3TR停產買不到了,準備切換LSM6DS3TR-C型號使用。 請問兩者有什么差別?能否直接替換?有成功替換案例嗎?
    發表于 03-14 06:40

    LSM6DS3TR-C數據讀取異常是安利的問題?怎么處理?

    我在使用lsm6ds3tr-c 6軸傳感器時發現,讀取的溫度以及角速度值異常,配置為官方lsm6ds3tr_c_read_data_polling.c文件中
    發表于 03-19 08:15

    LSM6DS3TR-C的低功耗模式和高性能模式有什么區別

    如果我只在 12.5Hz 下操作加速度LSM6DS3TR-C 的低功耗模式和高性能模式有什么區別?
    發表于 12-09 06:47

    LSM6DS3的應用筆記

    專門設計,可在硬件上實現大幅運動檢測、傾斜度檢測、硬件步功能、時間戳,并支持對外部磁力計數據采集
    發表于 09-13 08:23

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(2)----配置濾波器

    LSM6DS3TR-C中,加速度和陀螺儀可以獨立地開啟/關閉,并且可以擁有不同的ODR和功耗模式。 LSM6DS3TR-C有三種可用的操作模式: ● 僅加速度活動,陀螺儀處于
    的頭像 發表于 11-14 09:45 ?1695次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(2)----配置濾波器

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(3)----獲取傳感器數據

    一旦傳感器被正確初始化,可以通過SPI或I2C接口向傳感器發送讀取命令,并接收傳感器返回的數據。這個讀取過程包括獲取LSM6DS3TR傳感器提供的加速度和陀螺儀
    的頭像 發表于 11-14 09:59 ?1396次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(<b class='flag-5'>3</b>)----獲取傳感器<b class='flag-5'>數據</b>

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(4)----上報匿名上位機實現可視化

    LSM6DS3TR-C是單芯片“3軸陀螺儀 + 3軸加速度”的慣性 測量單元(IMU), 五種種可選滿量程的陀螺儀(125/250/500/1000/2000 dps)和加速度
    的頭像 發表于 11-14 10:05 ?1486次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(4)----上報匿名上位機<b class='flag-5'>實現</b>可視化

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(5)----姿態

    lsm6ds3trc包含三軸陀螺儀與三軸加速度姿態有多種數學表示方式,常見的是四元數,歐拉角,矩陣和軸角。他們各自有其自身的優點,在不同的領域使用不同的表示方式。在四軸飛行器中使用到了四元數
    的頭像 發表于 11-14 10:11 ?1442次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(5)----<b class='flag-5'>姿態</b><b class='flag-5'>解</b><b class='flag-5'>算</b>

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(8)----中斷獲取FIFO數據并應用MotionFX庫解析空間坐標

    本文將探討如何使用中斷機制獲取FIFO數據并應用MotionFX庫解析空間坐標。MotionFX庫是一種用于傳感器融合的強大工具,可以將加速度、陀螺儀和磁力計
    的頭像 發表于 07-21 10:02 ?1157次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(8)----中斷獲取FIFO<b class='flag-5'>數據</b>并應用MotionFX庫解析空間坐標

    驅動LSM6DS3TR-C實現高效運動檢測數據采集(11)----磁力計校準

    磁力計校準的基本概念,掌握使用MotionFX庫進行校準的步驟和方法,并學會如何在實際項目中實現磁力計的校準,以獲得高精度的磁場測量數據
    的頭像 發表于 08-23 09:57 ?1519次閱讀
    <b class='flag-5'>驅動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數據采集</b>(11)----<b class='flag-5'>磁力計</b>校準
    主站蜘蛛池模板: 色偷偷男人天堂 | 四虎永久免费网站入口2020 | 四虎影院欧美 | 永久在线观看www免费视频 | 蕾丝视频成人★在线观看 | 人人插人人爽 | 日本免费黄色录像 | 极品色天使在线婷婷天堂亚洲 | 成人a毛片高清视频 | 午夜影院毛片 | 欧美成人伊人十综合色 | 在线视频亚洲一区 | 校园激情综合网 | 日韩免费精品一级毛片 | 久久青| 色狠狠色综合吹潮 | 亚洲一区二区三区电影 | 亚洲色图22p | 手机看片久久青草福利盒子 | 桃花色综合影院 | 日本a级特黄三级三级三级 日本边添边爱边摸边做边爱 | 日韩欧美亚洲综合久久影院d3 | 亚洲va国产va天堂va久久 | 欧美手机看片 | 亚洲国产日韩女人aaaaaa毛片在线 | 五月天婷婷免费视频观看 | 欧美xxxx性特级高清 | 色狠狠狠色噜噜噜综合网 | 久久精品午夜 | 97夜夜澡人人爽人人喊一欧美 | 国产乱辈通伦影片在线播放亚洲 | 成人网在线 | 久久久久国产成人精品亚洲午夜 | 四虎影院免费视频 | 久久久久国产精品四虎 | 欧美日韩不卡码一区二区三区 | 亚洲成a人片在线观看88 | 很狠操| 69xxxx女人| 久久婷婷综合中文字幕 | 狠狠操狠狠插 |