1. 程式人生 > >AliOS Things手勢識別應用演示

AliOS Things手勢識別應用演示

sta cli ado i2c ofo roc 轉載 ges lcd

摘要: 1. 概述 手勢識別作為一種輔助的人機交互方式,在人機脫離的場景下可以提供方便的交互體驗。本文介紹基於AliOS Things + STM32F413H Discovery開發板實現手勢交互功能的演示。

  1. 概述
    手勢識別作為一種輔助的人機交互方式,在人機脫離的場景下可以提供方便的交互體驗。本文介紹基於AliOS Things + STM32F413H Discovery開發板實現手勢交互功能的演示。

  2. 環境搭建
    開發板:STM32F413H Discovery(附帶麥克風陣列板)
    手勢傳感器:Seeed Grove PAJ7620
    溫濕度傳感器:HTS221
    LED數碼管:Seeed Grove LED Bar
    硬件說明:

使用STM32F413H作為主控芯片,提供I2C接口、GPIO控制接口、顯示控制接口等。

手勢識別傳感器和溫濕度傳感器均為標準I2C接口,連接到STM32F413H的I2C2上,通過slave address區分。

LED數碼管的控制引腳連接到STM32F413H上的PC13、PA4兩個gpio(PC13作為clock、PA4作為data),通過輸出高低電平控制每一個LED的亮滅。

硬件連接:
技術分享圖片

  1. 軟件編譯
    軟件:AliOS Things
    下載AliOS Things後,切換到developer分支。

執行如下命令編譯Application:
aos make sensordemo@stm32f413h-discovery

編譯成功後,使用下面命令燒錄鏡像:
aos upload sensordemo@stm32f413h-discovery

  1. 軟件介紹
    AliOS Things
    AliOS Things是面向IOT領域的輕量級物聯網嵌入式操作系統。AliOS Things啟動過程中,依次完成內核初始化、硬件資源初始化、功能組件初始化、外設驅動初始化。系統就緒後,通過用戶定義的application_start()函數進入應用程序。

創建顯示界面
在application_start()函數中調用display_init()創建LCD刷新任務、顯存刷新任務、定義顯示界面。

一共添加了3個顯示界面:

界面1:顯示聲音方位。

技術分享圖片

界面2:顯示音量。
技術分享圖片

界面3:顯示溫度和濕度
技術分享圖片

手勢識別過程
在傳感器驅動初始化函數drv_gesture_paj7620_init()中進行芯片設置和中斷註冊。當檢測到物體距離變化後,觸發中斷,然後在中斷處理函數中讀取相關寄存器,得到識別的手勢類型。
然後在顯存刷新任務fb_refresh_task刷新界面時,根據當前手勢類型判斷是否需要進行顯示界面切換或者控制LED數碼管亮滅。

手勢功能定義
向上 —— LED Bar逐漸點亮
向下 —— LED Bar逐漸熄滅
向左 —— 顯示上一個顯示界面
向右 —— 顯示下一個顯示界面

  1. 功能演示
    視頻觀看:AliOS-Things手勢識別應用演示

原文鏈接

本文為雲棲社區原創內容,未經允許不得轉載。

AliOS Things手勢識別應用演示