基于SPCE061A单片机的语音遥控小车的设计_第1页
基于SPCE061A单片机的语音遥控小车的设计_第2页
基于SPCE061A单片机的语音遥控小车的设计_第3页
基于SPCE061A单片机的语音遥控小车的设计_第4页
基于SPCE061A单片机的语音遥控小车的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科毕业论文设计题 目 基于SPCE061A单片机的语音遥控小车的设计学 生 指导教师 副教授年 级 2007级专 业 电子信息工程二级学院 信息工程学院 邯郸学院信息工程学院2021年5月郑重声明本人的毕业论文设计是在指导教师 的指导下独立撰写完成的。如有剽窃、抄袭、造假等违反学术道德、学术标准和侵权的行为,本人愿意承当由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。特此郑重声明。毕业论文设计作者签名: 年 月 日摘 要 随着电子、信息技术的飞速开展,语音识别被广泛的应用在各个领域。常见的应用领域有:语音输入系统,如于键盘输入方法;语音控制系统,如工业控制、语音拨号系统、智能

2、家电、声控智能玩具等;智能对话查询系统,银行效劳、股票查询效劳等等。当然这些应用都要建立在对语音的准确识别的根底上。本工程主要采用凌阳科技公司的一款SPCE061A单片机进行设计,主要利用它特有的语音识别功能来实现对小车行驶状态的控制。比方输入预先训练好的语音命令“前进,小车根据命令向前行驶一段距离,输入“左转,小车向左转弯。利用语音命令代替了传统的遥控手动控制。小车接收命令的同时,向外界发出语音信号,从而实现人车之间的简单的交互。为减小声音信号衰减,以及外部声音信号的干扰对语音命令的干扰造成的误差,本设计采用无线高频信号发送的模式,来实现语音命令的传送,即设计中采用两个SPCE061A单片机

3、控制系统,第一个专门负责语音信号的采集,然后发送语音命令的编码。另外一个根据接收的语音命令编码,来控制小车的行驶状态。采用固定码PT2262无线发射模块和PT2272接收模块。关键词 SPCE061A PT2262 PT2272 语音控制 智能小车 The Designed of Voice Remote Control Car Based on SPCE061AHao Wei Directed by Associate-Prof. Wang XuhuiAbstract With the rapid development of information technology, speech r

4、ecognition is widely used in various fields. Common applications: voice input system, such as the keyboard input method; voice control system, such as industrial control, voice dialing systems, smart toys; intelligent dialogue and inquiry system, for example banking services, stock query services. O

5、f course, these applications should be built on the accuracy of speech recognition.The design, based on SPCE061A which is made by Sunplus Technology Company, uses SPCE061As unique voice recognition capabilities to achieve the control of the car. Such as pre-trained voice command input Forward. The c

6、ar would move forward. The car turning left when the command is left. Using voice commands instead of the traditional remote manual control. When received a command, the car will generate a voice signal. Thus people and the car could achieve simple interaction.To reduce the voice signal attenuation

7、and interference from external sound signal this design uses high-frequency signals sent by the wireless mode to the transmission of voice commands.So the system uses two chips of SPCE061A. The first one is dedicated to speech signal acquisition, encoding and sending voice commands. According to the

8、 received voice commands, the other one controls the cars running condition. The system uses the PT2262 and PT2272 wireless transmitter or receiver module.Key words SPCE061A intelligent car voice control PT2262 PT2272目 录 TOC o 1-3 u 摘要 PAGEREF _Toc263190933 h IAbstract1 引言 PAGEREF _Toc263190935 h 12

9、 背景介绍 PAGEREF _Toc263190936 h 1 选题背景 PAGEREF _Toc263190937 h 1 研究的目的及意义 PAGEREF _Toc263190938 h 23 设计要求 PAGEREF _Toc263190939 h 2 系统功能 PAGEREF _Toc263190940 h 2 根本参数 PAGEREF _Toc263190941 h 24 方案论证2 方案一2 方案二34.3 方案三34.4 方案比拟45 系统硬件设计4 系统总体方案介绍4 SPCE061A单片机5 SPCE061A最小系统6 电源7 无线发射接收模块PT2262 PT22728 小

