0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內(nèi)不再提示

LSM6DSV16X基于MLC智能筆動作識別(2)----MLC數(shù)據(jù)采集

嵌入式單片機MCU開發(fā) ? 來源:嵌入式單片機MCU開發(fā) ? 作者:嵌入式單片機MCU開 ? 2024-10-22 10:02 ? 次閱讀

概述

MLC 是“機器學習核心”(Machine Learning Core)的縮寫。在 LSM6DSV16X 傳感器 中,MLC 是一種嵌入式功能,它使傳感器能夠直接運行基于決策樹的機器學習算法。通過這種功能,傳感器可以獨立完成諸如活動識別、運動強度檢測和誤報過濾等任務,而無需將數(shù)據(jù)處理轉(zhuǎn)交給外部的微控制器。MLC 通過處理來自加速度計、陀螺儀或外部傳感器的數(shù)據(jù),計算統(tǒng)計參數(shù)、應用濾波器,并將分類結果輸出到專用寄存器中(AN5804)。

最近在弄ST的課程,需要樣片的可以加群申請:615061293 。

視頻教學

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

樣品申請

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

源碼下載

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

輸出速率

在 AN5804 文檔的 Table 1. Machine learning core output data rates 中,表格列出了機器學習核心(MLC)的輸出數(shù)據(jù)速率(ODR),用于配置 MLC 數(shù)據(jù)生成的頻率。

具體來說,MLC 的輸出數(shù)據(jù)速率決定了機器學習核心處理傳感器數(shù)據(jù)并輸出結果的頻率。不同的應用場景可能需要不同的速率來平衡功耗和性能。這個表格的目的是讓用戶根據(jù)應用需求選擇合適的輸出數(shù)據(jù)速率。

執(zhí)行流程

根據(jù) AN5804 第三頁的描述,LSM6DSV16X 傳感器的 機器學習核心(MLC) 的流程可以分為以下幾個步驟:

  1. 收集傳感器數(shù)據(jù):
    1. ○ MLC 從內(nèi)置的加速度計、陀螺儀以及通過 I2C 接口連接的外部傳感器(如磁力計)中收集三軸傳感器數(shù)據(jù)。這些數(shù)據(jù)包括 X、Y、Z 軸的加速度和角速度。
  2. 處理傳感器數(shù)據(jù)(計算塊):
    1. ○ 在這一階段,傳感器數(shù)據(jù)經(jīng)過預處理。MLC 會應用一些濾波器(如高通、低通或帶通濾波器),并計算出用戶配置的統(tǒng)計特征(例如均值、方差、能量、峰值等)。這些特征基于用戶定義的時間窗口(window length)進行計算,時間窗口的長度決定了統(tǒng)計數(shù)據(jù)的覆蓋范圍。
  3. 構建決策樹:
    1. ○ 處理后的特征作為輸入被傳遞到?jīng)Q策樹。決策樹是一個二叉樹結構,在每個節(jié)點中,特征值被與某個閾值進行比較,以決定繼續(xù)走向下一節(jié)點的哪一條路徑。這個過程會在決策樹的各個節(jié)點中重復,直到生成最終的分類結果(例如:靜止、行走、跑步等)。
  4. 輸出分類結果:
    1. ○ 當決策樹到達葉節(jié)點時,它會輸出一個分類結果,這個結果表示所檢測的動作或狀態(tài)。結果會被存儲在 MLC 的專用輸出寄存器中,供外部微處理器讀取。
  5. 可選的元分類器過濾:
    1. ○ 輸出的分類結果還可以通過一種稱為 meta-classifier(元分類器) 的過濾器進行處理。元分類器會根據(jù)多個分類結果的統(tǒng)計情況,減少短時的錯誤分類或不穩(wěn)定的輸出。例如,如果短時間內(nèi)結果頻繁變化,元分類器會穩(wěn)定輸出。

速率設置

