您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 基于凌阳61单片机的语音控制小车的设计
基于凌阳61单片机的语音控制小车的设计2007-08-1918:19:39|分类:自己做的东西|标签:论文|字号大中小订阅1.实习目的与意义1.1实习任务设计并制作一个能自动往返于起跑线与终点线间的智能小车,并具备人工遥控的功能,其跑道俯视图如图1所示。跑道说明:跑道宽度0.5m,表面贴有白纸,两,表面贴有白纸,两侧有挡板,挡板与地面垂直。在跑道的B、C、D、E、F、G各点处画有2cm宽的黑线,各段的长度如图1所示。1.2基本要求(1)、智能小车主控芯片任选一款单片机:AT89S52或SPCE061A;(2)、人工遥控小车发车(语音遥控或无线遥控任选);(3)、智能小车从起跑线出发(出发前,车体不得超过起跑线),到达终点后停留10秒,然后自动返回起跑线(允许倒车返回),往返一次的时间应力求最短(从小车起跑开始计时);(4)、到达终点线和返回起跑线,停车位置离终点线和起跑线偏差应最小,且小车与跑道中心线的偏差也应为最小;(5)、D—E间为限速区,车辆往返均要求以低速通过,通过时间不得少于8秒,但不允许在限速区内停车;(6)、如采用语音遥控,则小车回到起跑线后需语音播报“旅行结束”。1.3实习意义通过智能小车的设计及制作,巩固并掌握IDE2.0的编程方法,学会利用单片机进行程序设计并实现功能。通过在小车的设计与制作,将所学的知识体现出来,并应用于实际生活中,在设计过程中对小车功能的创新和改良,增强学生的创新意识和逻辑思维能力,提高学生的动手能力和研究主动性。2.实验内容和步骤2.1车体设计2.1.161板简介61板是SPCE061AEMUBOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发——仿真——实验板,大小相当于一张扑克牌,是“凌阳大学计划”专为电子爱好者和高校大学生进行课程设计、毕业设计及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,使学生在掌握软件设计的同时,熟悉单片机硬件的设计制作,锻炼动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!2.1.2SPCE061A单片机简介SPCE061A是一款16位结构的微控制器,下图是它的结构概览:SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。SPCE061A单片机应用领域广泛,例如应用在家用电器控制器、工业控制、通信产品、医疗设备以及电子书籍等诸多方面。2.1.3电源61板采用3节5号电池进行供电,由J10接入。其中的前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的3.3V电压,在扳子上加入SPY0029A三端稳压器。两个二极管,是为了防止误将电源接反造成不必要损失而设置的,在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源、地分成不同的几路是为了减少电磁干扰设置的。2.1.4程序下载区ICE基本运作方式是通过控制CLOCK及通过ICE喂入指令方式,来控制CPU的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值的设定来控制目前CPU的动作。每个相连接的不同ICE模块都拥有自己独特的3—bitID,当PC在传送control信号时都会先传送该3—bitID,只有ICE本身的ID和control信号的ID相同时才会执行该命令或回传资料。61板上的74HC244主要在我们选用下载线的时候起作用,主要奇缓存的作用和完成SDA是作为数据回送还是数据下传的选择。2.1.5传感器模块用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。2.2语音控制小车概述2.2.1功能要求语音控制小车是凌阳大学计划推出的基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。语音控制小车的主要功能:可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;2.2.2车体结构车体结构图图3、4所示。语音控制小车为四轮结构,车的结构示意图如下图所示。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮又后轮电机驱动,为整个小车提供动力,所以又称前面的轮子为方向郑竺娴牧礁雎肿游整个小车分为三大部分:车体部分、61板、控制板。车体部分:小车车体主要为两个电机驱动装置,分前轮(方向)驱动和后轮(动力驱动)。在车体的下面有一个可以安装3节AA电池的电池盒,整个小车的电源就是由它来提供的。在小车的底部有一个红色的小开关,它负责控制整个小车的电源开通与关断。61板:61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现的。在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来做其它的实验或开发。控制板:控制板负责将来自61板的控制信号转化为能够驱动电动机的信号。2.2.4硬件框图小车控制系统硬件结构比较简单,主要分为两个部分:一个是SPCE061A精简开发板(即“61”板)如图5所示,另外一个是电机控制板如图6所示。电机控制板的工作就是根据61板的输出新高去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。2.3小车方案及程序分析2.3.1小车方案可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;实现能自动往返于起跑线与终点线间的智能流程,并具备人工遥控(我们选用语音控制)的功能。2.3.2程序流程图1、语音识别总流程图语音识别小车的主程序流程如图7所示,分为四大部分:初始化部分、训练部分、识别部分、重训操作。初始化部分:初始化操作将IOB8~IOB11设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM端口设置等。训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH中的模型调出来装载到辨识器中。识别部分:在识别环节当中,如果辨识结果是名字,则进入自动往返流程状态。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作。重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。下面详细介绍以上提到的子程序。2、训练函数流程图当程序检测到训练标志位BS_Flag内容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图8所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:给我取个名字吧,这时你可以告诉它一个名字;然后它会提示:请再说一遍,这时再次告诉它名字,如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称—前进指令—倒车指令—左转指令—右转指令,全部训练成功子程序返回,训练结束。3、语音识别函数流程图语音识别流程如图9所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则进入运动自动往返程序流程;如果ID号为动作,则语音告知将要执行的动作,并执行该动作。动作子程序:动作子程序包括:前进、倒车、左拐、右拐、自动往返子程序。前进:由小车的结构原理和驱动电路分析知:只要IOB8为高电平,IOB9,IOB10,IOB11全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作。倒车:由小车的结构原理分析和驱动电路分析知:只要IOB9为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作。左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏2.后轮前进,这时对应的I/O状态为:IOB8、IOB10为高电平,IOB9、IOB11为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作。右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏2.后轮前进,这时对应的I/O状态为:IOB8、IOB11为高电平,IOB9、IOB10为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作。4、自动往返(如图10所示):由语音识别子函数的名字命令来触发的自动往返鱼如图1所示的跑道的上的子程序。该程序流程实现小车对各黑线的识别并在识别后执行相应的动作,识别黑线流程实质上是在检测到黑线并又黑线到白线的上升(原为下降,为实现检测信号的灵敏度加反向器后为上升沿)沿脉冲触发下依次开外部中断Ext2IRQ313次的过程。在从起点到终点过程中当检测到D线以及在从终点返回起点检测到E线时小车步进减速并开启IRQ6-4HZ中断定时8s后自动加速前进继续检测后续黑线并执行相应动作流程。同时为实现在终点线H过后停留10s的要求,需要在检测到H线后开启IRQ5-4HZ中断实现定时10;A、B、C、D、E、F、G……线时开外不中断2,分别在去城和回程检测到D、E线时开IRQ6-2HZ,在第一次检测到G线时小车停10S。5、中断控制流程。虽然已经有了前进、后退以(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于2Hz时基中断完成,图12.14所示为该程序的流程图。可以在程序中修改uiTimeset参数来控制运行时间,当uiTimeset=2时,运行时间为1s,以此类推。3.1硬件连接调试过程硬件调试过程相对顺利,实验第一步就是按照实验说明书对61板的元件进行焊接以及小车车体的连接安装;在对实习要求理解的基础上确立了实现方案后,硬件的连接有了明确的要求:为了实现对黑线的检测需要连接黑白传感器,由于黑白线的识别是基于外部黑白传感信号的输入进而开外不中断实现的(在本次方案中采用外部中断2IPQ3),所以将IOB3口外接黑白传感器,以实现对黑白信号的检测。由于光线的关系,在实际调程序时传感器的灵敏度不是很高,多数情况下很难检测到信号。基于上述现象,我们给传感器附加白光灯,用以解决光线不稳定给程序调试带来的影响。经过上面步骤的硬件改良后,虽然黑白线的识别以明显改善,在光线条件良好的情况下黑白线识别信号检测基本正常,但在相对较暗情况下,传感器并不灵敏。为了改进这个缺陷,通过对传感器的输出信号的检测发现,在有白
本文标题:基于凌阳61单片机的语音控制小车的设计
链接地址:https://www.777doc.com/doc-1512617 .html