10、车控制板95.7 小车车体架构125.8 SPCE061A精简开发板135.9 系统实物图136 系统软件设计156.1 软件结构15 语音识别原理简介16 训练子程序17 语音识别子程序186.5 动作子程序196.6 中断子程序207 操作步骤21 硬件连接21 代码下载218 测试 PAGEREF _Toc263190968 h 219 结论 PAGEREF _Toc263190969 h 22参考文献 PAGEREF _Toc263190970 h 22致谢 PAGEREF _Toc263190971 h 23附录24基于SPCE061A单片机的语音遥控小车的设计 引言随着电子、信息技

11、术的飞速开展,语音识别被广泛的应用在各个领域。常见的应用领域有:语音输入系统,相对于键盘输入方法,它更符合人的日常习惯,也更自然、更高效;语音控制系统,即用语音来控制设备的运行,相对于手动控制来说更加快捷、方便,可以用在诸如工业控制、语音拨号系统、智能家电、声控智能玩具等许多领域;智能对话查询系统,根据客户的语音进行操作,为用户提供自然、友好的数据库检索效劳。例如家庭效劳、宾馆效劳、旅行社效劳系统、订票系统、医疗效劳、银行效劳、股票查询效劳等等。当然这些应用都要建立在对语音的准确识别的根底上。要实现小车行驶状态的语音控制,关键点在于语音命令的识别。因此选择具有语音识别功能的SPCE061A做为

12、控制器,考虑到声音信号的衰减、干扰,所以把语音信号的识别,和小车的控制隔离开来,采用两组SPCE061A最小系统,一组用于语音识别,然后通过编码,把识别出的语音命令通过PT2262发射模块作为固定码发射出去,然后另一组通过PT2272接收的固定码来实现对小车的控制。主要内容如下:1熟悉SPCE061A单片机及其开发环境;2编写程序,用H桥电路驱动电机,观察电机转速;3编写程序,测试无线发射接收模块PT22622272;4编写程序,检测语音识别功能;5编写综合程序,调试各个模块的协同工作;6反复试跑,调试程序细节。利用凌阳公司提供的SPCE061A单片机开发板和越野型车模,预计可以按时实现语音命

13、令对小车行驶状态的控制。 背景介绍 选题背景20世纪50年代AT&T贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。20世纪60年代,人工神经网络被引入了语音识别。20世纪80年代末,人们终于在实验室突破了大词汇量、连续语音和非特定人这三大障碍,第一次把这三个特性都集成在一个系统中,比拟典型的是卡耐基梅隆大学 (CarnegieMellonUniversity)的Sphinx系统,它是第一个高性能的非特定人、大词汇量连续语音识别系统。1997年,IBM公司开发出汉语ViaVoice语音识别系统,次年又开发出可以识别上海话、广东话和四川话等地方口音的语音识别系统ViaV

14、oice98。2002年,中科院自动化所及其所属模式科技(Pattek)发布了“天语中文系列产品。我国语音识别研究工作起步于五十年代,但近年来开展很快。2002年,中科院自动化所及其所属模式科技(Pattek)发布了他们共同推出的面向不同计算平台和应用的“天语中文语音系列产品PattekASR,结束了中文语音识别产品自1998年以来一直由国外公司垄断的历史。当前语音识别技术飞速开展的过程中,不可防止的遇到很多问题,总结起来主要有以下几点:1连续的语音分解为词,音素等单位,建立理解语意的规那么;2大量的语音信息。语音模式不仅因人而异,对同一个人来说,不同时间,同一句话的语音信息是不相同的;3语音

15、的模糊性。在汉语及英语中都很常见,同样发音的词却有着不同的意思;4语音的上下文影响,以致改变了重音、音调、音量、音速等,进而影响了语音信息;5环境噪声对语音信息的干扰不可防止。 研究的目的及意义前面我们提到,语音识别是一门交叉科学,涉及多门学科,包括信号处理、模式识别、概率论和信息论、发声机理和听觉机理等等。研究语音识别首先要对以上各个方面都要有系统的了解,而以上各个学科都可以是一门独立的学科,对各个学科的综合利用,其研究理论意义是显而易见的。 设计要求利用单片机,实现小车的语音控制。 系统功能1利用系统的语音播放和识别资源来实现语音控制功能;2通过I/O操作,实现小车的前进、左转、右转、后退

