语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx

上传人:b****1 文档编号:4049495 上传时间:2023-05-02 格式:DOCX 页数:22 大小:684.21KB
下载 相关 举报
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第1页
第1页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第2页
第2页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第3页
第3页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第4页
第4页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第5页
第5页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第6页
第6页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第7页
第7页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第8页
第8页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第9页
第9页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第10页
第10页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第11页
第11页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第12页
第12页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第13页
第13页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第14页
第14页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第15页
第15页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第16页
第16页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第17页
第17页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第18页
第18页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第19页
第19页 / 共22页
语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx

《语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx》由会员分享,可在线阅读,更多相关《语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx(22页珍藏版)》请在冰点文库上搜索。

语音控制智能小车方向电机控制电路设计毕业综合实践报告文档格式.docx

2

3

4

5

6

7

8

目录

一、引言

二、设计要求

2.1功能要求:

2.2参数说明

三、特性简介

四、方案介绍

五、系统硬件设计

5.1车体介绍

5.2小车的行走原理.

5.3控制板原理图

六、系统软件设计

6.1主程序设计.

6.2语音识别的原理简介

七、方向电机控制电路

八、常见问题

九、结束语

附录

参考文献

内容摘要

介绍了语音遥控的电动小车的硬件设计部分和使用软件智能控制部分。

语音遥控的电动小车在硬件设计部分采用SPCE061A精简开发板和控制板,在软件智能控制部分,采用语音控制方式,使小车可以“听懂”人的命令,实现小车的前进后退等功能。

控制系统采用的是AT89S51单片机,编程语言使用的是汇编语言,动力系统使用的是伺服马达,能源系统使用的是9V电池。

关键词:

SPCE061A软件智能控制硬件设计

一、引言

语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。

以往做这方面的设计,一般有两个途径:

一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。

普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。

专门的语音处理芯片也比较多,如ISD系列、PM50系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。

SPCE061A是一款16位μ'

nSP结构的微控制器。

该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。

它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。

SPCE061A内嵌32K字的FLASH程序存储器以及2K的SRAM。

同时该SOC芯片具有ADC和DAC功能,其MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路10位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。

以上介绍的这些硬件资源使得该SPCE061A能够单芯片实现语音处理功能。

借助于SPCE061A的语音特色,“基于单片机技术的语音控制小车设计”实现了对小车前进、后退、左转、右转、停车等语音控制功能.

二、设计要求

1.可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;

2.配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;

3.可以在行走过程中声控改变小车运动状态;

4.在超出语音控制范围时能够自动停车。

2.2参数说明

车体:

双电机两轮驱动

供电:

电池(四节AA:

1.2V×

4或1.5V×

4)

工作电压:

DC4V~6V

工作电流:

运动时约200mA

三、特性简介

SPCE061A是一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。

这为实现语音录入提供了方便的硬件条件。

两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。

该单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准C语言编程,也支持C语言与汇编语言的互相调用。

另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。

SPCE061A特性:

16位μ’nSP微处理器;

工作电压:

内核工作电压VDD为3.0V~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O);

CPU时钟:

0.32MHz~49.152MHz;

内置2K字SRAM;

内置32K闪存ROM;

可编程音频处理;

晶体振荡器;

系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;

2个16位可编程定时器/计数器(可自动预置初始计数值);

2个10位DAC(数-模转换)输出通道;

32位通用可编程输入/输出端口;

14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;

具备触键唤醒的功能;

使用音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;

锁相环PLL振荡器提供系统时钟信号;

32768Hz实时时钟;

7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;

声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;

具备串行设备接口;

低电压复位(LVR)功和低电压监测(LVD)功能;

内置在线仿真板(ICE,In-CircuitEmulator)接口。

四、方案介绍

小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车动作之后,随时可以通过语音指令改变小车的运动状态。

在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间一到,中断服务程序就会发出指令让小车停下来。

图1控制系统所需硬件

图一

五、系统硬件设计

系统的硬件方面,由于大部分的功能实现都是在61板上完成的,只有电机控制部分电路另外设计在一块独立的电路板上,我们称之为控制板。

下面详细的介绍小车的结构和运行原理以及控制电路板的结构和功能实现。

图2系统硬件框图

图3系统硬件组装效果图

5.1车体介绍

语音控制小车为四轮结构。

其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。

在自然状态下,前轮在弹簧作用下保持中间位置。

后面两个车轮由后轮电机驱动,为整个小车提供动力。

所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮。

5.2小车的行走原理.

直走:

由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。

倒车:

倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。

图4小车前进、后退示意图

左转:

前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。

右转:

前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进。

图5小车转向示意图

5.3控制板原理图

控制板主要包括:

接口电路、电源电路和两路电机的驱动电路,控制板原理图如下。

接口电路:

接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8~IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。

电源部分:

整个小车有4个电源信号:

电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。

