单片机课程设计语音控制小车的设计与实现.doc

上传人:仙人指路1688 文档编号:4147484 上传时间:2023-04-07 格式:DOC 页数:27 大小:1.29MB
返回 下载 相关 举报
单片机课程设计语音控制小车的设计与实现.doc_第1页
第1页 / 共27页
单片机课程设计语音控制小车的设计与实现.doc_第2页
第2页 / 共27页
单片机课程设计语音控制小车的设计与实现.doc_第3页
第3页 / 共27页
单片机课程设计语音控制小车的设计与实现.doc_第4页
第4页 / 共27页
单片机课程设计语音控制小车的设计与实现.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机课程设计语音控制小车的设计与实现.doc》由会员分享,可在线阅读,更多相关《单片机课程设计语音控制小车的设计与实现.doc(27页珍藏版)》请在三一办公上搜索。

1、语音控制小车的设计与实现学院:软件学院 班级:08级计算机科学与技术(3)班姓名:学号:同组成员: 目 录前言 1绪论 2第一章凌阳单片机介绍 4第二章语音控制小车的总体设计 6第一节所需材料(硬件,软件) 6第二节功能要求 6第三节车体说明 6第四节小车的功能实现原理 13第五节软件流程设计 15第三章 18第一节硬件的安装 18第二节代码编译及下载 20第三节训练小车 22第四节声控小车 24参考文献 24致谢 25 前言本文主要以SPCE061A为基础介绍了如何应用SPCE061A芯片进行语音控制小车的硬件和软件设计。SPCE061A是一种16位nSP结构的微控制器。该芯片带有硬件乘法器

2、,能够实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。SPCE061A内嵌32K字的FLASH程序存储器以及2K的SRAM。同时该SOC芯片具有ADC和DAC功能,其MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路10位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。以上介绍的这些硬件资源使得该SPCE061A能够单芯片实现语音处理功能。SPCE061A 是继µnSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑

3、到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使µnSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以µnSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。借助于SPCE061A的语音特色,我们开发出了这款语音控制小车。小车不仅具有前进、后退、左转、右转停车等基本功能;同时配合SPCE061A的语音特色,实现语音控制功能。SPCE061A单片机是凌阳公司今年新推出的一款十六位单片机,它的易用性和多功能性受到了广大电子爱好者的好评。这里要介

4、绍的是用SPCE061A单片机实现2001年全国大学生电子设计竞赛试题(C题),本系统以参赛题目的要求为目的,采用SPCE061A单片机为控制核心,利用光电检测器检测道路上的标志,控制电动小汽车的正反向行驶,快慢速行驶,以及停车的位置,并可自动记录往返时间和距离,在显示完时间距离后将会自动播报整个行程所消耗的时间,以及行驶路程。整个系统的电路结构简单,可靠性高。实验测试结果满足要求,本文着重介绍了该系统的软硬件设计方法及测试结果分析。绪论第一节 单片机的发展历史单片机一词最初是源于SingleChipMicrocomputer”,简称SCM。在单片机诞生时,SCM是一个准确、流行的称谓,“单片

5、机”一词准确地表达了这概念。随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来准确表达其内涵。国际上逐渐采用MCU(MicroControllerUnit”)来代替,形成了单片机界公认的、最终统一的名词。在国内因为“单片机”一词已约定俗成,故而继续沿用。单片机按其内部中央处理器CPU(CentralProcessingUnit)的字长分为1位机、4位机、8位机、16位机等。从1976年8位单片机诞生以来,单片机领域中一直是以8位机为主流机型,预计这种情况还将继续下去。因此我们以Intel公司的8位机为例来谈谈单片机的发展历史。 1.第一阶段单片机阶段(1976

6、午1978年)。这阶段的任务是探索计算机的单芯片集成。以Intel公司的MCS48为代表,其CPU、存储器、定时器计数器、中断系统、I/O端口、时钟以及指令系统都是按嵌入式系统要求专门设计的。 2第二阶段单片机的完善阶段(1978年一1982年)。计算机的单芯片集成探索取得成功后,随后的任务就是要完善单片机的体系结构。作为这一阶段的典型代表是Inlel公司将MCS48向MCS5l系列的过渡。它在以下几个重要方面奠定了单片机的体系结构。(1)完善的外部总线。有8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。(2)CPU外围功能单元的集中管理模式。(3)设置面向工控的位地址