16、等功能; 3能在行驶的过程中改变小车的行驶状态;4超出语音控制范围以后可以自动停车。 根本参数1开发板工作电压:DCCPUVDD为2.4-3.6V,(I/O)VDDH为2.4-5.5V;2开发板工作频率:0.32M-49.152MHz;3H桥工作电压:DC5V;2无线发射、接收模块工作电压:DC 3V12V发射,DC 5V接收;3无线发射发射频率:天线长度24cm(315MHz), 18cm(433.92MHz);4无线模块发射距离:50-1000米开阔地;5车体:双电机舵机,动力电机,两轮驱动。 方案论证本课题有三种方案可提供参考:第一种是使用MCS-51系列单片机中的AT89C51设计本课

17、题;第二种是使用SPCE061A单片机来设计,语音识别和小车控制用一块SPCE061A开发板控制;第三种是使用两块SPCE061A开发板把语音信号识别和小车控制隔离开。MCS-51单片机被广泛应用在各个方面,编程简单;SPCE061A单片机是凌阳科技公司一款基于unsp内核的单片机,具有一定的数字信号处理功能,有专用的声音ADC输入通道,内置麦克风放大器,并具有自动增益控制AGC功能具有凌阳特有的SACM_S240声音编码方式。 方案一采用8051系列单片机中的AT89C51做为控制核心,语音信号经由声音传感器采集,然后经AD转换及专用的语音芯片对声音编码,并储存声音模型到外扩的flash芯片

18、中。当外界语音命令输入时,单片机判断经AD转换后的数字信号与flash芯片中存储的语音模型的相似度,以此来识别外界语音命令。根据不同的声音命令驱动H桥,由H桥来控制电机,从而到达控制小车行驶状态的目的。此类语音处理芯片有ISD系列,PM50系列等。AT89C51是8位单片机,应用广泛,易于编程,且价格廉价。因为AT89C51只有4Kflash,且没有内置ADC电路,所以必须有外围扩展电路。作为一门新兴的技术,语音识别需要对声音进行一定格式的压缩、编码、解码、比拟。这些都需要大量计算。设计框图如图4-1所示。接口总线接口模块语音接收模块语音播放电机驱动IOMCS-51IO图4-1 基于AT89C

19、51单片机的语音遥控小车设计框图 方案二采用凌阳科技公司的SPCE061A单片机做为控制核心,采用MIC输入模块,把声音信号转换为电信号,输入到该单片机专用于声音的ADC通道,经自动增益AGC放大,几次语音命令训练,把由A/D转换后的数字信号即声音模型存储到32K的Flash中。外界输入语音命令时,声音信号经由专用ADC通道转换,和已经存储的声音模型比拟,当到达一定的相似度时,即判断为识别出语音命令,返回相应的函数值,以此来判断语音命令,根据此返回的命令值来驱动小车的、舵机和动力电机来实现小车的行驶状态的控制。此过程中根据语音命令的识别结果,SPCE061A输出相应的语音提示,具有一定的人机交

20、互功能。设计框图如图4-2所示。MIC输入模块语音输出模块 SPCE061A动力电机模块A/D转换编码解码处理存储D/A转换IO口舵机驱动模块IO口图4-2 基于SPCE061A单片机语音遥控小车的设计框图 方案三同样采用凌阳科技公司的SPCE061A单片机,与方案二不同的地方就是方案二声音采集、电机驱动都基于一块SPCE061A单片机开发板,本方案把声音采集,电机驱动隔离开来。这里第一块SPCE061A开发板用于采集声音信号,如方案二判断出语音命令,然后把语音命令转换为固定码通过PT2262无线发射模块发射出去。第二块SPCE061A单片机开发板根据PT2272无线接收模块接收到的固定码值,

21、来判断第一块SPCE061A单片机开发板接收到的语音命令是“前进命令,还是其他语音命令。比方预先约定的“0001固定码代表“左拐命令,当接收到的固定码为“0001时,小车执行左拐动作。设计框图如图4-3所示。动力电机模块SPCE061A第二块编码解码处理存储D/A转换IO口舵机模块PT2272接收模块声音播放模块MIC输入模块SPCE061A第一块A/D转换编码解码处理存储IO口PT2262发射模块图4-3 基于两块SPCE061A单片机的语音遥控小车的设计 方案比拟根据设计要求,假设采用方案一即使用AT89C51单片机,需要额外添加语音模块、扩展存储器,外围器件,尤其语音芯片,扩展存储器等总

