????????感謝各位電子愛好者與行業伙伴們對ST板卡評測系列活動的持續關注!該系列活動通過ST中文論壇板卡申請用戶對各類板卡的真實體驗和評測文章分享,從多個維度、全方位深入剖析ST相關產品的性能表現與實際應用場景,為用戶了解和選用板卡提供極具實用價值的參考。
LSM6DSV320X+MEMS主板開發平臺STEVAL-MKI109D的板卡評測活動推出后,廣大網友踴躍參與,涌現出很多優秀的評測投稿。本期為大家分享論壇網友短笛君的精彩評測內容。

LSM6DSV320X+MEMS主板開發平臺STEVAL-MKI109D及其核心功能、應用場景、技術亮點及評測方向已在前期活動招募文中詳細說明,想快速了解細節的朋友,可回顧板卡評測|免費申請微型AI傳感器LSM6DSV320X,解鎖高精度運動跟蹤新體驗一文,這里不再贅述。本期我們聚焦論壇網友短笛君的實測體驗。他首先分享了MEMS上位機體驗并進行MLC數據預采集,隨后實現了LSM6DSV320X IMU傳感器在Linux平臺的驅動移植,并開發具備四元數和歐拉角解算的完整姿態感知應用,最后講解了如何在MEMS Studio上進行MLC的過程。
短笛君的評測內容
MEMS上位機體驗以及MLC數據采集
LSM6DSV320X是意法半導體推出的一款高性能、低功耗的6軸慣性測量單元,集成了3軸數字加速度計和3軸數字陀螺儀。它是ST傳感器產品線中的旗艦型號之一,專為需要高精度運動感知和復雜數據處理的先進應用而設計。實際效果,請在ST中文論壇了解。

根據官網描述這顆陀螺儀傳感器內置雙量程加速度計,高g加速度計量程高達320g量程。
內置智能與機器學習核心:
●集成了可編程的有限狀態機和機器學習核心。
●FSM:允許用戶定義簡單的“如果-那么”邏輯規則,用于識別特定的運動模式(如單擊、雙擊、計步),無需喚醒主處理器,極大節省功耗。
●MLC:能夠直接在傳感器內部運行機器學習算法(如決策樹),用于識別更復雜的活動和情境(如跑步、駕駛、設備跌落),將分類結果直接輸出,極大減輕主處理器的計算負擔。
后續測試中實際體驗了MLC功能經過學習數據后,內置硬件邏輯可以在極低的功耗下運行基礎的傳感器融合算法,很方便的可以處理外部數據最大限度的節省功耗。
LSM6DSV320X支持自適應自配置(ASC)功能,能夠基于檢測到的特定運動模式,或基于MLC中配置的特定決策樹輸出,自動實時重新配置設備,無需主處理器的干預。
內置濾波器:
該器件嵌入了一個專用加速度計傳感器,具有獨立通道和濾波功能,可進行高g加速度檢測,外部總線還支持拓展傳感器可以外界磁羅盤等數據進行融合算法的處理。
LSM6DSV320X還支持了I3C接口,通訊速率大幅提高。
MEMS-Studio
MEMS Studio是ST為MEMS傳感器平臺推出的一款一體化上位機傳感器通過載板和軟件配置可以實現傳感器配置實時數據可視化管理與調試。
本次測評也基于這個上位機平臺開展。

將評估平臺插入電腦后軟件會自動讀取串口連接板卡。

連接對應板卡。

成功連接后,進入傳感器配置界面,右側展示了三個傳感器的配置參數,分別是低g值加速度計的量程,操作模式以及數據輸出速度(ODR),高g加速度計的量程以及ODR和陀螺儀量程以及ODR,通過配置這三個參數來達到不同的性能組合,數據輸出速率越高消耗電流越大,三個傳感器的最高輸出速率均可達到7.68KHz。

接下來就是配置寄存器,由于之前寫過默認配置文件,所以寄存器這里已經是配置好的狀態,用戶依然可以在上位機中自由讀寫這幾個寄存器,數量太多可以自行查看。
這個功能對于軟件開發人員來說很方便!沒有載板平臺時,開發者只能通過編寫代碼來讀寫寄存器,十分的麻煩,現在上位機可以一鍵配置、讀取,十分方便。

數據保存界面可以將傳感器的原始數據一鍵打log保存到csv文件內對后面MLC也是十分方便。