7、空间及位操作方式。(4)指令系统突出控制功能。 3第三阶段微控制器形成阶段(1983年一1990年)。这一阶段单片机的主要技术发展方向是满足测控对象要求的外围电路的增强,如AD转换、DA转换、高速IO口、WDT(程序监视定时器)、DMA(高速数据传输)等,强化了智能控制的特征。 4第四阶段微控制器全面发展阶段(1990年以后)。即当前的单片机时代,其显著特点是百花齐放、技术创新。单片机正在满足各个方面的需求从玩具、小家电、工程控制单元到机器人、智能仪表,过程控制,个人信息终端等无所不能。第二节 单片机的现状及前景计算机系统的发展已明显地朝三个方向发展;这三个方向就是:巨型化,单片化,网络化。以

8、解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。在本文,介绍单片机的最新技术进步,包括数字单片机的工艺及技术,模糊单片机的工艺及技术,单片机的可靠性技术,以及以单片机为核心的嵌入式系统。数字单片机的技术发展数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。下面分别就这

9、四个方面说明单片机的技术进步状况。1、 内部结构的进步单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/D转换器,D /A转换器,串行通信接口,Watchdog电路,LCD控制器等。有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ 系列等。特别是在单片机C167CS-32FM中,内部还含有2个CAN。因此,这类单片机十分容易构成网络。特别是在控制,系统较为复杂时,构成一个控制网络十分有用。单

10、片机在目前的发展形势下,表现出几大趋势:可靠性及应用越来越水平高和互联网连接已是一种明显的走向。所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成 到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。功耗越来越低和模拟电路结合越来越多。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。 单片机的应用领域: 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导

11、弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器

12、仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所

13、不在。 4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 第一章 凌阳单片机简介随着单片机功能集成化的

14、发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称nSP)。围绕nSP所形成的16位nSP系列单片机(以下简称nSP家族)采用的是模块式集成结构,它以nSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,如图1.1所示。图1.1 nSP家族的模块式结构nSP内核是一个通用的核结构。除此之外的其

15、它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本。SPCE061A 板SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061

16、A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。 第二章 语音控制小车的总体设计第一节 所需材料(硬件,软件)一, 硬件实验箱及实验仪;凌阳SPCE061A 板;小型电动机;车体;车轮;电池盒;两节五号干电池;麦克风;喇叭以及元器件散件等等。二, 软件windowPE;IDE2.0程序;ResWriter工具;串口工具;语音压缩工具等等。第二节 功能要求小车的主要性能指标:1、输入电压:DC4.5V(3节AA电池) 2、可以实现前、后、左、右四方向运作 3、可以实现弧形旋转 4、具有通过加载61板实现语音控制语音控制小车的主要功能: 1 可以通过简单的I/O操作实现小车的前进、后

