AliOS Things 手勢識別應用演示
-
概述
手勢識別作為一種輔助的人機交互方式,在人機脫離的場景下可以提供方便的交互體驗。本文介紹基於AliOS Things + STM32F413H Discovery開發板實現手勢交互功能的演示。 - 環境搭建
開發板: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的亮滅。
硬件連接:
- 軟件編譯
軟件:AliOS Things
下載AliOS Things後,切換到developer分支。
執行如下命令編譯Application:
aos make sensordemo@stm32f413h-discovery
編譯成功後,使用下面命令燒錄鏡像:
aos upload sensordemo@stm32f413h-discovery
- 軟件介紹
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逐漸熄滅
向左 —— 顯示上一個顯示界面
向右 —— 顯示下一個顯示界面
- 功能演示
視頻觀看:AliOS-Things手勢識別應用演示
原文鏈接
本文為雲棲社區原創內容,未經允許不得轉載。
AliOS Things 手勢識別應用演示