幾個數據查看面板做的效果是非常直觀的用戶可以從圖表中直接觀察到傳感器的數據輸出。

高級功能中主要是針對FSM(有限狀態機)以及MLC這兩個流程評估的后續將會更新MLC的評估。

在數據分析界面中主要是針對先前提到的數據保存功能保存下來的log數據進行分析。

如上圖將原始數據載入后可以一鍵標注數據。

上位機根據不同的數據行為會區分不同標簽,用戶將打過標簽的數據輸出到MLC這一步即可完成機器學習的模型訓練,無需MCU介入傳感器自己就可以識別不同的行為模式。

最后一項是類似NoDe-RED的基于流的開發工具,用戶可以根據不同的節點來創建自動化任務以及應用程序,無需編輯代碼即可快速評估傳感器。極大地縮短了產品開發流程;此外,產品功耗表明,九軸配置時實際測量電流約為800ua。

關閉所有傳感器待機。

符合手冊中的描述,另外IO可編程電壓也實際測試了一下,這個功能是為了適配不同MCU間通信,例如部分SOC通信信號引腳電平耐受1.1V就可以改變電平信號電壓。


LSM6DSV320X不僅僅是一個運動傳感器,更是一個高度集成的“智能傳感中心”。它將高性能的加速度計和陀螺儀與獨特的嵌入式智能(FSM、MLC)技術相結合,為設備制造商提供了:
●系統級節能:通過邊緣計算將決策任務下放到傳感器,大幅降低主處理器負載和整體系統功耗。
●增強的功能性:能夠實現更復雜、更直觀的用戶交互和情境感知。
●設計的簡化:高集成度減少了對外部元件的需求,簡化了硬件和軟件設計。
Linux平臺驅動移植與姿態感知應用實現
本文將帶你從零實現LSM6DSV320X IMU傳感器在Linux平臺的驅動移植,并開發具備四元數和歐拉角解算的完整姿態感知應用。
項目背景
LSM6DSV320X是一款高端、低噪聲、低功耗小型IMU,集成16g三軸數字低g加速度計、320g三軸數字高g加速度計及三軸數字陀螺儀,提供最佳IMU傳感器性能,采用四個單獨通道(用戶界面、OIS、EIS和高g加速度計數據通道)獨立處理加速度與角速率數據,具有專用配置、處理和濾波功能,并配備專用高g傳感器實現高g沖擊與汽車碰撞檢測。
雖然在STM32生態中有完善的HAL驅動支持,但在Linux平臺的資料相對較少。本項目成功將官方驅動移植到Linux環境,并實現了實時姿態感知功能。
第一次寫Linux驅動的項目,可能有許多筆誤,還希望各位大佬多多包涵。有錯誤幫忙指出。
之所以選擇樹莓派是因為其底層IIC驅動已經相對完善,一致起來節省時間。
硬件準備

樹莓派的硬件pinout如上,我們使用的是IIC接口,所以需要使用GPIO2 GPIO3兩個引腳。
EVM板硬件連接

主板側面引出排針直接連接IIC接口就可以。

需要注意的一點是板卡的供電,由于樹莓派接口使用的是3V3通信的電平,因此我們需將傳感器板的供電冒取下,改為右側兩個針并聯,再將樹莓派的3V3連接到VDD上,這樣就完成了在無需軟件修改主板供電的情況下給傳感器供電,(主板給傳感器的電壓默認為1.1V,如果用Typec給主板供電,可能會出現通信問題和電流倒灌)。
連接完成后,我們使用I2C工具探測連接。

如圖所示,出現0X6A,即為傳感器已經被Linux板卡識別到,接下來可使用i2cget工具讀取who am i寄存器。