17、退、左转、右转功能; 2 配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3 可以在行走过程中声控改变小车运动状态; 4 在超出语音控制范围时能够自动停车注意事项:1 一定要注意电池的正负极性,切勿装反; 2 长期不用请将电池取出电池盒; 3 由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性; 4 由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害; 5 不要让小车长时间运行在堵转状态(堵转状态:由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏

18、小车的控制电路。 第三节 车体说明2.3.1车体结构语音控制小车为四轮结构,车的结构示意图如图 2.3.1所示。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力,所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,如图 2.3.2所示。图2.3.1整个小车分为三大部分:车体部分、61板、控制板。 车体部分:小车车体主要为两个电机驱动装置,分前轮(方向)驱动和后轮(动力驱动)。在车体的下面有一个可以安装4节AA电池的电池盒,整个小车的电源就是由它来提供的。在小车的底

19、部有一个小开关,它负责控制整个小车的电源开通与关断。 61板:61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现。在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来做其它的实验或开发。 控制板:控制板负责将来自61板的控制信号转化为能够驱动电动机的信号。(图中61板下面的黄色板子)2.3.2硬件框图小车控制系统硬件结构比较简单,如图 2.3.3所示,主要分为两个部分:一个是SPCE061A精简开发板(即“61”板),另外一个是电机控制板。电机控制板的工作就是根据61板的输出信号去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和

20、关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。图2.3.3SPCE061A性能 16位nSP微处理器; 工作电压(CPU) VDD为3.0V3.6V,(I/O) VDDH为VDD5.5V; CPU时钟:0.32MHz49.152MHz; 内置2K字SRAM; 内置32K FLASH; 可编程音频处理; 晶体振荡器; 系统处于休眠模式下(时钟处于停止状态),耗电仅为2A3.6V; 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 两级中断,14个中断源; 具备触键唤醒的功能; 使用

21、凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号; 32768Hz实时时钟; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口(UART,SIO); 具有低电压复位(LVR)功能和低电压监测(LVD)功能; 内置在线仿真电路ICE(In- Circuit Emulator)接口; 具有保密能力; 具有Watch-dog功能。 2.3.3小车控制板 控制板主要包括:接口电路、电源电路和两路电机的驱动电路,控制板原理图如图 2

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

23、 b) 保护,D1可以防止电源接反烧坏61板。 图2.3.4功能分区:小车控制板功能分区图如图2.3.5。其中,A区为电源区,分别给61板*和小车控制板提供电源;B、C区分别为后、前轮的电机驱动电路,驱动后面两个轮或者前面两个轮的进行正、反两个方向的转动;D区为I/O接口区,负责和61板的接口进行连接,注意J5与J6是接通的,J7与J8是接通的。 注:上标(*)表示61板可以通过小车的电池供电,也可单独供电。图2.3.5 小车控制板功能分区图2.3.4动力电机驱动电路动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图 2.3.5所示:Q1、Q2

24、、Q3、Q4四个三极管组成四个桥臂,Q1和Q4组成一组,Q2和Q3组成一组,Q5控制Q2、Q3的导通与关断,Q6控制Q1和Q4的导通与关断,而Q5、Q6由IOB9和IOB8控制,这样就可以通过IOB8和IOB9控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。图2.3.6当IOB8为高电平、IOB9为低电平时Q1和Q4导通,Q2和Q3截止,后轮电机正转,小车前进;反之当IOB8为低电平、IOB9为高电平时Q1和Q4截止,Q2和Q3导通,后轮电机反转,小车倒退;而当IOB8、IOB9同为低电平时Q1、Q2、Q3和Q4都截止,后轮电机停转,小车停止运动

25、。 注意:IOB8和IOB9不能同时置高电平,这样会造成后轮驱动全桥短路现象。2.3.5方向电机控制电路方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路,如图 2.3.6所示:Q7、Q8、Q9、Q10四个三极管组成四个桥臂,Q7和Q10组成一组,Q8和Q9组成一组,Q11控制Q8、Q9的导通与关断,Q12控制Q7和Q10的导通与关断,而Q11、Q12由IOB10和IOB11控制,这样就可以通过IOB10和IOB11控制前轮电机的正转和反转,进而控制小车的左转和右转。 当IOB10为高电平、IOB11为低电平时Q8和Q9导通,Q7和Q10截止,前轮电机正转,小车前轮朝左偏

26、转;反之当IOB10为低电平、IOB11为高电平时Q8和Q9截止,Q7和Q10导通,前轮电机反转,小车前轮朝右偏转;而当IOB10、IOB11同为低电平时Q8和Q9截止,Q7和Q10也截止,前轮电机停转,在弹簧作用下前轮被拉回到中间位置,保持直向。 注意:IOB10、IOB11不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。图2.3.7结合以上对前轮和后轮的状态分析,得到小车的运行状态与输入的对照表,如下表所示:IOB11IOB10IOB9IOB8后电机前电机小车0000停转停转停0001正转停转前进0010反转停转倒退0101正转正转左前转1001正转反转右前转表2.3.1另外还有一些不