22、线器件,占用大量IO口,所以还需要进行端口扩展等其他操作;外接模块扩展接口会提高本钱,电路也将变的复杂,从而造成性能不稳定,降低运算速度。相对AT89C51单片机,SPCE061A单片机无需添加语音模块、AD/DA转换模块,且本身有32K的Flash,足够存储简单的语音命令,并且其运算速度也更胜一筹。所以采用凌阳SPCE061A单片机来设计语音遥控小车的设计。对于方案二和方案三,主要区别是方案二采用一块SPCE061A单片机来实现声音识别和小车电机驱动,方案三采用两块SPCE061A单片机来实现小车的语音控制,将声音识别和电机控制驱动别离开来,然后通过无线信号又将两者联系起来。方案三相对方案二

23、的优点是减小小车行驶过程中电机噪声的干扰,确保声音识别的准确性。除此之外,无线信号控制相对直接语音控制能有效延长遥控距离。出于这两方面的考虑,此设计采用第三种方案,即采用两块SPCE061A单片机开发板,将声音采集,和小车电机控制,别离开来,然后通过无线信号连接起来。 系统硬件设计 系统总体方案介绍 本系统基于凌阳科技公司开发的SPCE061A精简开发板,实物图如图5-1所示,将语音命令识别和电机驱动分别对待,其中一块专用于声音识别,对于不同的命令,通过无线发射模块实物如图5-2所示发射不同的固定码。接收模块根据接收的不同的固定码来判断语音命令的真正意图,通过IO口管脚操作来实现对小车的行驶状

24、态的。图5-1 凌阳SPCE061A开发板图5-2 无线发射接收模块5.2 SPCE061A单片机SPCE061A单片机是凌阳科技开发的一款基于nSP内核的16位单片机,具有一定的数字信号处理功能,该芯片拥有 8 路 10 位精度的 ADC,其中一路为音频信号专用转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件,能方便灵活的实现声音的录放。两路 10 位精度的 DAC,只需要外接功放SPY0030A即可完成语音的播放。116位nSP微处理器;2工作电压:内核工作电压VDD为3.03.6V(CPU),I/O口工作电压VDDH为VDD5.5V(I/O);3CPU时钟:0.32

25、MHz49.152MHz;4内置2K字SRAM;5内置32K闪存ROM;6可编程音频处理;7晶体振荡器;8系统处于备用状态下(时钟处于停止状态);92个16位可编程定时器/计数器(可自动预置初始计数值);102个10位DAC(数-模转换)输出通道;1132位通用可编程输入/输出端口;1214个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;13具备触键唤醒的功能;14 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;15 锁相环PLL振荡器提供系统时钟信号;16 32768Hz实时时钟;(17) 7通道10位电压模-数转换器(ADC)和单通道声音

26、模-数转换器;(18) 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;(19) 具备串行设备接口;(20) 低电压复位(LVR)功和低电压监测(LVD)功能;(21) 内置在线仿真板(ICE,In- Circuit Emulator)。图5-3 凌阳SPCE061A单片机内部结构 SPCE061A最小系统SPCE061A最小系统包括SPCE061A芯片及其外围的根本工作电路,包括晶振震荡电路OSC、锁相环外围电路PLL、复位电路RESET、电源指示指示电路等等,如图5-4所示。图5-4 凌阳SPCE061A单片机最小系统5.4 电源SPCE061A板采用3节5号电池进行

27、供电,由J10接入,其中前后两组电容用来去耦滤波,使其供应电源更加稳定。因为CPU工作电压一般为3.3伏电压,在电路上参加凌阳科技公司的SPY0029三端稳压芯片,此芯片能输出稳定的3.3V电压。两个二极管,是为了防止误将电源接反而设置的。在操作过程中不要将电源接反,因为反向电压超过一定值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源分成不同的几路是为了减少电磁干扰设置的。图8是电源局部的电路,4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺。SPY0029具有静态电流低、驱动能力强、线性调整出色等特点。V

28、DDH3为SPCE061A单片机的I/O电平参考,接SPCE061A单片机的51脚,这种接法使得I/O输出高电平为3.3V;VDDP为PLL锁相环电源,接SPCE061A单片机的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A单片机的15脚和36脚;AVSS1是模拟地,接SPCE061A单片机的24脚;VSS是数字地,接SPCE061A单片机的38脚; AVSS2接音频输出电路的AVSS2。61板电源模块电路如图5-5所示,SPCE061A单片机的内核供电为,而I/O端口可接3.3V5V,所以在电源模块61板上中有一个端口电平选择跳线,如图5-5中的J5。如果系统需要的端

