当前位置:首页 >> 信息与通信 >> 语音控制小车的设计与实现_图文

语音控制小车的设计与实现_图文

语音控制小车

语音控制小车的设计与实现

学院: 学院:软件学院 班级: 级计算机科学与技术( 班级:08 级计算机科学与技术(3)班 姓名: 姓名:张 博 学号: 学号:0811240533 同组成员: 同组成员:姜程译

语音控制小车

目 录
前言………………………………………………… 前言………………………………………………… 1 绪论………………………………………………… 绪论………………………………………………… 2 第一章凌阳单片机介绍…………………………… 第一章凌阳单片机介绍…………………………… 4 第二章语音控制小车的总体设计………………… 第二章语音控制小车的总体设计………………… 6
第一节所需材料(硬件,软件) 第一节所需材料(硬件,软件)…………………………………………… 所需材料 第二节功能要求…… ……………………………………………………………… 第二节功能要求……………………………………………………………… 第三节车体说明……………………………………………………………… 第三节车体说明……………………………………………………………… 第四节小车的功能实现原理………………………………………………… 第四节小车的功能实现原理………………………………………………… 第五节软件流程设计………………………………………………………… 第五节软件流程设计………………………………………………………… 6 6 6 13 15

第三章……………………………………………… 第三章……………………………………………… 18
第一节硬件的安装…………………………………………………………… 第一节硬件的安装…………………………………………………………… 第二节代码编译及下载……………………………………………………… 第二节代码编译及下载……………………………………………………… 第三节训练小车…………………………… ……………………………………………………………… 第三节训练小车……………………………………………………………… 第四节声控小车……………………………………………………………… 第四节声控小车……………………………………………………………… 18 20 22 24

参考文献…………………………………………… 参考文献…………………………………………… 24 致谢………………………………………………… 致谢………………………………………………… 25

语音控制小车

前言
本文主要以 SPCE061A 为基础介绍了如何应用 SPCE061A 芯片进行语音控制小车的硬件和 软件设计。SPCE061A 是一种 16 位 μ'nSP 结构的微控制器。该芯片带有硬件乘法器,能够 实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高 可以达到 49MHz。SPCE061A 内嵌 32K 字的 FLASH 程序存储器以及 2K 的 SRAM。同时该 SOC 芯 片具有 ADC 和 DAC 功能, MIC_ADC 通道带有 AGC 自动增益环节, 其 能够很轻松的将语音信号 采集到芯片内部,两路 10 位的电流输出型 DAC,只要外接一个功放就可以完成声音的播放。 以上介绍的这些硬件资源使得该 SPCE061A 能够单芯片实现语音处理功能。 SPCE061A 是继µ’nSP?系列产品 SPCE500A 等之后凌阳科技推出的又一款 16 位结构的 微控制器。与 SPCE500A 不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便 于程序调试等功能,SPCE061A 里只内嵌 32K 字的闪存(FLASH) 。较高的处理速度使 µ’nSP?能够非常容易地、快速地处理复杂的数字信号。因此,与 SPCE500A 相比,以 µ’nSP?为核心的 SPCE061A 微控制器是适用于数字语音识别应用领域产品的一种最 经济的选择。借助于 SPCE061A 的语音特色,我们开发出了这款语音控制小车。小车不仅具 有前进、后退、左转、右转停车等基本功能;同时配合 SPCE061A 的语音特色,实现语音控 制功能。 SPCE061A 单片机是凌阳公司今年新推出的一款十六位单片机,它的易用性和多功能性 受到了广大电子爱好者的好评 这里要介绍的是用 SPCE061A 单片机实现 2001 年全国大学生 。 电子设计竞赛试题(C 题),本系统以参赛题目的要求为目的,采用 SPCE061A 单片机为控 制核心,利用光电检测器检测道路上的标志,控制电动小汽车的正反向行驶,快慢速行驶, 以及停车的位置,并可自动记录往返时间和距离,在显示完时间距离后将会自动播报整个行 程所消耗的时间,以及行驶路程。整个系统的电路结构简单,可靠性高。实验测试结果满足 要求,本文着重介绍了该系统的软硬件设计方法及测试结果分析。

-1-

语音控制小车

绪论
第一节 单片机的发展历史
单片机一词最初是源于"SingleChipMicrocomputer”,简称 SCM。在单片机诞生时,SCM 是一个准确、流行的称谓,“单片机”一词准确地表达了这—概念。随着 SCM 在技术上、体 系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来准确表达其内涵。国 际上逐渐采用"MCU"(MicroControllerUnit”)来代替,形成了单片机界公认的、最终统一的 名词。在国内因为“单片机”一词已约定俗成,故而继续沿用。 单片机按其内部中央处理器 CPU(CentralProcessingUnit)的字长分为 1 位机、4 位机、8 位 机、 位机等。 1976 年 8 位单片机诞生以来, 16 从 单片机领域中一直是以 8 位机为主流机型, 预计这种情况还将继续下去。 因此我们以 Intel 公司的 8 位机为例来谈谈单片机的发展历史。 1.第一阶段——单片机阶段(1976 午~1978 年)。 这阶段的任务是探索计算机的单芯片集 成。以 Intel 公司的 MCS—48 为代表,其 CPU、存储器、定时器/计数器、中断系统、I/O 端口、时钟以及指令系统都是按嵌入式系统要求专门设计的。 2.第二阶段——单片机的完善阶段(1978 年一 1982 年)。计算机的单芯片集成探索取得 成功后, 随后的任务就是要完善单片机的体系结构。 作为这一阶段的典型代表是 Inlel 公司 将 MCS—48 向 MCS—5l 系列的过渡。它在以下几个重要方面奠定了单片机的体系结构。 (1)完善的外部总线。有 8 位数据总线、16 位地址总线、控制总线及具有多机通信功能的 串行通信接口。 (2)CPU 外围功能单元的集中管理模式。 (3)设置面向工控的位地址空间及位操作方式。 (4)指令系统突出控制功能。 3.第三阶段——微控制器形成阶段(1983 年一 1990 年)。这一阶段单片机的主要技术发 展方向是满足测控对象要求的外围电路的增强,如 A/D 转换、D/A 转换、高速 I/O 口、 WDT(程序监视定时器)、DMA(高速数据传输)等,强化了智能控制的特征。 4.第四阶段--微控制器全面发展阶段(1990 年以后)。即当前的单片机时代,其显著 特点是百花齐放、技术创新。单片机正在满足各个方面的需求.从玩具、小家电、工程控制 单元到机器人、智能仪表,过程控制,个人信息终端等无所不能。

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

语音控制小车

况。1、 内部结构的进步单片机在内部已集成了越来越多的部件,这些部件包括一般常用的 电路,例如:定时器,比较器,A/D 转换器,D /A 转换器,串行通信接口,Watchdog 电路, LCD 控制器等。有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块 CAN。例如,Infineon 公司的 C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola 公 司的 68HC08AZ 系列等。特别是在单片机 C167CS-32FM 中,内部还含有 2 个 CAN。因此,这 类单片机十分容易构成网络。 特别是在控制, 系统较为复杂时, 构成一个控制网络十分有用。 单片机在目前的发展形势下,表现出几大趋势: ?可靠性及应用越来越水平高和互联网连接已是一种明显的走向。 ?所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也 集成 到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于 其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。 ?功耗越来越低和模拟电路结合越来越多。 随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步, 最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。 单片机的应用领域: 目前单片机渗透到我们生活的各个领域, 几乎很难找到哪个领域没有单片机的踪迹。 导 弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的 实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录象机、 摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不 用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将 造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过 程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应 用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流 量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪 器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测 量设备(功率计,示波器,各种分析仪) 。 2.在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理, 电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 3.在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、 空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 4.在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口, 可以很方便地与计算机进行数据通信, 为在计算机网络 和通信设备间的应用提供了极好的物质条件, 现在的通信设备基本上都实现了单片机智能控 制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常 工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 5.单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊 断设备及病床呼叫系统等等。 此外, 单片机在工商, 金融, 科研、 教育, 国防航空航天等领域都有着十分广泛的用途。
-3-

语音控制小车

第一章 凌阳单片机简介
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、 数据处理以及数字信号处理(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?内核是一个通用的核结构。 除此之外的其它功能模块均为可选结构, 亦即这种 结构可大可小或可有可无。 借助这种通用结构附加可选结构的积木式的构成, 便可形成各种 不同系列派生产品, 以适合不同的应用场合。 这样做无疑会使每一种派生产品具有更强的功 能和更低的成本。

-4-

语音控制小车

SPCE061A 板 SPCE061A 是继μ’nSP?系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的 微控制器。 与SPCE500A不同的是, 在存储器资源方面考虑到用户的较少资源的需求以及便于 程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使μ’nSP? 能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以μ’nSP?为核心 的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。

-5-

语音控制小车

第二章 语音控制小车的总体设计
所需材料(硬件,软件) 第一节 所需材料(硬件,软件) 一,硬件 实验箱及实验仪;凌阳 SPCE061A 板;小型电动机;车体;车轮;电池盒;两节五号干 电池;麦克风;喇叭以及元器件散件等等。 二,软件 windowPE;IDE2.0 程序;ResWriter 工具;串口工具;语音压缩工具等等。

第二节 功能要求 小车的主要性能指标: 1、输入电压:DC4.5V(3节AA电池) 2、可以实现前、后、左、右四方向运作 3、可以实现弧形旋转 4、具有通过加载 61 板实现语音控制 语音控制小车的主要功能: 1. 可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能; 2. 配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的 功能; 3. 可以在行走过程中声控改变小车运动状态; 4. 在超出语音控制范围时能够自动停车 注意事项: 1. 一定要注意电池的正负极性,切勿装反; 2. 长期不用请将电池取出电池盒; 3. 由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性; 4. 由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保 证不会对周围的物体造成伤害; 5. 不要让小车长时间运行在堵转状态(堵转状态:由于小车所受阻力过大,造成小车 电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的 控制电路。

第三节 车体说明 2.3.1 车体结构 语音控制小车为四轮结构,车的结构示意图如图 2.3.1 所示。其中前面两个车轮由前 轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态
-6-

语音控制小车

下, 前轮在弹簧作用下保持中间位置。 后面两个车轮由后轮电机驱动, 为整个小车提供动力, 所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,如图 2.3.2 所示。

图 2.3.1

-7-

语音控制小车

整个小车分为三大部分:车体部分、61板、控制板。 车体部分: 小车车体主要为两个电机驱动装置, 分前轮 (方向) 驱动和后轮 (动力驱动) 。 在车体的下面有一个可以安装4节AA电池的电池盒,整个小车的电源就是由它来提供的。在 小车的底部有一个小开关,它负责控制整个小车的电源开通与关断。 61板:61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识 别功能实现。在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来 做其它的实验或开发。 控制板:控制板负责将来自 61 板的控制信号转化为能够驱动电动机的信号。 (图中 61 板下面的黄色板子)

2.3.2 硬件框图 小车控制系统硬件结构比较简单,如图 2.3.3 所示,主要分为两个部分:一个是 SPCE061A 精简开发板(即“61”板) ,另外一个是电机控制板。电机控制板的工作就是根据 61 板的输出信号去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和 关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。

图 2.3.3 SPCE061A性能 16位μ'nSP?微处理器; 工作电压(CPU) VDD为3.0V~3.6V,(I/O) VDDH为VDD~5.5V; CPU时钟:0.32MHz~49.152MHz; 内置2K字SRAM; 内置32K FLASH; 可编程音频处理; 晶体振荡器; 系统处于休眠模式下(时钟处于停止状态),耗电仅为2μA@3.6V;
-8-

语音控制小车

2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 两级中断,14个中断源; 具备触键唤醒的功能; 使用凌阳音频编码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.3.4 所示。 接口电路: 接口电路负责将61板的I/O接口信号传送给控制电路板, I/O信号主要为控制 电机需要的IOB8~IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15 以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。 电源部分:整个小车有4个电源信号:电池电源,控制板工作电源,61板工作电源,61板的 I/O输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1 后产生61板电源(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。 二极管D1作用: a) 降压,4节电池提供的电压VCC最大可达到6V,D1可有效地降压。 b) 保护,D1可以防止电源接反烧坏61板。

-9-

语音控制小车

图 2.3.4

功能分区:
*

小车控制板功能分区图如图2.3.5。其中,A区为电源区,分别给61板 和小车控制板提 供电源; C区分别为后、 B、 前轮的电机驱动电路, 驱动后面两个轮或者前面两个轮的进行正、 反两个方向的转动;D区为I/O接口区,负责和61板的接口进行连接,注意J5与J6是接通的, J7与J8是接通的。 注:上标(*)表示 61 板可以通过小车的电池供电,也可单独供电。

- 10 -

语音控制小车

图 2.3.5 小车控制板功能分区图

2.3.4 动力电机驱动电路 动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一 个全桥驱动电路,如图 2.3.5 所示:Q1、Q2、Q3、Q4 四个三极管组成四个桥臂,Q1 和 Q4 组成一组,Q2 和 Q3 组成一组,Q5 控制 Q2、Q3 的导通与关断,Q6 控制 Q1 和 Q4 的导通与关 断,而 Q5、Q6 由 IOB9 和 IOB8 控制,这样就可以通过 IOB8 和 IOB9 控制四个桥臂的导通与 关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。

图 2.3.6
- 11 -

语音控制小车

当IOB8为高电平、 IOB9为低电平时Q1和Q4导通, Q2和Q3截止, 后轮电机正转, 小车前进; 反之当IOB8为低电平、 IOB9为高电平时Q1和Q4截止, Q2和Q3导通, 后轮电机反转, 小车倒退; 而当IOB8、IOB9同为低电平时Q1、Q2、Q3和Q4都截止,后轮电机停转,小车停止运动。 注意: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截止,前轮电机正转,小车 前轮朝左偏转;反之当IOB10为低电平、IOB11为高电平时Q8和Q9截止,Q7和Q10导通,前轮 电机反转,小车前轮朝右偏转;而当IOB10、IOB11同为低电平时Q8和Q9截止,Q7和Q10也截 止,前轮电机停转,在弹簧作用下前轮被拉回到中间位置,保持直向。 注 意 : IOB10 、 IOB11 不 能 同 时 为 高 电 平 , 这 样 会 造 成 前 轮 驱 动 全 桥 的 桥 臂 短 路 。

图 2.3.7 结合以上对前轮和后轮的状态分析, 得到小车的运行状态与输入的对照表, 如下表所示: IOB11 0 0 0 0 1 IOB10 0 0 0 1 0 IOB9 0 0 1 0 0 IOB8 0 1 0 1 1 后电机 停转 正转 反转 正转 正转 前电机 停转 停转 停转 正转 反转 小车 停 前进 倒退 左前转 右前转

表 2.3.1 另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状 态分析,其端口对照如表 2.3.2 所示:

- 12 -

语音控制小车

IOB11 0 1

IOB10 1 0

IOB9 1 1

IOB8 0 0

后电机 反转 反转

前电机 正转 反转

小车 右后转 左后转

表 2.3.2 注意:为了小车的安全请不要出现以下两种组合情况: IOB11 * 1 IOB10 * 1 IOB9 1 * IOB8 1 * 表 2.3.3 后电机 停转 * 前电机 * 停转 小车 停 停

第四节 小车的功能实现原理 2.4.1 小车直走的实现过程 只要让小车的前轮保持自然状态(即不左偏又不右偏) ,然后让后轮正传即可实现小车 的前进。 对应全桥驱动电路如表 2.4.1 所示 IOB11 0 IOB10 0 IOB9 0 IOB8 1 表 2.4.1 2.4.2 小车倒退的实现过程 与之相反,只要让小车的前轮保持自然状态(即不左偏又不右偏) ,然后让后轮倒传即 可实现小车的前进。 对应全桥驱动电路如表 2.4.2 所示 IOB11 0 IOB10 0 IOB9 1 IOB8 0 表 2.4.2 2.4.3 小车的左前转实现过程 在某些场合, 小车还需要转弯, 那么小车又是怎样实现转弯的呢?如果需要小车实现左 前转,可以让小车的前轮左偏,后轮正转,这样就可以实现小车的左转,如表 2.4.3 所示: IOB11 0 IOB10 1 IOB9 0 IOB8 1 表 2.4.3 2.4.4 小车的右前转实现过程 如果需要小车实现右前转, 可以让小车的前轮右偏, 后轮正转, 这样就可以实现小车的右转, 如表 2.4.4 所示: IOB11 IOB10 IOB9 IOB8
- 13 -

后电机 正转

前电机 停转

小车 前进

后电机 反转

前电机 停转

小车 倒车

后电机 正转

前电机 正转

小车 左前转

后电机

前电机

小车

语音控制小车

0 1

1 0

1 1

0 0

反转 反转

正转 反转

右后转 左后转

2.4.5 小车的右后转及左后转与之相反,即可。 2.4.6PWM调速的原理 如果需要调速, 可以直接调用SPCE061A的PWM资源, 通过调节PWM的占空比来实现速度的 调节。 当IOB11~IOB8输出的逻辑电平组合为“0001”时, 加在后轮电机上的驱动电压为VCC; 而当IOB11~IOB8输出“0000”时, 加在后电机上的电压为0V。 如果交替地向端口送“0001” 和“0000”两种组合(PWM输出端口自动实现),那么加在小车电机两端的电压就在VCC和0V 之间不停的跳变,对应的电机电压波形如图 2.4.1示:

图 2.4.1 PWM 调速原理图 此时加在电机两端的平均电压Uo=Th/(Th+Tl)*VCC。 可以通过调整PWM的占空比,来改变Th和Tl的比值,从而改变Uo的大小。这样就可以通 过PWM资源调节加在电机两端的平均电压,从而改变电机的转速,最终实现调节小车速度的 目的。 另外也可以利用程序使端口产生 PWM 波形,控制小车的速度,在此不作赘述。

2.4.7 语音识别原理 语音识别主要分为“训练”和“识别”两个阶段。 在训练阶段, 单片机对采集到的语音 样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对 采集到的语音样本也进行类似的分析处理, 提取出语音的特征信息, 然后将这个特征信息模 型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。 语音识别的具体流程如图 2.4.2 所示:

- 14 -

语音控制小车

图 2.4.2 语音识别流程说明框图

第五节 软件流程设计 2.5.1 主程序流程图 以配套资料中的语音识别程序(Car_Demo)为例,说明语音识别小车的实现过程,图 2.5.1 所示为小车的主程序工作流程。

- 15 -

语音控制小车

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

语音控制小车

动过程中可以通过呼叫小车的名字使小车停下来。 重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫 描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。复位 后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。 在程序的代码中有详细的注释,请参看资料中的例程 Car_Demo。

2.5.2 程序中需要说明的几个问题 在这个程序中有几个地方不易理解,需要特别说明一下: 首先,小车有没有经过训练是怎么知道的?在这里利用了一个特殊的FLASH单元,当 FLASH在初始化以后,如果没有进行过写操作的话,那么该单元的内容为0xffff。(该示例 程序中为0xe000单元),该单元内容在擦除后为0xffff,在成功训练并存储后为0x0055(该 值由辨识器自动生成)。这样就可以根据这个单元的值来判断是否经过训练。 其次,为什么已经训练过的系统在重新运行时还要进行模型装载?在首次训练完成之 后,辨识器中保存着训练的模型,但是一旦系统复位,辨识器中的模型就会丢失,所以在重 新运行时必须把存储在FLASH中的语音模型装载到辨识器中去。 第三, 关于语音的一些具体问题, 关于语音的一些具体问题请参看SPCE061A相关书籍中 关于语音的详细介绍。

- 17 -

语音控制小车

?第三章

小车的安装与实现

第一节 硬件的安装 3.1.1 小车的焊接 第一步 小车控制板裸板检测 目的:检测裸板电路是否有短路或者是断路的现象; 方法:从PCB板的背面观察板上的布线,是否出现制板加工时导制的短路、断线、过孔 阻赛等现象。 第二步 检测元器件、并做器件整形 1.用万用表检测8个电阻,测量验证电阻的阻值,并按照阻值把他们分成两组(一组的 阻值为200Ω/330Ω,另一组的阻值为2kΩ/2.2KΩ)。注意不要混了。 2.利用万用表检测12个三极管,确定三极管有放大能力;把这些三极管中NPN的8050 放到一块, PNP的8550放到一块。 注意不要混了; 如果有失去放大能力的, 要用好的替换掉。 3.利用万用表检测三极管的极性,并按电路板间距把引脚折弯,以便插到电路板上。 4.将所有检测过的电阻、电容、二极管按电路板间距把引脚折弯,以便插到电路板上。 注意: 绝对不能在元件引脚跟部反复折弯, 因为这样引起的元件内部接触不良造成的故障是 很难维修的。 第三步 焊接电阻 如图 3.1.1 所示:

图 3.1.1 电阻焊接效果图 第四步 焊接三极管 如图 3.1.2 所示;注意三极管的三个管脚(E、B、C)不要接错。

- 18 -

语音控制小车

图 3.1.2 三极管焊接效果图 第五步 焊接接口 如图 3.1.3 所示;小车控制板上只有 IOB 的 9~11 口有作用,其他都是预 留接口;J5 和 J6 是接通的,所以只需焊接 J5 接口就可以了,将 10Pin 排针焊接到 J5。

图 3.1.3 接口焊接效果图 第六步 测试车体引线正负极: 1、电源测试:安装电池,打开小车电源,测量出电源的正负极引线并标识; 2、电机测试:将后轮电机引线接小车电源,使后轮正转,此时标注和电源正极相连引 线为“+”,另一根为“—”;将前轮电机引线(如图 2.4C)接电源,使前轮左偏,此时标 注和电源正极相连引线为“+”,另一根为“—” 第七步 连接车体和控制板:连接控制板主要包括,电源连接和电机连接
- 19 -

语音控制小车

1、焊接电源:将电源正负极引线分别焊至控制板J1的“VCC”和“—” 2、焊接电机:将后轮电机焊至J3,前轮电机焊至J4,注意方形焊盘为正极 3、将 10cm 红色导线焊至控制板 J2 的“VCC_61”,绿色导线焊至 J2 的“—”,为 61 板供电。 第八步 固定控制板, 首先把喇叭固定在小车车体的中间位置, 然后把控制板放到车体上方, 找到对应的定位孔,用 3 个Φ2.5 的螺丝拧紧即可。 第九步 测试 如图 2.7,按照下面的步骤测试连接是否正确: 1、打开小车电源, 2、用红色电源线去接触J5的“8”,此时小车后轮正转; 3、用红色电源线去接触J5的“9”,此时小车后轮反转; 4、用红色电源线去接触J5的“10”,此时小车前轮左偏; 5、用红色电源线去接触J5的“11”,此时小车前轮右偏; 如果符合以上现象, 证明电路的焊接和连接通过。 如果和以上现象不符, 则有以下可能: 1、电机不转三极管不发热,检查电源是否接通、中间是否有断路的情况 2、如果电机不转且三极管发热,证明有短路情况 3、如果电机转向刚好相反,证明电机的正负极引线焊接反向,卸下反接即可。 第十步 焊接 61 板 1、采用普通61板(排针在61板正面) 控制板的J5焊接10PIN排针,用10PIN排线将61板的J7(IOBH)与控制板的J5连接,连接 时注意方向。最后把喇叭接好,小车的硬件连接就完成了。 2、采用特制61板(排针在61板反面) 控制板的 J6 焊接 10PIN 排孔,然后直接将 61 板扣接在控制板上面,61 板的 J7 直接与控制 板的 J6 对接。最后把喇叭接好,小车的硬件连接就完成了。

代码编译及 编译及下载 第二节 代码编译及下载 3.2.1 代码编译 下表为小车实例源代码

- 20 -

语音控制小车

#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 (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 P_Watchdog_Clear (unsigned int *)0x7012 以上是宏定义操作, 在程序的开头对常用的单片机资源端口进行定义, 在以后的程序中 就可以直接引用这些宏名来代替端口地址完成端口操作。这样做的好处:一是可读性强,宏 名能够直接表达出端口的含义;二是易于修改,如果需要重新分配端口,可以在宏定义部分 修改, 而不必在程序中逐一修改。 上面定义了一些用到的硬件资源包括IO端口和看门狗资源。 第二: *P_IOB_Dir = 0xffff; *P_IOB_Attrib = 0xffff; //设置IOB为同相输出端 这两句共同完成B口的初始化工作, 通过这两句把B口初始化为同相的输出口, 以后直接 通过B口来向外输出0、1电平。 第三: *P_IOB_Data = 0x0100; //前进 这是整个程序的核心部分, 正是通过这条指令来完成数据输出的。 执行完这条指令以后, 对应的B口的16位数据为“0000 0001 0000 0000”,其中B 11~B 8四位为“0001”,这样就
- 21 -

语音控制小车

实现了小车的前进功能(参看表 3.1),同样还可以通过向P_IOB_Data写不同的数值来实现 不同的功能,具体的数值请参照表 2.1 第四:*P_Watchdog_Clear=0x0001; //清看门狗 这是一条清看门狗的操作,在实际的系统中,为了保证系统能够稳健的运行,引入看门狗资 源。必须在看门狗的计数器溢出之前对它进行重新赋值,否则看门狗计数器就会溢出,造成 系统复位。在这里让程序进入一个循环,在循环中不停地清看门狗这样系统就不会复位。 3.2.2 代码下载 硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为: 第一步:打开集成开发环境,打开“Car_Demo.spj”文件,编译链接。(注意:如果 看不到Car_Demo.spj,请在弹出的对话框中选择打开类型为spj或者所有文件) 第二步:点击菜单 Project->Select Body,或者直接点击 示的对话框: 图标打开如图 3.2.1 所

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

语音控制小车

练流程如图 5.2所示:

图 3.3.1 小车训练流程

- 23 -

语音控制小车

第四节 声控小车 训练完小车之后,可以直接对小车说前进,或者倒车、左拐、右拐等,小车如果识别出 指令会有一个回应信号,告知你它要执行的动作,然后执行该动作。如果想要小车执行其它 动作,直接告诉小车将要执行动作对应的指令即可。比如在前进时告诉小车“倒车”,小车 识别出之后就会直接倒车。 如果在小车运动的过程中想要小车停下来, 可以直接呼叫小车的名字, 小车准确识别之后就 会停下来。 注:在实际的使用过程当中,可能会对训练的结果不满意,或者其他人也想对它进 行训练、控制。这样就要求小车可以被重新训练。为此,我们把61板的KEY3键定义为重新训 练按钮,系统运行之后就会不断的扫描61板的KEY3键。如果检测到KEY3键按下,那么程序首 先会把训练标志位(0xe000)单元擦除,并会进入一个死循环等待复位的到来。复位到来之 后,程序检测到训练标志单元内容为0xffff,认为小车没有经过训练,就会要求对它进行训 练。

参考文献: 语音控制小车(越野型)使用说明书V1.0 凌阳16位单片机应用基础 61板实验指导书 跟我学SPCE061A单片机v1.1

- 24 -

语音控制小车





本课题在选题及研究过程中得到了陈思老师的悉心指导。陈思老师多次询问研究过程, 并为我们指点迷津,帮助我们开拓思路,精心点拨,热忱鼓励。陈思老师一丝不苟的作风, 严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人。 感谢与我同组的姜诚意和符晓乐两位同学,在本课题的研究过程中他们两位也做了大量 而细致的工作,为这个课题的最终顺利完成做出了巨大贡献、 在本课题完成之际向帮助过我们和给予我悉心指导的各位老师同学以最诚挚的敬意!

- 25 -


更多相关文档:

基于单片机的语音控制小车系统设计与实现_图文.doc

基于单片机的语音控制小车系统设计与实现 - 编号: 毕业设计说明书 题 目: 基于单片机的语音控制 小车系统设计与实现 学专 院: 机电工程学院 业:机械设计制造及其...

语音控制小车的设计与实现_图文.doc

语音控制小车的设计与实现 - 语音控制小车 语音控制小车的设计与实现 学院: 学

基于单片机的语音控制小车系统设计与实现论文_图文.doc

基于单片机的语音控制小车系统设计与实现论文 - 毕业设计说明书 题 目: 基于单片机的语音控制 小车系统设计与实现 题目类型: 理论研究 实验研究 ? 工程设计 工程...

基于单片机语音控制小车的设计_图文.ppt

基于单片机语音控制小车的设计_计算机软件及应用_IT/计算机_专业资料。基于单片机语音控制小车的设计,凌阳单片机语音语音控制小车,基于51单片机语音语音控制小车,单片机...

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

基于单片机的语音控制小车毕业设计论文 - 华科学院本科毕业设计(论文) 基于单片机的语音控制小车设计 摘要 随着电子工业的发展,具有语音控制功能的小车越来越受到人们的...

基于语音控制技术的无线小车系统设计与实现_林进健_图文.pdf

基于语音控制技术的无线小车系统设计与实现_林进健 - 2014 中山大学研究生学

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

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

基于单片机的语音控制小车设计_图文.doc

基于单片机的语音控制小车设计 - 题目:基于单片机的语音控制小车设计 目录 1 引言 ………3 2 语音控制小车设计要求 …...

基于单片机技术的语音控制小车设计_图文.doc

基于单片机技术的语音控制小车设计 - 1、 引言 语音处理技术是一门新兴的技术,它不仅包括语音录制和播放,还涉及语音压缩编码和解 码,语音识别等各种处理技术...

基于语音控制的智能小车设计毕业论文_图文.doc

基于语音控制的智能小车设计毕业论文 - 本科毕业设计(论文) 基于语音控制的智能小车设计 学院信息工程学院 专业 测控技术与仪器 (计算机测控方向) 年级班别 学号 ...

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

基于单片机的语音控制小车设计_毕业设计论文 - 华科学院本科毕业设计(论文) 本科毕业设计(论文) 基于单片机的语音控制小车设计 摘要 随着电子工业的发展,具有语音控制...

基于语音处理技术的智能小车的设计与制作_图文.ppt

基于语音处理技术的智能小车的设计与制作 - 这是我大学二年级做的一个智能小车,可以用声音控制小车运行

语音控制小车的设计_图文.ppt

语音控制小车的设计 - 语音控制小车的设计 目录 一.语音控制小车概述 二.核心

语音控制的智能小车的设计_李红霞.pdf

2015 年第 28 卷第 8 期 143 语音控制的智能小车的设计* Design of Voice ...图4 语音识别反馈及控制系统原理图 144 2 语音在智能小车上的实现 本系统采用...

基于语音控制的电动小车的设计_图文.pdf

基于语音控制的电动小车的设计 - TP3 黄常明 2010 年 月 日 摘要 摘

语音控制小车_图文.doc

语音控制小车 - 哈尔滨工业大学本科毕业设计开题报告 创新研修课程报告 题目:基于凌阳 61 单片机的语音控制小车 院 (系) 专学学班业生号号 电气工程及自动化学院...

基于单片机技术的语音控制小车设计--(..._图文.doc

基于单片机技术的语音控制小车设计--(... - 选填,简要介绍文档的主要内容,

基于单片机语音控制小车的设计_图文.ppt

基于单片机语音控制小车的设计 - 一、论文的主要内容 ? ? ? ? 1.语音识

基于单片机的语音控制小车毕业设计论文 精品推荐_图文.doc

华科学院本科毕业设计(论文) 基于单片机的语音控制小车设计 摘要 随着电子工业的

语音控制的智能小车设计.doc

语音控制的智能小车设计 - 语音控制的智能小车设计 摘要:介绍了语音遥控的电动小车的机械结构及控制部分。在机械结构上, 对普通的玩具小车做了改进,使小车的转向...

更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com