基于IAP15F2K61S2的无线语音服务小车设计
2019-12-04金琦淳李俊斌袁明新王志博张金铮
金琦淳,李俊斌,袁明新,王志博,张金铮
(1.江苏科技大学机电与动力工程学院,江苏 苏州 215600;2.无锡城市职业技术学院物联网工程学院,江苏 无锡 214153)
0 引言
随着科学技术的不断发展与进步,服务小车逐步应用到人们的日常生活中,代替人完成特定的家务,帮助行动不便的老人或残疾人实现生活自理[1-2]。为进一步提高服务小车的人机交互性能,语音识别技术被引入到服务小车中。当前,国内外对智能设备语音控制系统的研发主要集中在无线语音控制系统的开发。国内有杨玮等设计的基于ZigBee技术的温室无线智能控制终端[3],汤丽丽等设计的基于Android手机蓝牙语音控制的智能小车[4]。国外有Baris Yuksekkaya等人设计的基于全球移动通信系统(global system formobile communication,GSM)技术的家庭无线语音控制系统[5],以及Tony Ayres等人设计的基于WiFi控制的语音识别机器人[6]。上述方案均实现了无线语音控制功能。但在面对电磁波干扰的复杂环境时,单一的无线控制方式在可靠性上存在不足。
为了改进上述缺点,本文设计了具有多种无线控制方式的语音服务小车。该小车的语音识别系统与车载系统相互独立,采用红外或无线电通信来传输语音指令;在面对复杂环境时,可灵活选择通信方式,提高了无线语音控制的可靠性,扩大了语音控制的适用范围。
1 系统方案设计
服务小车由无线遥控系统和车载驱动系统构成,系统方案如图1所示。
图1 系统方案图
无线遥控系统利用语音识别模块采集并识别语音指令,经单片机处理后通过红外或无线电发射模块发送;车载驱动系统利用红外或无线电接收模块接收无线信号,经单片机处理后送入电机驱动模块和机械手(舵机)驱动模块,控制小车的车轮和机械手模块完成相应动作[7]。
2 系统硬件设计
服务小车的硬件电路由无线遥控系统硬件电路和车载驱动系统硬件电路组成。无线遥控系统和车载驱动系统的主控芯片均采用IAP15F2K61S2单片机。其优点在于内部集成可编程计数器阵列模块,功耗低、电路简单。无线遥控系统硬件电路包含如下模组:单片机系统、语音识别模块、红外发射模块、无线电发射模块、电源电路。无线遥控系统电路如图2所示。
图2 无线遥控系统电路图
车载驱动系统硬件电路包含如下模组:单片机系统、电机驱动模块、机械手(舵机)驱动模块、红外接收模块、无线电接收模块、机械手模块和电源电路。车载驱动系统电路如图3所示。
图3 车载驱动系统电路图
2.1 无线遥控系统设计
2.1.1 语音识别模块
语音识别模块采用LD3320语音芯片,利用麦克风采集声音信号,结合ASR(非特定人语音识别技术)识别语音指令,适用于不同音色下各种语音指令的识别。
LD3320的语音识别过程主要包括语音芯片的初始化和语音指令的识别,其工作原理如图4所示。
图4 LD3320语音识别工作原理图
语音芯片的初始化,是利用模块的板载单片机将所有需要识别的语音指令逐条以拼音串的形式输入到语音芯片中,生成对应的语音关键词,并构建关键词列表。语音指令的识别是通过麦克风采集声音信号,并将其转化为电信号输入到语音芯片中进行预处理;输入的电信号首先经A/D转换为数字信号,再通过端点检测滤除信号中的静音和非说话声,得到有效信号的起止,并对其进行数据分帧处理,从而将有效信号拆分为相互关联的数据帧[8]。经上述处理后,对数据帧进行特征提取,利用梅尔频率倒谱系数法提取数据帧中的声学特征,得到语音关键词送入语音识别器中,并按照维特比算法与关键词列表中的所有语音关键词一一进行相似度匹配[9]。匹配值最高的关键词将作为识别结果,通过串口输出给主控单片机。
2.1.2 红外发射模块
红外发射模块采用A73B红外发射模块,利用单片机将需要传输的数据进行编码和调制后,激励红外发光二极管发出一连串波长为950 nm的近红外光,以实现控制信息传输。
红外数据的常用编码有两种:NEC标准和PHILIPS标准。本系统采用的是NEC标准。该标准规定:一条完整数据链应包括1位引导码、8位地址码、8位地址码反码、8位数据码以及8位数据码反码。其中,引导码由9 ms高电平和4.5 ms低电平组成。此外,为了区分数据链中的数据“0”和“1”,需要对数据链进行脉冲位置调制。其中:数据“1”由0.56 ms高电平和1.69 ms低电平组成,数据“0”由0.56 ms高电平和0.56 ms低电平组成[10]。数据链结构如图5所示。
图5 数据链结构图
为了提高红外传输信号的抗干扰性,需要将PPM调制后的信号与38 kHz载波信号进行二次调制。红外信号调制过程如图6所示。
图6 红外信号调制过程图
原始信号和38 kHz载波信号经单片机调制处理后形成特定脉冲串,利用单片机I/O口的输出功能,直接激励红外发光二极管发出红外光,实现信号传输。
2.1.3 无线电发射模块
无线电发射模块采用nRF24L01无线收发芯片。该芯片工作于2.4 GHz的ISM频段,内置增强型突发模式控制器[11],可实现点对点或多点间的无线通信;遵循SPI通信协议,利用单片机的SPI接口可以实现对芯片的数据操作和工作模式设置。
发送数据时,首先利用单片机的SPI接口将nRF24L01设置为发送模式;接着把接收地址信息和所需发送的数据信息写入芯片中;芯片依据输入的数据信息自动生成前导字符和CRC校验码[12],并与输入的数据信息组合成一个数据包;数据包经芯片转化处理后,通过印制天线发射出去,使芯片的工作模式自动切换为接收模式,等待无线电接收模块发送应答信号。如果接收到应答信号,判定本次通信有效;反之则自动重发数据包,以确保数据传输的可靠性。无线信号发送原理如图7所示。
图7 无线电信号发送原理图
2.1.4 电源电路
无线遥控系统的电源电路由L7805稳压芯片、AMS1117稳压芯片、0.1 μF瓷片电容、0.33 μF和470 μF电解电容组成。利用稳压芯片降压,可将7~35 V的输入电压先后转换为5 V和3.3 V的直流电压,并结合电容滤波,输出无高频干扰和高稳定性的直流电流。
L7805的内部电路为串联反馈式稳压电路[11],其结构如图8所示。该电路的主回路由工作于线性状态的调整管T与负载电阻RL相串联构成。当输入电压Ui增大时,输出电压Uo增大,随之通过取样电路(电阻R1和R2分压)得到的反馈电压UF也增大。反馈电压UF与基准电压UREF相比较,其差值经比较放大器处理后使调整管T的基极电压UB和集电极电流IC减少,从而使其C-E极间的电压UCE增大。根据基尔霍夫电压定律,Uo将减小,进而实现电压稳定输出。当Ui减小时,过程时相反。AMS1117的工作原理类同。
图8 串联反馈式稳压电路图
2.2 车载驱动系统设计
2.2.1 电机驱动模块
电机驱动模块选用L298N驱动芯片。该芯片适用于驱动两相和四相电机。其内含两个H桥的高电压大电流双全桥式驱动器,支持TTL逻辑电平控制。车载驱动系统集成了两块L298N,分别用来驱动车轮电机和升降平台电机。
H桥驱动电路及工作时序如图9所示。
图9 H桥驱动电路及工作时序图
H桥驱动器的电路组成包括4个三极管、4个与门、2个非门、1个使能端ENA和2个控制端IN1、IN2。
当使能端为低电平时,控制端的输入信号无效,4个与门均输出低电平,所有三极管均处于截止状态,电机停转。当使能端为高电平时,4个与门的输出电平受输入信号控制:当IN1为低电平,IN2为高电平时,三极管Q1和Q3饱和导通,Q2和Q4截止,电流从电机的a端流向b端,电机正转;反之,电机反转。而当IN1与IN2电平相同时,电机停转。
2.2.2 机械手(舵机)驱动模块
机械手(舵机)驱动模块采用车载单片机内部搭载的主成分分析(principal component analysis,PCA)模块,通过设置相应寄存器、定时器和比较器的值,使单片机的CCP1端口输出周期和占空比都可控的8位PWM波。
在8位脉宽调节模式时,PCA模块工作原理如图10所示。
图10 PCA模块工作原理图
选择定时器0(8位自动重装模式)作为PCA模块的时钟源。每当定时器0的计数值溢出时,计数器(16位循环计数模式)的低八位数值CL就加1,同时计数器中的值[0,CL]和捕获寄存器B中的值[EPCnL,CCAPnL]被输入到9位比较器中进行比较。当[0,CL]<[EPCnL,CCAPnL]时,9位比较器输出低电平;反之,输出高电平[12]。此外,当CL的计数值由FFH变为00H溢出时,捕获寄存器A中的预设初值[EPCnH,CCAPnH]会自动装载到捕获寄存器B中。因此,通过改变捕获寄存器A中的值,就可调整输出PWM波的占空比,从而实现对机械手舵机的控制[13]。
2.2.3 红外接收模块
红外信号接收过程如图11所示。
图11 红外信号接收过程图
红外接收模块采用1838T红外接收头,利用接收头内部的集成电路实现红外信号的采集和还原,且还原后的信号与原信号波形相反。
1838T红外接收头内部主要包括红外接收二极管、放大器、限幅器、带通滤波器、解调器、积分器和比较器[12-15]。首先,红外接收二极管将接收到的红外信号转变为电信号,送到放大器和限幅器中处理,转换成幅值固定的电脉冲信号;然后,利用带通滤波器,将频率不在30~60 kHz范围内的信号滤除。滤除后的信号经解调器和积分器处理后输入到比较器中,以高低电平的形式输出给单片机[16]。单片机根据信号中高电平的持续时间来区分数据“0”和数据“1”,实现红外信号的接收和解码。
2.2.4 无线电接收模块
无线电接收模块同样采用nRF24L01无线收发芯片,通过单片机的SPI端口,将芯片配置为接收模式。利用印制天线接收无线电信号并输送给芯片处理,由芯片内部硬件电路解析地址信息和数据信息,自动去除信号中的前导字符和CRC校验码,并判断数据的有效性。当接收到有效数据时,芯片自动切换为发送模式,并向无线电发射模块发送应答信号,以表明数据接收完成;反之,则继续接收无线电信号。
2.2.5 机械手模块
机械手模块结构如图12所示。
图12 机械手模块结构图
机械手模块主要由机械手和升降平台组成。其中,机械手由移动平台、机械臂和舵机组成,升降平台由固定支架、减速电机、联轴器、丝杠、螺母和导轨组成。
车载驱动系统收到闭合和松开的语音指令后,通过单片机向舵机输入周期固定、占空比可控的电脉冲信号,以控制舵机的输出轴转动相应角度;同时,将动力传递给机械臂上的齿轮运动副,实现机械手的抓取和松开动作。车载驱动系统收到上升或下降的语音指令后,由电机驱动模块控制减速电机转动,并通过联轴器带动丝杠转动。利用丝杠丝母运动副,将丝杠的圆周运动转变为移动平台的直线运动;同时,凭借其自锁性能,可有效防止机械手在抓取重物时因重力作用而下坠,从而实现机械手的稳定上升和下降。
3 系统软件设计
服务小车的系统软件设计由无线遥控系统软件设计和车载驱动系统软件设计两部分组成。所有程序开发均在Keil uVision5软件上进行,利用C语言编程,模块化处理各功能子程序,程序结构清晰、逻辑性强。
无线遥控系统软件流程如图13所示。无线遥控系统上电复位后,LD3320语音芯片开始采集并识别语音指令,通过串口输出给单片机。单片机对指令内容进行解析判断后,按照NEC协议编码指令,并对其进行PPM调制和二次调制,产生相应脉冲串,以激励A73B红外发射模块发出红外信号;或利用单片机的SPI端口将数据发送给nRF24L01无线收发芯片,通过芯片内置电路转化处理,控制印制天线发出2.4 GHz无线电波,完成指令发送。
图13 无线遥控系统软件流程图
车载驱动系统上电复位后,1838T红外接收头开始接收红外指令或nRF24L01无线电收发芯片开始接收无线电指令。当接收到指令后,对指令进行解码,并发送给单片机进行判断处理,由电机驱动模块和机械手(舵机)驱动模块控制服务小车的车轮,使升降平台和机械手完成相应动作。
4 系统测试
为了测试服务小车无线语音识别的可靠性和控制范围,分别搭建了具有红外光照干扰(100 W白炽灯对小车整体持续照射)和电磁波干扰(2.4 GHz WiFi通信网络)的室内空旷环境。室内噪声符合国家标准(60 dB与40 dB)。采用规定的语音指令组,以及正常的语音播报音量,在不同的测试距离下,分别对服务小车红外语音控制和无线电语音控制的成功率进行测试。测试次数为100次/组。
红外与无线电语音控制性能测试如表1所示。
表1 红外与无线电语音控制性能测试表
测试结果分析:室内噪声60 dB的环境中,在电磁波和红外光照干扰下,分别测量红外与无线电语音控制成功率,其均维持在95%以上;室内噪声40 dB的环境中,成功率达100%。这表明服务小车的红外与无线电语音控制系统在复杂环境下具有较高的可靠性,适用于家用场合。当测试距离在0~12 m范围内逐渐增大时,红外与无线电语音控制的成功率基本保持不变,表明红外和无线电语音控制的范围较广。总体而言,在一定干扰下,服务小车的红外与无线电语音控制系统性能稳定可靠。
5 结束语
本文对现有服务小车的语音识别系统进行了改进,以红外、无线电通信技术和语音识别技术为基础,构建了红外与无线电语音控制系统,实现了服务小车的无线语音控制。实际测试表明,红外与无线电语音控制系统在红外光照和电磁波干扰下都有较高的成功率,系统工作可靠。该研究提高了服务小车对环境的适应性。