29、口高电平为,所以图中的J5跳线需要跳到2和3上。图5-5 凌阳SPCE061A开发板电源模块5.5 无线发射接收模块PT2262、PT2272无线发射接收模块是基于PT2262/PT2272芯片的无线发射接收模块,PT2262/PT2272 是台湾普城公司生产的一种 CMOS 工艺制造的低功耗低价位通用编解码电路,PT2262/PT2272 最多可有 12 位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供 531441 地址码,PT2262 最多可有 6 位(D0-D5)数据端管脚,设定的地址码和数据码从 17 脚串行输出,可用于无线遥控发射电路。编码芯片 PT22

30、62 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片 PT2272 接收到信号后,其地址码经过两次比拟核对后,VT 脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262 不接通电源,其 17 脚为低电平,所以 315MHz 的高频发射电路不工作,当有按键按下时,PT2262 得电工作,其第 17 脚输出经调制的串行数据信号,当17 脚为高电平期间 315MHz 的高频发射电路起振并发射等幅高频信号, 当 17 脚为低平期间 315MHz 的高频发射电路停止振荡,所以高频发射电路完全收控于 PT

31、2262 的17 脚输出的数字信号,从而对高频电路完成幅度键控ASK 调制相当于调制度为 100的调幅。图5-6 无线发射模块 图5-7 无线接收模块因为无线发射模块考虑到发射距离采用12V供电,这里我们采用光电隔离。无线发射模块电路连接如图5-8所示。当语音识别后,IO口电平变为与之对应的数据码D0、D1、D2、D3四位,当某一位为“1,光电三极管导通,那么在该位上PT2262输入“1,否那么该位PT2262数据输入“0。通过这种方法获取并发送SPCE061A单片机识别语音命令对应的数据码。无线接收模块通过天线接收到数据码,通过D0、D1、D2、D3输出。SPCE061A单片机通过对IO的扫

32、描来判断是否有数据码接收,IO口对应D00、D01、D02、D03四位。当有数据码接收时,根据不同的数据码对H桥驱动IO口进行不同的电平转换,从而实现对电机的驱动,改变小车的行驶状态。无线接收模块电路如图5-9所示。图5-8 无线发射模块电路连接图5-9 无线接收模块电路连接 小车控制板控制板主要包括:接口电路、电源电路和两路电机的驱动电路,电路连接如图5-10。接口电路:接口电路负责将SPCE061A开发板的 I/O 接口信号传送给控制电路板,I/O 信号主要为控制电机需要的IOB8IOB11这四路信号,同时为了方便后续的开发和完善,预留了 IOB12IOB15 以及 IOA8IOA15 接

33、口,可以在这些接口上添加一些传感器。电源局部:整个小车有 4 个电源信号:电池电源,控制板工作电源,SPCE061A开发板工作电源,SPCE061A开发板的 I/O输出电源。系统供电由电池提供,控制板直接采用电池供电VCC,然后经二极管 D1 后产生SPCE061A开发板电源VCC_61,通过SPCE061A开发板的 Vio 跳线产生SPCE061A开发板的端口电源V1。 二极管D1作用: 1降压,4 节电池提供的电压 VCC 最大可到达 6V,D1 可有效地降压。 2保护,D1 可以防止电源接反烧坏SPCE061A开发板。电机驱动局部:分为舵机驱动和动力电机驱动,所以采用双H桥驱动。图5-1

34、0 小车控制板电路图H桥驱动原理:H桥一共有四个臂,分别为 B1B4,每个臂由一个开关控制,例如中为三极管 Q1Q4。 如果让Q1、Q2 导通Q3、Q4 关断,如图 5-11所示,此时电流将会流经Q1、负载、Q2 组成的回路,电机正转。图5-11 Q1、Q2导通时H桥工作状态图5-12 Q3、Q4导通时电桥工作状态如果让Q1、Q2 关断Q3、Q4 导通,如图 5-12所示,此时电流将会流经Q3、负载、Q4 组成的回路,电机反转。如果让Q1、Q2 关断Q3、Q4 也关断,负载Load两端悬空,此时电机停转,如图5-14。这样就实现了电机的正转、反转、停止三态控制。 如果让Q1、Q2 导通Q3、Q