設置了加速度計和陀螺儀的輸出數(shù)據(jù)速率(ODR)為480Hz,這將使傳感器以較高的速率采樣數(shù)據(jù)。這種設置適用于需要高動態(tài)精度的應用場景,比如需要精確跟蹤快速運動的應用。

lsm6dsv16x_xl_data_rate_set(&dev_ctx, LSM6DSV16X_ODR_AT_480Hz);
  lsm6dsv16x_gy_data_rate_set(&dev_ctx, LSM6DSV16X_ODR_AT_480Hz);

量程設置

量程和分辨率的平衡:較大的量程適合高速動態(tài)的應用,但會降低測量的分辨率。如果你需要檢測較小的變化或在低動態(tài)場景下使用,建議選擇較小的量程,以獲得更高的精度。

與MLC配合使用:如果你使用這些數(shù)據(jù)進行機器學習核心(MLC)的處理,確保量程設置適當,以便捕捉到足夠的動態(tài)數(shù)據(jù),同時保持數(shù)據(jù)的分辨率。

lsm6dsv16x_xl_full_scale_set(&dev_ctx, LSM6DSV16X_2g);
  lsm6dsv16x_gy_full_scale_set(&dev_ctx, LSM6DSV16X_125dps);

檢測狀態(tài)

鉛筆運動檢測應用的構建,檢測的四種不同場景(類別)。

  1. 靜止(Steady):筆在桌子上,不在手中。
  2. 閑置(Idle):筆在手中但未書寫。
  3. 書寫(Writing):筆在手中并在書寫。
  4. 其他(other):未被其他類別覆蓋的情況。

數(shù)據(jù)單位

加速度計 的數(shù)據(jù)單位為 mg。

陀螺儀 的數(shù)據(jù)單位為 dps。

陀螺儀數(shù)據(jù)也可以導入mdps。

采集數(shù)據(jù)

輪詢獲取數(shù)據(jù),使用串口打印傳感器的數(shù)據(jù),依次是ACC_X、ACC_Y 、ACC_Z、GYR_X、GYR_Y、GYR_Z。

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    lsm6dsv16x_data_ready_t drdy;
    /* Read output only if new xl value is available */
    lsm6dsv16x_flag_data_ready_get(&dev_ctx, &drdy);
    if (drdy.drdy_xl & drdy.drdy_gy) 
        {
            memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));
            memset(data_raw_angular_rate, 0x00, 3 * sizeof(int16_t));

            lsm6dsv16x_acceleration_raw_get(&dev_ctx, data_raw_acceleration);
            lsm6dsv16x_angular_rate_raw_get(&dev_ctx, data_raw_angular_rate);

            acceleration_mg[0] = lsm6dsv16x_from_fs2_to_mg(data_raw_acceleration[0]);
            acceleration_mg[1] = lsm6dsv16x_from_fs2_to_mg(data_raw_acceleration[1]);
            acceleration_mg[2] = lsm6dsv16x_from_fs2_to_mg(data_raw_acceleration[2]);

            angular_rate_mdps[0] = lsm6dsv16x_from_fs125_to_mdps(data_raw_angular_rate[0]);
            angular_rate_mdps[1] = lsm6dsv16x_from_fs125_to_mdps(data_raw_angular_rate[1]);
            angular_rate_mdps[2] = lsm6dsv16x_from_fs125_to_mdps(data_raw_angular_rate[2]);

            printf("%4.2ft%4.2ft%4.2ft%4.2ft%4.2ft%4.2ftrn",
                    acceleration_mg[0], acceleration_mg[1], acceleration_mg[2],
                    angular_rate_mdps[0], angular_rate_mdps[1], angular_rate_mdps[2]);
        }
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

將采集到的數(shù)據(jù)保存。

靜止(Steady)

器件放置在桌子上。

最好多幾個方向。

這里采集4組數(shù)據(jù)。

閑置(Idle)

器件在手中不動。

采集多幾個方位數(shù)據(jù)。

