基于单片机的语音控制小车毕业论文_第1页
基于单片机的语音控制小车毕业论文_第2页
基于单片机的语音控制小车毕业论文_第3页
基于单片机的语音控制小车毕业论文_第4页
基于单片机的语音控制小车毕业论文_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . 基于单片机的语音控制小车设计摘要随着电子工业的发展,具有语音控制功能的小车越来越受到人们的青睐,在人们的日常消费生活中起着不可忽视的作用。目前,声控技术已在很多领域得到使用。本文对语音控制功能的小车概况做了阐述。在硬件设计方面,本论文以凌阳公司的SPCE061A单片机为控制核心,以语音小车控制电路板为辅,设计小车的动作。完成了电源电路、复位电路、键盘电路、音频输入电路,音频输出电路和无线控制电路等硬件功能模块的设计。在软件方面,利用C语言进行编程,进行语音的“训练”和“识别”。设计出具有如下功能的语音声控小车:能够根据录制的语音命令来控制小车的前进,后退,左转,右转的功能。测试

2、表明,在环境背景噪音不太大,控制者的发音清晰的前提下,语音控制小车的语音识别系统能对特定的语音指令做出智能反应,做出预想中的有限的动作。论文首先对系统的方案进行论证,然后对各单元的软件、硬件工作原理进行了阐述,并介绍了系统的主要组成部分情况。关键词:SPCE061A,语音识别,全桥驱动,小车Voice control car design based on single chip microcomputerAbstractWith the development of the electronics industry, the voice - the control car become mo

3、re and more popular to people. And it plays an important role in people 's daily life. At present, the voice - activated technology has had 2 in many fields, For example, voice - activated phone. Only if you called out the names you want and it automatically called to the telephone. This article

4、 gives a detail to the voice-activated car. In hardware design, the paper use Sunplus SPCE061A as the control of core. On the software, we use C language programming for voice "training"and"recognition". pletedthepowercircuit,resetcircuit,keyboardcircuitry,audioinputcircuits,audi

5、ooutputcircuitandcontrolcircuitofwirelesshardwaresuchasthedesignoffunctionmodules.It has the following features: According to recorded the voice command to control the car to start, stop,turn right , and turn left. Tests have shown that background noise in the environment is not too big, the control

6、ler under the premise of clear pronunciation, voice control car voice recognition system can make intelligent response to a particular voice commands, limited, as expected. First of all, cca shut confirm the system of the program, and then describe the unit 's software and hardware as well as in

7、troduce the main components of the situation.Key words:SPCE061A,Speech Recognition,Full-bridge ,driver,Trolley目 录摘要IAbstractII第1章绪论- 1 -1.1 选题的目的和意义- 1 -1.1.1选题目的- 1 -1.1.2.选题意义- 1 -1.2 语音小车的发展与现状- 1 -1.3 课题的目的任务和要求- 2 -第2章语音小车的方案论证- 3 -2.1 语音控制方案- 3 -2.2 方案论证- 4 -2.2.1 采用DSP+FPGA方案- 4 -2.2.2采用MCS-5

8、1方案- 4 -2.2.3 采用凌阳61方案- 5 -2.3 系统控制方案- 6 -第3章系统硬件设计- 9 -3.1 系统硬件总体设计- 9 -3.2 系统各单元设计- 10 -3.2.1 控制单元设计- 10 -3.2.2 动力单元设计- 15 -3.2.3 音频单元设计- 16 -3.2.4 小车单元设计- 19 -3.3 系统总体电路图- 26 -第4章系统软件设计- 27 -4.1 系统总体程序设计- 27 -4.2 系统各分支设计- 28 -4.2.1训练子程序- 28 -4.2.2语音识别子程序- 29 -4.2.3动作子程序- 31 -4.2.4中断子程序- 34 -第5章系统