35、4 也导通,那么电流将会流经Q1、Q4 组成的回路以及Q2 和Q3 组成的回路,如图 5-13所示,这时桥臂上会出现很大的短路电流。在实际应用时注意防止出现桥臂短路的情况,这会给电路带来很大的危害,严重的会烧毁电路。图5-13 Q1、Q2、Q3、Q4都导通时电机停转图5-14 Q1、Q2、Q3、Q4都不导通时电机停转 小车车体架构语音控制小车为四轮结构,前面两个车轮由前轮电机控制,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置,如果前轮方向有偏差,可调节方向旋钮。后面两个车轮由后轮电机驱动,为整个小车提供前行动力。图 5-15所示侧视图。前轮电机反向转动,后轮电机正向转动,这

36、时小车就是会在前后轮共同作用下朝右侧前行,如图 5-16所示。同理实现小车的向前直行,向后倒车,向左转等动作。后轮前轮 图5-15 车体侧视图图5-16 小车顶视右转图 SPCE061A精简开发板SPCE061A精简开发板简称61板,是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,除具备单片机最小系统电路外,还包括有电源电路、音频电路含MIC输入电路和DAC音频输出局部、复位电路。61板上有调试器接口Probe接口以及下载线EZ_Probe接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。61板上的主要功能模块如下

37、:1SPCE061A单片机最小系统外围电路模块;2电源输入模块;3音频电路包含Mic输入、DAC音频功放输出模块;4按键模块;5I/O端口接口模块;6调试、下载接口模块。 系统实物图实物图分两局部,图5-17为小车实物图;图5-18为语音遥控局部实物图。图5-17 小车实物图图5-18 语音遥控局部实物图 系统软件设计 软件结构本系统主要包括以下程序:小车训练子程序,语音识别子程序,无线信号发射子程序,电机驱动子程序,中断子程序。第一块开发板主程序流程图如图6-1所示,第二块开发板主程序流程图如图6-2所示。YNYN初始化训练小车保存训练结果进入识别模式语音识别清模型存储区等待复位重新训练发射

38、语音识别对应数据码已训练过开始装载语音模型图6-1 第一块开发板主程序流程图N播放相应交互语音执行相应电机操作Y接收到数据码初始化开始扫描键盘图6-2 第二块开发板主流程图系统的主程序流程如图6-1所示,分为四大局部:初始化局部、训练局部、识别局部、重训操作。初始化局部:初始化操作将 IOB8IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置和 PWM 端口设置等。 训练局部:训练局部完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过那么要求对其进行训练,并且会在训练成功之后将训练的模型存储到 Flash,在以后使用时不需要重新训练;如果已经训练过会把

39、存储在 Flash 中的模型调出来装载到辨识器中。 识别局部:在识别环节当中,如果辨识结果是名字,通过无线发射模块通知到第二块开发板,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。重训操作:考虑到有重新训练的需求,设置了重新训练的按键61 板的 KEY3,循环扫描该按键,一旦检测到此键按下,那么将擦除训练标志位0 xe000 单元,并等待复位。复位后,程序重新执行,当检测到训练标志位为 0 xffff时会要求重新对其进行训练。 语音识别原理简介语音识别主要分为“训练和“识别两个阶段。在训

40、练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行比照,如果二者到达了一定的匹配度,那么输入的语音被识别。具体语音识别流程图如图6-3所示。图6-3 语音识别流程图 训练子程序当程序检测到训练标志位BS_Flag内容为 0 xffff,就会要求操作者对它进行训练操作,训练操作的过程如图6-4所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:给我取个名字吧,这时你可以告诉它一个名字比方小强;然后它会提示:请再说一遍,这

41、时再次告诉它名字小强,如果两次的声音差异不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。图6-4 小车训练流程图下面是训练局部的子程序,在训练时如果训练不成功 TrainWord()返回值不为 0,要求重复训练,只有当训练成功,TrainWord()返回 0,进行下一条指令训练。void TrainSD() while(TrainWord(NAME_ID,S_NAME)

42、!= 0) ; /训练名称 while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; /训练第1 个动作 while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; /训练第2 个动作 while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; /训练第3 个动作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ; /训练第4 个动作 语音识别子程序语音识别流程如图6-5所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发那么会返

43、回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,那么结束运动如果当前在运动状态,进入待命状态,等待下一次的指令触发;如果ID号为动作,那么语音告知将要执行的动作,并执行该动作。图6-5 语音识别流程图 动作子程序动作子程序包括:前进、倒车、左拐、右拐、停车子程序; 前进:由小车的结构原理和驱动电路分析知:只要 IOB8 为高电平,IOB9,IOB10,IOB11 全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作,该局部程序如下: void GoAhead() /前进 PlaySnd(S_ACT1,3); /语音提示 *P_IOB_Dat

