AliOS Things手勢識別應用演示
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的亮滅。
硬體連線:

3. 軟體編譯
軟體: ofollow,noindex" target="_blank">AliOS Things
下載AliOS Things後,切換到developer分支。
執行如下命令編譯Application:
aos make sensordemo@stm32f413h-discovery
編譯成功後,使用下面命令燒錄映象:
aos upload sensordemo@stm32f413h-discovery
4. 軟體介紹
- 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逐漸熄滅
向左 —— 顯示上一個顯示介面
向右 —— 顯示下一個顯示介面
5. 功能演示
視訊觀看: AliOS-Things手勢識別應用演示