RM新时代网站-首页

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

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

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

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

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

概述

LSM6DSV16X 支持通過中斷(INT)輸出 MLC(機(jī)器學(xué)習(xí)核)識別的動作。具體來說,MLC 可以配置為在滿足某些條件或機(jī)器學(xué)習(xí)分類結(jié)果發(fā)生變化時生成中斷信號。 LSM6DSV16X 的機(jī)器學(xué)習(xí)核可以配置為在分類結(jié)果發(fā)生變化時生成中斷,并且該中斷信號可以路由到中斷引腳(如 INT1 或 INT2)。系統(tǒng)可以在檢測到動作時做出響應(yīng),而不需要持續(xù)輪詢傳感器,從而優(yōu)化功耗和效率。

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

視頻教學(xué)

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

樣品申請

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

源碼下載

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

硬件準(zhǔn)備

首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是自己繪制的開發(fā)板,需要的可以進(jìn)行申請。

主控為STM32H503CB,陀螺儀為LSM6DSV16X,磁力計(jì)為LIS2MDL。

開啟INT中斷

陀螺儀LSM6DSV16X的中斷管腳接到了PA6,需要將PA6設(shè)置為中端口。

開啟中斷。

參考驅(qū)動程序

[https://github.com/STMicroelectronics/lsm6dsv16x-pid/tree/main]

配置中斷

MD1_CFG (5Eh) 寄存器用于將各種事件路由到 INT1 引腳。每個位代表不同的功能,通過設(shè)置這些位,你可以選擇將哪些傳感器事件輸出到 INT1 引腳。下表詳細(xì)描述了每個位的功能:
INT1_EMB_FUNC (bit 1):
● 用于將嵌入式功能事件(如機(jī)器學(xué)習(xí)或狀態(tài)機(jī)的輸出)路由到 INT1。

mian.c中定義變量。

/* USER CODE BEGIN 0 */
uint8_t mlc_flag = 0;
/* USER CODE END 0 */

mian.c中開啟中斷。

// Enable interrupt for MLC on INT1 pin
  lsm6dsv16x_pin_int_route_t pin_int;
    lsm6dsv16x_pin_int1_route_get(&dev_ctx, &pin_int);
  pin_int.emb_func = PROPERTY_ENABLE;
  lsm6dsv16x_pin_int1_route_set(&dev_ctx, &pin_int);

在stm32h5xx_it.c中添加回調(diào)函數(shù)引用。

/* USER CODE BEGIN 0 */
extern void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);


/* USER CODE END 0 */
處理PB0外部中斷線0(EXTI Line0)的中斷。  

/**
  * @brief This function handles EXTI Line0 interrupt.
  */
void EXTI0_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_IRQn 0 */
    HAL_GPIO_EXTI_Callback(INT1_Pin);
  /* USER CODE END EXTI0_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(INT1_Pin);
  /* USER CODE BEGIN EXTI0_IRQn 1 */

  /* USER CODE END EXTI0_IRQn 1 */
}

在main.c中添加回調(diào)函數(shù)的定義,檢查中斷是否由 GPIO_PIN_0引腳觸發(fā)。

/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
    if(GPIO_Pin == GPIO_PIN_0)
    {
        mlc_flag=1;
        }    
}
/* USER CODE END 4 */

主程序

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    if(mlc_flag==1)
    {
        mlc_flag=0;
        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 */
}

演示

靜止?fàn)顟B(tài)如下。

閑置狀態(tài)如下,手抓筆靜止。

書寫狀態(tài)如下,移動筆進(jìn)行識別判定。

其他如下,筆倒置。

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    41

    瀏覽量

    17302
  • 智能筆
    +關(guān)注

    關(guān)注

    1

    文章

    15

    瀏覽量

    5359