9、调试- 37 -5.1 硬件调试- 37 -5.2 软件调试- 38 -5.3 系统联调- 39 -结论- 41 -参考文献- 43 -致- 45 -附录- 47 - 57 - / 62第1章 绪 论1.1 选题的目的和意义1.1.1选题目的 通过设计一个用单片机控制的语音小车来熟悉模块化编程方法,掌握C语言汇编语言的程序设计和调试方法,并理解单片机的原理、结构、指令;运行模式与应用方法。1.1.2.选题意义语音识别系统的实用化研究是语音识别研究的一个主要方向。以玩具市场为例,具有高科技含量的电子玩具、智能玩具发展迅猛,电子互动式、智能化玩具已经成为玩具行业发展的主流。我国是玩具生产和出口大国

10、,但在高科技玩具的发展方面和国外的差距很大,因此,与时投入精力广泛开展这方面的研究,无论对技术创新应用,还是社会经济发展,都有巨大的现实意义。与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。语音识别功能大大增加了玩具使用的乐趣,并使玩具体现出一定的智能性,因此成为大部分电子玩具、智能玩具设计中使用的关键技术。本文利用凌阳单片机设计一个具有语音识别功能的智能遥控小车。该设计将遥控车由传统的手动遥控改成了语音识别遥控,集成了先进的语音

11、识别技术,加上小车的机动灵活的特点,使控制者可以通过语音控制小车实现预设动作,从而释放控制者的双手,而且小车和控制者之间还具有一定的交互功能。所以此次研究具有较强的实用性和发展前景。1.2 语音小车的发展与现状随着微电子技术、计算机技术、与传感器技术的迅速发展,现今声控技术已经应用到社会中的各个角落,为人们提供着各种便利。1、声控玩具车:进一步提高系统的滤噪性能,和识别的准确率,并利用已有的软件开发出独具特色的语音芯片,并将其集成在遥控上即可做出声控玩具车。2、能识别主人的看门狗:在本系统的基础上扩充对说话者的识别功能,并将软件硬件化,集成在芯片上。将芯片置于防盗门上,使之可以完成主人叫门即开

12、门的功能。3、真实汽车上的声控系统:在驾驶的过程中,不便于用手来完成的其它操作可以用声控系统来实现。这于我们的系统是极其相似的。但是实际的汽车中可能存在着大量的噪声,所以,滤噪便成为最为关键的技术。声控技术虽然是一项比较先进的技术。但是,声控技术在无限传输时的合成的质量不是很好,它还需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥,具体来说表现在以下几个方面:1 、时效型。从发出指令到执行指令,有一段延迟时间,虽已降低到尽可能的小,但还是很明显。可行的方法就是改用高效的DSP芯片,这在经费上和时间上都是不允许的。2.、对环境的适应。如果环境噪声很大,或偶

13、尔出现较大的噪声,则会出现误识。这个不足之处还没有很有效的解决方案。3、多人识别。各人的发音不尽一样,因此该系统还限于单人识别。若要做多人识别,则识别的时效性会降低,即有很大的延迟。另外,多人识别,也没有较为有效、成熟的算法供参考。1.3 课题的目的任务和要求声控小车其技术要通过相关语音对小车进行操作控制。使用了“前、后、左、右、停”五个字作为小车行驶的指令。本毕业设计有助于培养我们的独立动手能力、思考能力。具体的项目制作过程分为两部分:软件部分和硬件部分。其目的让我们熟悉61板的设计与制作,并掌握其原理;学会运用C语言进行编程且运用。语音控制小车的主要功能:1. 可以通过简单的I/O操作实现

14、小车的前进、后退、左转、右转功能;2. 配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;3. 可以在行走过程中声控改变小车运动状态;4. 在超出语音控制围时能够自动停车。第2章 语音小车的方案论证2.1 语音控制方案2.1.1基本原理机器语音识别、处理的过程与人对语音识别、理解过程基本上是一致的,目前主流的语音识别技术是基于统计模式识别的基本理论。一个完整的语音识别系统可大致分为语音特征提取、声学模型与模式匹配(识别算法)和语义理解3部分。其基本原理如图2.1所示。图2.1语音识别系统原理框图从图中我们可以看出语音识别一般分为2个步骤:第一步是系统“学习”

