PIC16F877A 单片机为控制核心语音小车
- 格式:docx
- 大小:218.32 KB
- 文档页数:14
PIC16F877A 单片机为控制核心,用语音识别芯片RSC-364、射频发送模块F05C 、编码芯片PT2262 组成语音无线遥控器(用于对控制指令的采集);采用射频接收模块J05C 和解码芯片PT2272 组成无线接收模块(用于对控制指令的接收);采用三节干电池串联(约4.5V)的方式对系统供电的语音控制小车。
经试验证实小车能实现语音无线控制,根据事先录制的语音指令能够实现前进、退后和左右转。
通过自制的编码盘小车还附加有测速及路程显示功能。
经测试,小车反应灵敏,运行稳定。
关键词:语音控制;PIC16F877A;RSC -364;测速显示0 引言随着现代科技的发展,仪器产品的智能化已经是一个不可避免的趋势。
智能仪器在一些特殊的场合,它可以按照预先设定的模式在一个环境里自动的运作,基本不需要人为的管理。
本文设计的语音控制智能小车,就是这样的一种装置。
小车以PIC16F877A 单片机为控制核心,加上语音识别芯片RSC-364、射频发送模块F05C 、编码芯片PT2262 组成语音无线遥控器,并且采用射频接收模块J05C 和解码芯片PT2272 组成无线接收模块,实现小车和控制者的互动,小车能根据命令实现前进、后退和左右转等动作。
通过外围电路又可以实现自动测速并显示等功能。
1 小车整体框架及原理本设计语音控制小车系统主要由PIC16F877A 为核心的车载控器部分、遥控器携带语音控制部分两大控制单元和车体部分组成小车硬件控制系统结构示意图如下:图1 控制系统结构示意图1.1 车载控制单元车载控制部分包括无线接收电路(由射频接收模块J05C 和解码芯片PT2272 组成) 、车载主控芯片电路、电机驱动电路及测速显示电路。
工作流程:接收遥控器发出的无线电信号,解码后送入车载主控芯片,经过计算产生相应的控制信号,驱动两个电机工作,使小车产生预期的动作。
本设计使用了两个电机控制小车的动作,具体在驱动部分讲述。
图2 车载控制系统结构图1.1.1 无线接收电路无线接收模块,是车载控制系统中十分重要的部分,就如同人的耳朵。
本设计采用的是射频接收模块J05C 和解码芯片PT2272 的组合,这样有利于提高信号接收的可靠性。
J05C用了超外差电路结构以及温度补偿电路,有较高的接收灵敏度和稳定性,输出为数据电平信号。
J05C 输出端可直接与标准解码器及单片机接口,J05C 在未收到发射信号时输出为一片随机噪声,幅度为VDD-0.3V 值,收到信号噪声被抑制,当信号变弱后,出现噪声干扰点,此时信号处于不稳定区,但是本设计采用了PT2272 解码器所以仍可维持解码。
本设计J05C是用于自动接收无线电波并对电波进行处理,输出适合解码芯片PT2272 解码的波形。
PT2272 和下文讲到的PT2262 是配对芯片,其芯片的端口和PT2262 基本相同。
唯一不同的是PT2272 有Din(数据信号输入端,信号来自接收模块J05C 输出端)和EN(解码有效确认位,输出端(常低)解码有效变成高电平(瞬态),本设计中用来就为外部中断触发)。
具体应用时,PT2272 会自动的对从DIN 端口输入的信号编码波形进行解码,解码成功则将地址和数据输出到对应的地址引脚和数据引脚输出,同时会将EN端口置为高电平(瞬态),数据在各个引脚上的排列顺序和PT2262 完全相同,和无线发送模块相对应,这里也只使用其低八位数据引脚传输八位有效数据。
1.1.2 车载主控芯片电路本设计小车采用的是MicroChip公司的8位单片机PIC16F877A,该单片机采用Harvard双总线结构,运行速度快,低工作电压,低功耗,较大的输入输出直接驱动能力,价格低。
其内部集成了A/D 转换可以介绍外围的电路,稳定性也好。
智能小车系统用到的I/O 口有:RC0~RC5 用于电机的使能和方向控制,RB1~RB3 用于串行工作方式的LCD 显示,(SMG12864ZK),RB4~RB5 用于测速部分的输入,RD 口和无线接收模块的解码芯片的数据端口的低8 位相连,用于接收解码的数据。
解码芯片的EN端口和单片机的外部中断口RB0 相连,解码芯片解码成功时会自动通过EN 端口向单片机申请中断,单片机进入中断处理程序,接收解码后数据。
1.1.3 驱动电路本设计中小车的驱动电路由SGS 公司的L298N 芯片作为核心构成。
一个L298 芯片可以驱动两个二相电机,正好符合本设计的要求。
输出电压最高可达50V,直接可以通过电源来调节输出电压;可以直接用单片机的IO 口提供信号;而且电路简单方便,运行稳定。
本设计用了一片L298 驱动2 个电动机,OUT1,OUT2 和OUT3,OUT4 之间分别接上电动机,用这样的连接方式驱动左右两个车轮,EnA,EnB接控制使能端,控制电机的停转。
IN1~IN4接单片机的输出端用于控制电机转向。
下表为L298 的功能逻辑图。
表1 L298 的功能逻辑图上表为其中一个EnA、In3、In4 逻辑图,另一个ENb、In3、In4 的逻辑图和上表相同。
下图为电机的驱动电路:图3 电机的驱动电路在电机端接入了保护二极管,目的是为了防止电机换向时电流过大烧坏电机。
1.2 遥控器控制单元遥控器主要由语音识别模块和无线发送模块( 编码芯片PT2262 和射频发送模块F05C构成) 组成,如图所示。
遥控器的工作原理为: 小车的操作者通过麦克风发出语音控制命令,该语音命令经过语音识别模块识别后,根据识别的结果产生一个控制信号,类型为一个8 位的控制码,该控制码由语音识别模块通过P1 端口将其输出至无线发送模块,之后语音识别模块发出控制信号,控制无线发送模块将该控制码结果编码后以无线电波形式发送到车载的控制器中,车载控制部分接收到信号后还要经过一系列的解码和转换计算后才能控制小车驱动电路从而实现控制小车产生预期的动作。
图4 遥控器系统结构图1.2.1 语音识别电路语音识别模块本文采用以Sensory 公司的集成语音识别芯片RSC-364 作为核心构成。
语音控制家电产品就是由该芯片专门设计的,所以此芯片很适合在语音小车的设计中使用。
RSC-364 具体应用时外围所需要的辅助器件很少,如果采用典型应用电路时只需要一个小扬声器、一个晶体振荡器、一个麦克风和几个电容和几个电阻就可以了。
RSC-364 内部集成了语音合成、语音识别、录音回放等功能。
这款芯片内部采用的是神经网络的语音识别算法,其中和说话者无关的语音识别准确率可以达到97%,和说话者相关的语音识别准确率可以达到99%。
这款芯片内部还集成了一个八位的可编程微处理器,对外有16 个可编程控制的I /O 口,16 位地址总线和8 位数据总线及相应的控制信号,使得扩展外部ROM 以及与外部器件通讯变得很方便。
语音识别模块在本设计中主要完成的功能是训练小车的语音控制指令以及对语音控制指令的识别。
本设计中对RSC- 364 的端口的使用情况如下: P1 口用来传输与控制命令相应的控制码,接编码芯片PT2262 的A0~A7 引脚;P0.7 口用于启动无线发送模块发送数据,接编码芯片PT2262 的TE 端。
1.2.2 无线发送电路无线发送电路在系统中就如同人的嘴巴那么重要,因为只有把控制信号发送出去,小车才能接收信号而有所动作。
本设计用的无线发送模块由集成的射频发送模块F05C 和编码芯片PT2262 组成。
编码芯片PT2262 和上文中的PT2272是配对芯片,工作电压范围宽:2.6~15v。
PT2262 的使用:控制中只要将PT2262 的TE 端设为低电平,PT2262 就自动将地址引脚和数据引脚A0~A11 的数据编译成适合无线发射电路发射的串行编码波形,通过DOUT 端口串行输出。
在外接振荡电阻可根据需要进行适当的调节,阻值越大振荡频率越慢,编码的宽度越大,发码一帧的时间越长。
本设计的具体电路中就是将PT2262 的DOUT端口连接到无线发射电路的数据输入端就可以将语音控制信号的数据通过无线电波发送到车载控制部分。
设计中无线发射电路采用集成的射频发送模块F05C 。
F05C 系列采用AM方式调制(以便降低功耗),使用声表谐振器稳频,SMT 树脂封装,频率一致性较好,免调试。
工作电压范围宽,12V 是最佳工作电压,发射效果较好。
由于本设计的编码器采用PT2262,故振荡电阻取3.3M 效果较好。
因为本文无线发送的命令的种类不多,所以不需要使用PT2262 的全部12 个数据引脚,又由于RSC- 363 内核和PIC16F877A 都是八位机,为了数据传输方便,所以只要使用PT2262 的低八位数据引脚用来传输数据,余下的四个引脚可以直接接地,其上的数据无意义。
1.3 电源1.3.1 电源的选择介于以下考虑因素:1.小车上使用的电机,其额定电压通常小于12V(一般为4~6V)。
这一电压范围一般都在较便宜的电压转换器件的有效输入电压范围之内。
2.电机的额定电流一般低于2~3A,采用L298这类具有电流限制的器件不会导致严重的电压骤降。
3.允许小车随机携带部件的空间或重量都受到限制。
故而本设计中选择:单电池供电方式[5],而且是为电机和控制器同时供电。
实际的操作试验中我们使用三节干电池串联(约4.5V)供电方式,满足4~6V 的电压要求(经试验测试能使小车运行稳定)。
1.3.2 电源总线的噪声处理直流电机,甚至集成驱动芯片或其他数字逻辑器件,都会在电源总线上产生噪声。
对此通常采用旁路电容吸收瞬时脉动。
通常把0.1uF 的陶瓷电容零散的放置于电路板上,特别是L298 电机驱动器这类容易产生噪声的芯片附近。
应当在其附近放置较大的电容(一般在47~470uF 之间)去吸收其多余的电能。
2 系统的软件设计对于系统的软件设计,就是要实现硬件连接功能的算法设计。
本系统软件的要求除了完成一序列的初始化外,主要是要完成对语音控制信息和小车动作指令直接的转换工作,即要把无线接收的语音信号转化为小车驱动电路的控制信号,使小车能前进、转弯等等,从而完成语音控制小车动作的功能。
系统的流程如下图:图5 系统流程图3 总结实验结果表明,语音识别系统可以实现预计功能(前进、退后、左右拐以及测速和路程显示等),而且在低噪声环境中识别率很高,但是在噪声水平较高的场合,识别率有所下降,还需改进。
另外本设计对节能方面的考虑有待提高。
小车反应较灵敏,但是距离有限。
总体来说,对于将来智能汽车的模拟,或者玩具小车的制作有一定的参考意义。