基于单片机的语音控制小车毕业设计论文

上传人:沈*** 文档编号:206213093 上传时间:2023-05-02 格式:DOC 页数:62 大小:1.63MB
收藏 版权申诉 举报 下载
基于单片机的语音控制小车毕业设计论文_第1页
第1页 / 共62页
基于单片机的语音控制小车毕业设计论文_第2页
第2页 / 共62页
基于单片机的语音控制小车毕业设计论文_第3页
第3页 / 共62页
资源描述:

《基于单片机的语音控制小车毕业设计论文》由会员分享,可在线阅读,更多相关《基于单片机的语音控制小车毕业设计论文(62页珍藏版)》请在装配图网上搜索。

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 bec

3、ome more 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 articl

4、e 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 trainingandrecognition. .Completedthepowercircuit,resetcircuit,keyboardcircuitry,audioinputcircuits,audiooutputcircuitandco

5、ntrolcircuitofwirelesshardwaresuchasthedesignoffunctionmodules.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 controller under the premi

6、se 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 introduce the main compone

7、nts 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-51方案- 4 -2.2.3 采用凌阳61

8、方案- 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章 系统调试- 37 -5.1 硬件调试-

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

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

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

12、驾驶的过程中,不便于用手来完成的其它操作可以用声控系统来实现。这于我们的系统是极其相似的。但是实际的汽车中可能存在着大量的噪声,所以,滤噪便成为最为关键的技术。声控技术虽然是一项比较先进的技术。但是,声控技术在无限传输时的合成的质量不是很好,它还需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥,具体来说表现在以下几个方面: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板最小系统S

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

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

23、061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。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语

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

26、分)等。“61 板”可以采用电池供电。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 集成音频放大

27、器MIC麦克风输入电路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(

29、LM386 必须工作在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 针并口,另外一端连接6

30、1 板的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;V

31、DDP为PLL锁相环电源, 接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转换为数字量,这个时候就可以通过单片机编程对这些数据进行处理,比如说进

33、行语音数据压缩、语音识别等。图3.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.1

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

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

38、V1)。 二极管D1作用: 1、降压,4节电池提供的电压VCC最大可达到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 也关断,负载 L

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

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

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

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

43、为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。 重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61 板的KEY3) ,循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元) ,并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。 下面详细介绍以上提到的子程序。4.2 系统各分支设计4.2.1训练子程序当程序检测到训练标志位BS_Flag内容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图 4.2所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会