這里采集4組數(shù)據(jù)。

書寫(Writing)

筆在手中并在書寫。

這里采集4組數(shù)據(jù)。

其他(other)

未被其他類別覆蓋的情況。

可以采集例如逆時針數(shù)據(jù)。

這里采集4組數(shù)據(jù)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)采集

    關注

    39

    文章

    6624

    瀏覽量

    114845
  • 機器學習
    +關注

    關注

    66

    文章

    8467

    瀏覽量

    133634
  • MLC
    MLC
    +關注

    關注

    0

    文章

    41

    瀏覽量

    17396
收藏 0人收藏

    評論

    相關推薦

    陀螺儀LSM6DSV16X與AI集成(1)----輪詢獲取陀螺儀數(shù)據(jù)

    本文將介紹如何使用 LSM6DSV16X 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗證設備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取加速度、角速率和溫度數(shù)據(jù)
    的頭像 發(fā)表于 12-18 10:49 ?1993次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(1)----輪詢獲取陀螺儀<b class='flag-5'>數(shù)據(jù)</b>

    陀螺儀LSM6DSV16X與AI集成(2)----姿態(tài)解算

    LSM6DSV16X包含三軸陀螺儀與三軸加速度計。
    的頭像 發(fā)表于 12-18 10:51 ?2654次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(<b class='flag-5'>2</b>)----姿態(tài)解算

    陀螺儀LSM6DSV16X與AI集成(3)----讀取融合算法輸出的四元數(shù)

    LSM6DSV16X 特性涉及到的是一種低功耗的傳感器融合算法(Sensor Fusion Low Power, SFLP). 低功耗傳感器融合(SFLP)算法:
    的頭像 發(fā)表于 12-18 10:53 ?1496次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(3)----讀取融合算法輸出的四元數(shù)

    陀螺儀LSM6DSV16X與AI集成(7)----FIFO數(shù)據(jù)讀取與配置

    LSM6DSV16X是一款高性能、低功耗的6軸IMU傳感器,集成了3軸加速度計和3軸陀螺儀。本文將詳細介紹如何配置和讀取LSM6DSV16X傳感器的FIFO數(shù)據(jù),包括初始化、配置以及
    的頭像 發(fā)表于 07-18 10:40 ?1912次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(7)----FIFO<b class='flag-5'>數(shù)據(jù)</b>讀取與配置

    LSM6DSV16X基于MLC智能動作識別(3)----MEMS Studio訓練數(shù)據(jù)

    MEMS-Studio是一套完整的桌面軟件解決方案,專為開發(fā)嵌入式AI功能、評估嵌入式庫、分析數(shù)據(jù),以及為整個MEMS傳感器產(chǎn)品組合設計無代碼算法而設計。這款獨特的軟件解決方案提供了多功能的開發(fā)環(huán)境
    的頭像 發(fā)表于 11-25 11:28 ?922次閱讀
    <b class='flag-5'>LSM6DSV16X</b>基于<b class='flag-5'>MLC</b><b class='flag-5'>智能</b><b class='flag-5'>筆</b><b class='flag-5'>動作</b><b class='flag-5'>識別</b>(3)----MEMS Studio訓練<b class='flag-5'>數(shù)據(jù)</b>

    陀螺儀LSM6DSV16X與AI集成(13)----中斷獲取SFLP四元數(shù)

    本文將介紹如何通過中斷機制獲取 LSM6DSV16X 傳感器的 SFLP(Sensor Fusion Low Power)四元數(shù)數(shù)據(jù)。LSM6DSV16X 是一款高性能的 6 軸慣性傳
    的頭像 發(fā)表于 11-25 11:44 ?1059次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(13)----中斷獲取SFLP四元數(shù)

    請問lsm6dsv16x可以直接讀取觸摸手勢嗎?

    已經(jīng)讀出來了LSM6DSV16x的QVRmv值,也寫出了單擊的狀態(tài)機。但是在寫觸摸滑動手勢時沒有找到好的計算方式。請問是不是有直接讀出這些手勢的函數(shù)?
    發(fā)表于 07-02 08:14

    使用LSM6DSV16XLSM6DSO16IS,請問下有沒有內(nèi)置濾波器調(diào)整的接口?

    最近在使用LSM6DSV16XLSM6DSO16IS這兩款傳感器,請問下有沒有內(nèi)置濾波器調(diào)整的接口?另外求一份AN4650那樣的應用手冊
    發(fā)表于 03-07 07:17

    提取LSM6DSV16X內(nèi)置低功耗融合算法輸出的四元數(shù)后,轉(zhuǎn)換成歐拉角后遇到一個問題求解

    各位大佬好,在提取LSM6DSV16X內(nèi)置低功耗融合算法輸出的四元數(shù)后,轉(zhuǎn)換成歐拉角后遇到一個問題,當Y軸與重力方向平行時,輸出的角度與慣性測量單元繞自身Y軸轉(zhuǎn)過的角度對應不上,且抖動增加,請問有什么解決方法嗎?
    發(fā)表于 03-14 06:55

    求助,是否有在LSM6DSV16X中使用傳感器融合低功耗算法的示例

    你好我想知道是否有在 LSM6DSV16X 中使用傳感器融合低功耗算法的示例。我想檢索當前的 Heading、Pitch 和 Roll 信息?;蛘呶乙埠芨吲d有一個例子解釋如何從 SFLP 中獲取四元
    發(fā)表于 02-03 09:12

    如何識別slc和mlc芯片及slc mlc區(qū)別

    如何識別slc和mlc芯片及slc mlc區(qū)別 slc mlc區(qū)別:     MLC(Mu
    發(fā)表于 07-17 10:01 ?6967次閱讀

    LSM6DSOX MLC狀態(tài)識別

    電子發(fā)燒友網(wǎng)站提供《LSM6DSOX MLC狀態(tài)識別.pdf》資料免費下載
    發(fā)表于 07-31 15:14 ?0次下載
    <b class='flag-5'>LSM6</b>DSOX <b class='flag-5'>MLC</b>狀態(tài)<b class='flag-5'>識別</b>

    ST LSM6DSV16X iNEMO慣性模塊相關的使用信息和應用提示

    AN5763,LSM6DSV16X是一款ST的3 軸加速度計和 3 軸陀螺儀; LSM6DSV16X 是系統(tǒng)級封裝的 3 軸數(shù)字加速度計和 3 軸數(shù)字陀螺儀,具有數(shù)字 I2C、SPI 和 MIPI
    發(fā)表于 08-31 11:12 ?0次下載

    LSM6DSV16X基于MLC智能動作識別(1)----輪詢獲取陀螺儀數(shù)據(jù)

    本文將介紹如何使用 LSM6DSV16X 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗證設備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取加速度、角速率和溫度數(shù)據(jù)
    的頭像 發(fā)表于 10-16 10:38 ?710次閱讀
    <b class='flag-5'>LSM6DSV16X</b>基于<b class='flag-5'>MLC</b><b class='flag-5'>智能</b><b class='flag-5'>筆</b><b class='flag-5'>動作</b><b class='flag-5'>識別</b>(1)----輪詢獲取陀螺儀<b class='flag-5'>數(shù)據(jù)</b>

    LSM6DSV16X基于MLC智能動作識別(4)----中斷獲取智能狀態(tài)

    LSM6DSV16X 支持通過中斷(INT)輸出 MLC(機器學習核)識別動作。具體來說,MLC 可以配置為在滿足某些條件或機器學習分類結
    的頭像 發(fā)表于 11-25 11:39 ?460次閱讀
    <b class='flag-5'>LSM6DSV16X</b>基于<b class='flag-5'>MLC</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><b class='flag-5'>筆</b>狀態(tài)

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品