语音遥控小汽车控制系统设计

上传人:仙*** 文档编号:28266380 上传时间:2021-08-24 格式:DOC 页数:52 大小:400.50KB
返回 下载 相关 举报
语音遥控小汽车控制系统设计_第1页
第1页 / 共52页
语音遥控小汽车控制系统设计_第2页
第2页 / 共52页
语音遥控小汽车控制系统设计_第3页
第3页 / 共52页
点击查看更多>>
资源描述
大连理工大学城市学院 本科生毕业设计(论文) 学院(系): 电子与自动化学院 专 业: 电子信息工程 学 生: 杨 勇 指导教师: 马 彧 完成日期: 2009年5月11日 大连理工大学城市学院本科生毕业设计(论文)题目名称语音遥控小汽车控制系统设计总计 毕业设计(论文) 44页表 格 3 表插 图 18幅摘 要语音信号处理是许多信息领域应用的的核心技术之一,是目前发展最为迅速的的信息科学研究领域中的一个。本文将语音技术与单片机结合起来,设计了小汽车语音控制系统,通过语音指令对小汽车的行驶状态进行控制,实现小汽车的前进、后退、左转、右转及停车。本设计主要利用AT89C52单片机作为核心器件实现对电动小汽车行驶过程进行控制,采用语音识别芯片AP7003,实现对特定人的语音识别,并通过I/O口将识别信息传递给单片机,实现对小汽车行驶状态的控制;利用红外传感器探测小汽车行驶路线中的障碍物,并将探测信息传递给单片机,实现小汽车的自动避障;用光电开关检测履带转过的次数,实现对小汽车行驶里程的检测,并用数码管显示小汽车的行驶里程。关键词:语音识别;单片机;红外传感器;光电开关AbstractVoice signal processing is a nuclear technology which is used in many information fields. It is one of the fastest developed technologies. This paper designs a voice control system of autocar though integrating of MCU and voice signal processing. It is available to control autocars situation, such as moveforward, moveback, turnleft, turnright and stop by voice command. AT89C52 is used in this paper as the core device to control the motion process of the car. Voice recognition chip AP7003 allows the voice recognitin of special person, then send the information of I/O port back to MCU which control the cars situation by this information. By infrared sensor detecting obstacles in the way of the car, the car can avoid obstacles automatically by the control of MCU based on the information of inspection. The milegae of the car is recorded by photoelectric switches, which count numbers of the wheels passed, and is displayed by 7-seg LED.Keywords: voice recognition; Micro Control Unit(MCU); infrared sensor; photoelectric switches目 录第1章 绪 论11.1 课题背景11.2 课题任务及要求21.3 课题内容及安排2第2章 语音遥控小汽车的总体方案论证32.1 语音遥控小汽车硬件方案论证32.2 语音遥控小汽车硬件方案选择5第3章 语音遥控小汽车的硬件设计63.1 硬件设计的整体思路63.2 单片机的选择73.3 复位电路的设计93.4 语音识别电路硬件设计103.5 电机驱动电路硬件设计123.6 显示电路硬件设计143.7 检测电路硬件设计163.7.1 障碍物检测电路设计163.7.2 行驶里程检测电路设计18第4章 语音控制小汽车的软件设计214.1 上电初始化子程序设计214.2 避障子程序设计224.3 声控子程序224.4 主程序设计23第5章 语音控制小汽车的整体调试265.1 调试分析265.2 故障调试及解决方式275.3 联调结果27结 论29社会经济效益分析30参考文献31致 谢33附录 语音控制小汽车的硬件原理图34附录 程序清单35附录 元器件清单44语音遥控小汽车控制系统设计第1章 绪 论1.1 课题背景语音信号处理是目前发展最为迅速的信息科学研究领域中的一个,其研究涉及一系列前沿课题,且处于迅速发展之中。其研究成果具有重要的学术及应用价值。语音处理技术在结合单片机应用的过程中不断得到深入。单片机不但以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能化仪器仪表、现代通信设备、嵌入式系统,以及测控领域等方面得到了广泛的应用,更由于16位单片机的出现,处理能力得到提高,具备DSP功能,可以采用单片机技术直接对语音信号进行处理和应用,使单片机作为微控制器具备了更多更强的功能。从技术角度讲,语音信号处理是信息高速公路、多媒体技术、办公自动化、现代通信及智能系统等新兴领域应用的核心技术之一。用数字化的方法进行语音的传送、存储、识别、合成、增强等是整个数字化通信网中最重要、最基本的组成部分之一。同时,自然语言作为一种理想的人机通信方式,可为计算机、自动化系统等建立良好的人机交互环境,提高社会的信息化和自动化程度。目前,语言技术处于蓬勃发展时期,有大量产品投放市场,并且不断有新产品被开发研制,具有广阔的市场需要和应用前景。而语音控制小汽车作为现代汽车研究领域的模型,正在迅速地发展,并已应用于玩具、小型机器人等领域,对于现代汽车行业的研究和发展有着重要的意义。语音信号处理是许多信息领域应用的的核心技术之一,是目前发展最为迅速的的信息科学研究领域中的一个。语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,并处于迅速发展之中,其研究成果具有重要的学术和应用价值。结合单片机的进一步使用,更将广泛地应用于现代工业检测、控制等实用技术中。1.2 课题任务及要求本毕业设计主要利用AT89C52单片机作为核心器件实现对电动小汽车行驶过程进行控制,采用语音识别技术,通过语音命令对小汽车行驶状态进行控制,如前进、后退、左转和右转。并配合相应的传感器实现小汽车的自动避障,当小汽车检测到四周都有障碍物时,能够实现自动停车。其中,主要研究内容为:语音识别技术、单片机驱动电机、红外传感器的应用、数码管的显示等。设计结果应符合以下指标:(1) 通过简单的I/O口操作实现小汽车的前进、后退、左转、右转;(2) 在行走过程中可以改变小车的运动状态,实现小汽车的自动避障;(3) 在超出一定范围时能够自动停车。1.3 课题内容及安排本设计需要设计一个语音小汽车控制系统,主要分为:语音识别模块,检测模块,显示模块和驱动模块,本文主要完成以上模块的硬件设计和联合调试,本文安排如下:第一章:绪论,概述论文写作背景。第二章:本设计的总体方案论证,包括方案比较和方案选择。第三章:本设计的硬件设计,包括各个模块的原理图。第四章:本设计的软件设计,包括程序流程图和编程思想。第五章:系统联合调试,包括出现的问题和解决方案以及调试结果。第2章 语音遥控小汽车的总体方案论证2.1 语音遥控小汽车硬件方案论证本设计首先需要确定小汽车的类型,其次要确定所需传感器的类型和数量,题目要求小汽车能自动避障并用数码管显示小汽车的行驶里程。因此需要四个传感器探测小汽车周围的障碍物和另外一个传感器检测小汽车的行驶里程,共需要五个传感器。有如下两种方案可供选择:方案一:语音控制小车采用四轮结构,其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,结构图如图2.1所示。图2.1 轮式小汽车结构示意图小汽车的行驶原理如下:前进:由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。后退:倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。左转:前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。右转:前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进。传感器的选择及安放:本设计要求小汽车能自动避障并用数码管显示小汽车的行驶里程。因此需要用传感器探测小汽车周围的障碍物,可以选用反射式红外传感器,显示里程时需要检测车轮转过的次数,小汽车后轮空间太小,无法安装传感器,只能安装在小车前轮,由于车轮结构的原因,反射式传感器无法满足要求,可选用霍尔传感器,这就需要在车轮上固定一块磁性物质,增加了设计的复杂度,降低了系统的可靠性。方案二:语音控制小汽车采用履带式,履带式小汽车左右两侧各有一个电机,分别控制两个履带的转动,结构图如图2.2所示。图2.2 履带式小汽车结构示意图履带式小汽车的行走原理如下:前进:由履带式小车的结构可知,只要小汽车两侧的电机同时正转,即可使小汽车前进。后退:小汽车两侧的电机同时反转,即可使小汽车后退。左转:由履带式小汽车的结构特点可知,只要使小汽车的左侧电机停转,同时使小汽车右侧电机正转即可使小汽车左转。右转:使小汽车的右侧电机停转,同时使小汽车的左侧电机正转,即可实现小汽车的右转。停车:同时使小汽车两侧的电机停转,即可实现小汽车的停车。传感器的安放:由于履带式小汽车车体结构比较大,有充足的空间安放传感器,红外传感器的安放如图2.2所示,前方放置三个,分别位于小车的左、中、右三个位置,小车的后方放置一个。由于履带式小汽车的转台与履带之间有一定的空隙,可以把反射式光电开关直接安放在转台下方,并且对准小车的履带,通过检测履带转过的次数来记录小车的行驶里程。2.2 语音遥控小汽车硬件方案选择方案一的优缺点:轮式小汽车反应速度快,比较灵活,同时车轮与地面摩擦力小,消耗的功率较少;但轮式小汽车的行进速度较高,不容易控制,转弯角度较小,实现避障比较困难;并且在转弯时转向电机发生堵转,对电源造成较大的影响,有可能使单片机不能正常工作,同时,轮式小汽车的体积很小,这给传感器和电路板的安装带来一定的困难。方案二的优缺点:履带式小汽车行驶速度较慢,比较笨重,但它容易控制,同时在需要转弯时只需将相应的电机停转即可,不会发生电机堵转的情况并且可以实现任意角度转弯,同时履带式小汽车体积较大,有足够的空间安装传感器;由于小汽车的转台上方空间很大,可以把焊接的电路板直接放置在小汽车转台的上面,即保证了电路板不受损坏,同时又方便对电路板的检查和排错。但小汽车的履带与地面之间的摩擦力比较大,所消耗的功率也很大。经过方案一和方案二的比较,方案二的可行性更大,因此,本设计采用履带式小汽车。第3章 语音遥控小汽车的硬件设计3.1 硬件设计的整体思路小汽车控制系统的硬件设计采用模块化思想,把整个硬件系统分为语音识别模块、驱动模块、检测模块、显示模块。在设计过程中,先焊接主模块(显示模块),焊接好之后,加入测试程序,如果数码管显示正常,则显示模块焊接无误。在此基础上,再往系统板上添加其它模块,每添加一个模块,测试系统是否能正常工作,如果不能正常工作,就说明添加的模块有问题。采用这样的方法,一旦发现问题,就能及时找出问题模块,便于排错,节省了大量时间,大大的提高了效率。系统总体框图如图3.1所示:图3.1 语音控制小汽车总体框图由语音识别模块对特定人语音进行识别,识别成功之后,向单片机发出控制指令,单片机接到指令之后,把电机驱动模块相应端口置位或复位,实现对小汽车行驶状态的控制。由检测模块对小汽车周围的障碍物进行检测,当检测到有障碍物时,传感器引发单片机的外部中断,中断服务子程序对传感器的信息进行采集,单片机根据传感器的不同状态对电机驱动模块发出不同的控制指令,实现小汽车的自动避障。另外一个红外传感器对小汽车履带转过的次数计数,单片机把计数值送入显示模块,由LED显示小汽车的行驶里程。3.2 单片机的选择单片机自从问世以来就一直是工业检测、控制应用的主角。市场上常用的单片机有Intel公司的MCS-51系列,日本松下公司的MN6800系列等。其中,MCS-51由于单片机应用系统具有体积小,可靠性高,功能强,价格低等特点,很容易作为产品进行生产而更受青睐。89C52是一种低功耗高性能的具有8K字节可电气烧录及可擦除的程序ROM的八位CMOS单片机。该器件是用高密度、非易丢失存储技术制造并且与国际工业标准89C51单片机指令系统和引脚完全兼容。综上所述,从使用方便与简化电路以及其性价比等角度来考虑,89C52比较合适的。本系统采用的CPU为89C52的单片机,89C52本身带有8K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单、方便等优点,而且完全兼容MCS-51系列单片机的所有功能。89C52管脚图如图3.2所示,图3.2 89C52引脚图89C52的主要管脚功能如下:VCC(40):电源+5V;VSS(20):接地;P0口(32-39):双向I/O口,既可作低8位地址和8位数据总线使用,也可作普通I/O口;P3口(10-17):多用途端口,既可作普通I/O口,也可按每位定义的第二功能操作;P2口(21-28):既可作高8位地址总线,也可作普通I/O口;P1口(1-8): 准双向通用I/O口;RST(9):复位信号输入端;ALE/PROG:地址锁存信号输出端;PSEN:内外程序存储器选择线;XTAL1(19)和XTAL2(18):外接石英晶体振荡器。3.3 复位电路的设计89系列单片机与其他微处理器一样,在启动时都需要复位,使CPU及系统各部件处于正确的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上一个高电平并维持2个机器周期,则CPU就可以响应并将系统复位。复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。复位操作由上电自动复位和按键手动复位两种方式。上电自动复位是在加电瞬间电容通过充电来实现的,其电路图如图3.2所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。图3.3 系统复位电路3.4 语音识别电路硬件设计语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,语音识别芯片对采集到的语音样本信号进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,语音芯片对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别,语音识别芯片发出相应的信号,实现对小车运动状态的控制。本设计采用AP7003芯片,AP7003是一款新型、低成本语音识别专用芯片,经预处理后可识别12组不同的字词,每组时长1.5秒,可连词或单词识别。其I/O口有2个普通输人、4个触发输人、12个输出、2个LED驱动。采用4-6V的工作电压,具备低功耗模式,指令优化,方便用户使用。AP7003包括AP7003-1(由CPU串行控制)和AP7003-2(由按键直接控制)两种型号。它具有高度的可编程性,使用简单方便,可广泛应用于语音控制的家电、玩具、自动答录等领域。其中用AP7003-2构成的语音识别电路,结构简单、外围元器件少,具有较高的识别率,一般可达80%以上,是一款较好的语音识别芯片。因此本设计选用AP7003-2为小汽车语音控制器的语音识别芯片。AP7003具有两种工作模式,即录音模式和识别模式。在使用识别模式之前,应先将目标词录入芯片内。AP7003内有12个存储体用于存储12组不同的字句,每个存储体可存储1.5秒时长的字词,可通过键盘或按程序编制的顺序选择存储体录入及存放目标词。目标词录入芯片内后即可将工作模式转换到识别模式,工作时芯片将当前语音与事先已录入存储体的目标词语音相比较,如果有语音特征相匹配,则在芯片的相应输出端口输出高电平或低电平。需要时可以将芯片编程为省电模式以节省电能,当有按键信号时芯片将被唤醒。在使用语音控制器之前,用户应先对语音控制器进行训练,输人标准语音,语音可通过外部麦克风或其它媒体录入芯片内,经内部处理后以不同的数字特征信号保存于存储体中。标准语音存储后,系统进人识别状态,此时D3亮。依次说出刚才训练的语句,看相应动作能否执行。若能执行,则说明训练成功;否则说明相应语句训练不成功,需重新按下对应键进人训练状态,直到识别成功。训练成功后,即可进入识别模式状态进行工作。当需要进行语音控制时,说出相应语句。若识别成功,此时D2点亮,并执行相应动作。AP7003采用DIP40封装,其硬件连接图如图3.4所示。图3.4语音识别电路外围电路由语音输入电路、键盘控制电路和输出电路等组成。语音输入电路的功能是采集说话者的声音并滤波后送入控制芯片进行处理。语音输入电路由麦克风MIC,电阻R10、R12、R13,电容C7、C8等组成。键盘控制电路的功能是用户在训练语音控制器时输入相应的指令,该语音控制器采用6键控制模式,六个按键分别与端口PTT1PTT2和POB2POB4相连。语音控制器上电后,POB1POB4均被置成低电平。当有键按下时,芯片按POB1、POB2、POB3、OPB4的顺序依次发出键盘扫描信号,扫描信号为16ms低脉冲加46ms间隔,且循环进行,按键信号从PITIPIT4输入芯片。输出电路的功能是根据语音控制芯片的输出相应的控制信号。其中INPUT1接单片机P0.4口,INPUT2接P0.5口,INPUT3接P0.6口,INPUT4接PO.7口,INPUT5接P1.0口,并且INPUT1-INPUT4和INPUT5通过74LS21和74LS08引入单片机INT0口,当INOUT1INPUT5有任一个变为低电平时,INT0口被拉低为低电平,并引发外部中断。使用时,AP70032处于识别操作模式,语音命令由MIC转换成模拟电信号送至AP70032内部,经MCI放大器放大及A/D转换器后变为数字信号。输入的语音被声音处理器特征抽样,同存储在内部的目标字句的抽样特征进行比较,必须与所选择的识别目标字匹配,才会将输出信号送至相应的PA口(POA1POA12),否则芯片不会有输出。因为POSL端接低电平,所以相应的AOP口输出为低电平。同时,LED2端由高电平变为低电平(发光二极管D2点亮指示识别成功),同时PA口复位为低电平,等待下一命令的输人。当语音识别成功后,POA端实际输出一个低电平脉冲。系统上电后,依次按下按键S1、S4、S2、S6、S3,并输入控制命令:前进、后退、左转、右转、停车,录音完成以后,按下按键S5即可转入识别模式,若输入的控制命令与标准控制命令相匹配,则相应的输出端口(INPUT1INPUT5)输出一个低电平脉冲,低电平脉冲经或门送入单片机外部中断INT0口,单片机相应外部中断后进入中断服务子程序,并根据P0口高四位的不同状态向电机驱动芯片发出不同的控制指令,实现对小汽车行驶状态的语音控制。3.5 电机驱动电路硬件设计由于小汽车有两个电机,同时驱动电机需要较大的电流,用单片机无法直接驱动,因此需要用专门的电机驱动芯片。L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准 TTL逻辑电平信号,可驱动46V、2A以下的电机。本设计采用L298N作为电机驱动芯片。其引脚排列如图3.5所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流信号。L298可驱动两个电机,OUTl、OUT2和OUT3、OUT4之间分别接两个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。图3.5 L298引脚图由单片机的P1口控制电机驱动芯片L298, P1.2、P1.3分别连接L298的5脚和7脚,以控制电机1的转向;P1.4、P1.5分别接L298的10脚和12脚,以控制电机2的转向;P1.6、P1.7分别接L298的6脚和11脚,分别控制两个电机的转动和停止。L298的2、3输出端接小汽车的一个电机,13、14两个输出端接小汽车的另一个电机。1、15两脚接地。用由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用双电源供电。一组5V电源给单片机和控制电路供电,另外一组 5V、9V电源给L298N的+VSS、+VS供电。硬件连接图如图3.6所示:图3.6 电机驱动电路硬件连接图P1口状态与小汽车行驶状态对应关系如表3.1所示:表3.1 P1口状态与小汽车行驶状态表P1.2P1.3P1.4P1.5P1.6P1.7小车状态101011前进010111后退100011左转001011右转000011停止3.6 显示电路硬件设计题目要求用数码管显示小汽车的行驶里程,数码管的译码方式有硬件译码和软件译码两种,本设计采用硬件译码,用专用译码芯片CD4511译码并驱动数码管。由于CD4511芯片本身带有锁存功能,因此采用静态显示方式。用四个数码管显示小汽车的行驶里程,高两位显示整数位,低两位显示小数位,中间用小数点隔开。LED有共阳极和共阴极两种结构。根据本次设计任务书的要求和实际情况,此处采用的是共阴极结构,其结构如图3.7所示:图3.7 LED结构图本设计采用硬件译码,用4片CD4511译码器完成译码并驱动数码管。CD4511真值表及引脚图如图3.8所示:图3.8 CD4511真值表及引脚图显示电路硬件连接图如图3.9所示:图3.9显示电路连接图A、B、C、D为数据输入端,LT和BI为输出控制端,常接高电平,LE为选通控制端,LE为低电平时,输入需要显示的数据,LE为高电平时,锁存需要显示的数据。显示时,单片机把需要显示的数据分别送入四片CD4511的A、B、C、D四个端口,然后选通所要显示的位,相应的数码管即显示出所要显示的数字。例如,要低位数码管显示3时,把3的BCD码分别送入A、B、C、D四个端口中,然后把低位数码管的译码芯片LE复位,低位数码管就显示3。 3.7 检测电路硬件设计3.7.1 障碍物检测电路设计障碍物的检测需要用到传感器,传感器有反射式红外传感器、超声波式传感器等。反射式红外传感器主要利用物体反射红外线的原理。传感器有一个红外发射管和一个红外接收管,接通电源之后,红外发射管向前方发射红外线,如果前方有障碍物,红外线遇到障碍物反射回来,被红外接收管接收,并在相应输出端输出一个电平信号。红外传感器的探测距离一般为1-30厘米左右,探测距离较短,但价格便宜,因此得到了广泛的应用。超声波传感器主要利用超声波的直线传输特性。传感器有一个超声波发射端,上电后发射超声波,另有一个超声波接收端,如果前方有障碍物,超声波反射回来被接收端接收,并在输出端输出一个相应的电平信号。由于超声波具有良好的直线传输特性,因此探测距离较远,一般为4到7米,但超声波传感器价格较高。经过比较,本设计决定采用红外传感器。红外传感器采用E3F-DS30C4型号光电开关,它是漫反射式红外光电开关,漫反射式光电开关:该传感器一种集发射器和接收器于一体的传感器,当探测器前方有障碍物时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当探测器前方没有障碍物时,探测器输出端输出高电平,当检测到障碍物时,探测器输出端输出低电平。该传感器探测距离为10-30厘米,根据实际需要,把前方三个传感器的探测距离调整为20厘米,后面的传感器探测距离调整为15厘米。检测电路硬件连接图如图3.10所示:图3.10 检测电路硬件连接图由于单片机P0口内部没有上拉电阻,因此P0口当通用I/O口使用时,需要外接10K的上拉电阻。SENSOR1-SENSOR4为四个红外传感器,输出端分别与单片机的四个P0.0-P0.4相连,并通过与门连接到单片机的INT1口,当任意一个传感器检测到障碍物时,传感器的输出由高电平变为低电平,INT1口由高电平变为低电平,引发外部中断。在中断服务子程序中,单片机查询P0口低四位的状态,并根据不同状态发出相应的控制指令,控制小汽车做出相应动作。3.7.2 行驶里程检测电路设计 把红外传感器安装在小汽车履带的上方,用红外传感器检测出履带转过的次数。小汽车前进时,传感器输出一系列脉冲,用单片机的T0对此脉冲计数,进而计算出小车的行驶里程。但由于小汽车空间有限,红外传感器的体积不能太大,探测距离也不需要太长,一般的红外传感器既可满足要求。本设计决定采用FS048W传感器。用红外反射光电开关FS048W检测履带转过的次数,为了得到标准的TTL电平,传感器的输出端接比较器HA17393,比较器的输出端经上拉电阻与单片机T0口相连。检测电路的硬件连接图如图3.11所示:图3.11 里程检测电路连接图其中,R4为67限流电阻, 防止发光二极管被烧坏,D1为发光二极管,当接通电源之后,二级管导通,并发射红外线。Q1为光敏三极管,R5为8K上拉电阻,当光敏三极管接收到被反射回来的红外线之后,三极管导通,比较器HA17393的3脚变为低电平,R2、R3是两个阻值都为1K的电阻,因此比较器的2脚电压为常值2.5V,当3脚的电压高于2.5V时,比较器输出高电平,当3脚电压低于2.5V时,比较器输出低电平。为了准确测量履带转过得次数,在履带上粘上黑白相间的胶带,当传感器对着白色胶带时,红外发射管发射的红外线被反射回来,传感器内部的光敏三极管导通,传感器输出低电平,比较器输出低电平;当传感器对着黑色胶带时,红外发射管发射的红外线被黑色胶带吸收,传感器内部的光敏三极管截止,传感器输出高电平,比较器输出高电平。小汽车行进时,黑白胶带依次经过红外传感器,传感器输出一序列脉冲,比较器也相应输出一系列脉冲,通过单片机的T0对此外部脉冲计数,从而计算小汽车的行驶里程。由于数码管的最低位单位是厘米,因此黑白胶带的间隔距离为0.5厘米,当履带走过1厘米时,单片机通过传感器计数器T0接收到一个脉冲,T0溢出后引发中断,中断服务子程序完成数码管的刷新,数码管最低位显示值加1,即里程增加1厘米,这样就省去了脉冲数和里程值之间的换算关系,使程序更加简单,显示更加精确。第4章 语音控制小汽车的软件设计4.1 上电初始化子程序设计上电初始化子程序完成单片机的复位、数码管的清零、L298N芯片使能端的置位、定时器、计数器的初始化等工作。程序流程图如图4.1所示:图4.1上电初始化子程序流程图其中,外部中断定义为电平触发方式,CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断请求为低电平,则使IE置1,请求CPU进行中断处理。由于在小汽车行驶过程中,需要用数码管显示小汽车的行驶里程,因此把里程计数器T0中断定义为高中断优先级。 4.2 避障子程序设计当传感器检测到障碍物时,程序由主程序跳入中断服务子程序,避障子程序对端口信息进行查询,根据端口的不同状态向单片机发出不同的控制指令,实现小汽车的自动避障。避障子程序流程图如图4.2所示:图4.2避障子程序流程图4.3 声控子程序单片机上电后,由上电子程序使L298芯片的使能端置位,在L298的一组输入端分别输入高、低电平,即可驱动相应的电机,由于小汽车自身的行驶速度比较慢,因此无需用PWM进行调速,直接将相应端口置高、低电平即可。当小汽车通过语音识别接到控制指令时,单片机查询P0口高四位状态,若P04为低电平,则调用前进子程序;若P05为低电平,则调用后退子程序;若P06为低电平,则调用左转子程序;若P07为低电平,则调用右转子程序,若P10为低电平,则调用停止子程序,声控子程序流程图如图4.3所示:图4.3声控子程序流程图4.4 主程序设计小汽车行驶时,通过传感器将行驶里程转化为外部脉冲,由单片机计数器对此外部脉冲计数,计满溢出之后把计数值加一,显示程序实现对计数值的显示。本设计采用硬件译码器CD4511直接对数码管驱动,由于CD4511本身带有锁存功能,因此不需要对数码管进行动态扫描,只需在需要刷新显示时改变要显示的数字即可,因此显示程序比较简单。由于需要实时显示小汽车的行驶里程,因此把里程显示设为主函数,采用静态显示,程序流程图如图4.4所示:图4.4 主程序流程图显示子函数流程图如图4.5所示:图4.5 显示子函数流程图第5章 语音控制小汽车的整体调试调试包括硬件调试、软件调试和整体联调。由于硬件和软件的设计是相对独立进行的,并且软件的设计要依据硬件连接图,因此软件调试是在硬件完成之前。而硬件的设计需要根据硬件连接图进行焊接,并需要在焊接结束后测试硬件的各项指标是否符合设计要求。硬件焊接无误后,把程序写进单片机,进行软、硬件的联合调试。在调试中找出缺陷,判断故障源,对硬、软件做出修改,反复进行这一过程,直至确信没有错误之后将焊接板与小汽车连接,进行总体调试,并在调试过程中找出缺陷,对软件或者硬件进行进一步的修改,直至达到预期设计目的。5.1 调试分析软件的调试和硬件的调试都是独立进行的,软件部分包括显示子程序、避障子程序、驱动子程序等。软件的调试是在Keilc51编译环境下进行的,Keilc51功能十分强大,uVision2中包含了源程序文件编辑器、项目管理器、源程序调试器等,并且为Cx51编译器、Ax51汇编器、BL51/Lx51连接定位器、RTX51实时操作系统等提供了单一而灵活的开发环境。uVision2中集成的Debug调试器具有十分强大的仿真调试功能,支持软件模拟和用户目标板调试两种工作方式。在软件模拟方式下不需要任何8051单片机硬件即可完成用户程序仿真调试,极大地提高了用户程序开发效率。在目标板调试方式下用户可以将程序下载到自己的8051单片机系统板上,利用8051的串行口与PC机进行通信实现用户程序的实时在线仿真。硬件部分的调试主要是在焊接的单片机系统板上进行的,在调试的过程中,仍然采用模块化思想。先调试主模块,即显示模块,无误后再添加其它模块,检查模块之间的接口,加入测试程序,如果没有得到预期的结果,则反复调试,直至调试结果达到预期设计目标。软件和硬件联合调试成功后,把系统板固定在小汽车上,并在小汽车的特定位置安装红外传感器,进行小汽车的整体调试。5.2 故障调试及解决方式一、单片机上电之后,系统不能正常运行,数码管闪烁不定。原因分析:单片机的EA悬空。当引脚EA接高电平时,89C52程序计数器PC在0000H-FFFFH范围内(即前4KB地址)执行片内Flash ROM中的程序,当指令地址超过0FFFH后,就自动转向片外ROM中去取指令。当引脚EA接低电平时,89C52片内ROM不起作用,CPU只能从片外FlashROMEPROM中取指令,地址可以从0000F开始编址。解决方法:把单片机的EA接高电平,系统程序运行正常,数码管显示正常,系统能正常工作。 二、里程显示为0原因分析:反射式红外传感器没有正常工作,单片机的T0口没有输入脉冲。原因是在传感器硬件连接电路中,与传感器红外发射管串接的限流电阻过大,导致流过红外发射管的电流过小,发射管截止,传感器中的光敏三极管截止,导致传感器的输出一直为高电平。解决方法:减小与传感器发射管串接的限流电阻至67,并调整传感器输出端的上拉电阻,使输出的高电平在3.5V以上,低电平在1V以下,为了得到标准的TTL电平,在传感器的输出端与单片机的T0端之间接入比较器LM393,改正之后,数码管正常显示行驶里程。5.3 联调结果在软件和硬件联合调试后,把系统板固定在小汽车上,进行实物演示,演示结果证明,该设计基本达到了预期的设计目的,小汽车在行驶过程中能实现自动避障,并显示行驶的里程。但由于在小汽车的左侧履带上粘上了胶带,造成了左侧履带与地面的摩擦力变大,在电池电量不足的情况下,左侧履带停转,小汽车非正常左转。小汽车显示里程时,最小单位是厘米,在实际调试过程中,由于小汽车履带与地面之间有摩擦,所以数码管显示的距离与小汽车的实际行驶距离不一致,为了测量误差的大小,对小汽车进行多次实验,实验数据如表5.1所示:表5.1 T0实际行使距离与显示距离实验次数123456实际距离(cm)111111显示距离(cm)1.021.011.010.991.011.02由表中数据可以求出,里程平均误差为1厘米,在允许范围内。传感器的实际探测距离如表5.2所示表5.2 红外传感器的实际探测距离与设定探测距离 传感器左中右后实际探测距离(cm)19202017社定探测距离(cm)20202015由表5.1可以看出,小汽车的实际行驶距离与显示的距离有一定的误差,这是由于传感器输出的脉冲数与实际脉冲数不一致造成的。由表5.2可以看出,传感器的实际探测距离与设定值有较小的误差,在允许范围内。整体上看,小汽车的各项指标基本达到了设计要求。结 论语音识别技术是目前新兴技术之一,由于它制作成本比较低,使用方便,因此被广泛应用于各种领域。为了能使语音识别技术走进日常生活,能和日常应用结合起来,更好地为人们服务,本设计制作了一套语音识别小汽车控制系统,该系统以89C52为核心处理芯片,将单片机和语音识别芯片AP7003结合起来,语音芯片识别成功之后,对单片机I/O口发出信号,单片机根据I/O口的状态对小汽车发出不同的控制指令,实现了对小汽车的语音控制。用红外传感器探测小汽车周围的障碍物,探测到障碍物后引发单片机外部中断,在中断服务子程序中单片机查询相应I/O口的状态,根据不同的状态对小汽车发出不同的控制指令,实现了小汽车的自动避障,同时用传感器检测车轮转过的次数,并用单片机计数器对此数值计数,并将计数值送入显示单元进行显示,实现了小汽车的行驶里程进行显示功能。软件设计采用模块化思想,结构清晰,可读性强。此外,还可在此基础上进一步扩展,例如,可以加上音乐电路,在小汽车行驶过程中播放音乐,还可以在语音芯片中存入语音信号,在小汽车行驶的同时报告小汽车的行驶状态。社会经济效益分析目前儿童玩具正向着的智能化、廉价化的方向发展,语音控制小汽车符合儿童玩具的发展趋势,本设计硬件电路比较简单,只需一个单片机、五个传感器、四个译码芯片和两片、或门芯片和其它一些简单元器件即可,制作成本低大概在200元左右,如果能实现批量生产,成本可降至60元左右,与普通电动遥控小汽车的价格相差不多,具有很大的市场潜力。具有广阔的发展前景,有一定的商业开发价值。随着各种高性能的传感器的出现,微型计算机的普及,汽车的智能化、自动化,越来越受到人们的重视,此课题不仅可以应用于玩具市场,同时,也是对汽车自动行驶性能的研究和实验,对研究智能汽车、无人驾驶汽车有重要的意义。参考文献1 张刚毅, 彭喜源等. 新编MSC-51单片机应用设计. 哈尔滨: 工业大学出版社, 20032 徐爱钧,彭秀华. Keil Cx51 V7.0单片机高级语言编程与Vision2应用实践. 北京: 电子工业出版社, 20043 贾伯年. 传感器技术. 南京: 东南大学出版社, 20004 何立民. 单片机应用文集. 北京: 航空航天大学出版社, 20005 张伟, 王力. Protel 99SE基础教程. 北京: 人民邮电出版社, 20066 李朝青. 单片机原理及接口技术. 北京: 北京航空航天大学出版社,20057 童师白. 模拟电子技术基础. 高等教育出版社, 20018 谭浩强. C程序设计. 北京: 清华大学出版社, 19999 孙玉才, 王荣兴, 孙华芳. ATMEL新型AT89S52系列单片机及其应用. 北京: 清华大学出版社, 200410 王志慧. 单片机控制的设计与实现: 硕士学位论文. 内蒙古大学学报, 200211 钱逸秋. 单片机原理及应用. 北京: 电子工业出版社, 200212 胡汉才. 单片机原理及其接口技术. 北京: 清华大学出版社, 199613 宋雨潭. 智能化仪器仪表的应用. 黑龙江税专学报(自然科学版), 2002,20(3):87-8914 王正洪, 周振环. 微机接口与应用. 北京: 中国石化出版社, 200015 林伸茂. 8051单片机彻底研究基础篇. 北京: 人民邮电出版社, 200416 林伸茂. 8051单片机彻底研究实习篇. 北京: 人民邮电出版社, 200717 冯平,刘志英,白燕. 一种基于单片机的数据采集系统设计J. 陕西天文台台刊,2001,24(1):75-7818 DENG Tao, SHEN Hui,ect. Design and Evaluation of High-performance Solar Electric Car; 15th International Photovoltaic Science and Engineering Conference, Shanghai, China,2005,69-8: 1015-101619 Cui Shumei, Zhang Wei. Research of Control Method on FAW Hybrid Electric Cars Motor System; Proceedings of the 23rd Chinese Control Conference, 2005,1557-1560致 谢在本次毕业设计的整个过程中,我遇到了许多意想不到的困难,尤其是在电机驱动模块中,由于第一次选择的小汽车是轮式小汽车,小汽车行驶速度很快,而且在转弯时,前面的转向电机发生堵转现象,对电源的影响很大,造成后面的驱动电机不能正常工作。为了解决这个问题,我试图用光耦把电机和驱动芯片隔离开,以消除电机堵转对电源的影响。电路图画好之后,理论上没有问题,但在面包板上搭接出实际电路之后,又遇到了新的问题,光耦的两端有5V电压输出,但还是驱动不了电机,用万用表测量流过电机的电流,发现电流非常小,并且输出电压被拉低到2.5V左右,输出功率太小,不足以驱动电机,后来我试图用光耦驱动继电器,继电器的两端接电机,发现还是不行,光耦输出电流太小,继电器不动作。没有办法,只好中途换履带式小汽车,避免了这个问题的出现。本次毕设的完成,除了自己的努力外,还得益于很多同学的帮助。在遇到困难的时候,大家都相互鼓励,相互帮助,遇到难题的时候,大家一起讨论,你一言我一语,一个方案被否定,又提出另一个方案,很多问题就这样迎刃而解了。在此,我非常感谢在实验室一起奋战的同学,在和他们共同讨论中我获得了大量的信息和宝贵的经验。本次毕业设计虽然结束了,但它却给我留下了很多美好的回忆,面对自己的劳动成果有一种油然而生的满足感和成就感,心里很是安慰。但我觉得最重要的还是这个过程,在这学期的毕业设计中,我收获了很多东西,学习了很多新的知识,每天都会有一些收获,一个学期下来,感觉自己有了很大的提高,回首大家在实验室奋战的情形,心中充满了充实的喜悦感,没有付出,就没有收获。再一次向所有曾经帮助过我的同学和老师说一声:谢谢你们!附录 语音控制小汽车的硬件原理图附录 程序清单#include#includetypedef unsigned long dword;typedef unsigned int word;int count=0; /脉冲计数初值为0char flag; /设定标志位/*函数功能:主函数,显示行驶里程入口参数:无出口参数:无*/void main(void) char c1,c2,c3,c4; int k,m; POWER_UP(); /调用上电初始化函数 LED_INIT(); /LED初始化,数码管显示0 for(;) flag=1; /标志位置1,进入显示程序 if(0=count&count10000) c1=count/1000; /取千位数字 k=count%1000; /取低三位数字 c2=k/100; /取百位数字 m=k%100; /取低2位数字 c3=m/10; /取十位数字 c4=m%10; /取个位数字 while(flag) c4|=0xF0; /c4高四位置1;使数码管显示0 P2=c4; /送各位数字到P2口 P27=0; /启动个位数码管;显示个位数字 c3|=0xF0; /c3高四位置1;使数码管显示0 P2=c3; /送十位数字到P2口 P26=0; /启动十位数码管;显示十位数字 c2|=0xF0; /c2高四位置1;使数码管显示0 P2=c2; /送百位数字到P2口 P25=0; /启动百位数码管;显示百位数字 c1|=0xF0; /c1高四位置1;使数码管显示0 P2=c1; /送千位数字到P2口 P24=0; /启动千位数码管;显示千位数字 /*函数功能:中断0服务子程序,驱动中断入口参数:无出口参数:无*/void driven_int(void) interrupt 0 using 0 if(P10=0) stop(); else if(P04=0) moveforward(); else if(P05=0) moveback(); else if(P06=0) turnleft(); else if(P07=0) turnright(); /*函数功能:中断1服务子程序,转向中断入口参数:无出口参数:无*/void direction_int(void) interrupt 2 using 1 int i=0x00,j=0x0F; i=P0; /读p0口状态 i=i&j; /保留低四位 switch(i) case 0x0: case 0x4:stop();break;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!