系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源SPCE061A在语音控制小车中的应用(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。

图6小车控制电路图

六、系统软件设计

6.1系统的主程序设计

系统的主程序流程如下图所示:

图7主程序流程图

共分为四大部分:

初始化部分、训练部分、识别部分、重训操作。

初始化部分:

初始化操作将IOB8~IOB11设置为输出端,用以控制电机。

必要时还要有对应的输入端设置和PWM端口设置等。

训练部分:

训练部分完成的工作就是建立语音模型。

程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash,在以后使用时不需要重新训练;

如果已经训练过会把存储在Flash中的模型调出来装载到辨识器中。

识别部分:

在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。

如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车SPCE061A在语音控制小车中的应用的名字使小车停下来。

重训操作:

考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。

复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。

6.2语音识别的原理简介

语音识别主要分为“训练”和“识别”两个阶段。

在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;

在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。

语音识别的具体流程如下图所示:

图8语音识别流程图

七、方向电机控制电路

方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路,如图9所示:

Q7、Q8、Q9、Q10四个三极管组成四个桥臂,Q7和Q10组成一组,Q11控制Q8、Q9的导通与关断,Q12控制Q7和Q10的导通与关断,而Q11、Q12由IOB10和IOB11控制,这样就可以通过IOB10和IOB11控制前轮电机的正转和反转,进而控制小车的左转和右转

图9前轮电机驱动电路

当IOB10为高电平、IOB11为低电平时Q8和Q9导通,Q7和Q10截止,前轮电机正转,小车前轮朝左偏转;

反之当IOB10为低电平、IOB11为高电平时Q8和Q9截止,Q7和Q10导通,前轮电机反转,小车前轮朝右偏转;

而当IOB10、IOB11同为低电平时Q8和Q9截止,Q7和Q10也截止,前轮电机停转,在弹簧作用下前轮被拉回到中间位置,保持直向。

注意:

IOB10、IOB11不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。

结合以上对前轮和后轮的状态分析,得到小车的运行状态与输入的对照表,如下表所示:

(基本的输入与小车运动状态对照表)

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

(输入与小车的运动状态对照表)

注意:

为了小车的安全请不要出现以下两种组合情况,如下表所示:

(禁止的输入状态列表)

八、常见问题

Q:

为什么安装上电池以后,小车的指示灯不亮?

A:

这个应该是电源的原因,首先检查小车的电池安装是否正确可靠,正负极有没有接反;

如果电池

的安装是正确的,那么检测开关是否真正打开,开关上的连接线是否松动,如果电源、开关和连接线都正

常小车的指示灯仍然不亮的话,那可能就是61板出了问题。

为什么程序下载以后听不到提示音?

首先确认程序已经下载到小车上且下载无误,如果这些都没有问题,请检查61板的DAC跳线是

否正常以及喇叭的连接线是否正常。

为什么听到了提示音,但是不能对小车进行训练和控制?

这种情况应该是小车不能正常的接收语音信号,其原因应该是61板的MIC坏掉,或者是语音输

入电路出了问题

为什么小车执行的动作和我的指令不一致?

这种情况是没有按照顺序来训练小车。

小车的训练顺序是固定的“名字、前进、后退、左拐、右

拐”。

为什么我训练的小车,别人也可以控制?

这个几率是很小的,因为语音识别本身允许一定的误差,不能保证我们每次说同一句话时都是一

样的,这样就要求语音识别留出一定的误差范围,别人之所以能够控制就是他的声音对应的识别结果在这

个误差允许范围之内。

为什么小车在光滑的地面能够正常的动作,但是在比较粗糙的地面就不行?

这是因为小车是四驱的,转弯时摩擦力比较大,如果在光滑的地面上它可以靠打滑来减小这个摩

擦,但是如果在比较粗糙的地面上就不能够打滑,那么电机就会堵转,所以最好不要再粗糙的地面让小车转弯,以免出现堵转烧坏小车的驱动电路。

为什么小车直走正常,但是不能正常的实现转弯?

这仍然是车体的原因,由于车体是四驱的,而且前轮只能旋转,不能调节方向,所以就靠一侧电

机停转,另一侧电机正转或者反转来实现朝一侧旋转的目的。

但是有时候虽然电机停转了,但是有动力的

轮子会带着停转的轮子一起运动,不能够很好的转弯,有时转弯的半径会很大,不能达到理想的目的。

出发,

让小车在原地做一定角度的旋转(即一侧的轮子正转,另一侧的轮子反转),然后让小车直行,到B点处

再重复执行原地旋转动作,然后再直行到达C点。

如此一直到弧线的终点H,这样就完成了一定弧度的转

弯。

图示为左拐的过程,右拐的原理是一样的,只是原地旋转的方向不同而已。

九、结束语

经过了两个多月的学习和努力,我终于完成了《语音控制小车》的论文。

从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。

本设计综合应用了SPCE061A丰富的软硬件资源,成功的实现了语音控制功能。

在硬件方面,有较高的执行速度、内置的硬件乘法器、ADC和DAC功能、内置的AGC自动增益环节,这些为语音处理提供了强大基础。

在软件方面,标准的C语言编程,丰富的语音资源函数为编程提供了很大的方便。

该设计方案结构简单,以单芯片实现了语音播放与识别以及电机控制功能,相当于“语音识别芯片+普通单片机”的功能。

但是比“语音识别芯片+普通单片机”方案实现起来要简单很多,而且成本也会降低很多。

该语音控制小车操作比较简单,训练和识别成功的几率也比较高,是一个典型的语音识别应用方案。

最后,我要特别感谢我的指导老师。

是他在我毕业的最后关头给了我们巨大的帮助与鼓励,使我能够顺利完成毕业设计,在此表示衷心的感激.指导老师老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。

他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。

附录文件名称:

PWM.asm功能描述:

PWM设置服务

.DEFINEtimefosc_20x0230;

//clkA选择fosc/2Hz

.DEFINEtimefosc_2560x0231;

//clkA选择fosc/256Hz

.DEFINEtimeclk_327680x0232;

//clkA选择32768Hz

.DEFINEtimeclk_81920x0233;

//clkA选择8192Hz

.DEFINEtimeclk_40960x0234;

//clkA选择4096Hz

.DEFINEtimeclk_20480x0205;

//clkB选择2048Hz

.DEFINEtimeclk_10240x020d;

//clkB选择1024Hz

.DEFINEtimeclk_2560x0215;

//clkB选择256Hz

.DEFINEtimeclk_40x0225;

//clkB选择4Hz

.DEFINEtimeclk_20x0065;

//clkB选择2HzHz

.DEFINEtimepwm_10x0070;

//脉宽选择1/6

.DEFINEtimepwm_20x00b0;

//脉宽选择2/6

.DEFINEtimepwm_30x00f0;

//脉宽选择3/6

.DEFINEtimepwm_40x0130;

//脉宽选择4/6

.DEFINEtimepwm_50x0170;

//脉宽选择5/6

.DEFINEtimepwm_60x01b0;

//脉宽选择6/6

.DEFINEtimepwm_70x01f0;

//脉宽选择7/6

.DEFINEtimepwm_80x0230;

//脉宽选择8/6

.DEFINEtimepwm_90x0270;

//脉宽选择9/6

.DEFINEtimepwm_100x02b0;

//脉宽选择10/6

.DEFINEtimepwm_110x02f0;

//脉宽选择11/6

.DEFINEtimepwm_120x0330;

//脉宽选择12/6

.DEFINEtimepwm_130x0370;

//脉宽选择13/6

.DEFINEtimepwm_140x03b0;

//脉宽选择14/6

.DEFINEtime_clktimefosc_256;

//频率选择

.DEFINEtime_pwmtimepwm_4;

//脉宽选择

.DEFINEP_TimerB_Data0x700C;

.DEFINEP_TimerB_Ctrl0x700D;

.DEFINEP_IOB_DATA0x7005;

.DEFINEP_IOB_DIR0x7007;

.DEFINEP_IOB_ATTRI0x7008;

.DEFINEP_Feedback0x7009;

.definep_watchdog_clear0x7012;

.DEFINEP_INT_CTRL0x7010;

.DEFINEP_INT_CLEAR0x7011;

.code

.public_F_Pwm;

_F_Pwm:

pushbpto[sp];

bp=sp+3

r1=[bp+1];

r1=0x0200;

IOB8设置为同相低电平输出口

[P_IOB_DIR]=r1;

[P_IOB_ATTRI]=r1;

r1=0x0000;

[P_IOB_DATA]=r1;

r1=0x0030

[P_TimerB_Data]=r1;

r2=[bp+2];

r2=0x0100;

[P_TimerB_Ctrl]=r2;

r1=0x0000;

[P_Feedback]=r1;

设置IOB8口为APWMO端口

popbpfrom[sp];

retf

_FIQ:

PUSHR1,R4TO[SP]

R1=[P_INT_Ctrl]

R1&

=0x2000

JZL_notTimerA当不为TIQ_TMA,则转

R1=[__gIsStopRecog]

JNZL_BSR_NotBusy[__gIsStopRecog]为1则转至放音处理

CALL_BSR_FIQ_Routine为0,调用辨识子程序

JMPL_BSR_Busy返回中断

L_BSR_NotBusy:

放音处理

R2=[_PlayFlag]

JNZL_Play2000[_PlayFlag]为1则是播放2000

CALLF_FIQ_Service_SACM_S480;

为0,播放480

L_Play2000:

2000播放子程序

CALLF_FIQ_Service_SACM_A2000;

L_BSR_Busy:

返回中断

R1=0x2000

[P_INT_Clear]=R1

POPR1,R4FROM[SP];

reti;

L_notTimerA:

R1=0x8800;

[P_INT_Clear]=R1;

RETI;

.END

参考文献

《单片机综合应用》

·

出版社:

上海科技

作者:

姜尚坤

《单片机原理及应用》

中国林业

刘刚

凌阳大学计划网站

凌阳大学计划论坛

XXXX职业技术学院学生毕业综合实践成绩评定表

毕业综合实践题目

指导教师评语:

指导教师签字:

年月日

答辩评语:

答辩小组成员:

答辩小组组长签字:

平时成绩(占20分)

书面材料评阅成绩(占60分)

答辩小组成员编号

平均成绩

答辩评分(百分制)

答辩成绩(占20分)

总成绩

评定等级

专业系审核意见:

系主任签字(盖章):

年月日

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

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2