0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

概述

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

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

視頻教學(xué)

[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 中,表格列出了機(jī)器學(xué)習(xí)核心(MLC)的輸出數(shù)據(jù)速率(ODR),用于配置 MLC 數(shù)據(jù)生成的頻率。

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

執(zhí)行流程

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

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

速率設(shè)置

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

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

量程設(shè)置

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

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

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

檢測狀態(tài)

鉛筆運(yùn)動(dòng)檢測應(yīng)用的構(gòu)建,檢測的四種不同場景(類別)。

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

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

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

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

陀螺儀數(shù)據(jù)也可以導(dǎo)入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)

器件放置在桌子上。

最好多幾個(gè)方向。

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

閑置(Idle)

器件在手中不動(dòng)。

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

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

書寫(Writing)

筆在手中并在書寫。

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

其他(other)

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

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

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

審核編輯 黃宇

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

    關(guān)注

    38

    文章

    5795

    瀏覽量

    113403
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8343

    瀏覽量

    132286
  • MLC
    MLC
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    17272
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    LSM6DSV16X包含三軸陀螺儀與三軸加速度計(jì)。
    的頭像 發(fā)表于 12-18 10:51 ?2013次閱讀
    陀螺儀<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 ?1085次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(3)----讀取融合算法輸出的四元數(shù)

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

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

    LSM6DSO32X每次收到中斷后讀取MLC結(jié)果寄存器數(shù)值為00,怎么解決?

    慣性模塊是LSM6DSO32X,使用官方開發(fā)板在Unioc-GUI上可以看到MLC結(jié)果寄存器是有數(shù)值的(無論是官方例程還是自己的程序),在自己設(shè)計(jì)的板子上使用了LSM6DSO32XMLC
    發(fā)表于 03-20 07:55

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

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

    請問LSM6DSV32XLSM6DSO32X是同一個(gè)封裝嗎?

    LSM6DSV32XLSM6DSO32X是同一個(gè)封裝嗎?
    發(fā)表于 12-14 07:19

    請問大神如何才能讓MLClsm6dsox上正常工作呢

    _route; lsm6dsox_pin_int2_route_get(p_lsm6dsox, &pin_int2_route); pin_int2_route.mlc_int2.int2_m
    發(fā)表于 12-20 06:44

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

    你好我想知道是否有在 LSM6DSV16X 中使用傳感器融合低功耗算法的示例。我想檢索當(dāng)前的 Heading、Pitch 和 Roll 信息。或者我也很高興有一個(gè)例子解釋如何從 SFLP 中獲取四元
    發(fā)表于 02-03 09:12

    Unico上MLC的使用

    Unico為ST可編程傳感器提供了一個(gè)UI界面,方便用戶設(shè)計(jì)/調(diào)試MLC功能? 在Unico選擇了帶MLC的器件(如LSM6DSOX)后,在GUI中會(huì)導(dǎo)入MLC的配置和調(diào)試窗口
    發(fā)表于 09-06 07:00

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

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

    LSM6DSOX MLC狀態(tài)識別

    電子發(fā)燒友網(wǎng)站提供《LSM6DSOX MLC狀態(tài)識別.pdf》資料免費(fèi)下載
    發(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 LSM6DSV16BX多功能MEMS Sensor的TWS方案

    ST 適時(shí)推出多功能MEMS Sensor LSM6DSV16BX,在2.5 mm x 3.0 mm x 0.71 mm的封裝里集成了3 軸加速度計(jì)和3軸陀螺儀:慣性UI模塊,骨傳導(dǎo)模塊,Qvar
    的頭像 發(fā)表于 09-06 17:10 ?1835次閱讀
    基于ST <b class='flag-5'>LSM6DSV16</b>BX多功能MEMS Sensor的TWS方案

    ST LSM6DSV16X iNEMO慣性模塊相關(guān)的使用信息和應(yīng)用提示

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

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

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