毕业设计-基于SPCE061A单片机的自主移动机器人小车设计.doc_第1页
毕业设计-基于SPCE061A单片机的自主移动机器人小车设计.doc_第2页
毕业设计-基于SPCE061A单片机的自主移动机器人小车设计.doc_第3页
毕业设计-基于SPCE061A单片机的自主移动机器人小车设计.doc_第4页
毕业设计-基于SPCE061A单片机的自主移动机器人小车设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自主移动机器人小车设计自主移动机器人小车设计摘 要智能作为现代社会的新产物,是以后的发展方向,智能就是按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计采用凌阳超声波测距模块检测小车与障碍物的距离并语音提示,以凌阳spce061a单片机为控制芯片控制机器人小车的移动及转向,来实现小车的自动避障和报警功能。其中小车驱动由l298n驱动电路来完成。 关键词 自主移动 避障 spce061a单片机 l298n 超声波independent mobile robot car designabstractintelligent as modern society of new product, is the development direction of the future, intelligence is that according to the predetermined pattern in a specific environment to be automatic operation, no user management, then can be expected to finish what you are trying to achieve the goal. this design use the sunplus ultrasonic ranging module testing the car and obstacles distance and voice prompt to sunplus spce061a microprocessor control chip for control of the robot car moves and steering, to realize the automatic obstacle avoidance and car alarm function. among them the small car driven by l298n drive circuit to complete.key words the independent movement,obstacle avoidance,spce061a,l298n ultrasonicii 目 录中文摘要i英文摘要ii1 绪论11.1机器人小车的意义和作用11.2 机器人小车的现状12 方案设计32.1 主控系统的比较与选择32.2 避障单元的比较与选择32.3 电机驱动模块的比较与选择32.4 驱动电机的比较与选择42.5 电源模块的比较与选择52.6 系统总体框图53 硬件设计63.1 spce061a芯片的特点及其功能63.2 spce061a芯片内核结构73.3 spce061a的语音播报功能73.4 超声波测距模块83.4.1 超声波测距模组的电路原理图103.4.2 超声波电源接口113.4.3 测距程序流程图123.5 l298n电机驱动模块123.5.1 l298n主要特点143.5.2 电机驱动模块连接图144 软件设计164.1 软件调试平台164.2 程序设计流程图175 制作安装与调试185.1 硬件制作185.2 系统调试195.2.1 硬件调试195.2.2 软件调试215.2.3 联合调试215.2.4 本系统存在的问题215.2.5 本系统可行的改进措施22结束语23致 谢24参考文献25附 录26自主移动机器人小车设计1 绪论1.1机器人小车的意义和作用自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有机器人小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,设计的自主移动小车应该能够具有语音提示,避障功能,根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加装超声波传感器及电机驱动模块,实现对小车的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对小车的智能控制。该小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、cpu。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的ccd传感器而考虑使用价廉物美的超声波传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有pwm功能的单片机,这样可以实现精确调速;第二,可以由软件模拟pwm输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。cpu使用spce061a单片机,配合软件编程实现。1.2 机器人小车的现状随着电子技术、计算机技术、智能控制技术的飞速发展,产品的智能化和小型化越来越成为人们关注的热点。各种智能小车在智能化玩具中占了很大的比例。近年来,传统玩具的市场逐步缩水,高科技智能化的电子类玩具则逐步成为市场的主流。因此,可遥控的智能化小车的研究是非常有意义的,具有很大潜在市场价值的。智能小车,也被称之为轮式机器人。我们知道,机器人技术的发展是一个国家高科技水平和工业自动化程度的重要标志和体现。机器人由于具有高度的灵活性、可以帮助人们提高生产率、改进产品质量和改善劳动条件等优点,在世界各地的生产生活领域得到了广泛的应用。智能小车正是模仿机器人的一种尝试。它是一种以汽车电子为背景,涵盖控制,模式识别,电子、电气、单片机、机械等多学科的科技创新性设计,一般主要由路径识别、速度采集、角度控制以及车速控制等模块组成。这种智能小车能够自动搜寻前进路线,还能爬坡;感知前方的障碍物,并自动寻找前进方向,避开障碍物;加入相关声光讯号后,更能体现出智能化和人性化的一面。1392 方案设计2.1 主控系统的比较与选择方案一:采用各类数字电路来组成小车的控制系统,对外围避障信号,自动寻迹信号,无线遥控信号,语音控制信号进行处理。本方案电路复杂,灵活性不高,效率低,不利于小车智能化的扩展,对各路信号处理比较困难。方案二:采用凌阳spce061a单片机来作为整机的控制单元。超声波采用凌阳超声波测距模块,利用超声波检测障碍物距离,送往单片机进行处理。此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地满足题目的要求。比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,更能达到题目的设计要求,因此采用方案二来实现。2.2 避障单元的比较与选择方案一:采用红外线避障,利用单片机来产生40khz信号对红外线发射管进行调制发射,发射出去的红外线遇到避障物的时候反射回来,红外线接收管对反射回来信号进行解调,输出比较电平。但红外线容易受到光线的干扰。方案二:采用超声波避障,超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中; 并且可以进行实时控制。通过比较我采用方案二。2.3 电机驱动模块的比较与选择方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高.2方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案三:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强。这种电路由于工作在管子的饱和截止模式下,效率非常高,h型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的调速技术。现市面上有很多此种芯片,我选用了l298n。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。机器人小车采用前轮驱动,前轮左右两边各用一个直流电机驱动,调制前面两个轮子的正反转从而达到控制转向的目的。2.4 驱动电机的比较与选择方案一:使用直流电机,直流电机具有良好的调速性能,控制起来也比较简单。直流电机只要通上直流电源就可连续不断的转动,调节电压的大小就可以改变电机的速度。直流电机的驱动电路实际上就是一个功率放大器。常用的驱动方式是pwm方式,即脉冲宽度调制方式。此方法性能较好,电路和控制都比较简单。方案二:使用步进电机。步进电机具有良好的控制性能。当给步进电机输入一个电脉冲信号时,步进电机的输出轴就转动一个角度,因此可以实现精确的位置控制。与直流电机不同,要使步进电机连续的转动,需要连续不断的输入点脉冲信号,转速的大小由外加的脉冲频率决定。去而且其转动不受电压波动和负载变化的影响,也不受温度、气压等环境因素的影响,仅与控制脉冲有关。但步进电机的驱动相对较复杂,要由控制器和功率放大器组成。具体差别见下表2-1。表2-1 电机控制方式对比直流电机步进电机调速性能较好较差位置控制精度较差好驱动简单复杂稳定性较好好,仅与控制脉冲有关由上表可以看出步进电机和直流电机都有各自的优点。步进电机能进行精确的位置控制,但驱动电路麻烦,鉴于本设计中小车的位置控制不要求十分精确,直流电机即可满足小车要求的精度。且直流电机易于控制,驱动电路十分简单。2.5 电源模块的比较与选择方案一:电脑usb串口供电。能直接为单片机提供稳定的+5v直流电压。usb串口线又容易得到。但是需要很长的线,而且要有交流电和电脑配合。方案二:用4节五号电池串联6v直流电源。在不超过单片机工作电压范围的情况下,又能驱动直流电机。且这个电源结构简单,价格便宜,容易得到。综上所述,本设计选择方案二。2.6 系统总体框图经过对方案的设计要求的分析和方案论证,采用凌阳单片机控制平台,经过超声波测距模块检测距离,控制运动模块的电机运动方式,近而控制这个小车系统的运动。系统总体设计框图如图2-1spce061a复位电路语音报警电机驱动hghhllll298n超声波测距图2-1 系统总体设计框图3 硬件设计3.1 spce061a芯片的特点及其功能3spce061a 是继nsp系列产品spce500a等之后凌阳科技推出的又一款16位结构的微控制器。与spce500a不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,spce061a里只内嵌32k字的闪存(flash)。较高的处理速度使nsp能够非常容易地、快速地处理复杂的数字信号。因此,与spce500a相比,以nsp为核心的spce061a微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。 spce061a特性: 16位nsp微处理器;工作电压:内核工作电压vdd为3.03.6(cpu),i/o口工作电压vddh为vdd5.5v(i/o);cpu时钟:0.32mhz49.152mhz;内置2k字sram;内置32k闪存rom;可编程音频处理;晶体振荡器:32768hz实时时钟;系统处于备用状态下(系统时钟暂停),耗电小于 2a3.6v;2个16位可编程定时器/计数器tmr0,tmr1(可自动预置初始计数值);2个10位dac(数模转换)输出通道;32位通用可编程输入/输出端口;14个中断源可来自定时器a/b,时基,2个外部时钟源输入,键唤醒;具备触键唤醒的功能;使用凌阳音频编码sacm_s240方式(2.4k位/秒),能容纳210秒的语音数据;锁相环pll振荡器提供系统时钟信号;通道10位电压模数转换器(adc)和单通道声音模数转换器;声音ad转换器输入通道内置麦克风放大器和自动增益控制(agc)功能; 具备串行设备接口;低电压复位(lvr)功能和低电压监测(lvd)功能;内置在线仿真板(ice in- circuit em ulator)接口。3.2 spce061a芯片内核结构(1)16位数据总线和22位数据总线(2)算术逻辑单元aul:16位算术逻辑运算,带移位操做的算术逻辑运算,16位x16位乘法和内积运算。(3)通用型寄存器r1r4:在unsp cpu(isa1.1)中,集成了一组(4个)16位通用寄存器:r1r4。(4)数据运算或传送的源及目标寄存器(5)配对组成一个32位的乘法结果寄存器mr(6)配对组成一个32位的内积结果寄存器mr(7)专用型寄存器:堆栈指针寄存器sp,基址指针寄存器bp(r5),程序计数器pc,段寄存器sr。cs:代码选择字段 ds:数据选择字段 c:进位标志位z:零标志位 n:负标志位 s:符号标志位3.3 spce061a的语音播报功能spce061a内置了专用的mic输入通道和音频输出dac,并具有较高的处理速度,因此非常适合对音频信号的处理,如语音播放、语音录制等。由于未经处理的音频资源数据量很大,对于单片机来说,数据的存储和传输都比较困难,这使得音频压缩编码成为音频处理的重要环节。为方便用户将spce061a应用于语音产品,凌阳公司提供了多种音频编解码算法及其api函数库,即sacm-lib。该函数库将a/d、编码、解码、存储及d/a做成相应的模块,每个模块都有其应用程序接口api,用户只需了解每个模块所实现的功能及其参数的内容即可。sacm s480的压缩算法的压缩比较大,音质不是太好,适用于对音质要求不是很高的语音播放场合。sacm s480语音播放也分为“自动”和“手动”了两种模式。其播放流程与sacm a2000完全相同,仅仅将sacma2000播放程序调用的函数名中的“a2000”全部替换为“s480”即可。sacm a2000压缩算法压缩比较小,具有高质量、高码率的特点,适用于高保真音乐和语音。无论是自动播放还是手动播放,将解码后的语音数据通过dac播放出来的过程都是在中断服务程序中完成的。sacm a2000在播放初始化是会打开fiq timera中断,并将timera溢出频率设置为16khz。用户需要在fiq timera中断服务程序中调用sacm a2000函数完成语音播放。sacm dvr具有录音盒放音功能。录音是从语音采样、压缩编码到存储的过程,sacm dvr的录音采用了sacm a2000压缩编码。放音是从取存储器语音数据、译码到输出的过程,与sacm a2000相同。sacm dvr编码实际上使用了sacm a2000压缩算法,因此录制的语音资源可以使用sacm a2000播放出来。sacm dvr也提供了一组库函数,用来播放录制的语音资源。spce061a单片机中dac主要用于将数字信号转换成音频信号输出,其音频信号输出有两种控制方式:一种是语音输出方式;另一种是音调输出方式。两者的区别在于其输出控制机理不同。语音输出是用于声音数据采样相同的速率将声音数据通过数/模转换通道还原成声音。音频输出是通过定时溢出所产生的不同频率来决定声音音调的高低,dac的模拟量决定声音信号的幅值。语音输出方式是数/模转换器dac把模拟声波输入的数字量转换成模拟量实现波形重放。d/a转换器位数越多,重放波形的音质越好。语音输出是,cpu以一固定的频率向dac送出一系列的数字量值。此数值转换成一系列的电流模拟量,并经平滑滤波后驱动扬声器得到声音信号。这种方式下,声音数据的采样率决定了声音音质的好坏。采样率越高,恢复的声音波形越接近原来的波形,音质越好。spce061a单片机采用的d/a转换的音频输出硬件结构有两种:一种是直接采用数/模转换器dac实现;另一种是采用单通道脉宽调制pwm驱动方式输出。在本系统的语音播放中采用第一种方式。直接dac方式用于两个通道的声音数字信号转换成模拟的音频信号输出。实际应用时,应按相同的采样速率,将双通道输入的表示声音的数字量同步且分别地写入到两个数据单元dar1和dar2中,并分别送入dac1和dac2中,进行d/a转换。转换的电流模拟信号分别从aud1和aud2输出,输入的数字量分别写入pdac1和pdac2单元。3.4 超声波测距模块1基本特性与参数指标 超声波传感器谐振频率:40khz 模组传感器工作电压:4.5v-9v 模组接口电压:4.5v-5.5v2主要功能三种测距模式选择跳线j1(短距、中距、可调距): 短距:20cm-100cm左右(根据被测物表面材料决定),精度1cm; 中距:70cm-400cm左右(根据被测物表面材料决定); 可调:范围由可调节参数确定,当调节在合适的值时,最远测距700cm左右;3结构示意图 图3-1 超声波测距模组硬件框图图3-2 超声波实物图一般应用时,只需要用两条10pin排线把j5与spce061a的iob口低八位连接,j4与iob口高八位连接,同时设置好j1、j2跳线就完成硬件的连接了。不同测距模式的选择只需改变测距模式跳线j1的连接方法即可。模组工作的性能与被测物表面材料有很大关系,如毛料、布料对超声波的反射率很小,会严重影响测量结果4超声波测距原理声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,那么就可以计算出从声波到目标的距离。这就是本系统的测量原理。这里声波传播的介质为空气,采用不可见的超声波,超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/23.4.1 超声波测距模组的电路原理图图 3-3 超声波测距模组的主要电路原理图整个电路可分为两大部份,一部份是超声波发射调理电路,另一部份是超声波回波接收处理电路。用于驱动超声波传感器的40khz的方波由一片ne555搭成的多谐振荡器生成,受控于控制器的plus_en信号;40khz的方波经cd4049调理后,成为振幅18v的方波,提高发射功率。 发射头发射出去的超声波经障碍物反射后,反射到接收头,而接收到的波形幅度非常小,所以在回波处理电路中,把接收到的波形放大了5000倍,用的是 ne5532搭成的两级交流放大电路。经放大后的波形送入,lm311比较器;经比较器调理后的波形成为方波,可送给spce061a的ext1外部中断。 在模块电路的设计中一定要注意,超声波发射头和接收头之间的干扰;一般压电式的超声波换能器都会存在余波的干扰,发射头和接收头间要有5cm的距离;而在 发射头发射超声波后的3ms内,接收头会一直接收到发射头传过来的非反射波,这是干扰波,在软件处理的时候一定要注意清除掉此类的干扰。3.4.2 超声波电源接口图3-4 超声波电源接口j3为外部电源接口,最高电压不要超过12v,j2为电源选择跳线,vcc_5即为由61板通过10pin的排线引入模组的电源,vcc即为模组的放大器,调理电路的供电电源。当用户使用61板为其供电时,要把vcc与vcc_5短接;而使用外部电源时,要把vcc与vcc_5短接。超声波测距模组与61板的接口如图3-5,3-6所示:图 3-5 超声波测距模组接口图3-6 超声波与61板进行测距连接实物图3.4.3 测距程序流程图超声波测距的功能函数流程图如图3-7。用户只需进行六次测距操作,这六次的测量结果需要经过处理后才可得到最终的测距返回值,然后将返回值化成距离。3.5 l298n电机驱动模块4l298n是sgs公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个h桥的高电压大电流双全桥式驱动器,接收标准ttl逻辑电平信号,可驱动46v、2a以下的电机。其实物及引脚图如图3-8及3-9所示图3-7测距程序流程图图3-8 l298n实物图图 3-9 l298n管脚图3.5.1 l298n主要特点(1)工作电压高,最高工作电压可达46v; (2)输出电流大,瞬间峰值电流可达3a,持续工作电流为2a;额定功率25w。(3)内含两个h桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;(4)采用标准逻辑电平信号控制;(5)具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;(6)可以外接检测电阻,将变化量反馈给控制电路。使用l298n芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。3.5.2 电机驱动模块连接图5小车的两个直流电机和驱动模块l298n的连接如图3-10。l298有两路电源分别为逻辑电源和动力电源,图3-10中6v为逻辑电源,12v为动力电源。j4接入逻辑电源,j6接入动力电源,j1与j2分别为单片机控制两个电机的输入端,j3与j5分别与两个电极的正负极相连。ena与enb直接接入6v逻辑电源也就是说两个电机时刻都工作在使能状态,控制电机的运行状态只有通过j1与j2两个接口。输入信号端in1接高电平输入端in2接低电平,j3连接的电机正转。(如果信号端in1接低电平, in2接高电平,j3连接的电机反转)控制另一台电机是同样的方式,输入信号端in3接高电平,输入端in4接低电平,j5连接的电机正转。(反之则反转),pwm信号端a控制电机1调速,pwm信号端b控制电机2调速。图3-10电机驱动模块连接图通过对驱动模块的逻辑输入端输入不同的电平,其对应的电机转动状态表如表3-1表3-1 电机转动状态表左电机右电机左电机右电机小车运行状态in1in2in3in41010正转正转前行1001正转反转左转1011正转停以左电机为中心原地左转0110反转正转右转1110停正转以右电机为中心原地右转0101反转反转后退通过编写相应驱动程序,用单片机的ioa口来控制驱动模块,进而控制小车的转动状态,来完成小车的避障功能。4 软件设计软件设计是实现小车智能运转的关键所在,相当于人类大脑思维活动,通过软件设计可将各个变化信号数据有效的结合处理,产生相应的动作反应。4.1 软件调试平台软件调试采用nsp集成开发环境,nsp集成开发环境集程序的编辑,编译,链接,调试以仿真等功能为一体。具有友好的交互界面,下拉菜单,快捷键和快速访问命令列表等,使编辑,调试工作方便且高效。此外。它的软件仿真功能可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序。ide的开发界面如图4-1图4-1 nsp ide的开发界面对于超声波测距模块的数据采集的变化,则可以通过集成开发环境在线观察,其对应变量的数值在如图4-2的变量表watch窗口图4-2变量表watch窗口界面4.2 程序设计流程图根据本设计的设计思路,机器人小车的主要程序设计包括:主程序,超声波测距程序,其程序设计流程图如图4-3所示图4-3程序设计流程图5 制作安装与调试5.1 硬件制作由于61板制板比较复杂且工艺要求较高,手工制板无法满足要求则选择了现成的61精简开发板,车体源于废旧的小车玩具进行改装。此后将61板、车体、驱动电路板按照设计要求组装,各部分之间用自制杜邦线连接。确认组装无误则上电测试。61板的结构图及说明如图:图5-1 61板的结构图表5-1 61板框图说明power5v&3v供电电路pll锁向环外部电路power电源指示灯sleep睡眠指示灯reset复位电路k4复位按键probe在线调试器串行5pin接口s5ez-probe和probe切换的拨断开关j12、j3耳机插孔和两pin喇叭插针dac一路音频输出电路,采用spy0030集成音频放大器mic麦克风输入电路osc32768晶振电路vrefa/d转换外部参考电压输入接口r/c芯片其他外围电阻、电容电路k1k3扩展的按键:接ioa0ioa2spce061a61板核心:16位微处理器porta/b32个i/o口凌阳61精简开发板的实物图如图5-2所示。图5-2 61开发板实物图5.2 系统调试本系统的调试共分为三大部分:硬件调试,软件调试和软硬件调试。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:61板的测试、电机驱动模块的调试、超声波测距模块的调试。最后将各模块组合后结合软件进行整体测试。5.2.1 硬件调试(1) 61板测试第一步、连接电源,可以连接3节电池,也可以直接接5v的稳压源现象:当电源接通时,红色的发光二极管会点亮。同时会有语音提示:欢迎进入自检模式,此时因为还没有连线,所以会听到:i/o测试失败的警告,所以就要进行第二步的操作; 第二步、用连线分别将i/oa口的低8位和iob口的低8位相连,ioa口的高8位和iob口的高8位相连,然后按下rest复位键现象:当按下复位键后,程序从第一调开始运行开始执行,语音提示欢迎进入自检模式,当听到语音:i/o测试成功后,进行第三步操作; 第三步、按k1键进行睡眠功能测试现象:如果测试成功,会看到绿色的发光二极管亮灭一下,并有语音提示睡眠测试成功,否则提示睡眠测试失败,然后进行第四步操作; 第四步、按下k2键进行a/d转换的测试现象:语音提示:a/d测试成功,否则提示a/d测试失败,进入最后一步操作; 第五步、拔掉第一步测试时的连接线,并按下k3键测试mic输入及d/a转换输出是否正常现象:可以在mic上轻轻的拍几下,同时听是否有声音输出,如果有,则说明mic输入和d/a转换输出部分正常。 以上操作,只有当i/o测试成功时,按键才会有效经过上述检验,各个部分工作都是正常的。(2)超声波测距模块调试对于超声波测距模块的调试是结合软件共同实现,将编写好的超声波测距程序下载到61板中,同时在线用nsp集成开发环境进行测量结果的观测。期望实现的功能是,back_data显示测得的距离,如果测量出错则back_data为0,则喇叭发出“咚”的声音,测量正确,则back_data显示测的距离,同时喇叭语音播报距离,播报的格式为“.点.米”。如表5-2是超声波调试记录。表5-2 超声波调试记录测试次数12345678910放置距离20cm25cm40cm45cm55cm65cm70cm80cm90cm100cmback_dat值0356553548351065535655920由上表可以看出,超声波测距模块工作不正常,10次测量中仅有两次正确,出现了问题,我首先检查测距程序,经过反复的修改,程序确定无误。那就是硬件的问题了,由于超声波测距模块是买的成品,我研究其工作原理,并和售后服务联系,他们给予帮助来检测超声波测距模块的特性,检测结果是超声波测距模块也没有问题,我认为问题可能是有电源的不稳定以及超声波测距模块受环境的干扰比较大引起的。(3)电机控制调试此模块调试实现的功能是结合软件共同实现,当连接61开发板的ioa口与电机驱动模块的逻辑输入,加上电源可以实现电机左右转向,前后转向以及停止等功能,如表5-3为电机测试记录。表5-3 电机测试记录ioa8ioa9ioa10ioa11小车行驶状态1010前行1001左转1011原地左转0110右转1110原地右转0101后退5.2.2 软件调试软件调试采用nsp集成开发环境,将编好的程序进行调试,主要是检查语法错误。由于本系统是分模块进行程序设计的,所以调试时先分模块进行调试。如超声波测距程序,在调试时将它放在一个子程序里单独测试,看其是否能够完成预定的功能,如能,测试通过,否则,修改并反复测试。虽然在软件的调试过程中,综合利用了设定断点、单步、跟踪等调试手段,使得调试工作更易进行。但是也出现了一定的问题,如超声波程序的调试,超声波所检测的距离是错误的。 5.2.3 联合调试各模块都调试之后,将各个模块连接起来与硬件结合进行联合调试。在进行联合调试时,经过反复的实验,不断的来修改参数来完善结果。使程序按照要求设计的要求进行。但由于超声波的问题,所以联合调试的结果是小车不能实现避障功能。5.2.4 本系统存在的问题尽管我作了很大的努力,但是由于基础知识不扎实,缺乏经验以及时间有限等原因,本系统存在着一些问题,主要有以下几点:1、没有速度检测装置,故不能有效地控制车速。2、超声波测距模块检测的距离出现错误。3、对凌阳单片机了解的不够,没有充分利用好单片机的资源。5.2.5 本系统可行的改进措施在条件允许的情况下,本系统可以做以下几个方面的改进:1、增加速度检测装置,提高速度控制精度。2、增加红外遥控装置,来提高小车的智能化。3、设计更加可靠的硬件电路。4、超声波用红外线来代替。结束语此次设计是在凌阳公司的精简开发板(61板)上设计的,通过连接控制板和小车电路实现的。遇到的主要的困难和问题就是原本想自己制作电路板,但是时间不允许,且电路元件的封装有很多元件的封装都要自己来制作,而且在这样将消耗大量的精力,故采用了61 开发板。程序编写是最大的难点,凌阳单片机的编程方法有别于51单片机的编写,则需要学习,其仿真软件不能真正仿真,需要将每次修改的程序加载在实物(小车)中进行验证。由于时间及能力的问题,最终小车设计的避障功能未能实现,超声波检测不到数据,我反复检查超声波测距模块,通过修改程序,最后超声波能够检测到数据,但数据是错误的。通过此次设计,对凌阳单片机的工作原理有了更切实的认识,对于单片机各个功能如定时器、rom、ram、wdt(看门狗)等的功能更能系统地认识。更重要的是学会了怎样更好的学习更好的提高自己的能力。 致 谢参考文献1王卫平.电子产品制造技术m.北京:清华大学出版社,2005.1,pp.2604302罗亚非.凌阳16位单片机应用基础 m.北京:北京航空航天大学出版社,2006.73李学海.16位语音型单篇机spce061a实用教程提高篇m.北京:人民邮电出版社,2007.34胡文金.单片机应用技术实训教程m.重庆:重庆大学出版社,2005.2,pp.2943155黄智伟.全国大学生电子设计竞赛制作实训m.北京:北京航空航天大学出版社,2007.2,pp.1256周坚.单片机c语言轻松入门m.北京:北京航空航天大学出版社,2006.77及力.protel99se原理图与pcb设计教程m.北京:电子工业出版社,2007.88刘华东.单片机原理与应用m.北京:电子工业出版社,2006.89韩毅,杨天. 基于hcs12单片机的智能寻迹模型车的设计与实现j.学术期刊,2008,29(18):1535-1955.10 王晓明. 电动机的单片机控制j. 学术期刊,2002,13(15):1322-175511张毅刚,彭喜元.新编mcs-51单片机应用设计m.哈尔滨工业大学出版社,2003. 12何立民.单片机应用系统设计m.北京航天航空大学出版社,2005. 13 宗光华机器人的创意设计与实践 m 北京航空航天大学出版社,2004附 录程序附录1主程序:#include spce061a.h#include ceju.hunsigned char intflag; /定时标识unsigned int sum; /2hz 计数器 1次为0。5秒void runtime2hz(void);void offtime2hz(void);void clear_watchdog(void);void delay2s(int timer) /设置基频为2hz的中断,就是一次定时0。5s sum=timer; runtime2hz(); /运行中断 while(!intflag) clear_watchdog();/清看门狗 intflag = 0; offtime2hz(); /结束中断void delay2s(int timer);int main(void)unsigned int back_data; /装距离*p_ioa_dir=0x1f00;/初始化ioa,ioa811同向输出*p_ioa_attrib=0x1f00;*p_ioa_data=0x0000;intflag = 0;clear_watchdog(); /清看门狗while(1) *p_timera_ctrl=0x0373; *p_timera_data=0xff9f; back_data = measure_times(0);/测距if(back_data=0) /判断是否为0,为0停车 *p_timera_ctrl=0x006; *p_ioa_data=0x0000;else if(back_data=20) /判断是否小于20cm,小于则进行倒车*p_timera_ctrl=0x006; *p_ioa_data=0x1000; /倒车delay2s(0);*p_timera_ctrl=0x0333; *p_ioa_data=0x0400; /左转delay2s(1);*p_ioa_data=0x0800; delay2s(1);*p_ioa_data=0x0400; /左转delay2s(1);*p_timera_ctrl=0x006; *p_ioa_data=0x0100;/前进 while(1) else *p_timera_ctrl=0x006; *p_ioa_data=0x0100;/前进 2中断程序:#include spce061a.h#include ceju.hvoid irq3(void)_attribute_(isr); /irq中断服务程序void irq3(void)*p_int_clear = 0x0100;/ext1_irq_ult();/调用超声波测距的外部中断服务程序.text.include spce061a.inc;.external _sum;.external _intflag;.public _irq5;_irq5: /定时3秒的中断程序push r1,r4 to sp;r1 =0x0008; test r1,p_int_ctrl;jnzl_4hz; / timer a fiq entrence r1 = 0x0004; p_int_clear = r1; /清中断 r1 = _sum /取时基信号量 r1 += 1; cmp r1,4; je loop0; _sum=r1 /保存时基信号量 pop r1,r4 from sp; reti; loop0: r1 = 0x0001; _intflag = r1; /设置中断标识 r1 = 0 _sum = r1pop r1,r4 from sp; reti; l_4hz: r1 = 0x0008; p_int_clear = r1; /清中断 pop r1,r4 from sp;reti;.external _sum;.include spce061a.inc;.code.public _clear_watchdog;_clear_watchdog: .procr1=0x0001; p_watchdog_clear=r1; /清看门狗retf;.endp.public _runtime2hz; /初始化中断为2hz定时中断源_runtime2hz: .procr1 = 0x0004; p_int_ctrl = r1; int irq; /开中断 retf .endp;.public _offtime2hz;_offtime2hz: .proc r1 = p_int_ctrl r1 &= 0xfffb; p_int_ctrl = r1; r1 = 0x0000 _sum = r1; retf; .endp;3、测距程序#include spce061a.h#define long_send_timer1000 /中距测距时的40khz信号发射时长#define long_send_timer23000 /中距测距的补充测距时的40khz信号发射时长#define long_wait_delay600/中距测距的防余波干扰延时时长#define long_wait_delay21500

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论