61单片机语音控制小车Word文件下载.docx
《61单片机语音控制小车Word文件下载.docx》由会员分享,可在线阅读,更多相关《61单片机语音控制小车Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
![61单片机语音控制小车Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/9/c1a809df-6820-41aa-ac30-1fa2f502dab0/c1a809df-6820-41aa-ac30-1fa2f502dab01.gif)
第六章语音遥控小车流程图11
6.1主程序流程图说明:
11
6.2小车的行走原理12
6.3前进语音命令程序图说明:
12
6.4拐弯语音命令程序图说明:
13
6.5倒车语音命令程序图说明:
15
6.6全桥驱动原理16
第七章语音遥控小车训练流程分析19
第八章语音遥控小车的语音训练步骤:
20
8.1声控小车21
8.2重新训练21
第九章语音遥控小车的实验结果22
总结23
参考文献24
第一章绪论
1.1课题研究背景
语音是人们交流的最直接有效的形式,随着信息技术的飞速发展,人们寻求一种更为直接的人机对话机制。
即是让机器按照人的语音命令来执行相应的动作,这样大大方便了人们对机器的操控。
语音控制技术是未来最被看好的人机交互方式,语音与其他的交互方式相比有更多的优势。
通过语音技术可以让一些肢体残疾的人控制机器来帮助他们生活,也可以让人们更加方便快捷的来操作机器。
语音识别技术是近年来十分活跃的研究领域。
语音识别系统的实用化研究是语音识别研究的一个主要方向。
以玩具市场为例,具有高科技含量的电子玩具、智能玩具发展迅猛,电子互动式、智能化玩具已经成为玩具行业发展的主流。
我国是玩具生产和出口大国,但在高科技玩具的发展方面和国外的差距很大,因此,及时投入精力广泛开展这方面的研究,无论对技术创新应用,还是社会经济发展,都有巨大的现实意义。
与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。
近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。
语音识别功能大大增加了玩具使用的乐趣,并使玩具体现出一定的智能性,因此成为大部分电子玩具、智能玩具设计中使用的关键技术。
1.2课题可行性分析
如今像是科幻电影中想象出来的各类机器人使我们现代人的思绪和设想都得到了充分的发挥。
人们也认识到机器人会给人们提供更多的方便和提高处理危机事件的能力。
进入90年代,随着传感技术,包括视觉传感器、非视觉传感器(力觉、触觉、接近觉等)以及信息处理技术的发展,出现了第二代机器人——有感觉的机器人。
它能够获得作业环境和作业对象的部分有关信息,进行一定的实时处理,引导机器人进行作业。
而作为21世纪的新新人类,研究一款语音遥控小车为以后研究更艰难的硬件软件作品提供一个良好的平台。
语音控制小车是基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。
小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。
1.3课题设计的目的和意义
随着我国经济高速发展,微电子技术,计算机技术和自动控制技术也得到迅速的发展,利用单片机的语音识别功能来设计制作一个语音控制小车,不仅可以使我们自身的到锻炼而且可以为以后研究更复杂的语音控制产品打下基础。
语音控制是未来机器交互的一种全新方式,我们需要了解以及熟练的利用,并且是语音控制技术在未来的到更好的发展。
第二章SPCE061A简介
2.1.凌阳61单片机及硬件基本结构
在众多的单片机中,如C51、ARM、AVR等,我们选择了凌阳系列的单片机,采用的是凌阳61单片机,因为它本身具有音频处理功能,我们板子上具有音频输出,输入通道,具有麦克风,扬声器等硬件。
在凌阳公司提供的开发环境中本身就具有关于音频处理的库函数以及音频压缩软件,在进行处理的时候比较容易,所以我们选择凌阳61的单片机,
基本结构如图2-1
图2-1凌阳61单片机及硬件基本结构
SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
两路10精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。
另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。
在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件:
SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSPIDE)用户可以利用它对芯片进行真实的仿真;
而程序的下载(烧写)也是通过该接口进行下载。
下图为SPCE061A单片机的内部结构框图:
图2-2SPCE061A内部结构图
2.2.SPCE061A单片机强大的语音功能
凌阳音频处理过程:
自己录取一段不大于4Kb的WAV语音文件或者从原有WAV语音文件中截取一段不大于4KB的语音。
然后用凌阳语音压缩工具压缩,再将压缩后的文件添加到凌阳公司提供的开发环境中,程序经过单片机处理后,语音通过喇叭播放出来。
如图2-3
图2-3凌阳音频识别过程
2.3.语音识别原理
首先是语音训练,然后是语音匹配,接着进行语音处理。
如果匹配成功就执行相应的功能,否则重新匹配。
如:
图2-4。
图2-4语音识别系统简图
第三章语音控制小车设计要求
3.1功能要求
语音控制小车基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。
可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;
配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;
可以在行走过程中声控改变小车运动状态;
在超出语音控制范围时能够自动停车。
3.3参数说明
车体:
双电机两轮驱动
供电:
电池(四节AA:
1.2V×
4或1.5V×
4)
工作电压:
DC4V~6V
工作电流:
运动时约200mA
3.4注意事项
注意电池的正负极性,切勿装反;
长期不用请将电池取出电池盒,以免造成腐蚀;
较快,在使用时一定要注意保持场由于小车行动比较灵活,速度比地足够大,且保证不会对周围的物体造成伤害;
不要让小车长时间运行在堵转状态(堵转状态:
由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。
第四章语音遥控小车结构示意图
语音控制小车为四轮结构,车的结构示意图如图6所示。
其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。
在自然状态下,前轮在弹簧作用下保持中间位置。
后面两个车轮由后轮电机驱动,为整个小车提供动力,所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮。
如图4-1、4-2所示。
图4-1小车侧视图
图4-2小车顶视图
第五章语音遥控小车驱动电路分析
动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图4-3所示:
Q1、Q2、Q3、Q4四个三极管组成四个桥臂,Q1和Q4组成一组,Q2和Q3组成一组,Q5控制Q2、Q3的导通与关断,Q6控制Q1和Q4的导通与关断,而Q5、Q6由IOB9和IOB8控制,这样就可以通过IOB8和IOB9控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。
当IOB8为高电平、IOB9为低电平时Q1和Q4导通,Q2和Q3截止,后轮电机正转,小车前进;
反之当IOB8为低电平、IOB9为高电平时Q1和Q4截止,Q2和Q3导通,后轮电机反转,小车倒退;
而当IOB8、IOB9同为低电平时Q1、Q2、Q3和Q4都截止,后轮电机停转,小车停止运动。
图5-1后轮驱动电路分析
方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路,如图9所示:
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不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。
图5-2前轮驱动电路分析
电源部分:
整个小车有4个电源信号:
电池电源,控制板工作电源,61板的工作电源,61板的I/O输出电源。
系统供电由电池提供(1.5V*4),控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(V0),通过61板的电源跳线选择产生端口电源(V1)。
二极管D1作用:
降压,4节电池提供的电压VCC最大可达到6V,D1可有效地降压。
保护,D1可以防止电源接反烧坏61板。
电机驱动电路:
IOB8和IOB9控制一个H桥,该H桥输出J3接后轮电机,所以IOB8、
IOB9控制小车的前进和后退;
IOB10和IOB11控制另外一个H桥,该H桥输出J4接前轮电机,所以IOB10、IOB11控制小车的方向,实现小车的左转和右转。
图5-3控制电路原理图
第六章语音遥控小车流程图
首先判断是否是第一次下载,如果是则进行程序下载,然后进入语音训练模块,如果已经下载则直接进入训练状态,训练一共有15条命令,分为3组,每组5条,按照事先设定好的顺序进行语音信号采集存储。
训练完成后则进入了语音识别状态,此时,系统根据采集得到的语音信号与刚才训练后得到的模型进行模式匹配,判断是第几条命令,然后根据判断结果做出相对应的动作或播放特定的语音资源,完成后又返回到待命状态,准备识别下一条命令。
在识别的过程中,如果遇到系统复位,则刚才训练得到的语音模型丢失,需要重新进行语音训练才能再次进入识别状态。
图6-1主程序流程图
6.2小车的行走原理
直走:
由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。
倒车:
倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。
左转:
前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。
右转:
前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进。
图6-2前进语音命令程序图
图6-3小车前进示意图
由小车的结构原理和驱动电路分析知:
只要IOB8为高电平,IOB9,IOB10,IOB11全部为低电平即可实现小车的前进。
前进子程序包括语音提示、置端口数据、启动定时器操作。
当小车遇到前进命令后,则执行前进动作,在设定的时间内前进的过程中,不断检测前方是否有障碍,如果遇到障碍则后退左拐进行避障,然后继续前进再不断检测,直到设定时间结束,停车回到待命状态。
由小车的结构原理分析和驱动电路分析知:
小车左转需要两个条件:
1.前轮左偏2.后轮前进,这时对应的I/O状态为:
IOB8、IOB10为高电平,IOB9、IOB11为低电平。
左转子程序包括语音提示、置端口数据、启动定时器操作。
注:
在左转之前首先让前轮右偏,然后再让前轮朝左偏,这样前轮的摆动范围更大,惯性更大,摆幅也最大,能更好实现转弯。
图6-4左转命令程序图
图6-5小车左转示意图
小车右转需要两个条件:
1.前轮右偏2.后轮前进,这时对应的I/O状态为:
IOB8、IOB11为高电平,IOB9、IOB10为低电平。
右转子程序包括语音提示、置端口数据、启动定时器操作。
在右转之前首先让前轮左偏,然后再让前轮朝右偏,这样前轮的摆动范围更大,惯性更大,摆幅也最大,能更好实现转弯。
图6-6右转语音命令程序图
图6-7小车右转示意图
只要IOB9为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。
倒退子程序包括语音提示、置端口数据、启动定时器操作,程序如下:
图6-8倒车语音命令程序图
图6-9小车倒车示意图
6.6全桥驱动原理
全桥驱动又称H桥驱动,下面介绍一下H桥的工作原理:
H桥一共有四个臂,分别为B1~B4,每个臂由一个开关控制,示例中为三极管Q1~Q4。
如果让Q1、Q2导通Q3、Q4关断,如图6-10所示,此时电流将会流经Q1、负载、Q2组成的回路,电机正转。
图6-10B1、B2工作时的H桥电路简图
图6-11B3、B4工作时的H桥的电路简图
如果让Q1、Q2关断Q3、Q4导通,如图6-11所示,此时电流将会流经Q3、负载、Q4组成的回路,电机反转。
如果让Q1、Q2关断Q3、Q4也关断,负载Load两端悬空,如图6-12所示,此时电机停转。
这样就实现了电机的正转、反转、停止三态控制。
如果让Q1、Q2导通Q3、Q4也导通,那么电流将会流经Q1、Q4组成的回路以及Q2和Q3组成的回路,如图6-13所示,这时桥臂上会出现很大的短路电流。
在实际应用时注意避免出现桥臂短路的情况,这会给电路带来很大的危害,严重的会烧毁电路。
图6-12B1~B4全部停止工作时的H桥简图
图6-13B1~B4全部工作时的H桥简图
第七章语音遥控小车训练流程分析
训练采用两次训练获取结果的方式,以训练名字为例:
小车首先会提示:
给我取个名字吧,这时你可以告诉它一个名字(比如ABC);
然后它会提示:
请再说一遍,这时再次告诉它名字(ABC),如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;
如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。
成功训练名称后会给出下一条待训练指令提示音:
前进,参照名称训练方式训练前进指令。
依次训练小车的名称—前进指令—倒车指令—左转指令—右转指令,全部训练成功子程序返回,训练结束。
图7-1小车训练流程图
训练采用应答式训练,每条指令的训练次数为两次,每一条命令的训练过程都是一样的,以“前进”为例说明:
步骤一:
小车提示“前进”;
步骤二:
告诉小车“前进”;
步骤三:
小车提示“请再说一遍”(重复训练提示音);
步骤四:
再次告诉小车“前进”(重复训练一次)。
这是一个完整的训练过程,如果训练成功,小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;
如果没有训练成功,小车会提示“说什么暗语呀”或者“没有听到任何声音”等信息,这样的话就要重复刚才所说的四个步骤,直到成功为止。
整个的训练过程共有5次这样的训练,依次为:
名称——前进——后退——左拐——右拐。
整个的训练流程如图8-1所示:
图8-1小车的训练流程
8.1声控小车
训练完小车之后,怎样进行声控操作,让小车运动或者停下来呢?
可以直接对小车说前进,或者倒车、左拐、右拐等,小车如果识别出指令会有一个回应信号,告知你它要执行的动作,然后执行该动作。
如果想要小车执行其它动作,直接告诉小车将要执行动作对应的指令即可。
比如在前进时告诉小车“倒车”,小车识别出之后就会直接倒车。
如果在小车运动的过程中想要小车停下来,可以直接呼叫小车的名字,小车准确识别之后就会停下来。
8.2重新训练
在实际的使用过程当中,可能会对训练的结果不满意,或者其他人也想对它进行训练、控制。
这样就要求小车可以被重新训练。
为此,我们把61板的KEY3键定义为重新训练按钮,系统运行之后就会不断的扫描61板的KEY3键。
如果检测到KEY3键按下,那么程序首先会把训练标志位(0xe000)单元擦除,并会进入一个死循环等待复位的到来。
复位到来之后,程序检测到训练标志单元内容为0xffff,认为小车没有经过训练,就会要求对它进行训练。
图8-2小车的语音指导流程
第九章语音遥控小车的实验结果
本文设计的小车的长度为210mm,宽度为100mm,前后轮距为150mm,小车的最大转弯角度为45度。
小车可以识别的总的命令条数为16条。
左转和右转各4条,对应的转向角度分别为5度、15度、25度、45度;
停止1条;
前进5条,对应于五级不同的前进速度;
后退两条,对应两级不同的后退速度。
小车的各级转弯角度对应的转弯半径及两个电机的转速比的关系
如表1所示:
转弯角度(度)
转弯半径(mm)
转速比(外侧轮速/内侧轮速)
5
1800
1.05
15
540
1.20
25
350
1.33
45
200
1.67
该小车各部分采用模块化设计,各个模块之间独立性强。
控制部分采用可编程微处理器,可以在不增加系统硬件的情况下方便地对系统进行二次开发。
本文对一辆小车进行了实验,实验结果表明,语音识别系统在低噪声环境中识别率很高,在噪声水平较高的场合,识别率有所下降。
小车反应灵敏。
总结
经过几个月时间来的设计和开发,本次研究设计通过对陵阳16位单片机的实际应用,制作出语音遥控小车。
语音口令转换为遥控的主要控件,前进、后退、转弯等命令用语音的方式遥控着玩具小车。
另外由于IDE支持标准的C语言函数库,使得复杂的数学运算变得轻而易举,大大减小了编程的难度。
这一设计对以后机器人等先进电子设备的研究打造了良好的基础。
对以后智能玩具的开发也提供了优良的条件。
最终设计研究是成功的,研究成果具有较强的实用性和发展前景。
几个月的学年论文设计,使我提高了实际操作能力,从以前的理论上升到实践,从感性认识上升到理性知识,真正做到学有所用,懂得先发现问题,分析问题,解决问题,虽然在设计中我也遇到一些麻烦和困难,但在老师的帮助指导和自己的努力下,我都认真克服了,但由于时间紧迫,我并不能做到尽善其善,我相信以后会有更多的机会。
参考文献
[1]罗亚非等编著《凌阳16位单片机应用基础》,北京航空航天大学出版社。
[2]张培仁编著《十六位单片微处理器原理及应用(凌阳SPCE061A)》,清华大学出版社。
[3]王晓明编著《电动机的单片机控制》,北京航空航天出版社。
[4]张善德《微型计算机系统的设计方法和接口技术》,北京人民邮电出版社,1988。
[5]沈德金,陈粤初等编著《MCS。
51系列单片机接口电路与应用程序实例》,北京航空航天大学出版杜,2003。
[6]中国计量出版社组编《新编电子电路大全(第三卷)》,中国计量出版社,2001。
[7]家辰,孙玉德,张颖.编《MCS-51单片机原理及接口技术》,哈尔滨工业大学出版社,1998。