27、常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表 2.3.2所示:IOB11IOB10IOB9IOB8后电机前电机小车0110反转正转右后转1010反转反转左后转表2.3.2注意:为了小车的安全请不要出现以下两种组合情况:IOB11IOB10IOB9IOB8后电机前电机小车*11停转*停11*停转停表2.3.3第四节 小车的功能实现原理2.4.1小车直走的实现过程只要让小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮正传即可实现小车的前进。对应全桥驱动电路如表2.4.1所示IOB11IOB10IOB9IOB8后电机前电机小车0001正转停转前进表2.4

28、.12.4.2小车倒退的实现过程与之相反,只要让小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮倒传即可实现小车的前进。 对应全桥驱动电路如表2.4.2所示IOB11IOB10IOB9IOB8后电机前电机小车0010反转停转倒车表2.4.22.4.3小车的左前转实现过程在某些场合,小车还需要转弯,那么小车又是怎样实现转弯的呢?如果需要小车实现左前转,可以让小车的前轮左偏,后轮正转,这样就可以实现小车的左转,如表 2.4.3所示:IOB11IOB10IOB9IOB8后电机前电机小车0101正转正转左前转表2.4.32.4.4小车的右前转实现过程如果需要小车实现右前转,可以让小车的前轮右偏,

29、后轮正转,这样就可以实现小车的右转,如表 2.4.4所示:IOB11IOB10IOB9IOB8后电机前电机小车0110反转正转右后转1010反转反转左后转2.4.5小车的右后转及左后转与之相反,即可。2.4.6PWM调速的原理 如果需要调速,可以直接调用SPCE061A的PWM资源,通过调节PWM的占空比来实现速度的调节。当IOB11IOB8输出的逻辑电平组合为“0001”时,加在后轮电机上的驱动电压为VCC;而当IOB11IOB8输出“0000”时,加在后电机上的电压为0V。如果交替地向端口送“0001”和“0000”两种组合(PWM输出端口自动实现),那么加在小车电机两端的电压就在VCC和

30、0V之间不停的跳变,对应的电机电压波形如图 2.4.1示:图2.4.1 PWM调速原理图此时加在电机两端的平均电压Uo=Th/(Th+Tl)*VCC。 可以通过调整PWM的占空比,来改变Th和Tl的比值,从而改变Uo的大小。这样就可以通过PWM资源调节加在电机两端的平均电压,从而改变电机的转速,最终实现调节小车速度的目的。 另外也可以利用程序使端口产生PWM波形,控制小车的速度,在此不作赘述。2.4.7语音识别原理语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似

31、的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。 语音识别的具体流程如图 2.4.2所示:图2.4.2 语音识别流程说明框图第五节 软件流程设计2.5.1 主程序流程图以配套资料中的语音识别程序(Car_Demo)为例,说明语音识别小车的实现过程,图 2.5.1所示为小车的主程序工作流程。图2.5.1主程序流程图语音识别小车的主程序流程如图 4.1所示,分为四大部分:初始化部分、训练部分、识别部分、重训操作。 初始化部分:初始化操作将IOB8IOB11设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PW

32、M端口设置等。 训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH中的模型调出来装载到辨识器中。 识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。 重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标