出現0x73即linux與傳感器通信正常。
軟件準備
訪問ST官網查找其傳感器驅動庫(鏈接:https://github.com/STMicroelectronics/lsm6dsv320x-pid.git),clone下來驅動庫,我們只需要重新實現在Linux平臺下的IIC讀寫操作即可。
項目結構說明

reg結尾是ST官方驅動庫函數,其中包括了傳感器的初始化、寄存器地址及配置枚舉變量,我們直接引用即可。rpi是我們的應用文件,這三個文件要放在同一個目錄之下,否側GCC編譯會報錯。
項目流程
項目初始化流程如下所示:主要是初始化變量以及打開IIC總線,并設置IIC從設備地址(0X6A)和異常處理,正常打開計入后,將句柄傳入ST驅動庫提供的句柄中,進行初始化驅動上下文。

IIC總線打開正常后,會讀取傳感器的WHO_AM_I寄存器并驗證,讀取并驗證無誤后復位一次傳感器,開始配置傳感器參數(ACC:120Hz ±4g,陀螺儀:120Hz ±2000dps,BDU啟用),并獲取一次時間戳。參數設置原理可以參考使用MEMS_Studio的Easy Config配置傳感器。

傳感器參數配置完成后,就開始整個應用邏輯:
1. 計算時間間隔(dt) ↓
2. 檢查數據就緒狀態 ↓
3. 如果數據就緒:
●讀取加速度計數據 → 轉換為mg和g
●讀取陀螺儀數據 → 轉換為mdps和dps
●計算四元數姿態
●計算歐拉角 ↓
4. 顯示所有數據 ↓
5. 延遲50ms ↓
6. 返回步驟1

數據輸出格式為四種:
原始加速度:[x,y,z] // 16位原始數據
物理加速度:[ax,ay,az] // 毫克單位
姿態四元數:[w,x,y,z] // 歸一化四元數
歐拉角度:[橫滾,俯仰,偏航] // 度單位
由于是先行評估驗證,關于歐拉角的偏航角積分偏移問題還沒有處理,所以在代碼中并未進行轉換,輸出數據一直為0,后續可以移植AHRS的參考算法進行磁力計糾偏。
應用層代碼解析
作者之前也不是linux開發者,目前只是新手,下文中如有錯誤還請多多海涵。
這個操作框架設計如下:

I2C驅動層實現
首先需要實現Linux平臺的I2C讀寫接口:
staticint32_trpi_i2c_write(void*handle,uint8_treg, constuint8_t*buf,uint16_tlen) { intfd = *(int*)handle; structi2c_msgmsg; structi2c_rdwr_ioctl_dataioctl_data; // 構建發送緩沖區(寄存器地址+數據) uint8_t*tx_buf =malloc(len +1); tx_buf[0] = reg; memcpy(&tx_buf[1], buf, len); // 配置I2C消息 msg.addr = LSM6DSV320X_I2C_ADD; msg.flags =0; // 寫操作 msg.len = len +1; msg.buf = tx_buf; // 執行IOCTL調用 if(ioctl(fd, I2C_RDWR, &ioctl_data) 0) { ? ? ? ??perror("I2C寫錯誤"); ? ? ? ??free(tx_buf); ? ? ? ??return?-1; ? ? } ? ??free(tx_buf); ? ??return?0; }
關于ioctl子系統的相關內容,可以在bilibili搜索MP157 Ioctl子系統相關視頻。
傳感器初始化配置
// 設備檢測和初始化
intfd =open("/dev/i2c-1", O_RDWR);
ioctl(fd, I2C_SLAVE,0x6A); // 設置傳感器地址
// 初始化驅動上下文
stmdev_ctx_tdev_ctx;
dev_ctx.write_reg = rpi_i2c_write;
dev_ctx.read_reg = rpi_i2c_read;
dev_ctx.handle = &fd;
// 驗證設備ID
uint8_twho_am_i;
lsm6dsv320x_device_id_get(&dev_ctx, &who_am_i);
printf("設備ID: 0x%02X
", who_am_i);
// 傳感器配置
lsm6dsv320x_xl_data_rate_set(&dev_ctx, LSM6DSV320X_ODR_AT_120Hz); // 加速度計120Hz
lsm6dsv320x_gy_data_rate_set(&dev_ctx, LSM6DSV320X_ODR_AT_120Hz); // 陀螺儀120Hz
lsm6dsv320x_xl_full_scale_set(&dev_ctx, LSM6DSV320X_4g); // ±4g量程
lsm6dsv320x_gy_full_scale_set(&dev_ctx, LSM6DSV320X_2000dps); // ±2000dps量程
這里實現的關鍵一步是
// 設備檢測和初始化
intfd =open("/dev/i2c-1", O_RDWR);
ioctl(fd, I2C_SLAVE,0x6A); // 設置傳感器地址
// 初始化驅動上下文
stmdev_ctx_tdev_ctx;
dev_ctx.write_reg = rpi_i2c_write;
dev_ctx.read_reg = rpi_i2c_read;
dev_ctx.handle = &fd;
Linux中可以將文件視作操作的最小單位,這里IIC1總線視作文件打開,并將上文中實現的操作接口函數以指針的形式賦值給ST驅動接口平臺。
打開文件對應Linux內核中通過VFS訪問IIC驅動。
ioctl工作原理
// ioctl調用流程: 用戶空間 → 系統調用 → 內核VFS → I2C核心層 → I2C適配器驅動 // 在內核中的實現大致如下: staticlongi2c_dev_ioctl(structfile*file, unsignedintcmd, unsignedlongarg) { switch(cmd) { caseI2C_SLAVE: // 設置從設備地址到i2c_client結構體 client->addr = arg; break; } }
其次是初始化一個接口體對象,這部分在ST驅動代碼中,我們直接引用
stmdev_ctx_t dev_ctx;
結構體的定義:
typedefstruct{
int32_t(*write_reg)(void*handle,uint8_treg,constuint8_t*buf,uint16_tlen);
int32_t(*read_reg)(void*handle,uint8_treg,uint8_t*buf,uint16_tlen);
void*handle;
void(*mdelay)(uint32_tmillisec);
}stmdev_ctx_t;
//write_reg:函數指針,指向寄存器寫函數
//read_reg:函數指針,指向寄存器讀函數
//handle:泛型指針,用于傳遞平臺特定數據
//mdelay:函數指針,指向延遲函數(可選)
我們的設計模式是將IIC操作統一成抽象的接口,即上文中實現的rpi的IIC驅動層實現。這樣就可以在不同平臺中復用相同業務邏輯的代碼,只需要移植驅動層函數即可,所以在rpi驅動實現中,保持了和ST一樣的參數。
// ST驅動期望的函數簽名 int32_t(*write_reg)(void*handle,uint8_treg,constuint8_t*buf,uint16_tlen); int32_t(*read_reg)(void*handle,uint8_treg,uint8_t*buf,uint16_tlen); // 我們的平臺實現必須匹配這個簽名 staticint32_trpi_i2c_write(void*handle,uint8_treg,constuint8_t*buf,uint16_tlen); staticint32_trpi_i2c_read(void*handle,uint8_treg,uint8_t*buf,uint16_tlen);
通過以上實現思路,我們即可在Linux系統下完成通過IIC讀寫傳感器寄存器的操作。
傳感器的初始化操作
實現了寄存器的訪問后,應用層上編寫邏輯就和STM32這類MCU相差不大,就是封裝函數在寫入即可,具體封裝實現邏輯可以在ST中文論壇獲取。
// 設備檢測和初始化
intfd =open("/dev/i2c-1", O_RDWR);
ioctl(fd, I2C_SLAVE,0x6A); // 設置傳感器地址
// 初始化驅動上下文
stmdev_ctx_tdev_ctx;
dev_ctx.write_reg = rpi_i2c_write;
dev_ctx.read_reg = rpi_i2c_read;
dev_ctx.handle = &fd;
// 驗證設備ID
uint8_twho_am_i;
lsm6dsv320x_device_id_get(&dev_ctx, &who_am_i);
printf("設備ID: 0x%02X
", who_am_i);
// 傳感器配置
lsm6dsv320x_xl_data_rate_set(&dev_ctx, LSM6DSV320X_ODR_AT_120Hz); // 加速度計120Hz
lsm6dsv320x_gy_data_rate_set(&dev_ctx, LSM6DSV320X_ODR_AT_120Hz); // 陀螺儀120Hz
lsm6dsv320x_xl_full_scale_set(&dev_ctx, LSM6DSV320X_4g); // ±4g量程
lsm6dsv320x_gy_full_scale_set(&dev_ctx, LSM6DSV320X_2000dps); // ±2000dps量程
姿態解算
本項目實現了基于互補濾波的實時姿態解算:
// 四元數計算函數
static void calculate_quaternion(float accel[3], float gyro[3],
float dt, floatq[4])
{
//加速度計數據歸一化
float norm =sqrt(accel[0]*accel[0] + accel[1]*accel[1] + accel[2]*accel[2]);
if(norm >0.0f) {
accel[0] /= norm; accel[1] /= norm; accel[2] /= norm;
}
// 陀螺儀數據轉換(度/秒 → 弧度/秒)
float gx = gyro[0] * M_PI /180.0f;
float gy = gyro[1] * M_PI /180.0f;
float gz = gyro[2] * M_PI /180.0f;
//互補濾波誤差校正
float vx =2.0f * (q_prev[1]*q_prev[3] - q_prev[0]*q_prev[2]);
float vy =2.0f * (q_prev[0]*q_prev[1] + q_prev[2]*q_prev[3]);
float vz = q_prev[0]*q_prev[0] - q_prev[1]*q_prev[1]
- q_prev[2]*q_prev[2] + q_prev[3]*q_prev[3];
//誤差積分和反饋校正
float ex = (accel[1]*vz - accel[2]*vy);
float ey = (accel[2]*vx - accel[0]*vz);
float ez = (accel[0]*vy - accel[1]*vx);
//四元數微分方程數值積分
float qdot[4];
qdot[0] =0.5f * (-q_prev[1]*gx - q_prev[2]*gy - q_prev[3]*gz);
qdot[1] =0.5f * (q_prev[0]*gx + q_prev[2]*gz - q_prev[3]*gy);
//... 其他分量計算
// 積分和歸一化
for(inti =0; i 4; i++)?
? ? ? ??q[i]?= q_prev[i] + qdot[i] * dt;
? ? norm =?sqrt(q[0]*q[0]?+?q[1]*q[1]?+?q[2]*q[2]?+?q[3]*q[3]);
? ??for(int?i =?0; i 4; i++)?
? ? ? ??q[i]?/= norm;
}
四元數轉歐拉角:
static void quaternion_to_euler(floatq[4], float euler[3])
{
float w =q[0],x=q[1],y=q[2], z =q[3];
//橫滾角 (Roll)
float sinr_cosp =2.0f * (w *x+y* z);
float cosr_cosp =1.0f -2.0f * (x*x+y*y);
euler[0] =atan2(sinr_cosp, cosr_cosp) *180.0f / M_PI;
//俯仰角 (Pitch)
float sinp =2.0f * (w *y- z *x);
if(fabs(sinp) >=1.0f)
euler[1] = copysign(90.0f, sinp);
else
euler[1] = asin(sinp) *180.0f / M_PI;
//偏航角 (Yaw)
float siny_cosp =2.0f * (w * z +x*y);
float cosy_cosp =1.0f -2.0f * (y*y+ z * z);
euler[2] =atan2(siny_cosp, cosy_cosp) *180.0f / M_PI;
}
該部分參考可以參照哈爾濱工程大學創夢之翼戰隊,韭菜的菜開源。
●四元數EKF姿態更新算法 - 知乎
●RoboMaster機器人姿態解算方案開源 - 知乎
代碼編譯
先前已經說了,驅動庫和APP要放在一個目錄下。
gcc -o lsm6dsv320x_test lsm6dsv320x_rpi.c lsm6dsv320x_reg.c -lm ./lsm6dsv320x_test

執行效果如上。
使用MEMS Studio訓練數據并使用MLC功能進行識別
MLC(Machine Learning Core)功能可以將一些跑在MCU上的算法(如TinyML)在傳感器端實現,從而實現MCU休眠時傳感器可以持續檢測某一特定動作組,這個學習處理的過程依靠決策邏輯樹構成,具體的信息可以參考ST官網資料。
鏈接:https://www.st.com/content/st_com/en/MEMS-Sensors-Ecosystem-for-Machine-Learning.html
本文主要講解如何在MEMS Studio上進行MLC過程。首先選擇我們使用的板卡,具體配置過程可以參考前邊的內容。

配置完傳感器之后,使用MEMS Studio的數據采集功能,分別采集兩種不同動作的數據,每個動作保存3組。記得打上時間戳,后面有用。
保存好的數據如下圖:

shake和standby分別對應抖動時候和靜止板卡時候的數據,用戶可以根據自己不同的情況多定制幾種不同的功能。

在電機advance feature里面的MLC選項卡,分別導入我們的數據,注意是分別導入。
我們先點擊browse,將我們的數據加載進選項框中,然后再右面輸入欄中輸入我們的數據標簽,然后再點擊load。這樣我們對于某一個動作的數據集就會被加載進去了,不要一股腦的選中所有數據全部加載進去。


加載完數據之后,我們開始配置窗口長度以及量程,配置的選項可以參考我們在初始化時侯的選項,每一項對應著選擇就好。

接著,我們點擊下面的AREF generation,配置我們的濾波器(filters),這個濾波器是重要的,可以對我們的原始信號就行處理。

濾波器一般會配置每個軸,可以選擇平均值濾波,高通低通濾波器等,一般選擇平均值濾波可以平滑擾動信號。
濾波器配置完成之后,我們就可以選擇我們的特征數據(features)了,MLC的特征數據選擇可以選擇某幾個統計學特征,如:
MEAN:均值,表示在給定的時間窗口內計算的傳感器數據的平均值。
VARIANCE:方差,表示數據的分散程度,反映數據在給定時間窗口內的變化。
ENERGY(能量):計算信號在給定時間窗口內的總能量。它反映了信號強度,通常用于識別較強或較弱的活動。
PEAK_TO_PEAK(峰峰值):峰峰值特征計算的是信號在給定時間窗口內的最大值和最小值之間的差異。這個特征可以幫助檢測信號的最大振幅。

上述選項配置完成后,我們確定生成設備樹arrf文件。

然后點擊“Generate Decision Tree”按鈕以生成決策樹。這個按鈕基于之前通過ARFF文件加載的數據和特征生成了一個分類模型(決策樹),用于識別不同的動作或狀態。

這個界面有一個關鍵的參數即Kappa統計量,它是一種用于衡量分類器在考慮偶然因素時的準確性度量。這里顯示為0.307479,雖然分類準確度高,但Kappa值可能表明結果受到數據分布或樣本量的影響。
● 0.81 - 1.00:幾乎完美的分類一致性。
● 0.61 - 0.80:很好的分類一致性。
● 0.41 - 0.60:中等分類一致性。
● 0.21 - 0.40:較低的分類一致性。
● 0.00 - 0.20:幾乎沒有一致性(接近隨機猜測)。
我們可以查看決策樹模型:

這個模型清晰的展示了不同行為執行的動作,還可以查看模型輸出信息。

還記得之前我們說的錄log時候要打上時間戳嗎?我們在debug界面中導入我們錄制的log數據,導入傳感器配置文件。

耐心等待一會加載完成,就可以在我們剛剛訓練好的模型上面運行記錄的log數據,并查看分類效果,類似我們在煉丹時候的訓練集和驗證集,來驗證我們模型的識別效果。

由于剛才我們的MLC模型只訓練了兩種狀態,所以MLC_OUT的輸出只有0X00和0XFF兩種狀態。
總的來說,MEMS Studio給我們提供了一套非常完成且簡單易用的傳感器解決方案,方便用戶來評估功能以及分析數據,無代碼開箱即用的設計大大縮減了開發進程,并且支持非常多的傳感器。
另外,ST提供的跨平臺開發驅動包也很好用,類似Linux驅動的設計框架可以很方便的讓我們把驅動移植到各個平臺中使用,而不僅僅是限制于MCU平臺。
ST工程師總結:
短笛君這篇對LSM6DSV320X的測評精準聚焦于ST工具鏈的完整性與易用性,評測視角非常地全面,過程也很細致!從LSM6DSV32X延伸到開發工具,再落到實際開發體驗,形成了從硬件到產品的完整分析鏈條。確實,ST廣受贊譽的生態系統提供完善易用的開發工具套件和驅動代碼,可以很方便的實現跨平臺的移植和開發調試。對于MLC,ST的MEMS STUDIO可以大幅度減少開發人員的工作量,進一步優化產品開發周期
歡迎關注ST中文論壇了解更多不同產品系列板塊的測評活動。
文章所有圖片來源于:ST中文論壇
-
傳感器
+關注
關注
2574文章
54499瀏覽量
786869 -
mems
+關注
關注
129文章
4396瀏覽量
197890 -
意法半導體
+關注
關注
31文章
3341瀏覽量
111177 -
移植
+關注
關注
1文章
408瀏覽量
29242
原文標題:評測分享|LSM6DSV320X:驅動移植+姿態解算+MLC實操全記錄
文章出處:【微信號:STMChina,微信公眾號:意法半導體中國】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
LSM6DSV16BX:集成機器學習核心與Qvar感應的先進慣性測量單元
LSM6DSV16X:集成機器學習與靜電感應的高性能慣性測量單元
LSM6DSV16B:面向TWS與可穿戴設備的6軸IMU,融合傳感與低功耗智能
LSM6DSV32X:高性能6軸IMU,賦能下一代智能運動感知應用
LSM6DSV320X:面向高端應用的智能6軸慣性測量單元
詳解意法半導體LSM6DSV320X傳感器開發平臺性能

意法半導體LSM6DSV320X IMU傳感器在Linux平臺的驅動移植與姿態感知應用實現
評論