44、a=0 x0100; /前进 *P_INT_Mask |= 0 x0004; /开 2Hz 中断 _asm(int fiq,irq); uiTimecont = 0; /清定时器 倒车:由小车的结构原理分析和驱动电路分析知:只要 IOB9 为高电平,IOB8,IOB10,IOB11 全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作,程序如下:void BackUp() /倒退 PlaySnd(S_ACT2,3); /语音提示 *P_IOB_Data=0 x0200; /倒车 *P_INT_Mask |= 0 x0004; /开 2Hz 中断 _asm(int

45、fiq,irq); uiTimecont = 0; /清定时器 左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏 2.后轮前进,这时对应的 I/O状态为:IOB8、IOB10为高电平,IOB9、IOB11为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作,该局部程序如下: void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0 x0900; /前轮右偏 Delay(); /延时 *P_IOB_Data=0 x0500; /前轮左偏 *P_INT_Mask |= 0 x0004; /翻开 2Hz

46、 中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏 2.后轮前这时对应的 I/O状态为:IOB8、IOB11为高电平,IOB9、IOB10为低电平。右转子程序包括语音提示端口数据、启动定时器操作,该局部程序如下:void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0 x0500; /前轮左偏 Delay(); /延时 *P_IOB_Data=0 x0900; /前轮右偏 *P_INT_Mask |= 0

47、 x0004; /翻开 2Hz 中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 中断子程序虽然已经有了前进、后退以及停车通过直接呼叫小车的名字使其停车等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,参加了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于 2Hz时基中断完成, 图 6-6所示为该程序的流程图。可以在程序中修改uiTimeset参数来控制运行时间,当uiTimeset=2 时,运行时间为 1s,以此类

48、推。图6-6 中断子程序流程 操作步骤 硬件连接语音控制小车电路包括两大局部:SPCE061A开发板局部和控制板局部,硬件局部的连接主要用到SPCE061A的IOB8IOB11来控制小车的状态。 电源局部连接:电池电源直接接控制板电源接口 J1, J2接 61 板的电源,连接时注意电源极性。 代码下载硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为: 第一步:翻开集成开发环境,翻开“文件,编译链接。 第二步:点击菜单ProjectSelect Body,或者直接点击 图标翻开如图 7-1所示的对话框:图7-1 Select Body 对话框第三步:在弹出的对话框中选择 Body

49、 Name 为 SPCE061A,选择 Probe 为 EZ_Probe,点击 OK 按钮确定。 第四步:点击 IDE 工具栏上的 图标,选择 Use ICE 模式。 第五步:按 F8 快捷下载按钮,下载代码。 测试成功下载程序以后,去掉下载线并复位系统如果使用 EZ-Probe 还应将Probe 选择跳线 S5 拔去,小车就会提示对它进行训练。训练采用应答式训练,每条指令的训练次数为两次,每一条命令的训练过程都是一样的,以“前进为例说明: 步骤一:小车提示“前进; 步骤二:告诉小车“前进; 步骤三:小车提示“请再说一遍重复训练提示音; 步骤四:再次告诉小车“前进重复训练一次。这是一个完整的训

50、练过程,如果训练成功,小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;如果没有训练成功,小车会提示“说什么暗语呀或者“没有听到任何声音等信息,这样的话就要重复刚刚所说的四个步骤,直到成功为止。整个的训练过程共有 5 次这样的训练,依次为:名称前进后退左拐右拐。完成训练后,输入语音命令“前进,观察小车是否前行。 结论凌阳SPCE061A单片机的数字信号处理能力,独有的语音识别能力为本系统的设计提供了便利条件;32个可编程I/O口,使得扩展外围设备非常方便;CPU可工作在0.32MHz49MHz的主频范围,并且拥有丰富的时基、定时器,以及中断功能,实现了小车的语音控制功能。本课题在最

51、初设计的过程中,由于语音命令受外界的干扰大,语音命令发出后,很容易受到外界干扰,导致施令者一旦和小车距离过远,小车将接受不到命令。这种情况下,催生了方案三的提出,并得以实践。实验结果证明,采用无线语音遥控,大大增加小车的声控距离,降低了命令错误几率。参考文献:1谭浩强.C语言程序设计.北京:清华大学出版社,20052谭浩强,张基温.C语言程序设计教程.北京:高等教育出版社,19913彭伟.单片机程序设计100例.北京:电子工业出版社,2021年4马忠梅.单片机C语言应用程序设计.北京:北京航空航天大学出版社,20075郭天祥.新概念51单片机C语言教程.北京:电子工业出版社,20216 HYP

