资源描述
毕业设计(论文)题 目 智能声控小车 英文题目 The intelligent voice control dolly 学生姓名 学 号 指导教师 专 业 电子科学与技术 二零11年11月 摘 要语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。采用凌阳公司的SPCE061A16位单片机作为语音控制小车的检测和控制核心,配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,通过控制I/O接口电路传输控制信息,从而控制全桥驱动电路最终实现多功能语音控制小车的基本功能。利用编程进行语音的“训练”和“识别”。设计出具有如下功能的语音声控小车:能够根据录制的语音命令来控制小车的启动、停止、返回、拐弯。关键词:SPCE061A,语音识别,全桥驱动,小车 AbstractSpeech processing technology is a new technology, it includes not only the voice recording and playback, and in the speech compression encoding and decoding, speech recognition and all kinds of processing technology. Before the design, generally there are two ways: a single chip design scheme is extended, and the other is by special speech processing chip.Based on the voice characteristics of MCU Sunplus SPCE061A,the small car of muhifunction voicecontrolled was designedThe car system is composed of voice recognition and voice broadcast,and its transmission and controlling information is controlled by IO interface circuitIn order to control full bridge drive circuit at last the basic functions of muhifunctional voice-controlled small car are realizedWe use programming for voice training and recognition. It has the following features: According to recorded the voice command to control the car to start, stop, return, and turn.Key words: SPCE061A,Speech Recognition,Full-bridge driver,Trolley 目 录第一章 绪论 11.1 引言 11.2 目前的发展概况 11.3 智能声控的应用研究 11.4 课题的提出背景与实际意义1第二章 系统方案32.1 总体方案选择 32.2 系统硬件方案 42.3 系统软件方案 5第三章 系统硬件设计 6 3.1 车体介绍 6 3.1.1 小车的行走原理7 3.2 控制板原理 9 3.2.1全桥驱动原里9 3.2.2 动力电机驱动11 3.2.3 方向电机控制电路12 3.3 芯片特性简介 14 3.3.1 SPCE061A特性简介14 3.3.2 开发板61板简介15 3.4 电源模块 15第四章 系统软件设计16 4.1 系统的主程序流程16 4.1.1 初始化部分 16 4.1.2 训练部分 17 4.1.3 识别部分 17 4.1.4 重训操作 17 4.2 主函数模块程序 17 4.3 语音识别的原理 18 4.4 语音训练识别程序 18 4.5 语音动作子程序 19 4.6 中断子程序 22结论 24致谢 25参考文献 26附录 27 绪 论1.1 引言 随着电子业的发展, 自动化已不再是一个新鲜的话题,无人驾驶的小汽车也必将进入实用阶段,未来驾驶汽车,不再是只能依靠手动、语音等方式也有可能成为未来汽车的辅助驾驶途径之一。单片机作为计算机技术的一个重要分支、嵌人式系统的核心,广泛用于工业控制、智能仪器、家用电器、智能产品等领域。当前电子设计系统已进入了片上系统时代,单片机的功能也越来越强,使其真正成为系统单片机。本系统模拟将来的智能小车,采用SPCE061A单片机作为检测和控制核心,该单片机是一个16位结构的微控制器, 基于nSPTM 内核,具有DSP运算功能,内置1O位AD及DA 转换器,丰富的软硬件支持,而SPCE061A 单片机集成度高, 扩展方便,可靠性好。 SPCE061A 内嵌 32K 字的 FLASH 程序存储器以及 2K 的SRAM。同时该 SOC 芯片具有 ADC 和 DAC 功能,其 MIC_ADC 通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路 10 位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。以上介绍的这些硬件资源使得该SPCE061A 能够单芯片实现语音处理功能。借助于 SPCE061A 的语音特色实现了对小车前进、后退、左转、右转、停车等语音控制功能。1.2 目前的发展概况 声控技术其实就是利用语音识别技术来达到控制或者操作的一种技术,而语音识别技术这近五年来已经有很大的进步,最新的语音识别技术可以辨识90以上的人类说出的字。声控技术虽然是一项比较先进的技术,但不可否认的是,声控技术在无限传输时的合成的质量不是很好,它尚需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥。然而随着微电子技术、计算机技术、及传感器技术的迅速发展,现今声控技术应用广泛,这种崭露头角的声控技术,给严重伤残人的生活带来了极大的方便。伤残病人用声音就可以打开门窗、窗帘、电视机、电灯等1.3 智能声控的应用研究 可以让驾驶员对汽车发出语音指令,控制车内的收音机、电话和车内温度。声控技术将成为接入网络和其他各种自动服务的关键。“随着汽车电子技术的飞速发展,汽车智能化技术正在逐步得到应用。汽车智能化技术使汽车的操纵越来越简单,动力性和经济性越来越高,行驶安全性越来越好,这是未来汽车发展的趋势。目前正逐步应用于汽车的智能控制技术。1.4 课题的提出背景与实际意义科技的进步需要技术不断的提升,一块大而复杂的模拟电路花费了工程师们巨大的精力,繁多的元器件增加制作的成本,而现在只需要一块几厘米的长方单片机通过写入简单的程序就可以使以前的电路简单很多。单片机技术的出现,不管在开发或是工作上都为我们带来了意想不到的惊喜。1916年第一台电子计算机诞生至今,只有60年得时间,依靠微电子技术和半导体技术的进步,从电子管到晶体管到集成电路在到大规模集成电路,现在一块芯片上完全可以集成几百万甚至上千万之晶体管,使得计算机体积更小,功能更强,特别是近20年时间里,技术及技术获得飞速的发展。计算机在工农业,科研教育国防和航空航天领域获得了广泛的应用,技术及技术已经是一个国家现代科技水平的重要标志。机器人的应用越来越广泛,几乎渗透到所有领域。机器人的发展体现了一个国家技术水平的高低,现代机器人从其诞生到现在,己经发展到了第三代。第一代机器人是示教再现型机器人。它们装有记忆存储器,由人将作业的各种操作要求示范给机器人,使之记住操作的程序和要领。当它接到再现命令时,则自主地再现示教的动作。第二代机器人是装有小型计算机和简单传感器的离线编程的工业机器人。它能感知外界信息和进行“思维”,比第一代机器人更灵活、更能适应环境变化的需要。第三代是智能机器人。智能机器人是“具有感知、思维和动作的机器”。它装有多种传感器,能识别作业环境,能自主决策,具有人类大脑的部分功能,且动作灵活,是人工智能技术发展到高级阶段的产物。智能小车,也就是轮式机器人,具有广泛的用途,尤其适合那些人类无法工作的环境中工作,无人生产线,仓库,服务机器人,航空航天等领域。作为20世纪自动化领域的重大成就,机器人已经和人类社会的生产、生活密不可分。应此为了使智能小车工作在最佳状态,进一步研究及完善其速度和方向的控制是非常有必要的。其次学习智能小车的制作也是对大学4年学习的一个很好的检测,对今后的学习和工作具有很大的帮助。第二章 系统方案2.1 总体方案选择 方案一: 采用MCS-51系列单片机实现,由于有语音识别和语音播放功能,所以需要扩展语音识别模块和语音播放模块,这样必然造成端口的资源紧张,所以还必须加入接口扩展芯片。该实现方案结构如图 2-1所示。图 2-1 采用MCS-51系列单片机实现语音控制小车方案二: 采用SPCE061A实现语音控制小车方案,由于SPCE061A内部具有语音识别和语音播放功能,所以只需要扩展基本的MIC和语音功放即可,该方案结构如图 2-2所示。图 2-2 基于SPCE061A的语音控制小车实现方案比较以上两个方案,方案二结构简单,易于操作,故选择方案二。2.2 系统硬件方案 系统的结构框图如图 2-3示。图 2-3 系统结构框图系统组成主要包括以下两部分:SPCE061A精简开发板、语音小车控制电路板。 图中的语音输入部分 MIC_ IN、按键输入 KEY、声音输出部分的功率放大环节等已经做到了精简开发板61 板上,为我们使用提供了很大的方便。在电机的驱动方面,采用全桥驱动技术,利用四个 I/O端口分为两组分别实现两个电机的正转、反转和停三态运行。2.3 系统软件方案 小车运动控制子程序就是控制前后电动机的正转和反转,程序识别出使用者说出何种语音命令后,根据I0口输出和小车运动姿态的状态的对应关系,对相应的I0 口置位或清零,输出到电机驱动电路,控制电机运转, 小车作相应的动作。 第三章 系统硬件设计3.1 车体介绍 语音控制小车为四轮结构,如图 3-1 所示。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,如图 3-2 所示。图 3-1 车体侧视图图 3-2车体侧视图3.2 小车的行走原理 前进:由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这时只要后轮电机正转小车就会前进。如图 3-3所示; 倒车:倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动,如图 3-4所示; 左转:前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进,如图 3-5 所示; 右转:前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进,如图 3-6所示。图 3-3 小车前进原理图图 3-4 小车倒车示意图图 3-5 小车左转示意图图 3-6 小车右转示意图3.3 控制板原理控制板主要包括:接口电路、电源电路和两路电机的驱动电路。接口电路:接口电路负责将 61 板的 I/O 接口信号传送给控制电路板,I/O 信号主要为控制电机需要的IOB8IOB11这四路信号, 同时为了方便后续的开发和完善, 预留了 IOB12IOB15 以及 IOA8IOA15 接口,可以在这些接口上添加一些传感器。 3.3.1 全桥驱动原理 全桥驱动又称 H桥驱动,下面介绍一下 H桥的工作原理: H桥一共有四个臂,分别为 B1B4,每个臂由一个开关控制,示例中为三极管Q1Q4。 如果让 Q1、Q2 导通 Q3、Q4 关断,如图 3-7所示,此时电流将会流经 Q1、负载、Q2 组成的回路,电机正转。图 3-7 B1、B2 工作时的 H 桥电路简图图 3-8 B3、B4 工作时的 H 桥电路简图如果让 Q1、Q2 关断 Q3、Q4 导通,如图 3-8 所示,此时电流将会流经 Q3、负载、Q4 组成的回路,电机反转。 如果让 Q1、Q2 关断 Q3、Q4 也关断,负载 Load 两端悬空,如图 3-9 所示,此时电机停转。这样就实现了电机的正转、如果让 Q1、Q2 导通 Q3、Q4 也导通,那么电流将会流经 Q1、Q4 组成的回路以及 Q2和 Q3 组成的回路,如图 3-10 所示,这时桥臂上会出现很大的短路电流。在实际应用时注意避免出现桥臂短路的情况,这会给电路带来很大的危害,严重的会烧毁电路。图 3-9 B1B4 全部停止工作时的 H 桥简图图 3-10 B1B4 全部工作时的 H 桥简图反转、停止三态控制。 3.3.2 动力电机驱动动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图 3-11 所示:Q1、Q2、Q3、Q4 四个三极管组成四个桥臂,Q1 和 Q4 组成一组,Q2 和Q3 组成一组,Q5 控制 Q2、Q3 的导通与关断,Q6 控制 Q1 和 Q4 的导通与关断,而 Q5、Q6 由 IOB9 和 IOB8控制,这样就可以通过 IOB8 和 IOB9 控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。图 3-11 后轮电机驱动电路当 IOB8 为高电平、IOB9 为低电平时 Q1 和 Q4 导通,Q2 和 Q3 截止,后轮电机正转,小车前进;反之当 IOB8 为低电平、IOB9 为高电平时 Q1 和 Q4 截止,Q2 和 Q3 导通,后轮电机反转,小车倒退;而当IOB8、IOB9 同为低电平时 Q1、Q2、Q3 和 Q4 都截止,后轮电机停转,小车停止运动。 注意:IOB8 和 IOB9 不能同时置高电平,这样会造成后轮驱动全桥短路现象。 3.3.3 方向电机控制电路 方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路, 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 截止,前轮电机正转,小车前轮朝左偏转;反之当 IOB10为低电平、IOB11 为高电平时 Q8 和 Q9 截止,Q7和 Q10 导通,前轮电机反转,小车前轮朝右偏转;而当 IOB10、IOB11 同为低电平时 Q8 和 Q9截止,Q7 和Q10 也截止,前轮电机停转,在弹簧作用下前轮被拉回到中间位置,保持直向。 注意:IOB10、IOB11 不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。结合以上对前轮和后轮的状态分析,得到小车的运行状态与输入的对照表,如下表3.1 基本的输入与小车运动状态对照表 IOB11 IOB10 IOB9 IOB8 后电机 前电机 小车 0 0 0 0 停转 停转 停 0 0 0 1 正转 停转 前进 0 0 1 0 反转 停转 倒退 0 1 0 1 正转 正转 左前转 1 0 0 1 正转 反转 右前转 另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表3.2所示: 表3.2 输入与小车的运动状态对照表IOB11IOB10IOB9IOB8后电机前电机小车0110正转正转右后转1010正转反转左后转 注意:为了小车的安全请不要出现以下两种组合情况: 表3.3 禁止的输入状态列表 IOB11 IOB10 IOB9 IOB8 后电机 前电机 小车 * * 1 1 停转 * 停 1 1 * * * 停转 停 3.4 芯片特性简介 3.4.1 SPCE061A特性简介 SPCE061A 是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有 8 路 10 位精度的 ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路 10 位精度的 DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外凌阳十六位单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准 C语言编程,也支持 C 语言与汇编语言的互相调用。另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。 SPCE061A特性: 16位nSP微处理器; 工作电压:内核工作电压VDD为 3.0V3.6V(CPU),I/O口工作电压VDDH为VDD5.5V(I/O); CPU时钟:0.32MHz49.152MHz; 内置2K 字 SRAM; 内置32K 闪存 ROM; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电小于 2A3.6V; 2 个 16 位可编程定时器/计数器(可自动预置初始计数值); 2 个 10 位 DAC(数-模转换)输出通道; 32 位通用可编程输入/输出端口; 14 个中断源可来自定时器 A / B,时基,2 个外部时钟源输入,键唤醒; 具备触键唤醒的功能; 使用音频编码 SACM_S240 方式(2.4K 位/秒),能容纳 210 秒的语音数据; 锁相环 PLL 振荡器提供系统时钟信号; 32768Hz 实时时钟; 7 通道 10 位电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 低电压复位(LVR)功和低电压监测(LVD)功能; 内置在线仿真板(IC E,In-C ircuitEm ulator)接口。3.4.2 开发板61板简介 “61 板”是SPCE061A EMU BOARD的简称,是以凌阳 16 位单片机 SPCE061A为核心的精简开发仿真实验板,大小相当于一张扑克牌。 “61板”除了具备单片机最小系统电路外,还包括有电源电路、复位电路、ICE 电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)等, “61 板”可以采用电池供电。图 3-12 所示为该精简开发板的实物图。 图 3-12 61 板实物图3.5 电源模块 整个小车有 4 个电源信号:电池电源,控制板工作电源,61板工作电源,61 板的 I/O输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管 D1 后产生 61 板电源(VCC_61),通过 61 板的 Vio 跳线产生 61 板的端口电源(V1)。 二极管 D1 作用: 1、 降压,4 节电池提供的电压 VCC 最大可达到 6V,D1 可有效地降压。2、 保护,D1 可以防止电源接反烧坏 61 板。 第四章 系统软件设计4.1 系统的主程序流程 图 4-14.1.1 初始化部分 初始化操作将 IOB8IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置和 PWM 端口设置等。 4.1.2 训练部分 训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到 Flash,在以后使用时不需要重新训练;如果已经训练过会把存储在 Flash 中的模型调出来装载到辨识器中。 4.1.3 识别部分 在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车SPCE061A在语音控制小车中的应用的名字使小车停下来。4.1.4 重训操作 考虑到有重新训练的需求,设置了重新训练的按键(61 板的 KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为 0xffff 时会要求重新对其进行训练。4.2 主函数模块程序/=/ 语法格式:int main(void);/ 实现功能:主函数/=int main(void)unsigned int BS_Flag;/Train标志位*P_IOA_Dir=0xff00;/初始化IOA,IOA07下拉输入*P_IOA_Attrib=0xff00;*P_IOA_Data=0x0000;*P_IOB_Dir=0x0f00;/初始化IOB,IOB811同向输出*P_IOB_Attrib=0x0f00;*P_IOB_Data=0x0000;BSR_DeleteSDGroup(0);/初始化存储器RAMBS_Flag=*(unsigned int *)0xe000;/读存储单元0xe000if(BS_Flag=0xffff)/没有经过训练(0xe000内容为0xffff)TrainSD();/训练StoreSD();/存储训练结果(语音模型)else /经过训练(0xe000内容为0x0055)LoadSD();/语音模型载入识别器PlaySnd(S_START,3);/开始识别提示BSR_InitRecognizer(BSR_MIC);/初始化识别器while(1)BSR();if(*P_IOA_Data)&0x0004)/是否重新训练F_FlashErase(0xe000);while(1);4.3 语音识别的原理 语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。4.4 语音训练识别程序训练采用应答式训练,每条指令的训练次数为两次,在语音提示下进行,并且能进行容错处理,整个的训练过程共有5次这样的训练,依次为名称一前进一后退一左拐一右拐,以“前进”为例说明。步骤一:小车提示语音“前进”;告诉小车“前进”;步骤二:小车提示语音“请再说一遍” (重复训练提示音);再次告诉小车“前进”。如果训练成功,小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;如果没有训练成功,小车会提示“说什么暗语呀” 或者“没有听到任何声音”等信息,这样的话就要重复刚才所说的4个步骤,直到成功为止。在小车训练完毕之后,就进入识别“准备就绪”状态,向小车“喊话”,程序就识别“喊话”的命令,将对使用者输入的语音命令进行记录并与存储的语音模型进行比较匹配,以确定是输入的何种命令。下面是训练部分的子程序模块:/=/ 语法格式:void TrainSD();/ 实现功能:训练函数/=void TrainSD()while(TrainWord(NAME_ID,S_NAME) != 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个动作4.5 语音动作子程序动作子程序包括:前进、倒车、左拐、右拐、停车子程序; 前进:由小车的结构原理和驱动电路分析知:只要 IOB8 为高电平,IOB9,IOB10,IOB11 全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作,该部分程序如下:/=/ 语法格式:void GoAhead();/ 实现功能:前进子函数/=void GoAhead() /前进 PlaySnd(S_ACT1,3);/提示*P_IOB_Data=0x0100;/前进*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm(int fiq,irq);uiTimecont = 0;倒车:由小车的结构原理分析和驱动电路分析知:只要 IOB9 为高电平,IOB8,IOB10,IOB11 全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作,程序如下:/=/ 语法格式:void BackUp();/ 实现功能:后退子函数/=void BackUp() /倒退PlaySnd(S_DCZY,3);/提示*P_IOB_Data=0x0200;/倒退*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm(int fiq,irq);uiTimecont = 0;左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏 2.后轮前进,这时对应的 I/O状态为:IOB8、IOB10为高电平,IOB9、IOB11为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作,该部分程序如下:/=/ 语法格式:void TurnLeft();/ 实现功能:左转子函数/=void TurnLeft() /左转PlaySnd(S_GJG,3);*P_IOB_Data=0x0900;/右转Delay();/延时*P_IOB_Data=0x0500;/左转*P_INT_Mask |= 0x0004;/以下为中断定时操作_asm(int fiq,irq);uiTimecont = 0;注:在左转之前首先让前轮右偏,然后再让前轮朝左偏,这样前轮的摆动范围更大,惯性更大,摆幅也最大,能更好实现转弯。 右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏 2.后轮前进,这时对应的 I/O状态为:IOB8、IOB11为高电平,IOB9、IOB10为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作,该部分程序如下:/=/ 语法格式: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.6 中断子程序 虽然已经有了前进、后退以及停车(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于2Hz时基中断完成,图所示为该程序的流程图。可以在程序中修改uiTimeset参数来控制运行时间,当uiTimeset=2时,运行时间为1s,以此类推。 图4-2中断流程图/=/ 语法格式:void IRQ5(void);/ 实现功能:中断服务子函数/=void IRQ5(void)_attribute_(ISR);/运动定时控制void IRQ5(void) if(uiTimecont+ = uiTimeset)*P_IOB_Data = 0x0000;*P_INT_Clear = 0x0004; 结 论本系统采用凌阳SPCE061A16位单片机实现。内部集成了2K字的RAM,32K字的Flash加上用凌阳SPCE061A16位单片机实现不需要外扩程序存储器和RAM,也不用外接语音芯片,即可实现语音辨识和一系列职能动作。由于采用了高性能的MCU,省掉了大量的外围器件,如外扩RAM,ROM存储器等,使硬件结构大大简化,提高了系统的可靠性。其软件编程采用C和汇编混合编程来实现,集两种语言的优点于一体,极大限度地简化了编程过程,丰富了编程思想,给我们设计带来了极大的方便。如果采用别的单片机则一般要2个单片机才能实现所有功能,硬件电路也更加复杂。若要实现语音播报功能和语音辨识,即使多用几个其他类型的单片机也不可能实现,而凌阳单片机提供了很好的语音播放和录制机制以及简单的API接口编程。利用凌阳单片机技术来实现语音控制功能将会广泛地运用在通信等领域。本设计模拟未来小车,成功地实现了语音控制功能,操作比较简单,训练和识别成功的几率也比较高,语音命令识别率9O 以上,是一个典型的语音识别控制应用方案。该语音控制小车以其精巧、便携的特点,也可作为汽车玩具,可产品化。 致 谢四年的大学生活即将成为过去,在此,我首先要衷心地感谢我们东华理工大学的所有老师,感谢他们对我这四年的教导,不管是在学业上或是在生活上,我都受益匪浅,感谢母校为我提供了良好的学习环境;感谢陈坚老师对我毕业论文的指导,之前曾多次就毕业论文中所遇到的问题与陈坚老师进行探讨,陈老师总能抽出他宝贵的时间对我所遇到的问题一一给予解答,在论文的写作过程中,也得到了许多同学的宝贵建议,感谢所有关心帮助我的良师益。对在我大学期间在学习和生活上给予我无私帮助的各位老师和同学,在此向你们致以我由衷的谢意! 参考文献1 陈继荣. 智能电子创新制作机器人制造入门.科学出版社 2009年4月2 雷思孝 ,李伯成,雷向丽. 凌阳16位单片机原理及应用. 西安电子科技大学出版社.2004年1月3 美 David Cook 毕树生 李大寨 高志慧 译. 机器人制作提高篇M 北京:北京航空航天大学出版社.2005 4 威海明,扬兴瑶. 实用电子电路500例. 化学工业出版社. 43-565 余祖俊. 微机监测与控制应用系统设计. 北方交通大学出版社 2001年12月6 童诗白,花成英. 模拟电子技术基础M. 高等教育出版社7 弹浩强. C语言程序设计. 清华大学出版社8 朱兆优,陈坚,王海涛. 单片机原理与应用. 电子工业出版社9 姜志玲简易智能电动车的设计J华东交通大学学报,2005,22(5):24-2810 张飞舟,沈程智,范跃祖利用单片机实现智能控制J电子技术应用,1998,17(9):212311 肖毅,肖明单片机抗干扰技术及应用J电子产品世界,2002,9(2):13-1612 罗亚非凌阳16位单片机应用基础M北京:北京航空航天大学出版社,2005:91013 颜利彪,范蟠果基于单片机的简易智能电动车J电子技术,2004,41(4):25-2814 马丽静基于单片机控制的语音识别系统的软件开发J电脑开发与应用,2003,18(5):373815 李晶皎嵌入式语音技术及凌阳16位单片机应用M北京:北京航空航天大学出版社,2003:6-816 Chiang, H.-H. The Human-in-the-Loop Design Approach to the Longitudinal Automation System for an Intelligent VehicleJ. IEEE transactions on systems, man, and cybernetics. Part A, Systems and humans 17 Bener, A., Mohammed, G., and Khaled, N. (2008). The impact of four-wheel drive on risky driver behaviours and road traffic accidents. Transportation Research Part F, 11, pp. 324333. 附 录 控制板原理图 覆铜的PCB板28
展开阅读全文