




摘 要:交流是日常生活中不可或缺的活動,但是對于聾啞人士而言,生理缺陷使他們無法輕松自如地與他人進行交流,這無疑給他們的日常生活帶來了諸多不便。鑒于此,設計并開發了一款基于STM32單片機的智能手套,該手套能夠處理多樣化的數據,并實現手語翻譯。該手套借助STM32F103單片機能夠同時處理10個彎曲傳感器和2個陀螺儀所采集到的感知數據,然后通過藍牙將這些數據傳輸至手機端,進而實現手語翻譯的語音輸出和記錄。文中首先介紹了該智能手套的硬件開發過程,詳細分析了手指姿態采集模塊、手掌姿態采集模塊以及控制模塊的工作原理;接著,介紹了藍牙通信模塊及手機APP等軟件設計原理;最后,對該手套進行了測試,測試結果表明,該智能手套能夠準確識別7種日常生活中常用的基礎手語姿勢,并具備漢語與英語的語音輸出功能,同時還提供了歷史記錄查詢的功能。該手套能夠幫助聾啞人士擺脫交流困境,為他們提供了一個高效、便捷的溝通工具,極大地促進了聾啞人士與他人之間的交流與理解。
關鍵詞:STM32單片機;陀螺儀;彎曲傳感器;藍牙;手語翻譯;語音輸出
中圖分類號:TP39;TN91 文獻標識碼:A 文章編號:2095-1302(2025)05-0-06
0 引 言
據殘聯統計,目前我國的聽力殘疾人高達2 780萬人,言語殘疾人數約130萬人[1],這一群體約占我國殘疾人總數的30%。由于他們特殊的生理特點,在工作、學習、娛樂及就醫等生活基礎領域都面對著極大的困難和挑戰。
聾啞人士通常使用手語進行溝通。然而,手語作為一種獨特語言,大多數健全人由于時間和能力等限制,無法系統地學習手語,導致聾啞人士與外界的溝通仍然存在難以逾越的鴻溝。
為了打破這一溝通壁壘,本文設計并開發了一款能夠實現手語翻譯的傳感手套。該手套可以將聾啞人士的手語手勢轉換成文字和語音,以供健全人士進行閱讀,實現了聾啞人士與健聽人士之間的無縫溝通,極大地提高了聽障人士的社會參與度。此外,該手套還增設了記錄功能,能夠更好地保障殘障人士的權益。
手勢識別技術在全球范圍內已經得到了廣泛研究和應用,一般使用硬件設備作為輔助,分為可穿戴式和非可穿戴式。非可穿戴設備需要構造一個特定的空間并在這個空間中對人員手部運動進行檢測,在現實生活的應用場景中穩定性較低,靈活性較差,具有一定的局限性??纱┐髟O備則是通過便攜器件來采集手部運動數據,實際應用中更為穩定,且使用者可以自由移動。文獻[2]介紹了一款專為運動捕捉與動畫制作領域設計的智能手套,該手套因其易用性和佩戴舒適度而廣受專業人士青睞。它擁有寬廣的動作驅動范圍及高精度數據采集能力,顯著提升了工作效率與質量。文獻[3]開發了一款名為Gesture Wrist的設備,該設備佩戴在手腕上可識別手部和前臂的運動,具有方便攜帶的優點。然而,以上兩款產品均采用了靈敏度很高的光纖傳感器,該傳感器售價太過高昂,一般僅用于科研用途少量采購(如頭部品牌Cyberglove、5DT等),而非面向廣泛的民用市場。近年來,我國在手勢識別技術方面的研究取得了重大進步。例如,中國科學技術大學和哈爾濱工業大學合作研究了一種基于“大小手”的手勢實時識別算法[4],基于計算機視覺技術捕捉圖像,采用動態時間規整的識別算法,實現了較好實時性的同時,使識別準確率達到了90%以上。文獻[5]提出了基于3D手臂模型的手勢模型與基于表觀的手勢模型,對基于運動圖像表觀模型的平移、旋轉等運動參數進行聚類,抽取人手在圖像平面的運動軌跡,開發了一個能對12種手勢進行在線識別的系統。此外,西南民族大學的研究團隊先通過攝像頭獲取RGB原始圖像[6],再基于深度學習進行手勢分割,并在此基礎上分析手勢特征,最后通過識別算法實現手勢識別。然而,以上這些基于計算機視覺與人工智能的翻譯系統,雖然達到了較高的識別率與精確度,但是成本較高,其中精細復雜的傳感器需要大量費用,無法惠及難以承擔高昂費用的聾啞人群體且難以進行大規模的推廣應用。此外,這些系統還包含難以攜帶的復雜設備,例如捕捉圖像的手勢攝像頭等,無法讓聾啞人隨身攜帶,難以真正應用于現實的聾啞人溝通之中。
為此,本文設計并實現了一款成本較低且適用于生活中簡單交流的手語翻譯手套。該手套采用STM32F103單片機作為數據采集與處理核心,盡管這在一定程度上限制了可識別手語的數量,但它在確保滿足日常基本交流需求的同時,極大地優化了設備的體積,使其能夠作為手套的一部分被輕松佩戴。此外,使用手機作為輸出設備,不僅可以實現文字顯示與語音輸出,還可以實現數據記錄。這一設計不僅為聾啞人士的日常溝通提供了便利,更在關鍵時刻為他們提供了可靠的交流保障。
1 手套的主體架構
本手套由3個核心部分組成:第一部分為數據采集模塊,負責手勢數據的采集和處理:第二部分為藍牙通信模塊,基于HC-05藍牙模塊實現手勢信息的傳輸;第三部分為手機APP部分,用于實現手勢的語音輸出和記錄。該手套的主體架構如圖1所示。
手指姿態的采集依賴于彎曲傳感器,該傳感器負責采集手指彎曲程度的數據;手掌姿態的采集主要通過MPU6050陀螺儀完成,它能夠采集手掌姿態的相關數據;控制模塊的主體是STM32F103單片機,它負責對采集到的數據進行整合分析,并與標準手勢的數據進行比對,一旦比對成功,STM32F103會利用HC-05藍牙模塊將符合的手勢信息傳輸到手機端的APP進行語音輸出和文字顯示。同時,手機端APP還具備數據記錄的功能。
2 感知數據的采集
本手套的感知數據采集主要由STM32控制模塊、手指姿態采集模塊、手掌姿態采集模塊實現。圖2所示為各傳感器及控制模塊的位置示意圖。10個彎曲傳感器分別安置在兩只手套的手指部位,它們負責監測手指的彎曲狀態,從而精確捕捉手指的姿態信息。2個MPU6050傳感器分別安置在手套的背面,用以收集手掌姿態的信息。最后,由STM32單片機對整個數據采集流程進行統一控制,高效地收集并處理這些來自傳感器的數據。
2.1 手指姿態采集模塊
手指姿態采集模塊選用彎曲傳感器。當彎曲傳感器發生彎曲形變時,傳感器內部的導通電阻會發生改變,進而產生相應的信號。
本手套選用超薄記憶柔韌傳感器Flex2.2單向彎曲傳感器。在無彎曲形變的狀態下,該傳感器的導通電阻的阻值為25 kΩ,而隨著彎曲程度的加深,電阻值會在10~125 kΩ的范圍內逐漸增加。該傳感器能夠承受0° ~180°的彎曲,非常適合精確捕捉聾啞人手指的彎曲動作。
彎曲傳感器輸出的數據首先經過一個電阻-電壓轉換電路,轉換后的電壓信號由STM32F103單片機接收。在單片機上設置5個ADC規則通道,ADC通道0~4分別對應大拇指、食指、中指、無名指、小指的彎曲度測量值。用單片機內置的A/D轉換功能進行A/D轉換以得到手指的彎曲程度,通過PC端的串口調試助手讀出經過A/D轉換后的不同彎曲程度的數值,并對其進行量化和判斷處理,最終獲得精確的手指彎曲數據。
2.2 手掌姿態采集模塊
智能手套的手掌姿態采集模塊采用MPU6050姿態傳感器。該傳感器作為一款集成了數字運動處理器的傳感器,專門用于收集手掌姿態的感知數據,能夠精確檢測回轉體在相對慣性空間繞正交于自轉軸的一個或兩個軸的角運動,從而準確捕捉手掌及手指在不同方向上的加速度以及旋轉角度。最后,利用I2C接口將數據從MPU6050傳感器傳送至STM32F103單片機。
MPU6050傳感器成功地解決了合并陀螺儀和加速度計時的軸時差問題,極大地縮小了需要的封裝空間。同時,它也支持官方的MPU DMP解算庫,能以四元數和歐拉角的格式直接輸出數據。
2.3 控制模塊
控制模塊以STM32F103為核心,該芯片集成了3個通用的16位定時器,可用于設置時間;集成了2個12位的模擬-數字轉換器(ADC),可進行模數轉換[7]。以STM32F103為核心的控制模塊負責接收手指姿態采集模塊與手掌姿態采集模塊所采集的數據。彎曲傳感器采用電阻分壓的方法,輸出模擬電壓信號,通過ADC模塊將其轉換為數字信號輸入并存儲在寄存器中。MPU6050姿態傳感器同時支持I2C通信協議與UART串口協議,可以通過簡單的串口通信讀取歐拉角信息,也可以通過I2C接口讀取加速度與角速度的原始數據。
在采用異步接收器/發射器(Universal Asynchronous Receiver/Transmitter, UART)進行通信時,僅需2根信號線即可完成數據的發送與接收。其傳輸數據格式如圖3所示。
STM32與姿態傳感器采用圖3所示的數據格式,實現了波特率的統一,可順利地將歐拉角信息傳入寄存器當中。
I2C串行通信總線遵循半雙工通信協議,由時鐘線和數據線組成,使用多主從架構,其數據格式如圖4所示。此通信協議利用2條線路,實現主機對從機的輸入控制及數據讀取,從而實現數據的交換。在此場景中,設定控制模塊為主機,2個姿態傳感器為從機,控制模塊可以直接訪問并讀取姿態傳感器寄存器中的數據。
3 感知數據處理
感知數據的處理與輸出流程如圖5所示。首先開啟手套以獲取傳感器數據。隨后,對傳感器數據進行處理以判斷手勢,如果手勢與數據相符,則輸出手勢;否則繼續獲取傳感器數據。
3.1 彎曲傳感器數據的處理
3.2 陀螺儀數據的處理
根據圖2中標識出的MPU6050模塊的軸向,當模塊片表面朝向觀察者,表面文字處于閱讀的正確角度時,水平向右的為x軸、豎直向前為y軸、垂直模塊向上為z軸。角速度旋轉的方向按右手法則定義,即右手大拇指方向為軸向,四指彎曲的方向為軸旋轉的正方向。一般將繞x軸旋轉方向的角度稱為滾轉角Roll,繞y軸旋轉方向的角度稱為俯仰角Pitch,繞z軸旋轉方向的角度稱為偏航角Yaw,三者合稱歐拉角/姿態角。
MPU6050傳感器通過對陀螺儀測量到的角速度進行積分運算來得到三軸姿態角。MPU6050使用卡爾曼濾波進行姿態角計算,通過準確的角速度信息來計算姿態,利用準確測量的加速度信息進行角度偏移計算:
3.3 數據輸出
本手套由MPU6050陀螺儀和彎曲傳感器采集數據,每次采集22個數據,左右手各11個數據,在STM32F103單片機上利用MPU6050陀螺儀和彎曲傳感器得到的數據進行算法編寫,同時將電腦作為上位機,利用串口助手進行第一步輸出,并不斷進行調試,以提高精度。
由于部分手勢需要兩只手同時運動,所以識別的難度較高,為此通過同時計算多組傳感器數據,實現對“有手形變化的手勢”的識別。
以右手為例,當前STM32F103單片機獲取11個感知數據后,將其存入一個6行1列的數組中,填滿數組第1行,第2輪循環所獲取數據填滿數組第2行,如此往復6次循環直至填滿數組。第7次循環所得數據代替第1次循環數據填滿數組第1行,如此往復,不斷用新采集的數據更新數組,從而實現多組傳感器數據的同時計算。
4 藍牙通信模塊
本手套采用藍牙通信技術實現與上位機的通信,具體開發中選用了HC-05藍牙模塊。
4.1 HC-05藍牙模塊簡介
HC-05藍牙模塊采用主-從整合設計,可輕松連接至上位機,或與另一個藍牙模塊建立通信。在本手套系統中,該模塊主要負責將手指彎曲數據以及6軸姿態數據傳輸至上位機。
HC-05藍牙模塊有兩種工作模式,分別是命令響應工作模式和自動連接工作模式[9]。當模塊處于命令響應工作模式時,能執行所有AT命令,并且允許用戶向模塊發送各種AT指令,為模塊設定控制參數或發布控制命令;當模塊處于自動連接工作模式時,可自動根據事先設定的方式進行數據傳輸。
4.2 HC-05藍牙模塊應用
本項目選擇用命令響應工作模式。
(1)初始化藍牙模塊
首先進入命令響應工作模式,PIO11置高電平后,再給模塊上電,此時模塊進入AT模式,波特率固定為38 400,可以直接發送AT指令[10]。本項目通過AT指令對藍牙模塊進行初始化。
(2)藍牙模塊與STM32F103單片機連接
連接STM32F103與HC-05藍牙模塊的4個引腳(PC4—EN、PA4—STATE、VCC 5 V—VCC、GND—GND)[11]。藍牙模塊通過AT指令配置藍牙模塊參數。
(3)HC-05藍牙模塊與手機通信
通過使用手機藍牙調試助手APP與HC-05進行連接,當HC-05由快閃變成每隔2 s雙閃時,則表示藍牙模塊與手機成功連接。隨后,該部分實現藍牙和單片機的數據傳輸。最后該部分通過程序編寫數據包來實現手機接收控制模塊上傳的數據,在這里配置的通信協議是:包頭(0xA5)+數據+校驗位+包尾(0x5A)。
配置數據包的格式設置規則如下:
(1)起始字節:0xA5;
(2)原始數據;
(3)校驗和(原始數據所有字節之和,再取低8 bit的數據);
(4)結束字節:0x5A。
5 APP開發
本項目采用APP Android Studio進行手機應用程序開發。相較于其他開發軟件,Android Studio具備穩定性強、速度快的優點,并且其內置了功能強大的UI編輯器以及一套完善的插件管理系統,極大地提升了開發效率和用戶體驗。圖6所示為本文所開發APP的運行流程。圖7所示為APP與智能手套的數據傳輸過程。
首先在安卓手機上下載藍牙串口助手,將手機與藍牙相連接,從而實現STM32單片機與手機之間的數據傳輸。通過Android Studio精心編寫應用程序,該程序具備以下功能:能夠進行文字展示,支持中英文雙語語音輸出,并且提供男聲和女聲兩種語音輸出選項,還允許用戶查看歷史翻譯記錄。
6 實驗測試
為了驗證本智能手套的各項功能,制作了測試用的智能手套,其實物圖如圖8所示。
STM32F103單片機收集整理彎曲傳感器和陀螺儀采集到的信息,與預設的手勢信息進行判斷比對。對比完成后,利用HC-05藍牙模塊發送具體的手勢信息到手機端的APP,在完成音色以及漢/英語輸出方式選擇后,進行語音輸出、文字顯示和數據記錄。
6.1 “位置”手勢的測試
為測試本手套的性能,對“位置”手勢的識別效果進行測試。圖9所示為“位置”手勢的實驗測試照片,該手勢能夠被準確識別并在手機上正確顯示。
6.2 “你”手勢的測試
對“你”手勢的識別效果進行測試。圖10所示為“你”手勢的實驗測試照片,該手勢同樣能被準確識別并在手機上正確顯示。
6.3 手套的識別準確率
為了更準確地評估本手套的性能,進行多次實驗,發現本手套的識別準確率穩定保持在83.3%以上。具體測試結果見表1。
7 結 語
本文開發了一款基于STM32單片機、MPU6050陀螺儀和彎曲傳感器的智能手語翻譯手套。該手套以STM32單片機作為上位機,通過藍牙實現與手機端的通信,并將手機端作為手語翻譯的輸出端。鑒于手語表達通常需要雙手協同,本手套通過采用單一STM32設計,實現了更低的時延、更小的動作采集誤差、更低的成本,并且成功實現了手勢動作的同步識別。本手套的開發包括數據采集、數據處理、藍牙傳輸和APP開發等多個環節。針對一般智能手套在兩只手同時運動時識別準確率不高的難題,本文在數據處理階段創新性地引入了循環法,有效提升了識別性能。測試結果表明,本手語翻譯手套展現出了良好的穩定性,識別精度超過83.3%,循環法顯著提高了雙手同步運動的識別率。
本文主要分析了STM32作為上位機的數據處理問題和藍牙傳輸問題,但仍有很多需要改善的地方。例如:目前STM32單片機的算力有限,只能處理小部分的數據,導致可翻譯的手語手勢有限,不能完全滿足日常交流的需要。由于算法問題,手勢識別略有延遲,需進一步優化。在數據采集階段,完整的數據更有利于實現數據處理,但本次實驗只選用了陀螺儀和彎曲傳感器,并未利用其他信息。另外,由于數據處理更新時間固定,而個人手勢速度存在差異,本實驗未能實現自適應調整,影響了識別的準確性。
參考文獻
[1] 中國殘疾人聯合會. 2010年末全國殘疾人總數及各類、不同殘疾等級人數[EB/OL]. [2021-02-20]. https://www.cdpfPFC.org.cnc/zwgkzwieback/zccx/cjrgk/15e9ac67d7124f3fbe2a4a23b7c739aa.htmHTML.
[2] 張志純,楊曉文,況立群,等.基于Virtools和5DT數據手套的手勢仿真研究[J].科學技術與工程,2015,15(4):140-144.
[3] REKIMOTO J. GestureWrist and GesturePad: unobtrusive wearable interaction devices [C]// Proceedings Fifth International Symposium on Wearable Computers. Zurich, Switzerland: IEEE, 2001: 21-27.
[4] 滕達,楊壽保,劉巖,等.基于“大小手”的徒手手勢實時識別[J].計算機應用,2006,26(9):2041-2043.
[5] 任海兵,祝遠新,徐光,等.基于視覺手勢識別的研究—綜述[J].電子學報,2000,28(2):118-121.
[6] 陳雅茜,歐長坤,郭曌陽.基于單目視覺和簡單手勢的空間交互技術[J].西南民族大學學報(自然科學版),2014,40(6):871-876.
[7] 吳宸宸,陳清華.基于STM32和彎曲傳感器的聾啞人交流裝置[J].信息技術與信息化,2021,46(6):247-250.
[8] 張肖寧,毛曉波,陳婉杰,等. 便攜式智能手語翻譯系統 [J]. 電子設計工程,2016,24 (7):160-163.
[9] 刑子揚. 基于手機APP的無線自動奶茶機[J]. 科學技術創新,2019,23(6):68-69.
[10] 宗子力. 基于手機藍牙控制的智能電風扇[J]. 電子技術與軟件工程,2014,21(13): 163-165.
[11] 張泳鋼,王駿,羅杰俊,等. 智能滅火小車[C]// 2022年川渝大學生“數智”作品設計應用技能大賽暨第八屆四川省大學生智能硬件設計應用大賽會議論文集. 成都:[出版者不詳],2022:229-234.