欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    迷宫电脑鼠的设计—课程设计论文.doc

    • 资源ID:2397000       资源大小:246KB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    迷宫电脑鼠的设计—课程设计论文.doc

    目 录摘 要21、课程设计的目的及要求32、题目分析31.1 功能分析31.2 性能需求分析31.3 算法分析33、系统设计33.1系统整体设计33.2硬件设计43.2.1 硬件结构设计43.2.2 传感器组设计43.2.3 电机驱动电路设计43.3软件设计43.3.1 电脑鼠正常行走程序设计43.3.2 电脑鼠记路径程序设计43.3.3 电脑鼠找终点程序设计5摘 要 “电脑鼠”是使用嵌入式或单片机微控制器、传感器和机电运动部件构成的一种微型机器人,可以在 “迷宫”中自动记忆和选择路径,快速地达到所设定的目的地。电脑鼠走迷宫竞赛是一项具有一定难度、富有挑战性和趣味性的比赛。本研究性课程重点对电脑鼠硬件、迷宫算法进行分析研究。本研究性课程通过对电脑鼠自动穿越迷宫过程的研究,综合嵌入式专业的电路设计、传感器控制、单片机程序开发和算法研究等多学科知识,熟悉掌握嵌入式应用开发的全过程。 关键词:嵌入式或单片机微控制器,电脑鼠,智能算法1、课程设计的目的及要求本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。设计的电脑鼠应该具有三种最基本的能力: 拥有稳定、准确、快速的行走能力 能争取判断环境的能力(如有墙、有路) 记忆路径的能力总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。如何衡量:迷宫时间(搜索时间):电脑鼠激活到每次运行开始的时间;注:搜索结束,从终点返回到起点的时间不算在迷宫时间内;运行时间:电脑鼠从起点走到终点的时间;如果电脑鼠在比赛时需要手动辅助,这个动作就成为“碰触”。若“碰触”了,则需要失去10秒的奖励时间。2、题目分析2.1 电脑鼠的构成电脑鼠主要包括三部分:机械部分(执行机构)、电子控制装置、软件。电脑鼠是指由车身、轮子、和相关软件构成。车体是电脑鼠最基本的架构,它的设计在电脑鼠的整体规划中战友想到重要的地位,应当遵守整体结构坚固耐用、材质轻、重心低的原则。在设计中,既要考虑到符合各零件的规格,又要考虑到配合迷宫的规格。2.2 功能分析1、拥有稳定、准确、快速的行走能力通过电动带动车轮转动,使小车向前行走。2、 能争取判断环境的能力(如有墙、有路)运用传感器来探测,是否有障碍物,路径是否可以行走,达到随意在迷宫里行走的能力。3、 记忆路径的能力4、 能够迷宫电脑鼠能够在找到终点坐标并能返回原点。2.3 算法分析 根据要求,电脑鼠要在迷宫里穿行,不会碰到障碍,避开障碍的到达指定的坐标,迷宫电脑鼠要设计到的算法。1、90和180度转弯的算法 2、找到终点,需要用到右手法则和向心法则 3、电脑鼠需要记忆路径,所以记忆路径的算法 4、电脑鼠的方向有可能发生偏移,所以要有修正方向的算法。3、系统设计3.1系统整体设计迷宫为8*8,迷宫格大小为18*18cm,选取电脑鼠底盘大小为迷宫格一半8*8cm左右。图29 迷宫形状4.2 算法流程如图30所示,是电脑鼠主程序流程图。启动按键按下后,电脑鼠启动,然后根据设定的终点坐标,探索迷宫,通过到达终点子程序找到终点后,蜂鸣器发出提示音,说明找到终点。之后电脑鼠根据记忆通过返回起点子程序按原路返回起点,不再去走走不通的路。电脑鼠到达起点后,调用冲刺子程序立即掉头,根据先前探索阶段记忆下的路径冲刺到终点后停止,完成电脑鼠走迷宫。开始初始化按下启动?设定终点坐标到达终点蜂鸣器提示返回起点冲刺结束YN图30 主程序流程图3.2硬件设计3.2.1 硬件结构设计电脑鼠的硬件电路结构图如下。单片机传感器组5传感器组4传感器组3传感器组2传感器组138KHz载波发生器3-8译码选择器显示器蜂鸣器电机1电机2驱动电路1驱动电路2操作按键图8 硬件电路结构框图(1)微控制器微控制器是电脑鼠的核心,可以选择单片机,若RAM需求量大或者算法复杂或者性能要求高时,需要使用ARM等高性能的微处理器。(2)传感器传感器的作用是用来感知环境,探测电脑鼠的左、前、右是否有路可走。本设计中采用的是红外线方式,发射和接收分别受微控制器控制。由硬件电路部分结构框图可知,在电脑鼠的前、左、右、左前、右前方共有5组,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左、右、前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止电脑鼠走偏而撞到迷宫墙。(3)显示器显示器是用来显示当前位置等相关信息的,是电脑鼠的可选部分。(4)电源电源用来为单片机供电,选择哪种电池,这也将影响电路的设计。3.2.2 传感器组设计本电脑鼠设计有5组传感器。这5组传感器分别安装于电脑鼠的左、左前、前、右前、右5个不同的方向,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左右前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止走偏而撞到迷宫墙。(1)译码器由于单片机引脚有限,为了节约引脚接口,采用74HC138译码器将单片机的三位二进制编码译码为8位控制线,使用其中的5位控制线分别控制5个传感器组的分时工作(采用分时检测传感器,主要为了防止多组传感器之间的相互干扰)。通过单片机的P37、P13、P14分别为3-8译码选择器的地址输入A0、A1、A2,通过地址选择对应的传感器组。 例如A0A1A2地址为000时,74HC138输出Y0有效,从而使第一组传感器工作,而其他组传感器处于没有工作的状态。这样就可以实现单片机的3个引脚控制5个或者更多的传感器组。74HC138管脚图:图14 138译码器管脚图74HC138功能表:由上表可见74HC138译码器输出低电平有效。为增加译码器功能,除三个输入端A0、A1、A2 外,还设置了S1、,使译码器具有较强的抗干扰能力且便于扩展。当S10时,不管其他输入如何,电路输出均为“1”,即无译码输出;只有当S11,且0时,译码器才处于允许工作状态,输出与输入二进制码相对应,如 A2 A1A0=110 时,Y6输出低电平。如图15所示,是硬件电路部分3-8译码选择器电路。图15 3-8译码选择器电路(2)载波发生器红外传感器是由红外发射管和红外一体化接收头构成的障碍检测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。如图16所示,是产生38KHz方波的载波发生器电路。图16 38KHz载波发生器电路(3) 传感器电路传感器电路由红外发射LED和红外一体化接收头HS0038构成,红外LED由载波发生器产生的CLOCK信号驱动产生38KHz红外调制光。RP1为可调电阻,通过调节RP1来调节红外LED发光强度,从而调整传感器组检测迷宫墙障碍物的距离,RP1电阻越大,检测距离越近,电阻越小,检测距离越远。图17所示是传感器1的电路,用于电脑鼠的环境感知,另外四组传感器也与该组传感器相同的。电脑鼠通过对这五组传感器信息的融合,实现环境感知功能。图17 传感器组电路3.2.3 电机驱动电路设计如图4-1-1所示,是用来驱动电脑鼠伺服电机的驱动电路。由于单片机I/O口电流输出能力有限,不能直接驱动电机转动。为了能让单片机控制电机运转,需要使用电机驱动电路,将单片机I/O口弱电流放大到足以驱动电机的电流。图4-1-14.1.1 驱动电路芯片L91101、器件的管脚图如图4-1-1-1所示。图4-1-1-12、 管脚定义如下:3、 L9110的逻辑关系表如表3所示:表3 L9110逻辑关系IAIBOAOBHLHL正转LHLH反转LLLL停止HHLL停止如图4-1-1所示,是左电机驱动电路,右电机驱动电路和这个也是一样的。ML为左电机,1、2脚是电机组绕,与驱动芯片L9110输出相连。3脚是电机光电码盘A相脉冲输出,连接到T1定时/计数器1外部计数引脚,通过脉冲计数,计算电机角位移和速度。电路图中引脚与驱动电路中的引脚编号一一对应。通过L9110驱动芯片IA、IB输入的逻辑值的组合,控制电机正转、反转、停转。3.3软件设计3.3.1 电脑鼠正常行走程序设计迷宫隔墙构成的通道宽度为18厘米,通常所制作的电脑鼠的宽度为8厘米左右。在这种情况下,如果电脑鼠行进在通道中央,其边缘与迷宫隔墙间的距离在34厘米左右;如果偏离了,那么一边的距离会增加,另一边的距离会减少。通过安装在电脑鼠上的传感器能够快速准确地测量这些距离信息,以便不断地调整电脑鼠的行进方向。使用红外LED管测距时,发射管和接收管平行安装在电脑鼠的前方或左右方。当发送管发射的红外光线遇到迷宫隔墙后,红外光线发生反射并被接收管所接收。接收管收到的信号转换为电压,它和电脑鼠与迷宫隔墙之间的距离有确切的对应关系。检测该输出电压的大小就可以测定电脑鼠与迷宫隔墙之间的距离。首先设定电脑鼠离左右墙的安全距离,由于各电脑鼠在硬件方面有一定的差异,所得到的检测数据也有一定的差异,那么安全距离的设定大家可以根据自己的电脑鼠进行相应的调整。当然左右的安全距离也可以设定为不一样的值,只要能保证电脑鼠前进的时候能走直线,而不撞到墙就可以了。如图所示:读出左前方LED的数据之后用来跟左边安全距离比较,当偏向左边的时就要修正电脑鼠的位置了,我们可以通过减慢右边轮子的速度来调整电脑鼠的位置。接着就读出右前方LED的数据之后用来跟右边安全距离比较,当偏向右边的时就要修正电脑鼠的位置了,我们可以通过减慢左边轮子的速度来调整电脑鼠的位置。3.3.2 电脑鼠记路径程序设计记录电脑鼠的轨迹的方法1:(1) 当电脑鼠一次也未经过该处时,设定D=-1(2) 当电脑鼠通过该处一次以上,而且以后还有可能通过时,设定电脑鼠最后离开此处的方向为东侧时D=3,西侧时D=1,北侧时D=0,南侧时D=2。(3) 当方块最多只能通过一次时D=4电脑鼠走完图8.4.3迷宫的轨迹,用D值来表示时,如下图所示:记录电脑鼠的轨迹的方法2:用八位寄存器来记录路径,各位对应的关系如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0北西南东北西南东03四位表示各方块东南西北各面是否有墙,0表示没有;1表示有。47四位表示电脑鼠是从东南西北哪个方向离开的,0表示不是;1表示是。3.3.3 电脑鼠找终点程序设计如图31所示,是电脑鼠到达终点子程序流程图。电脑鼠到达终点子程序就是根据设定的终点坐标,采用一定的规则不断的去搜索迷宫,直到找到一条通往终点的路为止。如下流程图所示,电脑鼠每走一格就将当前坐标与终点坐标进行比对,如果比对相同说明找到终点子程序退出返回,不相同则继续探索迷宫,判断当前坐标格是否走过,对于没有走过的迷宫格采用向心法则选路。对于走过的迷宫格,选一个未走过的方向进行探索或返回上一个路口探索。如果所有路都走不通,使电脑鼠返回到了起点,则电脑鼠蜂鸣器提示目的坐标不可到达。开始当前坐标是终点?返回当前坐标走过?向心法则选路返回上一个路口有未走过方向?走未走过的方向当前坐标是起点?报告目标不可达返回NYNYNYNY图31 到达终点子程序流程图 附录:主要程序:/*从终点返回起点函数*void mouseBack() unsigned char i;mouseTurnback();if(mouseGoahead(1)!=1)goOffset();repair();delay05();while(1) if(x=0)&&(y=0) mouseTurnback(); return;i=motionxy>>4;/获得当前坐标进入方向,目的方向if(i>now_direct)待添加的隐藏文字内容1i=i-now_direct;if(i=1)mouseTurnright();if(i=2)mouseTurnright();mouseTurnright();if(i=3)mouseTurnleft();elsei=now_direct-i;if(i=1)mouseTurnleft();if(i=2)mouseTurnleft();mouseTurnleft();if(i=3)mouseTurnright();delay05(); if(mouseGoahead(1)!=1)goOffset(); repair(); delay05(); /电脑鼠冲刺函数void mouseSpurt()unsigned char i;while(1) if(x=Xfinish) && (y=Yfinish) return;i=motionxy&0x0f;/获得当前坐标出去方向,目的方向if(i>now_direct)i=i-now_direct;if(i=1)mouseTurnright();if(i=2)mouseTurnright();mouseTurnright();if(i=3)mouseTurnleft();elsei=now_direct-i;if(i=1)mouseTurnleft();if(i=2)mouseTurnleft();mouseTurnleft();if(i=3)mouseTurnright();if(mouseGoahead(1)!=1)goOffset(); repair(); /左转90度void left(unsigned char l)/90度l参数49/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06;/设定T0模式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCount0=0;intCount1=0;while(intCount0<l)|(intCount1<l)if(intCount0<intCount1)stopML();runMR(1);elsestopMR();runML(0);stopML();stopMR();/右转90度void right(unsigned char l)/90度l参数49/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06;/设定T0模式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCount0=0;intCount1=0;while(intCount0<l)|(intCount1<l)if(intCount0<intCount1)stopML();runMR(0);elsestopMR();runML(1);stopML();stopMR();

    注意事项

    本文(迷宫电脑鼠的设计—课程设计论文.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开