15、或“训练”阶段,这一个阶段的任务是建立识别基本单元的声学模型以与进行文法分析的语言模型,即构建参考模式库;第二步是“识别”或“测试”阶段,根据识别系统的类型选择能够满足要求的识别方法,采用语音分析方法分析出这种识别方法所要求的语音特征参数,按照一定的准则和测度与参考模式库中的模型进行比较,通过判决得出结果。2.1.2语音识别系统的构成语音识别系统的基本结构主要包括预处理、A /D转换、起止点识别、特征提取和识别判断等部分, 结构如下图2.2所示。话筒A/D转换预处理特征提取起止点识别模板存储识 别判断图2.2语音识别系统的基本结构2.2 方案论证2.2.1采用DSP+FPGA方案语音识别根据实

16、际需要和应用场合的不同,可以分为孤立词识别和连续语音识别、特定人识别和非特定人识别。语音识别追求的主要指标为高识别率、实时性和大词汇量;而对于一个语音识别系统,还应考虑软硬件设计简单、价格低廉、外围控制灵活、人机交互便捷等特点。现在应用于语音识别的芯片主要为DSP(数字信号处理器)芯片:如TI公司的TMS320系列。然而, 将DSP 芯片用于小型语音识别系统中, 其不足之处是很明显的:引脚多、价格贵、使用繁琐;控制功能弱,常需要与单片机或FPGA (现场可编程门阵列)结合, 来实现人机交互; 常需要外接A /D 转换芯片;引脚为3. 3 V,与单片机、FPGA、F lash 存储器等连接时,要

17、考虑电平匹配。这些将使整个系统结构庞大,设计繁琐。2.2.2采用MCS-51方案采用 MCS-51 系列单片机实现,由于有语音识别和语音播放功能,所以需要扩展语音识别模块和语音播放模块,这样必然造成端口的资源紧,所以还必须加入接口扩展芯片。该实现方案结构如图 2.3所示。 IOMCS_51 接口总线接口扩展模块语音识别模块语音播报模块电机驱动模块图2.3采用 MCS-51 系列单片机实现语音控制小车2.2.3采用凌阳61方案SPCE061A是凌阳科技推出的一个16位结构的微控制器。CPU时钟频率为03249152 MHz,具有较高的处理速度,可使n SPTM能够非常容易、快速地处理复杂的数字信

18、号;拥有可编程音频处理;置2 K Word的SRAM和32 K Word的FLASH;2个16位可编程定时器计数器(可自动预置初始计数值),2个10位DAC输出通道,32位通用可编程输入输出端口。它是数字语音识别应用领域产品中的一种比较经济的选择。图2.4基于SPCE061A的语音控制小车实现方案本案采用采用SPCE061A实现语音控制小车方案。系统结构框图2.5如下: 凌阳SPCE061A单片机方向控控制电路MIC 语音输入电路方向电机 驱动电机 音频放大电路SPK驱动控制电路KEY61板图2.5结构系统图系统组成主要包括以下两部分:SPCE061A精简开发板、语音小车控制电路板。图中的语音

19、输入部分MIC_ IN、按键输入KEY、声音输出部分的功率放大环节等已经做到了精简开发板61 板上,为我们使用提供了很大的方便。在电机的驱动方面,采用全桥驱动技术,利用四个I/O端口分为两组分别实现两个电机的正传、反转和停三态运行。2.3 系统控制方案小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车动作之后,随时可以通过语音指令改变小车的运动状态。在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间到,中断服务程序会发出指令让小车停下来。第3章系统硬件设计3.1 系统硬件总体设计系统的硬件方面,由于大部分的功能实现都是在61板上

20、完成的,只有电机控制部分电路另外设计在一块独立的电路板上,我们称之为控制板。下面详细的介绍小车的结构和运行原理以与控制电路板的结构和功能实现。MIC滤波KEYSPCE061A功效SPK方向控制桥路驱动控制桥路方向电机驱动电机图3.1 总体设计框图SPCE061A芯片MIC输入口复位按钮控制按钮程序接 口图3.2 系统硬件框图3.2 系统各单元设计3.2.1控制单元设计SPCE061A最小系统中,包括 SPCE061A芯片与其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等。图3.3 61板最小系统SPCE061A