52、ERLINK :/search.dangdang /book/search_pub.php?category=01&key2=%C1%F5%F6%EF&order=sort_xtime_desc t _blank 刘鲲, HYPERLINK :/search.dangdang /book/search_pub.php?category=01&key2=%CB%EF%B4%BA%C1%C1&order=sort_xtime_desc t _blank 孙春亮.单片机C语言入门修订版.北京:人民邮电出版社,20217 HYPERLINK :/search.dangdang /book/search

53、_pub.php?category=01&key2=%B3%C2%B3%AC&order=sort_xtime_desc t _blank 陈超.C语言常用函数速查手册.北京:化学工业出版社,20219李晶皎.嵌入式语音技术及凌阳16位单片机应用.北京:北航出版社,200310 HYPERLINK :/search.dangdang /book/search_pub.php?category=01&key2=%BB%C6%BE%D5%C9%FA&order=sort_xtime_desc t _blank 黄菊生.单片机原理与接口技术.北京:国防工业出版社,200711罗亚非.凌阳16位单片机

54、应用根底.北京:北京航空航天大学出版社,200512沈美明,温冬蝉.IBM-PC汇编语言程序设计.北京:清华大学出版社,200113汪敏.凌阳16位单片机实验与实践.北京:北京航空航天大学出版社,200714齐向东,刘立群.单片机控制技术实践.北京:中国电力出版社,202115彭传正,林春景.凌阳单片机原理与实践.北京:北京航天航空大学出版社,200616杜刚.16位单片机原理及应用.北京:中国电力出版社,200717凌阳科技.凌阳单片机在大学生电子竞赛中的应用.北京:北京航天航空大学出版社,200518樊尚春.传感器技术与应用.北京:北京航空航天大学出版社,200419汪敏.凌阳16位单片机

55、实验与实践.北京:北京航空航天大学出版社,200720雷思孝.单片机原理及实用技术.西安:西安电子科技大学出版社,2003致 谢本论文是在王旭辉老师的悉心指导下完成的。王旭辉老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了根本的研究方法,还使我明白了许多待人接物与为人处世的道理。在本论文的写作过程中,我的导师王旭辉老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱。在此,谨向王旭辉老师表示崇高的敬意和衷心

56、的感谢!感谢指导教师王旭辉的关心、指导和教诲。写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。附 录第一块SPCE061A开发板程序如下:/=/ The information contained herein is the exclusive property of/ Sunnnorth Technology Co. And shall not be distributed, reproduced,/ or disclosed in whole in part without p

57、rior written permission./ (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO./ ALL RIGHTS RESERVED/ The entire notice above must be reproduced on all authorized copies./=/=/ 工程名称:Car_Demo/ 功能描述:实现小车的语音控制/ 涉及的库:/ / 组成文件:/Flash.asm, hardware.asm,ISR.asm / /硬件连接:IOA0-KEY1/IOA1-KEY2/IOA2-KEY3/IOB8-前进/IOB9-倒车/IOB

58、10-左拐/IOB11-右拐/维护记录:/=#include s480.h#include bsrsd.h#defineP_IOA_Data (volatile unsigned int *)0 x7000 #define P_IOA_Dir (volatile unsigned int *)0 x7002#define P_IOA_Attrib (volatile unsigned int *)0 x7003#define P_IOB_Data(volatile unsigned int *)0 x7005 #define P_IOB_Dir(volatile unsigned int *)

59、0 x7007 #define P_IOB_Attrib(volatile unsigned int *)0 x7008 #define P_TimerA_Data(volatile unsigned int *)0 x700A #define P_TimerA_Ctrl(volatile unsigned int *)0 x700B #define P_TimerB_Data(volatile unsigned int *)0 x700C #define P_TimerB_Ctrl(volatile unsigned int *)0 x700D #define P_Watchdog_Clea

60、r(volatile unsigned int *)0 x7012 #define P_INT_Mask(volatile unsigned int *)0 x702D #define P_INT_Clear(volatile unsigned int *)0 x7011 #define NAME_ID 0 x100#define COMMAND_GO_ID 0 x101#define COMMAND_BACK_ID 0 x102#define COMMAND_LEFT_ID 0 x103#define COMMAND_RIGHT_ID 0 x104#define S_NAME0/给我取个名字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论