汪文立,王琪,,丁柏文,任俊,金琦淳,,张金铮,
(江苏科技大学 a. 苏州理工学院,机电与动力工程学院,江苏 苏州 215600; b. 张家港校区机电与动力工程学院,江苏 苏州 215600)
近年来,语音识别技术一直是国内外研究的热点。语音识别是最自然的人机交互方式,具有灵活、便捷、快速响应的特点,对提高工作效率、简化设备控制有着巨大的作用[1]。在智能车领域中,该技术已得到应用,有文献中提出了语音小车采用51单片机作为主控芯片[2-3],但其芯片构成最小系统的电路复杂。也有学者提出直接由语音命令控制单片机驱动小车电机[4],但该方案的问题是电机转动产生噪声而易造成识别干扰,可能出现控制不稳定及控制距离不够的问题。本文通过采用IAP系列单片机、语音识别芯片、无线模块及驱动模块组成了小车系统,省去了外部晶振及复位电路,简化了系统的电路设计,解决了远程语音稳定控制的问题,实现了对小车运动状态的实时控制。
无线语音智能小车系统分为控制部分和驱动部分。控制部分由单片机、语音识别模块和无线模块组成,驱动部分由单片机、无线模块和电机驱动模块组成。系统控制过程如下:由外部发出语音指令信息,然后通过语音模块进行识别。根据用户说出的语音信息经频谱转换成语音特征参数,与预存的参数库中的条目一一进行匹配,得出最佳匹配结果。将结果通过串口通讯的方式传送给单片机,进而通过无线模块将指令发送给小车。通过小车上的无线模块接收无线信号,经单片机读取信号并发出相应的指令给驱动芯片,最后驱动电机实现小车前进、后退、左转、右转、停止的实时控制,系统结构如图1所示。
图1 系统结构图
无线语音小车系统硬件电路设计分为控制系统电路和驱动系统电路设计。系统硬件设计选用IAP15F2K61S2单片机为主控核心,该单片机性能高且功耗低,其运行速度是传统8051的12倍,并拥有大容量程序存储器。片内集成可编程计数器(PCA)模块,可同时3路脉宽调制(PWM)输出用于电机速度控制。内部高可靠复位,可彻底省掉外围复位电路。在常温工作时可使用内部RC振荡器时钟,省去外部时钟电路。控制系统硬件电路设计包括:单片机最小系统设计、无线模块设计、语音模块设计和电源电路设计,如图2所示。
驱动系统硬件电路设计包括:单片机系统设计、无线模块设计、驱动模块设计和电源模块设计,如图3所示。
图2 控制系统电路图
图3 驱动系统电路图
1) 语音识别模块
LD3320是一款基于ASR技术非特定人语音识别的语音芯片[5],不需要用户事先训练语音。芯片采用并行的方式和单片机通信,可以支持50条预存指令,其内容可以进行动态修改。但由于语音识别的敏感性,当环境嘈杂、距离过远时或当语音内容相对于预设关键字漏字、多字时,容易发生误识别。为了避免上述情况,可以多设置几条相关的关键词,其对应的程序为空,用这样的方式可以来吸收错误识别,也可将模块设置为口令模式,只有当模块识别到口令之后,其余的语音指令才有效[6]。
语音识别系统工作过程如下,首先通过MCU用拼音串的方式将用户需要的关键词信息写入到LD3320关键词语列表。再由麦克风采集外界声音,经过频谱分析后提取其中的语音特征信息(即关键词语),通过语音识别器与关键词语列表内的词语进行逐个对比,寻找到最接近的一个词语为最佳的识别结果[7]。最后将最佳识别结果传回给单片机,语音识别工作图如图4所示。
图4 语音识别工作图
2) 无线发射模块
系统采用一对NRF24L01无线通信模块进行数据的通信。该模块工作2.4GHz~2.5GHz ISM频段,可自由调节输出功率及信道。模块功耗低,在掉电模式和待机模式下效果更为显著[8]。模块天线采用印制导线,使得硬件电路更为轻便、灵活。
模块的工作模式选用Enhanced ShockBurshTM(增强型突发)模式,低速输入、高速发出且数据不易丢失。无线模块采用I/O模拟SPI接口的方式与单片机通讯,通过SPI串行总线协议对芯片进行读与写的基本操作[9]。在控制电路中设置NRF24L01芯片为发射模式,按照SPI协议写入发射和接收节点地址、自动应答功能、允许接收通道、自动重发次数、通信频率及发射的参数。CE置高,激活寄存器中数据并发送。随后开启自动应答模式,接收应答信号。如果接收应答信号成功,置位IRQ并转为发送模式,继续循环发送数据。如果未接收到应答信号,则重新发送上一次数据包,工作图如图5所示。
图5 无线发射工作图
1) 电机驱动模块
电机驱动芯片采用L298N,芯片内含4通道逻辑驱动电路,即有2个H桥的高电压大电流双全桥式驱动器,接收TTL逻辑电平信号。驱动芯片电源端分为逻辑控制电源和电机驱动电源,分别为5 V和7.4 V。芯片外部接8个二极管,作用是保护L298N芯片,防止电机在正反转切换时负载电机两端电压过高或过低,对周围元器件造成破坏。
L298N芯片有6路输入通道和4路输出通道,如图3所示。单片机通过I/O口控制IN1、IN2、IN3、IN4输入端,实现电机的正转、反转和停止,并控制ENA、ENB 2个使能端,结合单片机内部PCA模块输出的PWM脉宽进行平滑调速,使小车两轮差速,实现转向的功能[10]。
2) 无线接收模块
在驱动系统电路中设置NRF24L01芯片为接收模式,按照SPI时序写入无线模块的接收发射地址、信号通道、发射速率和数据长度。进入等待接收数据的状态,读取状态寄存器来判断是否有数据。若接收到数据,则CE置低并清除中断标志,自动进入发射模式,回传应答信号。若未接收到数据,则一直保持接收状态。然后进入程序循环,使NRF24L01保持接收状态,工作图如图6所示。
图6 无线接收工作图
系统软件设计程序分为控制系统程序和驱动系统程序。控制部分首先初始化LD3320芯片及串口,等待语音信息采集并进行信息处理。若有信息采集则判断此信息是否符合预设关键词,当信息匹配成功则通过单片机转为相关指令经无线模块发送。当匹配失败则退出识别运算,继续采集信息。驱动部分首先初始化单片机中PCA模块,给予电机一个初始信号保持不动,然后配置无线模块为接收模式并循环判断是否接收到指令,若接收到则判断执行哪一个驱动子程序,子程序驱动电机完成小车运动。若接收不到则继续保持接收状态。整个系统软件设计结构思路清晰,运行良好。
该智能小车在系统软件设计上选用KEIL uVision 4为开发环境并使用C语言为程序开发语言。整个系统程序以一个工程内采用多个C文件的方式编写,结构清晰,可移植性强,便于对程序进行修改及提升其运行性能。
经实践操作,完成了控制系统和驱动系统的实际制作,系统实物如图7所示。图7(a)为驱动系统设计实物,图7(b)为控制系统设计实物。
图7 实物图
系统做了稳定性测试,主要将系统分别放在安静与嘈杂的环境进行测试。测试选用地点为空旷的地带及室内进行实验,分别进行实验次数为100次。小车实际测试数据如表1所示。
表1 系统稳定性测试
测试分析:在安静环境下,在百米空旷地带无线传输成功率略大于在室内传输,语音识别成功率近似。在嘈杂环境下,无线传输成功率变化不大,语音识别率有所降低。总体而言,语音信息无线传输及识别成功率较高,系统整体运行良好、可靠性高,达到了预期的效果。
详细论述了一款由IAP15F2K61S2单片机、LD3320语音模块、NRF24L01模块、L298N驱动模块组成的无线语音智能小车的系统设计。该小车通过语音识别技术与无线技术的结合,提高了语音控制的可靠性,解决了语音指令传输距离短的问题。整个系统具有结构清晰、简单、智能化的优点,且采用模块化设计,具有良好的扩展性。
[1] 陈哲. 智能家居语音控制系统的设计与实现[D]. 西安:电子科技大学,2013.
[2] 李健,任玲芝,郭亮,等. 无线语音控制小车的设计与实现[J]. 工业控制计算机,2015(11):147-148.
[3] 汤莉莉,马仟,黄伟. 语音无线遥控智能小车设计[J]. 无线电工程,2014(12):66-69.
[4] 杜希栋,王志伟,潘黎,等. 基于 LD3320 的非特定语音控制小车设计[J]. 信息技术,2015(1):53-55.
[5] Simon King, Joe Frankel, Karen Livescu, et al. Speech production knowledge in automatic speech recognition [J]. Acoustical Society of America, 2007, 121(2):723-742.
[6] 姜杰文,姜彦吉, 邴晓环,等. 基于LD3320的非特定人识别声控灯系统设计[J]. 现代电子技术,2015,38(11):27-30.
[7] 洪家平. LD3320的嵌入式语音识别系统的应用[J]. 单片机与嵌入式系统应用,2012(2):47-49.
[8] Peter hrist, Bernd Neuwinger, Felix Werner, et al. Performance analysis of the nRF24L01 ultra-low-power transceiver in a multi-transmitter and multi-receiver scenario[J]. Proceeding of IEEE Sensors, 2011:1205-1208.
[9] 李贺,程祥,曾国令. 基于nRF24L01芯片的近程无线通信系统设计[J]. 现代电子技术,2014(15):32-34.
[10] 杨雄. 51单片机的PWM直流电机调速系统分析[J]. 数字技术与应用,2014(4):26-28.