21、芯片特性简介SPCE061A是一种十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外十六位单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准C语言编程,也支持C语言与汇编语言的互相调用。另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。SPCE061是一款拥有2KRAM、32KFlash、32个I

22、/O口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。SPCE061A 是继µnSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以与便于程序调试等功能,SPCE061A里只嵌32K字的闪存(FLASH)。较高的处理速度使µnSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以µnSP为核心的S

23、PCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。SPCE061A特性:u16 位nSP 微处理器;u工作电压:核工作电压 VDD为 3.0V3.6V(CPU),I/O口工作电压 VDDH为 VDD5.5V(I/O);uCPU时钟:0.32MHz49.152MHz;u置 2K字 SRAM;u置 32K闪存 ROM;u可编程音频处理;u晶体振荡器;u系统处于备用状态下(时钟处于停止状态),耗电小于 2A3.6V;u2 个 16 位可编程定时器/计数器(可自动预置初始计数值);u2 个 10 位 DAC(数-模转换)输出通道;u32 位通用可编程输入/输出端口;u14 个中

24、断源可来自定时器 A / B,时基,2 个外部时钟源输入,键唤醒;u具备触键唤醒的功能;u使用凌阳音频编码 SACM_S240 方式(2.4K位/秒),能容纳 210 秒的语音数据;u锁相环 PLL 振荡器提供系统时钟信号;u32768Hz 实时时钟;u7 通道 10 位电压模-数转换器(ADC)和单通道声音模-数转换器;u声音模-数转换器输入通道置麦克风放大器和自动增益控制(AGC)功能; u具备串行设备接口;u低电压复位(LVR)功和低电压监测(LVD)功能;u置在线仿真板另外,SPCE061A单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C

25、语言与凌阳汇编语言的互相调用,并且提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。精简开发板61 板SPCE061A精简开发板(简称 61 板,SPCE061A EMU BOARD的简称),是以凌阳16 位单片机SPCE061A为核心的精简开发仿真实验板,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作与电子竞赛所设计的,也可作为单片机项目初期研发使用。61板”除了具备单片机最小系统电路外,还包括有电源电路、复位电路、ICE 电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)等。“61

26、板”可以采用电池供电。1. SPCE061A功能 61板上有调试器接口(Probe 接口)以与下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合 unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。图3.4SPCE061 板硬件框图表3.1 框图说明POWER5V&3V 供电电路PLL锁向环外部电路Power电源指示灯Sleep睡眠指示灯RESET复位电路K4复位按键PROBE在线调试器串行5 针接口S5EZ-PROBE 和PROBE 切换的拨断开关J12、J3耳机插孔和两针喇叭插针DAC一路音频输出电路,采用SPY0030 集成音频放大器MIC麦

27、克风输入电路OSC32768 晶振电路VREFA/D 转换外部参考电压输入接口R/C芯片其他外围电阻、电容电路 K1K1K3扩展的按键:接IOA0IOA2SPCE061A61 板核心:16 位微处理器PORTA/B32 个I/O 口61 板接口说明如图3.3所示:261 板输入/输出(I/O)接口61 板将SPCE061A的32 个I/O 口IOA0IOA15,IOB0IOB15 全部引出,对应的引脚为:A 口,4148、53、5460;B 口,51、8176、6864。而且该I/O 口是可编程的,即可以设置为输入或输出。设置为输入时,分为悬浮输入或非悬浮输入。非悬浮输入又可以设置为