33、志位(0xe000单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。 在程序的代码中有详细的注释,请参看资料中的例程Car_Demo。2.5.2 程序中需要说明的几个问题 在这个程序中有几个地方不易理解,需要特别说明一下: 首先,小车有没有经过训练是怎么知道的?在这里利用了一个特殊的FLASH单元,当FLASH在初始化以后,如果没有进行过写操作的话,那么该单元的内容为0xffff。(该示例程序中为0xe000单元),该单元内容在擦除后为0xffff,在成功训练并存储后为0x0055(该值由辨识器自动生成)。这样就可以根据这个单元的值来判断是否经

34、过训练。 其次,为什么已经训练过的系统在重新运行时还要进行模型装载?在首次训练完成之后,辨识器中保存着训练的模型,但是一旦系统复位,辨识器中的模型就会丢失,所以在重新运行时必须把存储在FLASH中的语音模型装载到辨识器中去。 第三,关于语音的一些具体问题,关于语音的一些具体问题请参看SPCE061A相关书籍中关于语音的详细介绍。 第三章 小车的安装与实现第一节 硬件的安装3.1.1 小车的焊接第一步 小车控制板裸板检测 目的:检测裸板电路是否有短路或者是断路的现象; 方法:从PCB板的背面观察板上的布线,是否出现制板加工时导制的短路、断线、过孔阻赛等现象。 第二步 检测元器件、并做器件整形 1

35、用万用表检测8个电阻,测量验证电阻的阻值,并按照阻值把他们分成两组(一组的阻值为200/330,另一组的阻值为2k/2.2K)。注意不要混了。 2利用万用表检测12个三极管,确定三极管有放大能力;把这些三极管中NPN的8050放到一块, PNP的8550放到一块。注意不要混了;如果有失去放大能力的,要用好的替换掉。 3利用万用表检测三极管的极性,并按电路板间距把引脚折弯,以便插到电路板上。 4将所有检测过的电阻、电容、二极管按电路板间距把引脚折弯,以便插到电路板上。注意:绝对不能在元件引脚跟部反复折弯,因为这样引起的元件内部接触不良造成的故障是很难维修的。 第三步 焊接电阻 如图3.1.1所示

36、:图3.1.1电阻焊接效果图第四步 焊接三极管 如图3.1.2所示;注意三极管的三个管脚(E、B、C)不要接错。图3.1.2三极管焊接效果图第五步 焊接接口 如图3.1.3所示;小车控制板上只有IOB的911口有作用,其他都是预留接口;J5和J6是接通的,所以只需焊接J5接口就可以了,将10Pin排针焊接到J5。图3.1.3接口焊接效果图第六步 测试车体引线正负极: 1、电源测试:安装电池,打开小车电源,测量出电源的正负极引线并标识; 2、电机测试:将后轮电机引线接小车电源,使后轮正转,此时标注和电源正极相连引线为“+”,另一根为“”;将前轮电机引线(如图 2.4C)接电源,使前轮左偏,此时标

37、注和电源正极相连引线为“+”,另一根为“”第七步 连接车体和控制板:连接控制板主要包括,电源连接和电机连接 1、焊接电源:将电源正负极引线分别焊至控制板J1的“VCC”和“” 2、焊接电机:将后轮电机焊至J3,前轮电机焊至J4,注意方形焊盘为正极 3、将10cm红色导线焊至控制板J2的“VCC_61”,绿色导线焊至J2的“”,为61板供电。第八步 固定控制板,首先把喇叭固定在小车车体的中间位置,然后把控制板放到车体上方,找到对应的定位孔,用3个2.5的螺丝拧紧即可。第九步 测试 如图 2.7,按照下面的步骤测试连接是否正确: 1、打开小车电源, 2、用红色电源线去接触J5的“8”,此时小车后轮

38、正转; 3、用红色电源线去接触J5的“9”,此时小车后轮反转; 4、用红色电源线去接触J5的“10”,此时小车前轮左偏; 5、用红色电源线去接触J5的“11”,此时小车前轮右偏; 如果符合以上现象,证明电路的焊接和连接通过。如果和以上现象不符,则有以下可能: 1、电机不转三极管不发热,检查电源是否接通、中间是否有断路的情况 2、如果电机不转且三极管发热,证明有短路情况 3、如果电机转向刚好相反,证明电机的正负极引线焊接反向,卸下反接即可。第十步 焊接61板1、采用普通61板(排针在61板正面) 控制板的J5焊接10PIN排针,用10PIN排线将61板的J7(IOBH)与控制板的J5连接,连接时

39、注意方向。最后把喇叭接好,小车的硬件连接就完成了。 2、采用特制61板(排针在61板反面) 控制板的J6焊接10PIN排孔,然后直接将61板扣接在控制板上面,61板的J7直接与控制板的J6对接。最后把喇叭接好,小车的硬件连接就完成了。第二节 代码编译及下载3.2.1 代码编译下表为小车实例源代码 #define P_IOB_Data (unsigned int *)0x7005 #define P_IOB_Dir (unsigned int *)0x7007 #define P_IOB_Attrib (unsigned int *)0x7008 #define P_Watchdog_Clear

40、 (unsigned int *)0x7012 main() *P_IOB_Dir = 0xffff; *P_IOB_Attrib = 0xffff; /设置IOB为同相输出 *P_IOB_Data = 0x0100; /前进 while(1) *P_Watchdog_Clear=0x0001; /清看门狗 源代码说明 首先: #define P_IOB_Data (unsigned int *)0x7005 #define P_IOB_Dir (unsigned int *)0x7007 #define P_IOB_Attrib (unsigned int *)0x7008 #define

41、P_Watchdog_Clear (unsigned int *)0x7012以上是宏定义操作,在程序的开头对常用的单片机资源端口进行定义,在以后的程序中就可以直接引用这些宏名来代替端口地址完成端口操作。这样做的好处:一是可读性强,宏名能够直接表达出端口的含义;二是易于修改,如果需要重新分配端口,可以在宏定义部分修改,而不必在程序中逐一修改。上面定义了一些用到的硬件资源包括IO端口和看门狗资源。 第二: *P_IOB_Dir = 0xffff; *P_IOB_Attrib = 0xffff; /设置IOB为同相输出端 这两句共同完成B口的初始化工作,通过这两句把B口初始化为同相的输出口,以后直

42、接通过B口来向外输出0、1电平。 第三: *P_IOB_Data = 0x0100; /前进 这是整个程序的核心部分,正是通过这条指令来完成数据输出的。执行完这条指令以后,对应的B口的16位数据为“0000 0001 0000 0000”,其中B 11B 8四位为“0001”,这样就实现了小车的前进功能(参看表 3.1),同样还可以通过向P_IOB_Data写不同的数值来实现不同的功能,具体的数值请参照表 2.1 第四:*P_Watchdog_Clear=0x0001; /清看门狗 这是一条清看门狗的操作,在实际的系统中,为了保证系统能够稳健的运行,引入看门狗资源。必须在看门狗的计数器溢出之前

43、对它进行重新赋值,否则看门狗计数器就会溢出,造成系统复位。在这里让程序进入一个循环,在循环中不停地清看门狗这样系统就不会复位。3.2.2代码下载硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为: 第一步:打开集成开发环境,打开“Car_Demo.spj”文件,编译链接。(注意:如果看不到Car_Demo.spj,请在弹出的对话框中选择打开类型为spj或者所有文件) 第二步:点击菜单ProjectSelect Body,或者直接点击 图标打开如图 3.2.1所示的对话框:图3.2.1 Select Body对话框第三步:在弹出的对话框中选择Body Name为SPCE060A_0

44、61A,选择Probe为Auto,点击OK按钮确定。 第四步:点击IDE工具栏上的图标,选择Use ICE模式。第三节 训练小车成功下载程序以后,去掉下载线并复位系统(如果使用EZ-Probe还应将Probe选择跳线S5拔去),小车就会提示对它进行训练。训练采用应答式训练,每条指令的训练次数为两次,每一条命令的训练过程都是一样的,以“前进”为例说明: 步骤一:小车提示“前进”; 步骤二:告诉小车“前进”; 步骤三:小车提示“请再说一遍”(重复训练提示音); 步骤四:再次告诉小车“前进”(重复训练一次)。 这是一个完整的训练过程,如果训练成功,小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;如果没有训练成功,小车会提示“说什么暗语呀”或者“没有听到任何声音”等信息,这样的话就要重复刚才所说的四个步骤,直到成功为止。 整个的训练过程共有5次这样的训练,依次为:名称前进后退

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号