2024年3月9日发(作者:酷派炫影s+)
基于Android手机手势和语音控制的人机交
互系统设计
作者:郭慧敏 孟游 迟少华 丁培甫
来源:《南京信息工程大学学报(自然科学版)》2019年第02期
摘要 针对普通遥控器控制智能小车的局限性,结合移动互联网的应用,提出了一种新的
人机交互智能小车控制系统的研究方案——一种基于Android手机方向(重力)传感器和语音
控制的蓝牙小车控制系统.以Android手机作为上位机,包括语音系统、方向(重力)传感器系
统,利用蓝牙通信技术与单片机总控制中心、蓝牙模块、电机驱动模块、蜂鸣器和LED模
块、避障模块等组成的下位机进行通信,实现对蓝牙智能小车的实时控制.通过实物制作和测
试,验证了系统的可操作性和实用性,同时也为智能轮椅、仓库管理等领域的实际应用奠定了
一定的技术基础.
关键词 方向(重力)传感器;语音控制系统;Android 手机;无线智能控制;智能小车.
中图分类号 TN79;TP311.5
文献标志码 A
0 引言
人机交互技术的飞速发展,促使遥感技术蓬勃发展,人们的生活方式将渐趋智能化.让机
器了解你的言语、表情和肢体语言,将给人们带来更加轻松、舒适和便捷的生活方式[1],而
传统的人机交互系统远远满足不了人们的需求.
目前市场上的一些遥控车都是一个产品对应着一个遥控设备,即使可以通用的遥控设备也
需要手动按键去控制[2-3],操作起来十分不便.Android设备以本身独特的开源性和可操作性的
优势,迅速成为最大的智能手机操作平台,无论高端机还是低端机,大多集成了方向传感器、
语音和蓝牙系统,为本系统的研究提供了便利[4-5].相对于传统的遥控器控制技术,基于
Android手机手势和语音技术的智能小车的控制方式更加方便快捷,适用于多种带有方向传感
器和语音功能的Android手机.
1 系统结构
本设计着眼于无线智能设备的传感器控制[6],如Android手机、智能手表等.抛弃了传统
的遥控器技术,利用App Inventor[7]作为手機软件的开发平台,通过智能手机携带的方向传感
器[8]和语音系统,根据翻转手机或语音识别便可实现小车停止、前进、后退和左右转等,从
而达到人机交互的目的.
通过设计带有方向感应器、语音系统和蓝牙功能的Android手机软件,与带有HC-05蓝牙
模块、STC89C52RC主控制芯片、L9110H电机驱动模块和红外避障模块等硬件电路组成的智
能小车控制系统,共同实现了一种新型无线控制智能小车的方法——通过摇晃手机或语音便可
对小车进行控制.同时,还在下位机增加了环境检测系统.本设计框架如图1所示.
2 下位机硬件电路设计
小车设计的硬件电路由单片机总控制中心、电机驱动模块、避障模块、电源供电电路、蜂
鸣器和LED控制电路等模块组成.
2.1 电机控制模块设计
智能小车最基本的功能是行走,利用单片机驱动直流电机带动车轮的转动,但是由于单片
机驱动能力有限,无法驱动大功率的直流电机,所以需要在直流电机与单片机之间加一个驱动
模块L9110H.L9110H连接电机的正负极,由两个输出端,直接控制电机的正反转.原理如图2
所示.
2.2 蜂鸣器模块设计
设计过程中,考虑到单片机I/O口驱动能力不能让蜂鸣器发声,需要利用8550三极管放
大驱动电流让蜂鸣器发出声音.当输入为低电平时,三极管导通,集电极电流通过蜂鸣器,蜂
鸣器发出声音;当输入为高电平时,三极管截止,无电流通过蜂鸣器,蜂鸣器不发声.设计原理
如图3所示.
2.3 HC-05蓝牙模块
本设计选用HC-05蓝牙串口通信模块.它是主从一体的蓝牙串口模块,简单地说,就是当
蓝牙设备与蓝牙设备配对成功后,可以忽视蓝牙内部的通信协议,直接将蓝牙当串口用.当建
立连接时,两个设备共用一个通道也就是同一个串口,一个设备发送数据到通道中,另一个设
备便可以接收通道中的数据.但是,建立这种通道连接是有一定条件的,需要先对蓝牙模块进
行AT指令参数设置.
2.4 红外避障模块
该模块具有一对红外发射器和接收器,通过发射管发出红外线,当检测到前方障碍物时,
发射光被接收器接收,经过电路处理,发送给主控制中心.避障距离可以利用电位器进行调
节,具有装配方便和干扰小的特点,如图4所示.
3 下位机硬件程序设计
本控制系统需要小车的硬件系统作为支撑.下面分别对蓝牙接收信息传递给单片机和单片
机接收信息后对电机、蜂鸣器以及LED做出相应的控制进行介绍.程序设计采用的是Keil4 for
51作为单片机程序的编程软件.
3.1 蓝牙接收系统程序
通过蓝牙模块对接收手机端发送过来的控制指令信息进行接收处理,如停止、前进、后
退、左右转等,程序流程如图5所示.
利用蓝牙模块与51单片机进行连接,串口通信进行数据传输.接收时,中断标志RI=0,置
允许接收位REN=1,数据进入移位寄存器,装载到SBUF缓冲寄存器,置RI=1;由缓冲接收器
SBUF通过总线发送给CPU.串行通信在数据传输、人机交互设计等方面起着重要作用[9].设计
要求串口通信晶振为11.059 2 MHz,波特率9 600 bps,设置计数器1的工作方式(SM0=0,
SM1=1,即SCON=0x05),T1的初值为253(X值为FDH).
3.2 电机、蜂鸣器及LED控制系统程序
小车运动状态的控制方式如下(蓝牙接收控制指令流程如图5所示):
1)小车运动:控制电机的转动;
2)灯:控制LED1及LED2灯的亮灭;
3)蜂鸣器:模拟喇叭,控制蜂鸣器的开关.
4 上位机APP设计
4.1 软件界面设计
App中添加的控件有:
1)Button按键(前进、后退、停止、左转、右转、灯、喇叭、方向传感器以及语音开关
键):按下后通过蓝牙发送相应的数据;
2)连接选择框:按下它,会访问到一个列表,用来存储蓝牙信息;
3)水平布局、垂直布局:使按钮在水平控件框内呈水平或垂直分布;
4)蓝牙客户端:蓝牙配对、连接以及通信,通过蓝牙设备选择框组件来显示蓝牙列表;
5)对话框:显示警告信息,当蓝牙连接失败时,显示错误信息;
6)方向传感器:设置通过翻转手机可以实现对小车发送相应的数据;
7)语音识别器:设置通过识别语音可以实现对小车发送相应的数据.
4.2 蓝牙连接系统
建立蓝牙连接时,Android手机需要获取小车HC-05蓝牙模块的地址.
点击连接时,出现选择蓝牙设备的界面,如图6所示(列表中的蓝牙设备是手机在设置中
心已经配对成功的蓝牙设备),点击小车地址,将小车与手机之间建立连接.如果連接成功,
界面将会跳转到控制界面;如果配对失败,弹出错误的警示窗口,则小车的蓝牙模块没有打开
或者没有正常工作.
点击断开连接按钮时,关闭蓝牙连接,同时用户界面发生变化,如图7所示.蓝牙设备选
择框会重新出现,而用户界面上的其余组件将被隐藏.
4.3 按键控制系统
App软件主要通过上下左右4个按键控制小车的前进、后退、左转、右转,中间的停止键
让小车紧急停止.另外,为了增加真实性,还增加了小灯以及喇叭控制的功能(图8).按下不
同的按钮,手机就会通过蓝牙发送相应的数据.
4.4 方向传感器控制系统
在按键的基础上,增加了方向传感器的控制,利用手机内的方向传感器,通过倾斜角和翻
转角的角度变化发送数据.在程序软件的界面上,增加了一个方向传感器的开关(图8),在必
要时可以关闭方向传感器.首次打开软件,方向传感器是不工作的,点击一次,方向传感器开
始工作,再点击一次,方向传感器停止工作,可通过除2取余的算法来辨识.
点击方向传感器按钮,翻转角和倾斜角数据随手机的晃动发生改变,表示方向传感器开始
工作.因为人无法保证手机在手中时,翻转角和倾斜角都为0,所以翻转角和倾斜角的大小在
±20°范围内都规定手机为水平放置.手机发送数据03,智能小车为停止状态.另外,设定倾斜角
和翻转角同时变化时,为无法识别状态,令小车停止,确保其安全性.手机状态发送数据如表1
所示(可根据实际需求进行角度判断的设定).
为了增加Android遥控小车手机方向传感器的可辨识度,可在界面显示倾斜角和翻转角的
数据.
4.4 语音控制系统
在软件设计上增加手机语音系统,通过调用手机内部的语音识别器,但手机本身没有识别
语音和文字转换的功能,需要调用讯飞语记软件的语音识别功能.设置软件可识别到的语音中
包含“前进”、“后退”、“左转”等命令,软件可通过蓝牙发送相关的控制数据,具体的数据可参
考方向传感器设计部分.
使用时通过按住话筒按钮,发出命令语音,如“前进”、“后退”、“左转”、“右转”、“停止”
等命令,松开后,界面显示小车相应的运动状态,同时会通过蓝牙对已连接设备发送相应的控
制数据(01、02、03等).
5 实验测试与分析
为了测试系统的安全性和准确性,分别对设计进行了软硬件供电调试.调试包含对下位机
小车能否接收数据和接收数据的准确性,以及上位机是否可以发送控制数据和数据发送的准确
率.对于下位机,首先检查与单片机的连线是否正确,接通电源,烧录单片机程序测试驱动电
机是否可以正常运转以及电机的运动方向是否正确:当Right-Negative=0,Right-Positive=1,
Left-Negative=0,Left-Positive=1是否前进,另外分别测试左转、右转、后退、停止等状态是
否正确.
在小车下载单片机程序后,首先要对通信方面进行测试.通信测试分为3步:
1)第1步是使用单片机串口监视器测试.通过USB串口给小车发送00,01,02,03,
04,05,06,07,08等几个控制数据,查看小车的运动状态的准确性.
2)第2步是使用手机蓝牙串口工具测试.首先USB接口连接蓝牙,插入电脑,利用手机连
接蓝牙模块后,通过按键看是否发送相应的数据.按键测试成功后,测试手机方向传感器是否
工作.
观察手机界面上的翻转角和倾斜角数据是否发生变化,以及手机前翻转时,手机是否发送
数据01;手机左倾斜时,手机是否发送数据02;当手机右倾斜时,手机是否发送数据04;手机后
翻转时,手机是否发送数据05;手机平放时,手机是否发送数据00等.
3)第3步是对手机语音控制的测试.在第2步测试成功后,按下语音按钮,通过语音“前
进”、“后退”、“左转”、“右转”、“亮灯”等命令分别测试手机发送的数据是否正确.
为采集不同型号手机的实验数据,分别采用了OPPO-A57、小米note1、小米5、华为
Mate9进行测试.通过多次数据统计分析得出,无线控制距离在空旷地带可达20 m,在0~15 m
内可发送的数据正确率在99.1%~99.5%,在15~20 m内收到数据的正确率会随距离的增加逐
渐减小,距离超过20 m时会断开连接,软件提示“无法连接到蓝牙设备”.
测试结果表明,本设计的手机方向传感器、语音和按键3种方式同时控制智能小车行走的
软硬件设备中,下位机的小车硬件以及软件系统工作正常,上位机Android手机软件程序正
常,可通过方向传感器、语音和按键3种控制方式控制小车,并实现灵活地前行、后退、左
转、右转、停止、亮灯、鸣笛等功能.
6 结束语
本设计有效利用现有通信设备完成了基于Android手机方向传感器、语音系统和蓝牙技术
控制的智能小车系统.本设计可以无障碍地在15 m范围内进行通信,从而降低了智能化设备的
成本.该控制系统的相关技术能直接应用到智能电动轮椅的研究中,使电动轮椅更加智能化、
功能化.
2)连接选择框:按下它,会访问到一个列表,用来存储蓝牙信息;
3)水平布局、垂直布局:使按钮在水平控件框内呈水平或垂直分布;
4)蓝牙客户端:蓝牙配对、连接以及通信,通过蓝牙设备选择框组件来显示蓝牙列表;
5)对话框:显示警告信息,当蓝牙连接失败时,显示错误信息;
6)方向传感器:设置通过翻转手机可以实现对小车发送相应的数据;
7)语音识别器:设置通过识别语音可以实现对小车发送相应的数据.
4.2 蓝牙连接系统
建立蓝牙连接时,Android手机需要获取小车HC-05蓝牙模块的地址.
点击连接时,出现选择蓝牙设备的界面,如图6所示(列表中的蓝牙设备是手机在设置中
心已经配对成功的蓝牙设备),点击小车地址,将小车与手机之间建立连接.如果连接成功,
界面将会跳转到控制界面;如果配对失败,弹出错误的警示窗口,则小车的蓝牙模块没有打开
或者没有正常工作.
点击断开连接按钮时,关闭蓝牙连接,同时用户界面发生变化,如图7所示.蓝牙设备选
择框会重新出现,而用户界面上的其余组件将被隐藏.
4.3 按键控制系统
App软件主要通过上下左右4个按键控制小车的前进、后退、左转、右转,中间的停止键
让小车紧急停止.另外,为了增加真实性,还增加了小灯以及喇叭控制的功能(圖8).按下不
同的按钮,手机就会通过蓝牙发送相应的数据.
4.4 方向传感器控制系统
在按键的基础上,增加了方向传感器的控制,利用手机内的方向传感器,通过倾斜角和翻
转角的角度变化发送数据.在程序软件的界面上,增加了一个方向传感器的开关(图8),在必
要时可以关闭方向传感器.首次打开软件,方向传感器是不工作的,点击一次,方向传感器开
始工作,再点击一次,方向传感器停止工作,可通过除2取余的算法来辨识.
点击方向传感器按钮,翻转角和倾斜角数据随手机的晃动发生改变,表示方向传感器开始
工作.因为人无法保证手机在手中时,翻转角和倾斜角都为0,所以翻转角和倾斜角的大小在
±20°范围内都规定手机为水平放置.手机发送数据03,智能小车为停止状态.另外,设定倾斜角
和翻转角同时变化时,为无法识别状态,令小车停止,确保其安全性.手机状态发送数据如表1
所示(可根据实际需求进行角度判断的设定).
为了增加Android遥控小车手机方向传感器的可辨识度,可在界面显示倾斜角和翻转角的
数据.
4.4 语音控制系统
在软件设计上增加手机语音系统,通过调用手机内部的语音识别器,但手机本身没有识别
语音和文字转换的功能,需要调用讯飞语记软件的语音识别功能.设置软件可识别到的语音中
包含“前进”、“后退”、“左转”等命令,软件可通过蓝牙发送相关的控制数据,具体的数据可参
考方向传感器设计部分.
使用时通过按住话筒按钮,发出命令语音,如“前进”、“后退”、“左转”、“右转”、“停止”
等命令,松开后,界面显示小车相应的运动状态,同时会通过蓝牙对已连接设备发送相应的控
制数据(01、02、03等).
5 实验测试与分析
为了测试系统的安全性和准确性,分别对设计进行了软硬件供电调试.调试包含对下位机
小车能否接收数据和接收数据的准确性,以及上位机是否可以发送控制数据和数据发送的准确
率.对于下位机,首先检查与单片机的连线是否正确,接通电源,烧录单片机程序测试驱动电
机是否可以正常运转以及电机的运动方向是否正确:当Right-Negative=0,Right-Positive=1,
Left-Negative=0,Left-Positive=1是否前进,另外分别测试左转、右转、后退、停止等状态是
否正确.
在小车下载单片机程序后,首先要对通信方面进行测试.通信测试分为3步:
1)第1步是使用单片机串口监视器测试.通过USB串口给小车发送00,01,02,03,
04,05,06,07,08等几个控制数据,查看小车的运动状态的准确性.
2)第2步是使用手机蓝牙串口工具测试.首先USB接口连接蓝牙,插入电脑,利用手机连
接蓝牙模块后,通过按键看是否发送相应的数据.按键测试成功后,测试手机方向传感器是否
工作.
观察手机界面上的翻转角和倾斜角数据是否发生变化,以及手机前翻转时,手机是否发送
数据01;手机左倾斜时,手机是否发送数据02;当手机右倾斜时,手机是否发送数据04;手机后
翻转时,手机是否发送数据05;手机平放时,手机是否发送数据00等.
3)第3步是对手机语音控制的测试.在第2步测试成功后,按下语音按钮,通过语音“前
进”、“后退”、“左转”、“右转”、“亮灯”等命令分别测试手机发送的数据是否正确.
为采集不同型号手机的实验数据,分别采用了OPPO-A57、小米note1、小米5、华为
Mate9进行测试.通过多次数据统计分析得出,无线控制距离在空旷地带可达20 m,在0~15 m
内可发送的数据正确率在99.1%~99.5%,在15~20 m内收到数据的正确率会随距离的增加逐
渐减小,距离超过20 m时会断开连接,软件提示“无法连接到蓝牙设备”.
测试结果表明,本设计的手机方向传感器、语音和按键3种方式同时控制智能小车行走的
软硬件设备中,下位机的小车硬件以及软件系统工作正常,上位机Android手机软件程序正
常,可通过方向传感器、语音和按键3种控制方式控制小车,并实现灵活地前行、后退、左
转、右转、停止、亮灯、鸣笛等功能.
6 结束语
本设计有效利用现有通信设备完成了基于Android手机方向传感器、语音系统和蓝牙技术
控制的智能小车系统.本设计可以无障碍地在15 m范围内进行通信,从而降低了智能化设备的
成本.该控制系统的相关技术能直接应用到智能电动轮椅的研究中,使电动轮椅更加智能化、
功能化.
发布者:admin,转转请注明出处:http://www.yc00.com/num/1709968237a1678372.html
评论列表(0条)