28、上拉输入或是下拉输入。在5V 情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同向输出或者反相输出。图3.5 SPCE061 板接口说明图3音频输入/输出接口正如我们在前面介绍的 61 板具有强大的语音处理功能,如图3.5所示,X1 是语音的MIC 输入端,带自动增益(AGC)控制。J12 和J3 都是语音输出接口,一个是耳机插孔;另一个是两针的插针外接喇叭,由DAC 输出引脚21 或22 经语音集成放大器SPY0030 放大,然后输出。SPY0030 是凌阳的芯片,相当于LM386,但是比386 音质好。它可以工作在2.46.0V围,最大输出功率可达700mW(LM38

29、6 必须工作在4V 以上,而且功率只有100mW)。4 在线调试器(PROBE)和EZ-PROBE 接口.图3.5中J4 为PROBE 的接口,该接口有5 针,其中两个分别是地(VSS)和3.3V 电源(VCC)。此接口与PROBE 的5 针接口相连,PROBE 的另一端接PC 机25 针并口。这样,就不需要再用仿真器和编程器了,只要按如图3.4所示将其连接好,就可以通过它在PC 机上调试程序、在线仿真、最后将程序下载到芯片中,完成程序的烧写。如图3.5中的J11 是EZ-PROBE 的接口,我们提供一根转接线用作EZ-PROBE 的下载,一端连接PC 机的25 针并口,另外一端连接61 板的

30、5 针 EZ-PROBE 接口,如图3.6所示:图3.6 61、PROBE/连接线、计算机三者之间的连接图3.2.2动力单元设计电源部分的电路,由电池盒提供的 4.5V直流电压经过 SPY0029 后产生 3.3V给整个系统供电。SPY0029 是凌阳公司设计的电压调整 IC,采用 CMOS 工艺,具有静态电流低、驱动能力强、线性调整出色等特点,如图3.7图中的 VDDH3 为 SPCE061A的 I/O电平参考,如果该点接 SPCE061A(PLCC84 封装,下面的介绍中当出现 SPCE061A的引脚描述时,均指此封装的芯片)的 51 脚,可使 I/O输出高电平为 3.3V;VDDP为PL

31、L锁相环电源,接SPCE061A的7脚; VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚; AVSS1是模拟地,接SPCE061A的24脚; VSS是数字地,接SPCE061A的38脚; AVSS2接音频输出电路的 AVSS2。图中前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的3.3V电压,加入SPY0029A三端稳压器。两个二极管D3和D4,是为防止误将电源接反造成不必要损失而设置的,注意在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。图3.7电源电路图3.2.3音频单元设计音频电路由音

32、频输出和音频输入两部分组成。SPCE061A置 2路10 位精度的 DAC,只需要外接功放电路即可完成语音的播放。图中的 SPY0030 是凌阳的一款音频放大芯片,可以工作在 2.46V围,最大输出功率可达 700mW。 SPCE061A 芯片中已经集成了音频输入专用 ADC 以与 AGC 放大电路,因此芯片外部的电路比较简单。图3.8音频电路音频输入部分如图3.9,MICP和MICN将随着MIC产生的波形变化,并在两个端口处形成两路反相的波形,再经过两级运放放大,把放大的语音信号交给ADC转换为数字量,这个时候就可以通过单片机编程对这些数据进行处理,比如说进行语音数据压缩、语音识别等。图3.

33、9音频输入外围电路音频输出部分SPY0030A是凌阳公司开发的专门用于语音信号放大的芯片,它的增益为:Gain = 2 * 5000 / ( 5000 + R1 ),如图3.10是SPY0030的典型应用电路。图3.10 SPY0030A工作原理图数摸转换电路凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路(只列出DAC1,DAC2类似),这为单片机的音频设计提供了极大方便。在它们后面接一个简单的音频放大电路和喇叭即可实现语

34、音播报功能。图3.11数模转换电路按键、LED和复位电路此电路主要是对电源和睡眠指示作用以与复位重新训练小车等作用如3.12图示。图3.12按键电路图3.13复位电路 图3.14 LED电路3.6 下载线接口电路和在线调制电路此电路主要是下载程序代码和在线调试程序,为其那片机提供灵魂。如图3.15所示。图3.15下载调制电路MCU连接电路微处理电路即其小系统电路如图3.16所示,也是整个设计的核心部分,此单片机是16位单片机具有强大的处理功能,外部的其它信息由其处理后在传出,以达到控制效果。图3.16微处理器连接图3.2.4小车单元设计语音控制小车为四轮结构。其中前面两个车轮由前轮电机控制,在

