概述
MEMS-Studio是一套完整的桌面軟件解決方案,專為開發(fā)嵌入式AI功能、評估嵌入式庫、分析數(shù)據(jù),以及為整個MEMS傳感器產(chǎn)品組合設(shè)計無代碼算法而設(shè)計。這款獨特的軟件解決方案提供了多功能的開發(fā)環(huán)境,支持評估和編程所有MEMS傳感器,此外還推出了新一代解決方案,以擴展Unico-GUI、Unicleo-GUI和AlgoBuilder等成熟應用程序的功能。
最近在弄ST的課程,需要樣片的可以加群申請:615061293 。
MEMS-Studio可簡化在STM32微控制器上使用圖形界面實現(xiàn)概念驗證的過程,無需編寫代碼。此解決方案支持配置傳感器和嵌入式AI(機器學習和神經(jīng)網(wǎng)絡(luò)),可充分利用機器學習內(nèi)核 (MLC)、ISPU的神經(jīng)網(wǎng)絡(luò)以及有限狀態(tài)機 (FSM)。它會重復使用嵌入式軟件庫,將多種功能組合到一個項目中,并使用繪圖和顯示功能實時可視化數(shù)據(jù)。
MEMS-Studio提供以下用戶體驗:
● 針對MEMS產(chǎn)品組合中運動、環(huán)境和紅外傳感器進行評估
● 配置和測試傳感器內(nèi)的各項功能,如有限狀態(tài)機 (FSM)、機器學習內(nèi)核 (MLC) 和智能傳感器處理單元 (ISPU)
● 實時和離線數(shù)據(jù)分析
● 無代碼圖形化算法設(shè)計
視頻教學
[https://www.bilibili.com/video/BV1624VeAEAG/]
樣品申請
[https://www.wjx.top/vm/OhcKxJk.aspx#]
源碼下載
[https://download.csdn.net/download/qq_24312945/89843512]
硬件準備
首先需要準備一個開發(fā)板,這里我準備的是自己繪制的開發(fā)板,需要的可以進行申請。
主控為STM32H503CB,陀螺儀為LSM6DSV16X,磁力計為LIS2MDL。
選擇MEMS
使用 MEMS Studio 的 MLC(Machine Learning Core)進行訓練, "Sensor" 字段選擇要配置的傳感器 。
導入數(shù)據(jù)
點擊“Browse”選擇采集到的數(shù)據(jù),給該類數(shù)據(jù)命名后下載。
將所有采集到的數(shù)據(jù)都導入進去,下載成功如圖所示。
配置窗口長度和量程
MLC ODR(輸出數(shù)據(jù)速率):已設(shè)置為 240Hz,這是 MLC 處理數(shù)據(jù)的速率。
時間窗口長度(Window length):設(shè)置的窗口長度為 60,表示 MLC 每 60個樣本計算一次統(tǒng)計特征。
加速度計(Accelerometer):
● 量程(Full Scale):設(shè)置為 ±2g,表示能夠測量的最大加速度為 ±2g。
● ODR(數(shù)據(jù)速率):設(shè)置為 480Hz,表示加速度計的采樣頻率為 480Hz。
陀螺儀(Gyroscope):
● 量程(Full Scale):設(shè)置為 ±125 dps,表示最大旋轉(zhuǎn)速度為 ±125 度/秒。
● ODR(數(shù)據(jù)速率):設(shè)置為 480Hz,表示陀螺儀的采樣頻率為 480Hz。
配置濾波器
● filter_1:應用于 HP_Acc_XYZ,表示這是一個 高通濾波器(HP,High-Pass Filter),用于對加速度計的 X、Y、Z 軸的三維數(shù)據(jù)進行濾波。
● HP_Acc_XYZ:此濾波器將過濾掉加速度數(shù)據(jù)中低頻成分,保留高頻部分。這可能是為了消除像重力這樣的低頻信號干擾,保留運動的快速變化部分。
● filter_2:應用于 HP_Gyr_XYZ,這是一個 高通濾波器,用于對陀螺儀的 X、Y、Z 軸數(shù)據(jù)進行濾波。
● HP_Gyr_XYZ:此濾波器將過濾掉陀螺儀數(shù)據(jù)中的低頻部分,保留高頻的旋轉(zhuǎn)變化信息,適合檢測快速旋轉(zhuǎn)或角速度的變化。
● filter_3:應用于 HP_Acc_V2,也是一個 高通濾波器,用于處理加速度矢量平方值(即組合了 X、Y 和 Z 軸的加速度數(shù)據(jù))。
● HP_Acc_V2:此濾波器將對加速度矢量平方值的低頻信號進行過濾,保留高頻部分,幫助識別運動的劇烈變化。
● filter_4:應用于 HP_Gyr_V2,是一個 高通濾波器,用于處理陀螺儀矢量平方值(即組合了 X、Y 和 Z 軸的角速度數(shù)據(jù))。
● HP_Gyr_V2:此濾波器將對陀螺儀矢量平方值的低頻部分進行過濾,保留高頻部分,幫助識別旋轉(zhuǎn)運動中的快速變化。
選擇特征數(shù)據(jù)
MLC(Machine Learning Core) 的 特征選擇(Features Selection) 區(qū)域可以為傳感器數(shù)據(jù)選擇要計算的統(tǒng)計特征,并將其作為機器學習的輸入。
MEAN:均值,表示在給定的時間窗口內(nèi)計算的傳感器數(shù)據(jù)的平均值。
VARIANCE:方差,表示數(shù)據(jù)的分散程度,反映數(shù)據(jù)在給定時間窗口內(nèi)的變化。
ENERGY(能量): 計算信號在給定時間窗口內(nèi)的總能量。它反映了信號強度,通常用于識別較強或較弱的活動。
PEAK_TO_PEAK(峰峰值):峰峰值特征計算的是信號在給定時間窗口內(nèi)的最大值和最小值之間的差異。這個特征可以幫助檢測信號的最大振幅,是評估運動強度和突發(fā)變化的有力指標。
設(shè)備樹生成
生成的設(shè)備樹文件為 arff 文件。
決策樹生成
點擊 "Generate Decision Tree" 按鈕以生成決策樹。這個按鈕基于之前通過 ARFF 文件加載的數(shù)據(jù)和特征生成了一個分類模型(決策樹),用于識別不同的動作或狀態(tài)。
Kappa 統(tǒng)計量 是一種用于衡量分類器在考慮偶然因素時的準確性度量。這里顯示為 0.307479,雖然分類準確度高,但 Kappa 值可能表明結(jié)果受到數(shù)據(jù)分布或樣本量的影響。
● 0.81 - 1.00:幾乎完美的分類一致性。
● 0.61 - 0.80:很好的分類一致性。
● 0.41 - 0.60:中等分類一致性。
● 0.21 - 0.40:較低的分類一致性。
● 0.00 - 0.20:幾乎沒有一致性(接近隨機猜測)。
查看分析信息。
F1_MEAN_on_ACC_X <= 0.0360312
| F1_MEAN_on_ACC_X <= -0.88916: other (65.0)
| F1_MEAN_on_ACC_X > -0.88916: Steady (52.0)
F1_MEAN_on_ACC_X > 0.0360312
| F7_ENERGY_on_GY_X <= 0.241577: Idle (62.0)
| F7_ENERGY_on_GY_X > 0.241577: Writing (68.0)
Number of Leaves : 4
Size of the tree : 7
class:
= > Idle, Writing, other, Steady,
features:
= > F1_MEAN_on_ACC_X, F2_MEAN_on_ACC_Y, F3_MEAN_on_ACC_Z, F4_MEAN_on_ACC_V2, F5_VAR_on_ACC_V2, F6_VAR_on_GY_V2, F7_ENERGY_on_GY_X, F8_ENERGY_on_GY_Y, F9_ENERGY_on_GY_Z, F10_ENERGY_on_GY_V2, F11_PeakToPeak_on_ACC_V2, F12_PeakToPeak_on_GY_V2,
Mean absolute error 1
Root mean squared error 1
======= Whole data training with Confidence Factor: 0.9 =========
===== Confusion Matrix =====
Idle Writing other Steady -- classified as
Idle 62 0 0 0
Writing 0 68 0 0
other 0 0 65 0
Steady 0 0 0 52
Total Number of Instances : 247
Correctly Classified Instances : 247
Incorrectly Classified Instances : 0
Kappa Statistic: 0.252373
Accuracy: 100%
Report : precision recall support
Idle 1 1 62
Writing 1 1 68
other 1 1 65
Steady 1 1 52
avg/total 1 1 247
根節(jié)點判斷條件:
● F1_MEAN_on_ACC_X <= 0.0360312:
○ 如果 X 軸加速度的均值小于或等于 0.0360312:
■ 如果 F1_MEAN_on_ACC_X <= -0.88916,則分類為 other(65 個樣本)。
■ 如果 F1_MEAN_on_ACC_X > -0.88916,則分類為 Steady(52 個樣本)。
○ 如果 X 軸加速度的均值大于 0.0360312:
■ 如果 F7_ENERGY_on_GY_X <= 0.241577,則分類為 Idle(62 個樣本)。
■ 如果 F7_ENERGY_on_GY_X > 0.241577,則分類為 Writing(68 個樣本)。
● 混淆矩陣 顯示模型在每一類的分類結(jié)果:
○ Idle:62 個樣本被正確分類。
○ Writing:68 個樣本被正確分類。
○ other:65 個樣本被正確分類。
○ Steady:52 個樣本被正確分類。
● Kappa Statistic:0.252373。盡管分類準確度為 100%,但 Kappa 值較低,表明不同類別之間可能存在某些重疊或類別分布不均衡。
該決策樹模型在當前的小型數(shù)據(jù)集上表現(xiàn)良好,分類準確度為 100%,沒有任何錯誤分類的實例。然而,Kappa 統(tǒng)計量(0.252373) 表明類別之間可能存在數(shù)據(jù)不平衡,導致模型雖然能夠準確分類,但泛化能力可能較差。
參考程序
[https://github.com/STMicroelectronics/STMems_Machine_Learning_Core/tree/master/application_examples/lsm6dsv16x]
轉(zhuǎn)換UCF文件
類輸出值可以根據(jù)自己的需求修改,然后點擊“Generate Config File”生成ucf文件。
將得到的UCF文件存放到LSM6DSV16X的程序中。
在初始化中添加MLC檢測功能。
for( uint32_t i=0; i< (sizeof(lsm6dsv16x_activity_recognition) /
sizeof(ucf_line_t) ); i++ )
{
lsm6dsv16x_write_reg(&dev_ctx, lsm6dsv16x_activity_recognition[i].address,
(uint8_t *)&lsm6dsv16x_activity_recognition[i].data, 1);
}
在主函數(shù)中獲取狀態(tài)值,查詢類的輸出值,編譯程序。
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
lsm6dsv16x_mlc_handler();
if (event_catched != 0)
{
printf("event_catched=%d",event_catched);
// 握(0) 拍(1) 揮(2) 拍(3) 靜(4) 止(5)
switch(event_catched)
{
case 2:
event_catched = 0;
printf("閑置(Idle)rn");
break;
case 4:
event_catched = 0;
printf("書寫(Writing)rn");
break;
case 8:
event_catched = 0;
printf("其他(other)rn");
break;
case 12:
event_catched = 0;
printf("靜止(Steady)rn");
break;
default:break;
}
event_catched = 0;
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
演示 靜止狀態(tài)如下。
閑置狀態(tài)如下,手抓筆靜止。
書寫狀態(tài)如下,移動筆進行識別判定。
其他如下,筆倒置。
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5096文章
19189瀏覽量
308031 -
mems
+關(guān)注
關(guān)注
129文章
3965瀏覽量
191157 -
AI
+關(guān)注
關(guān)注
87文章
31711瀏覽量
270511 -
MLC
+關(guān)注
關(guān)注
0文章
41瀏覽量
17338 -
智能筆
+關(guān)注
關(guān)注
1文章
15瀏覽量
5401
發(fā)布評論請先 登錄
相關(guān)推薦
陀螺儀LSM6DSV16X與AI集成(1)----輪詢獲取陀螺儀數(shù)據(jù)
![陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(1)----輪詢獲取陀螺儀<b class='flag-5'>數(shù)據(jù)</b>](https://file1.elecfans.com/web2/M00/B6/5C/wKgaomV_swuAVAaSAAeZcZUM7S4014.png)
陀螺儀LSM6DSV16X與AI集成(3)----讀取融合算法輸出的四元數(shù)
![陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(<b class='flag-5'>3</b>)----讀取融合算法輸出的四元數(shù)](https://file1.elecfans.com/web2/M00/B7/D5/wKgZomV_s9aAHbuQAADGJZUyl40564.png)
陀螺儀LSM6DSV16X與AI集成(7)----FIFO數(shù)據(jù)讀取與配置
![陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(7)----FIFO<b class='flag-5'>數(shù)據(jù)</b>讀取與配置](https://file1.elecfans.com/web2/M00/FE/0C/wKgaomaYfhCASGSHAAn1ptBupx4254.png)
LSM6DSV16X基于MLC智能筆動作識別(2)----MLC數(shù)據(jù)采集
![<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>(2)----<b class='flag-5'>MLC</b><b class='flag-5'>數(shù)據(jù)</b>采集](https://file1.elecfans.com/web1/M00/F2/FF/wKgaoWcPJnuAHcIOAAkXM7KVLro399.png)
陀螺儀LSM6DSV16X與AI集成(13)----中斷獲取SFLP四元數(shù)
![陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(13)----中斷獲取SFLP四元數(shù)](https://file1.elecfans.com/web2/M00/05/8B/wKgZombaxFSAB1z8AAkXM-mUdJ8994.png)
陀螺儀LSM6DSV16X與AI集成(14)----上報匿名上位機
![陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(14)----上報匿名上位機](https://file1.elecfans.com/web2/M00/05/8B/wKgZombaxFSAB1z8AAkXM-mUdJ8994.png)
請問lsm6dsv16x可以直接讀取觸摸手勢嗎?
求助,是否有在LSM6DSV16X中使用傳感器融合低功耗算法的示例
LSM6DSOX MLC狀態(tài)識別
![<b class='flag-5'>LSM6</b>DSOX <b class='flag-5'>MLC</b>狀態(tài)<b class='flag-5'>識別</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于ST LSM6DSV16BX多功能MEMS Sensor的TWS方案
![基于ST <b class='flag-5'>LSM6DSV16</b>BX多功能<b class='flag-5'>MEMS</b> Sensor的TWS方案](https://file.elecfans.com/web2/M00/67/D9/pYYBAGMXDmqAewNzAADQ2ymezjw642.png)
ST LSM6DSV16X iNEMO慣性模塊相關(guān)的使用信息和應用提示
意法半導體新款MEMS IMU LSM6DSV32X實現(xiàn)精確姿態(tài)識別應用
LSM6DSV16X基于MLC智能筆動作識別(1)----輪詢獲取陀螺儀數(shù)據(jù)
![<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>](https://file1.elecfans.com/web1/M00/F2/FF/wKgaoWcPJnuAHcIOAAkXM7KVLro399.png)
LSM6DSV16X基于MLC智能筆動作識別(4)----中斷獲取智能筆狀態(tài)
![<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)](https://file1.elecfans.com/web1/M00/F5/CA/wKgaoWdD8IKALq3KAAkXMwa-o2o593.png)
評論