44、提示:给我取个名字吧, 这时你可以告诉它一个名字 (比如Jack) ; 然后它会提示: 请再说一遍, 这时再次告诉它名字 (Jack) ,如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。图4.2训练流程图void TrainSD()while(TrainWord(NAME_ID,S_NAME) != 0) ; /训练名称while(TrainWord(C

45、OMMAND_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个动作4.2.2语音识别子程序 语音识别流程如图 4.3所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名

46、称,则结束运动(如果当前在运动状态) ,进入待命状态,等待下一次的指令触发;如果 ID 号为动作,则语音告知将要执行的动作,并执行该动作。注:语音识别程序在语音中断函数中进行。NY语音识别语音触发前进指令倒车指令左转指令右转指令名字前进倒车左转右转停车命令返回图4.3语音识别部分流程图void BSR(void)int Result;/辨识结果寄存Result = BSR_GetResult();/获得识别结果if(Result0)/有语音触发?*P_IOB_Data=0x0000;/临时停车switch(Result)case NAME_ID:/识别出名称命令Stop();/停车待命brea

47、k;case COMMAND_GO_ID:/识别出第一条命令GoAhead(); /执行动作一:直走break;case COMMAND_BACK_ID:/识别出第二条命令BackUp();/执行动作二:倒车break;case COMMAND_LEFT_ID:/识别出第三条命令TurnLeft();/执行动作三:左转break;case COMMAND_RIGHT_ID:/识别出第四条命令TurnRight();/执行动作四:右转break;default:break;4.2.3动作子程序 动作子程序包括:前进、倒车、左拐、右拐、停车子程序。 前进:由小车的结构原理和驱动电路分析知:只要IO

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

49、知:小车右转需要两个条件:1.前轮右偏2.后轮前进,这时对应的 I/O 状态为:IOB8、IOB11 为高电平,IOB9、IOB10 为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作。 注:在转弯之前首先让前轮朝目标方向的反方向偏转,然后再让前轮朝目标方向偏转,这样前轮的摆动范围更大,惯性更大,摆幅也最大,能更好实现转弯。void GoAhead() /前进 PlaySnd(S_ACT1,3);/提示*P_IOB_Data=0x0100;/前进*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm(int fiq,irq);uiTimecont = 0;/=/ 语

50、法格式:void BackUp();/ 实现功能:后退子函数/ 参数:无/ 返回值:无/=void BackUp() /倒退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_Da

51、ta=0x0500;/左转*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm(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;/=/ 语法格

52、式:void Stop();/ 实现功能:停车子函数/ 参数:无/ 返回值:无/=void Stop() /停车*P_IOB_Data=0x0000;/停车PlaySnd(S_RDY,3);/语音提示4.2.4中断子程序 虽然已经有了前进、后退以及停车(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于 2Hz 时基中断完成,所示为该程序的流程图。可以在程序中修改u i Time s

53、et 参数来控制运行时间,当ui Time set=2 时,运行时间为1s,以此类推。void IRQ5(void)_attribute_(ISR);/运动定时控制void IRQ5(void) if(uiTimecont+ = uiTimeset)*P_IOB_Data = 0x0000;*P_INT_Clear = 0x0004;程序中需要说明的几个问题在程序中可能有几个地方不易理解,下面我向大家说明一下: 首先,小车有没有被训练过是怎么知道的? 在这里利用了一个特殊的 Flash 单元, 语音模型存储区首单元 (该示例程序中为 0xe000单元) 。 当 Flash在初始化以后,或者在擦

54、除后为 0xffff,在成功训练并存储后为 0x0055(该值由辨识器自动生成) 。这样就可以根据这个单元的值来判断是否经过训练。 其次,为什么已经训练过的系统在重新运行时还要进行模型装载? 在首次训练完成之后,辨识器中保存着训练的模型,但是系统一旦复位辨识器中的模型就会丢失,所以在重新运行时必须把存储在 Flash 中的语音模型装载到辨识器(RAM)中去。 第三,在转弯时为什么前轮要先做一个反方向的摆动? 这是为了克服车体的限制,由于前轮电机的驱动能力有限,有时会出现前轮偏转不到位的情况,所以在转弯前首先让前轮朝反方向摆动,然后再朝目标方向摆动。这样前轮的摆动范围更大,惯性更大,摆幅也最大,

55、能更好实现转弯。 第四,关于语音的一些具体问题,关于语音的一些具体问题请参看 SPCE061A相关书籍中关于语音的详细介绍。- 57 -第5章 系统调试5.1 硬件调试一、硬件链接语音控制小车电路包括两大部分:61板部分和控制板部分,硬件部分的连接。主要用到SPCE061A的IOB8IOB11来控制小车的状态。 电源部分连接:电池电源直接接控制板电源接口J1, J2接61板的电源,连接时注意电源极性。 61板和控制板的I/O连接有两种情况: 采用I/O排针向下的61板,直接将61板和控制板扣接在一起即可,61板的IOBH通过J6与控制电路连通; 采用I/O排针向上的61板,直接用排线将61板的

56、IOBH和J5相连接即可。二、硬件模块连线图 MIC输入模块SPCE061A电机驱动模块语音输出模块图5.1 连线图三、功能说明 1. 小车运动控制:通过SPCE061A的I/O端口,驱动控制板的H桥电路,进而控制前轮电机和后轮电机。2. 声控功能:利用特定人语音识别实现小车的名称和动作训练,并根据相应 语音指令输入执行前进、后退、左转、右转、停车等动作。3. 定时控制功能:利用时基定时器设定运行时间,小车运行同时启动定时器,时间到小车停止运行。 5.2 软件调试一、下载代码硬件连接完成之后,检查无误,接下来就可以下载程序了具体的步骤为: 第一步:打开集成开发环境,打开“CarDemo.spj”文件,编译链接。(注意:如果看不到CarDemo.spj,请在弹出的对话框中选择 打开类型为spj或者所有文件) 第二步:点击菜单ProjectSelect Body,或者直接点击 图标打开如图5.2所示的对话框: 图 5.2 Select Body对话框第三步:在弹出的对话框中选择Body Name为SPCE060A_061A,选择Probe为Auto,点击OK按钮确定。 第四步:点击IDE工具栏上的图标 选择Use ICE模式。 第五步:按F8快捷下载按钮,下载代码

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!