35、连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮。1、小车的行走原理(1)车体介绍语音控制小车为四轮结构,如图 3.17所示。后轮前轮图3.17车体侧视图其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,如图 3.18所示。前驱动电机后驱动电机图3.18车体侧视图(

36、2)小车的行走原理直走:由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。如图3.19 所示;图3.19小车前进原理图倒车:倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动,如图3.20所示图3.20小车倒车示意图左转:前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进,如图3.21所示图3.21小车左转示意图右转:前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进,如图 3.22所示;图3.22小车右转示意图2、控制板原理图控制板主要包括:接口电路、电源

37、电路和两路电机的驱动电路,控制板原理图如图3.23所示。接口电路:接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12IOB15以与IOA8IOA15接口,可以在这些接口上添加一些传感器。电源部分:整个小车有4个电源信号:电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。二极管D1作用:1、降压,4节电池提供的电压VC

38、C最大可达到6V,D1可有效地降压。2、保护,D1可以防止电源接反烧坏61板。图3.23控制板原理图3、全桥驱动原理全桥驱动又称 H桥驱动,下面介绍一下 H桥的工作原理:H桥一共有四个臂,分别为 B1B4,每个臂由一个开关控制,示例中为三极管 Q1Q4。如果让 Q1、Q2 导通 Q3、Q4 关断,此时电流将会流经 Q1、负载、Q2 组成的回路,电机正转如果让 Q1、Q2 关断 Q3、Q4 导通,如图4.16所示,此时电流将会流经 Q3、负载、Q4 组成的回路,电机反转。如果让 Q1、Q2 关断 Q3、Q4 也关断,负载 Load 两端悬空,如图3.24所示,此时电机停转。这样就实现了电机的正转

39、、反转、停止三态控制。如果让 Q1、Q2 导通 Q3、Q4 也导通,那么电流将会流经 Q1、Q4 组成的回路以与 Q2和 Q3 组成的回路,如图3.25所示,这时桥臂上会出现很大的短路电流。在实际应用时注意避免出现桥臂短路的情况,这会给电路带来很大的危害,严重的会烧毁电路。图3.24 B1B4 全部停止工作时的H 桥简图图3.25 B1B4 全部工作时的 H 桥简图动力电机驱动电路动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图3.26所示:Q1、Q2、Q3、Q4 四个三极管组成四个桥臂,Q1 和 Q4 组成一组,Q2 和Q3 组成一组,Q5

40、 控制 Q2、Q3 的导通与关断,Q6 控制 Q1 和 Q4 的导通与关断,而 Q5、Q6 由 IOB9 和 IOB8控制,这样就可以通过 IOB8 和 IOB9 控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。图3.26动力电机驱动电路图表3.2小车运行状态与端口对照:IOB11IOB10IOB9IOB8后电机前电机小车0000停转停转停0001正转停转前进0010反转停转倒退0101正转正转左前转1001正转反转右前转另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表3.3所示:表3.3端口对照

41、表IOB11IOB10IOB9IOB8后电机前电机小车0110正转正转右后转1010正转反转左后转注意:为了小车的安全请不要出现以下两种组合情况:表3.4禁止的输入状态列表IOB11IOB10IOB9IOB8后电机前电机小车*11停转*停11*停转停3.3 系统总体电路图图3.27 总体电路图第4章系统软件设计4.1 系统总体程序设计系统的总体程序流程如图4.1 所示:YNNY初始化 开始已经训练过训练小车保存训练结果进入识别模式语言识别与执行重新训练清模型存储区等待复位语音模型图4.1 系统总体程序流程图语音识别小车的主程序流程如图4.1所示,分为四大部分:初始化部分、训练部分、识别部分、重

42、训操作。初始化部分:初始化操作将 IOB8IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM 端口设置等。训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH 中的模型调出来装载到辨识器中。识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。重训操作:考

