语音控制的智能小车设计
扫描二维码
随时随地手机看文章
1 智能小车总体结构框图
智能小车主要由转向机构、驱动机构、转向控制模块、驱动控制模块、遥控模块和语音控制模块六大部分组成,如图1所示。
2 机械本体结构及工作原理
小车为轮式结构,如图2所示。机械部分分为转向机构(图中椭圆内的部分)和驱动机构(图中椭圆外部分)。转向机构主要由转向电机、转向架和两个前轮组成。驱动机构采用玩具小车常用的双电机驱动方案,包括两个减速电机和两个后轮。转向机构工作原理为:转向时由控制者向小车发出转向信号,转向电机根据转向信号正向或反向旋转一定角度,电机通过齿轮、齿条系统带动转向架摆动一定角度,最终带动与转向架固定在一起的前轮偏摆一定角度。小车在转向时由于内、外侧的车轮的转弯半径不同,所以内外侧车轮的转速也不相同。前轮为从动轮,会根据转弯角度的大小自动调节内、外侧车轮的转速;而后轮为主动轮,其转速分别由两个电机独立驱动,不会根据转弯半径自动调节转速。因此小车转弯时,控制系统在控制转向电机的同时还需要根据转向角度的大小向两个驱动电机发出控制信号,调节两个驱动电机的转速使之产生特定的转速比,从而使转弯顺利进行。在这里,转弯的角度、转速比与小车的尺寸及转弯半径有关。
3 控制系统
控制系统包括两大部分,一部分位于遥控器内,用于识别控制者的命令并将响应的控制信号发送出去;一部分位于小车上,用于接收遥控器发出的控制信号,并根据控制信号控制转向机构和驱动机构,使小车实现预期的动作。
3.1 遥控器
遥控器主要由语音识别模块和无线发送模块(编码芯片、射频发送模块)组成,如图3所示。遥控器的工作原理为:控制者通过麦克风发出控制命令,该命令经过语音识别模块识别后,根据控制信号的类型产生一个8位的控制码,语音识别模块通过其P1端口将控制码输出至无线发送模块,然后语音识别模块发出控制信号,控制无线发送模块将该控制码以无线电波形式发送出去,车载控制部分接收到后便控制小车产生预期的动作。
3.1.1 语音控制模块
语音控制模块主要由Sensory公司的集成语音识别芯片RSC-364组成。该芯片是专门为语音控制家电产品而设计的,外围辅助器件少,采用典型应用电路时只需要一个麦克风、一个晶体振荡器、一个小场声器和几个电阻、电容即可。该芯片内部集成了语音识别、语音合成、语音身份识别、录音回放功能。芯片内部采用的是神经网络的语音识别算法,和说话者无关的语音识别准确率可以达到97%,和说话者相关的语音识别准确率可以达到99%。该芯片的功能框图如图4所示。该芯片内部集成了一个八位的可编程微处理器,对外有16个可编程控制的I/O口,16位地址总线和8位数据总线及相应的控制信号,可方便地扩展外部ROM以及与外部器件通讯。本文中对RSC-364的资源使用情况为:其P1口用于传输与控制命令相应的控制码,P0.7口用于启动无线发送模块发送数据。
3.1.2 无线发送模块
为了提高无线收发的可靠性,本文采用集成的射频发送模块F05C和编码芯片PT2262组成无线编码发送模块。PT2262外围电路简单,只需外接一个电阻调节载波频率。PT2262的电源电压范围广,4~15V均能正常工作。PT2262可以对12位二进制信号进行编码输出,足以满足本文的要求。PT2262的控制也极为简单,在PT2262的TE端为0时,PT2262自动将地址引脚和数据引脚A0~A11的数据编译成适合RF电路发射的串行编码波形,然后通过DOUT端口串行输出。应用时只需将PT2262的DOUT端口连接到RF电路的数据输入端即可将数据通过无线电波发送出去。本文中RF电路选用集成的射频发送模块F05C。F05C采用声表谐振器稳频,SMT树脂封装,频率一致性较好,免调试。F05C具有较宽的工作电压范围及低功耗特性,当发射电压为3V时,发射电流约为2mA,发射功率较小;12V为最佳工作电压,具有较好的发射效果,发射电流约为5~8mA;当发射电压大于l2V时直流功耗增大,有效发射功率不再明显提高。F05系列采用AM方式调制以降低功耗[1]。因为本文无线发送的命令的种类较少,所以不需要全部使用PT2262的12个数据引脚,鉴于RSC-363内核和AT89C51均为八位机,为了数据传输方便,只使用PT2262的低八位数据引脚传输数据,其余的四个数据引脚直接接地,其上数据没有意义。
3.2 车载控制部分
车载控制部分主要由无线接收模块(射频接收模块、解码芯片)、车载处理器和电机控制模块(图中略)组成,如图5所示。其功能就是接收遥控器发出的无线电信号并解码,送入车载处理器,经过计算产生相应的控制信号,控制三个电机工作,使小车产生预期的动作。
3.2.1 无线接收模块
无线接收模块由射频接收模块J05C和解码芯片PT2272组成。J05C是F05C的配对功能模块。J05C采用超外差电路结构和温度补偿电路,具有较高的接收灵敏度及稳定性,芯片内含低噪声射频放大器、混频器、本地振荡器、中频放大器、滤波器及限幅比较器,输出为数据电平信号。其功能是自动接收无线电波并对电波进行处理,输出适合解码芯片解码或单片机解码的波形。PT2272是PT2262的配对芯片,其外围电气特性和PT2262相同。工作时,PT2272自动对从DIN端口输入的编码波形进行解码,解码成功则将地址和数据输出到对应的地址引脚和数据引脚,同时将EN端口置为高电平,数据在各个引脚上的排列顺序和PT2262完全相同。和无线发送模块相对应,这里也只使用其低八位数据引脚传输八位有效数据。
3.2.2 车载处理器
车载处理器采用常用的MCS-51系列单片机AT89C51。AT89C51是8位单片机,其片内集成有4K的程序存储器,能够满足一般的应用。单片机有8位外部数据总线和16位外部寻址地址线,支持外扩程序存储器和数据存储器。片内集成两个16位的定时/计数器,两个外部中断口,32位双向I/O口[2]。在本文的应用中,单片机采用中断工作方式。P2口和无线接收模块的解码芯片的数据端口的低8位相连,用于接收解码的数据。解码芯片的EN端口和单片机的外部中断口INT0相连,解码芯片解码成功时会自动通过EN端口向单片机申请中断,单片机进入中断处理程序,接收解码后数据。因为EN端口是高电平有效,而INT0是低电平有效,所以EN需要通过一个反向器和INT0连接。单片机的P1口用来输出PWM波,控制转向电机和两个驱动电机。每个电机需要两个端口进行驱动,分别用于电机的正反向选择。P1口每位的具体定义为:P1.0和P1.1用来控制转向电机的正转和反转;P1.2和P1.3用来控制左后轮驱动电机的正转和反转;P1.4和P1.5用来控制右后轮驱动电机的正转和反转。
3.2.3 电机控制模块
电机的驱动采用双向PWM脉宽调制方式控制。采用这种控制方式可以方便地实现电机的正反转和转速变化[3]。电机驱动电路如图6所示。其工组原理为当P1.0端口为高电平、P1.1端口为低电平时,三极管Q5导通,Q5导通又导致Q3和Q2导通,则电流从电源通过Q2、直流电机和Q3构成回路;当P1.0端口为低电平、P1.1端口为高电平时,三极管Q6导通,Q6导通又导致Q4和Q1导通,则电流从电源通过Q1、直流电机和Q4构成回路,且电流方向和前面相反,即电机转向发生变化。通过控制P1.0口和P1.1口电平的高低和高电平导通的时间,就可以控制电机的正、反转和转速。
4 实验结果
本文设计的小车的长度为210mm,宽度为100mm,前后轮距为150mm,小车的最大转弯角度为45度。小车可以识别的总的命令条数为16条。左转和右转各4条,对应的转向角度分别为5度、15度、25度、45度;停止1条;前进5条,对应于五级不同的前进速度;后退两条,对应两级不同的后退速度。小车的各级转弯角度对应的转弯半径及两个电机的转速比的关系如表1所示。
该小车各部分采用模块化设计,各个模块之间独立性强。控制部分采用可编程微处理器,可以在不增加系统硬件的情况下方便地对系统进行二次开发。本文对一辆小车进行了实验,实验结果表明,语音识别系统在低噪声环境中识别率很高,在噪声水平较高的场合,识别率有所下降。小车反应灵敏。