基于STM32的手语翻译手套研制

2025-03-04 00:00:00李冰妍孙煊玉单东洋于昕竺董颖
物联网技术 2025年5期
关键词:STM32单片机陀螺仪蓝牙

摘 要:交流是日常生活中不可或缺的活动,但是对于聋哑人士而言,生理缺陷使他们无法轻松自如地与他人进行交流,这无疑给他们的日常生活带来了诸多不便。鉴于此,设计并开发了一款基于STM32单片机的智能手套,该手套能够处理多样化的数据,并实现手语翻译。该手套借助STM32F103单片机能够同时处理10个弯曲传感器和2个陀螺仪所采集到的感知数据,然后通过蓝牙将这些数据传输至手机端,进而实现手语翻译的语音输出和记录。文中首先介绍了该智能手套的硬件开发过程,详细分析了手指姿态采集模块、手掌姿态采集模块以及控制模块的工作原理;接着,介绍了蓝牙通信模块及手机APP等软件设计原理;最后,对该手套进行了测试,测试结果表明,该智能手套能够准确识别7种日常生活中常用的基础手语姿势,并具备汉语与英语的语音输出功能,同时还提供了历史记录查询的功能。该手套能够帮助聋哑人士摆脱交流困境,为他们提供了一个高效、便捷的沟通工具,极大地促进了聋哑人士与他人之间的交流与理解。

关键词:STM32单片机;陀螺仪;弯曲传感器;蓝牙;手语翻译;语音输出

中图分类号:TP39;TN91 文献标识码:A 文章编号:2095-1302(2025)05-0-06

0 引 言

据残联统计,目前我国的听力残疾人高达2 780万人,言语残疾人数约130万人[1],这一群体约占我国残疾人总数的30%。由于他们特殊的生理特点,在工作、学习、娱乐及就医等生活基础领域都面对着极大的困难和挑战。

聋哑人士通常使用手语进行沟通。然而,手语作为一种独特语言,大多数健全人由于时间和能力等限制,无法系统地学习手语,导致聋哑人士与外界的沟通仍然存在难以逾越的鸿沟。

为了打破这一沟通壁垒,本文设计并开发了一款能够实现手语翻译的传感手套。该手套可以将聋哑人士的手语手势转换成文字和语音,以供健全人士进行阅读,实现了聋哑人士与健听人士之间的无缝沟通,极大地提高了听障人士的社会参与度。此外,该手套还增设了记录功能,能够更好地保障残障人士的权益。

手势识别技术在全球范围内已经得到了广泛研究和应用,一般使用硬件设备作为辅助,分为可穿戴式和非可穿戴式。非可穿戴设备需要构造一个特定的空间并在这个空间中对人员手部运动进行检测,在现实生活的应用场景中稳定性较低,灵活性较差,具有一定的局限性。可穿戴设备则是通过便携器件来采集手部运动数据,实际应用中更为稳定,且使用者可以自由移动。文献[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.

猜你喜欢
STM32单片机陀螺仪蓝牙
蓝牙音箱的直线之美
工业设计(2022年7期)2022-08-12 13:18:58
基于EMD的MEMS陀螺仪随机漂移分析方法
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
我国著名陀螺仪专家——林士谔
紧急:蓝牙指尖陀螺自燃!安全隐患频出
玩具世界(2017年8期)2017-02-06 03:01:38
基于STM32芯片的移动机器人的避障研究
基于单片机的灌装生产线成品率计算装置设计
基于STM32的两轮自平衡遥控小车设计
科技视界(2016年26期)2016-12-17 08:35:54
基于STM32单片机的智能手环设计与实现