43、虑到有重新训练的需求,设置了重新训练的按键(61 板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。下面详细介绍以上提到的子程序。4.2 系统各分支设计4.2.1训练子程序当程序检测到训练标志位BS_Flag容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图4.2所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:给我取个名字吧,这时你可以告诉它一个名字(比如Jack);然后它会提示:请再说一遍,这时再次告诉它名字(Jack

44、),如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。图4.2训练流程图void TrainSD()while(TrainWord(NAME_ID,S_NAME) != 0) ; /训练名称while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; /训练第1个动作while(TrainWord(COMMAND_BACK_I

45、D,S_ACT2) != 0) ; /训练第2个动作while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; /训练第3个动作while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ;/训练第4个动作4.2.2语音识别子程序语音识别流程如图4.3所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则结束运动(如果当前在运动状态),进入待命状态,等待下一次的指令触发;如果 ID 号为动作,则语音告知将要执行的动作,并执行该动作。注

46、:语音识别程序在语音中断函数中进行。NY语音识别语音触发前进指令倒车指令左转指令右转指令名字前进倒车左转右转停车命令返回图4.3语音识别部分流程图void BSR(void)int Result;/辨识结果寄存Result = BSR_GetResult();/获得识别结果if(Result>0)/有语音触发?*P_IOB_Data=0x0000;/临时停车switch(Result)case NAME_ID:/识别出名称命令Stop();/停车待命break;case COMMAND_GO_ID:/识别出第一条命令GoAhead(); /执行动作一:直走break;case COMMA

47、ND_BACK_ID:/识别出第二条命令BackUp();/执行动作二:倒车break;case COMMAND_LEFT_ID:/识别出第三条命令TurnLeft();/执行动作三:左转break;case COMMAND_RIGHT_ID:/识别出第四条命令TurnRight();/执行动作四:右转break;default:break;4.2.3动作子程序动作子程序包括:前进、倒车、左拐、右拐、停车子程序。前进:由小车的结构原理和驱动电路分析知:只要IOB8 为高电平,IOB9,IOB10,IOB11 全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作。倒

48、车:由小车的结构原理分析和驱动电路分析知:只要IOB9 为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作。左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏2.后轮前进,这时对应的 I/O 状态为:IOB8、IOB10 为高电平,IOB9、IOB11 为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作。右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏2.后轮前进,这时对应的 I/O 状态为:IOB8、IOB11 为高电平,IOB9、IOB10 为低电平

49、。右转子程序包括语音提示、置端口数据、启动定时器操作。注:在转弯之前首先让前轮朝目标方向的反方向偏转,然后再让前轮朝目标方向偏转,这样前轮的摆动围更大,惯性更大,摆幅也最大,能更好实现转弯。void GoAhead() /前进 PlaySnd(S_ACT1,3);/提示*P_IOB_Data=0x0100;/前进*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm("int fiq,irq");uiTimecont = 0;/=/ 语法格式:void BackUp();/ 实现功能:后退子函数/ 参数:无/ 返回值:无/=void BackUp() /倒

50、退PlaySnd(S_DCZY,3);/提示*P_IOB_Data=0x0200;/倒退*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm("int fiq,irq");uiTimecont = 0;/=/ 语法格式:void TurnLeft();/ 实现功能:左转子函数/ 参数:无/ 返回值:无/=void TurnLeft() /左转PlaySnd(S_GJG,3);*P_IOB_Data=0x0900;/右转Delay();/延时*P_IOB_Data=0x0500;/左转*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm

51、("int fiq,irq");uiTimecont = 0;/=/ 语法格式:void TurnRight();/ 实现功能:右转子函数/ 参数:无/ 返回值:无/=void TurnRight() /右转PlaySnd(S_GJG,3);/语音提示*P_IOB_Data=0x0500;/左转Delay();/延时*P_IOB_Data=0x0900;/右转*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm("int fiq,irq");uiTimecont = 0;/=/ 语法格式:void Stop();/ 实现功能:停车子函数/ 参数:无/ 返回值:无/=void Stop() /停车*P_IOB_Data=0x0000;/停车PlaySnd(S_RDY,3);/语音提示4.2.4中断子程序虽然已经有了前进、后退以与停车(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令

温馨提示

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

评论

0/150

提交评论