收藏 人收藏

    評論

    相關(guān)推薦

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

    會被轉(zhuǎn)換為適當(dāng)?shù)膯挝徊⑼ㄟ^串行通信輸出。這個代碼是一個很好的起點(diǎn),用于了解如何操作 LSM6DSV16X 傳感器并獲取其數(shù)據(jù)。
    的頭像 發(fā)表于 12-18 10:49 ?1709次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(1)----輪詢<b class='flag-5'>獲取</b>陀螺儀數(shù)據(jù)

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

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

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

    LSM6DSV16X 特性涉及到的是一種低功耗的傳感器融合算法(Sensor Fusion Low Power, SFLP). 低功耗傳感器融合(SFLP)算法:
    的頭像 發(fā)表于 12-18 10:53 ?1198次閱讀
    陀螺儀<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ù),包括初始化、配置以及數(shù)據(jù)處理的完整流程, 以實(shí)現(xiàn)數(shù)據(jù)的批量處理和傳
    的頭像 發(fā)表于 07-18 10:40 ?1481次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(7)----FIFO數(shù)據(jù)讀取與配置

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

    MLC 是“機(jī)器學(xué)習(xí)核心”(Machine Learning Core)的縮寫。在 LSM6DSV16X 傳感器 中,MLC 是一種嵌入式功能,它使傳感器能夠直接運(yùn)行基于決策樹的機(jī)器學(xué)習(xí)算法。通過
    的頭像 發(fā)表于 10-22 10:02 ?747次閱讀
    <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>數(shù)據(jù)采集

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

    MEMS-Studio是一套完整的桌面軟件解決方案,專為開發(fā)嵌入式AI功能、評估嵌入式庫、分析數(shù)據(jù),以及為整個MEMS傳感器產(chǎn)品組合設(shè)計(jì)無代碼算法而設(shè)計(jì)。這款獨(dú)特的軟件解決方案提供了多功能的開發(fā)環(huán)境,支持評估和編程所有MEMS傳感器,此外還推出了新一代解決方案,以擴(kuò)展Unico-GUI、Unicleo-GUI和AlgoBuilder等成熟應(yīng)用程序的功能。
    的頭像 發(fā)表于 11-25 11:28 ?490次閱讀
    <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訓(xùn)練數(shù)據(jù)

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

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

    陀螺儀LSM6DSV16X與AI集成(14)----上報(bào)匿名上位機(jī)

    本文介紹了如何將 LSM6DSV16X 傳感器的姿態(tài)數(shù)據(jù)通過匿名通信協(xié)議上報(bào)到上位機(jī)。通過獲取傳感器的四元數(shù)數(shù)據(jù),并將其轉(zhuǎn)換為歐拉角(Roll、Pitch、Yaw),然后按照協(xié)議格式化數(shù)據(jù)幀并通過
    的頭像 發(fā)表于 11-25 11:53 ?599次閱讀
    陀螺儀<b class='flag-5'>LSM6DSV16X</b>與AI集成(14)----上報(bào)匿名上位機(jī)

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

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

    請問LSM6DSV32XLSM6DSO32X是同一個封裝嗎?

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

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

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

    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><b class='flag-5'>狀態(tài)</b><b class='flag-5'>識別</b>

    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次下載

    意法半導(dǎo)體新款MEMS IMU LSM6DSV32X實(shí)現(xiàn)精確姿態(tài)識別應(yīng)用

    憑借3核、6軸傳感架構(gòu),意法半導(dǎo)體新款MEMS IMU LSM6DSV32X能夠進(jìn)行卓越的邊緣計(jì)算處理,是智能手機(jī)的高精度感測和3D地圖、筆記本電腦和平板電腦的情境感知、AR和VR的精確姿態(tài)
    的頭像 發(fā)表于 08-01 10:15 ?790次閱讀

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

    會被轉(zhuǎn)換為適當(dāng)?shù)膯挝徊⑼ㄟ^串行通信輸出。這個代碼是一個很好的起點(diǎn),用于了解如何操作 LSM6DSV16X 傳感器并獲取其數(shù)據(jù)。
    的頭像 發(fā)表于 10-16 10:38 ?357次閱讀
    <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'>獲取</b>陀螺儀數(shù)據(jù)
    RM新时代网站-首页