已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电脑鼠的设计与制作0序言0.1电脑鼠电脑鼠是机电一体化装置,是使用微控制器、传感器和机电运动部件构成的一种智能行走装置,是一种具有人工智能的小型机器人。电脑鼠可以在不同“迷宫”中自动记忆和选择路径,采用相应的算法,快速地达到所设定的目的地。集成了计算机、电子和机械、电机、自动化和传感器等技术,是真正具有独创性的东西,其制作为学生提供了创意、制作、实现和展示的机会。必要的知识(可以百度):(1)电子部分 电路设计 微处理器 传感器(2)机械结构(3)算法设计0.2电脑鼠的设计目标本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。设计的电脑鼠应该具有三种最基本的能力: 拥有稳定、准确、快速的行走能力 能争取判断环境的能力(如有墙、有路) 记忆路径的能力图1 8*8迷宫布局图总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。如何衡量:迷宫时间(搜索时间):电脑鼠激活到每次运行开始的时间;注:搜索结束,从终点返回到起点的时间不算在迷宫时间内;运行时间:电脑鼠从起点走到终点的时间;如果电脑鼠在比赛时需要手动辅助,这个动作就成为“碰触”。若“碰触”了,则需要失去10秒的奖励时间。比赛使用者三个参数,从速度、求解迷宫的效率和电脑鼠的可靠性三个方面来进行评分。成绩=迷宫时间/30+运行时间-奖励时间(非碰触)例子:一个电脑鼠在迷宫中的搜索时间为4分钟,没有碰触过,运行时间使用了20秒,这次运行的排障时间就是:20+(240130)-10=18秒1.电脑鼠的构成电脑鼠是指由车身、轮子、和相关软件构成。车体是电脑鼠最基本的架构,它的设计在电脑鼠的整体规划中战友想到重要的地位,应当遵守整体结构坚固耐用、材质轻、重心低的原则。在设计中,既要考虑到符合各零件的规格,又要考虑到配合迷宫的规格。车体内是由微控制器、前视距离探测器、车轮编码器和驱动机构等组成的一个综合的系统;其中微控制器加上程序就相当于脑袋,前视距离探测器相当于眼睛,驱动机构(车轮编码器)相当于腿。电脑鼠主要包括三部分:机械部分(执行机构)、电子控制装置、软件。图2 电脑鼠总体结构2.材料准备2.1 机械部分2.1.1承载底盘的选择为了减轻重量,尽可能的减少惯性对电脑鼠行走的影响,可以直接采用电路板作为电脑鼠底盘。以电路板作为基板,可同时将机械部件和电子部件装接于上面,简化电脑鼠硬件结构,减轻电脑鼠重量。由于条件所限,实际制作时采用万用板做搭载底盘。理论上来说,电脑鼠车体应越小越好,但是实际制作时机械部件不容易做得很小,因此车体的大小选择只要合适即可。参照IEEE电脑鼠走迷宫竞赛的规则,迷宫格大小为18*18cm,选取底盘大小为迷宫格一半8*8cm左右。底盘是搭载机械与电子部件的基板,需要有一定的机械强度,不能选用通常使用的机械强度不高的纸基万用板,实际制作时采用9*15cm的玻纤万用板加工成8*8cm大小作为电脑鼠的搭载底盘。如图1所示,是选用的9*15cm玻纤万用板实物图。2.1.2电机的选择可根据实际需要选择直流电机、带减速的直流电机、步进电机、伺服电机等。不同的电机,其控制是不同的,本次选择伺服电机。电脑鼠在探索迷宫的过程中需要知道当前所处的位置,记忆每一个迷宫格的通行状况以及根据当前所处的位置来进行路径选择。由IEEE电脑鼠走迷宫竞赛规则可知每一个迷宫格大小是相同的,因此可以通过计算电脑鼠走的距离与方向来确定相对于起点的迷宫格位置。基于计算距离的考虑,在选择电脑的驱动电机时不能选用普通的直流电机,可选的电机有步进电机、伺服电机等都可以控制行走距离。相对来说,步进电机的速度没有伺服电机快,并且容易出现失步现象影响电脑鼠对位移距离的计算。因此在实际制作时,选用带光电码盘的伺服电机作为电脑鼠的驱动。通过光电码盘输出脉冲的反馈,不仅可以计算电脑鼠行走距离,实现对位置坐标的确定,加上PWM调速和PID控制还可以对电脑鼠进行复杂的运动控制让电脑鼠完成复杂的动作。如图3所示,是实际制作时选用的334线AB相伺服电机实物图。图3 334线AB相伺服电机实物图2.1.3移动机构(轮子)的选择电脑鼠行走轮子分为驱动轮和辅助轮两类,驱动轮直接由驱动电机动力带动,驱动轮转动通过与地面的摩擦力使得轴心相对于地面产生位移,从而带动整个底盘的运动。要求驱动轮与地面要有一定的静摩擦力,尽量采用与地面静摩擦系数大的驱动轮,减小打滑对电脑鼠位移计算的影响。为了使设计的电脑鼠具有更好的机械灵活性,基于降低重心的考虑,驱动轮的直径大小不能太大,使得难于降低底盘和地面的高度,造成重心过高。实际制作时选用成本较为低廉的直径30mm的塑料轮外套橡胶圈作为电脑鼠驱动轮。如图4所示,是选用的电脑鼠驱动轮实物图。图4 驱动轮实物图整个车体仅由两个驱动轮驱动,通过两个驱动轮的差速比来转弯,调整电脑鼠行走方向。为了使电脑鼠可以很灵活原地转弯,驱动轮在底盘上的安装位置应靠近中间,将转弯轴心设计在车体中心。很明显只通过两个驱动轮来支撑电脑鼠搭载底盘,是不能让电脑鼠站稳的。因此需要在底盘前后位置增加两个辅助万向轮,使车体保持平稳。如图5所示,是选用的辅助轮实物图,图6为行走轮安装图。图5 辅助轮实物图驱动轮辅助轮底盘图6 行走轮安装图2.1.4传动部件的选择电机的动力需要通过传动部件耦合到驱动轮上,传动耦合方式有直接传动方式、齿轮传动方式、皮带传动方式等。直接传动方式就是直接将电机与驱动轮通过联轴器相连接,直接带动驱动轮转动,该方式具有耦合方便,相对于其他方式驱动轮获得的速度快的特点,但是电机的功率是一定的,速度快就意味着驱动轮的驱动力小,重量稍微重一点就会遇到驱动力不足的问题。采用齿轮传动方式可以减速,提高驱动轮驱动力,但对于实际制作来说,齿轮耦合精度要求过高且不容易获得合适的齿轮,制作难度较大。在实际制作是选用皮带传动方式,具有安装简单,噪音低等特点。如图7所示,是选用的传动部件实物图。图7 传动部件实物图2.2 电子部分电脑鼠的硬件电路结构图如下。单片机传感器组5传感器组4传感器组3传感器组2传感器组138KHz载波发生器3-8译码选择器显示器蜂鸣器电机1电机2驱动电路1驱动电路2操作按键图8 硬件电路结构框图(1)微控制器微控制器是电脑鼠的核心,可以选择单片机,若RAM需求量大或者算法复杂或者性能要求高时,需要使用ARM等高性能的微处理器。(2)传感器传感器的作用是用来感知环境,探测电脑鼠的左、前、右是否有路可走。本设计中采用的是红外线方式,发射和接收分别受微控制器控制。由硬件电路部分结构框图可知,在电脑鼠的前、左、右、左前、右前方共有5组,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左、右、前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止电脑鼠走偏而撞到迷宫墙。(3)显示器显示器是用来显示当前位置等相关信息的,是电脑鼠的可选部分。(4)电源电源用来为单片机供电,选择哪种电池,这也将影响电路的设计。(5)蜂鸣器当电脑鼠到底终点、或是返回到起点,可以用蜂鸣器来提示,是电脑鼠的可选部分。2.3其它材料清单陶瓷电容,焊的时候没有正负极之分:晶振,焊的时候同样没有正负极之分:电解电容,长脚一端接正极:发光二极管,长脚一端接正极:开关的焊接:轻触开关,只需用焊锡将1处两个脚用焊锡连接到,同理2处也要短接。然后AB对角接线接出去。2.4成品如下图所示,是实际制作的电脑鼠。迷宫4角中的任意一个角作为电脑鼠运行的起点(坐标为0,0),起点的对角是电脑鼠要寻找的终点(坐标为7,7)。对于有支路的情况,电脑鼠通过比较当前坐标与终点坐标来确定选择走那一条路。从起点到终点的路是不唯一的,要想找到最近的路,就需要尽可能多的对迷宫进行搜索,探明迷宫布局情况,选择一条最佳路径。图9 实际制作的电脑鼠3.电路设计3.0了解单片机选用AT89S52,低功耗高性能CMOS 8位单片机,片内8kBytesISP(In-system programmable)的可反复擦写1000次的FLASH只读程序存储器,器件采用ATMEL公司之高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。单芯片上,拥有8位CPU及在系统可编程FLASH,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效之解决方案。AT89S52之特点:40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89C52及AT89S52之别,在于C及S,C表示需用并行编程器下载(接线多且复杂),S表示可支持ISP下载,可在89S52系统板上面预留ISP下载接口。ISP下载线可方便地自制,一74HC373,若干电阻,连接电脑并口就可用软件将hex文件下载至89S52。相比较AT89C52及AT89S52,以方便计,选用AT89S52。各引脚说明:图10 AT89S52引脚图 DIP封装51单片机的8个特殊引脚l Vcc, GND: 40、20电源和接地端l XTAL1, XTAL2: 片内振荡电路输入、输出端,XTAL1,振荡器反相放大器及内部时钟发生电路之输入端。XTAL2,振荡器反相放大器之输出端。l RESET: 复位端 正脉冲有效(宽度10 mS)复位输入。振荡器工作时,RST引脚有两个机器周期以上高电平将使单片机复位。l EA/Vpp: 寻址外部ROM控制端。低有效,片内无ROM时必须接地;片内有ROM时应当接高电平。要CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端须保持低电平(接地)。需注意:若加密位LB1被编程,复位时内部会锁存EA端状态。若EA端为高电平(接Vcc端),CPU则执行内部程序存储器之指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这须是该器件是使用12V编程电压Vpp。l ALE/PROG: 地址锁存允许控制端/程序写入输入引脚。访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般,ALE仍以时钟振荡频率的1/6输出固定之脉冲信号,故它可对外输出时钟或用于定时目的。需注意:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚亦用于输入编程脉冲(PROG)。若必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX及MOVC指令方能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。l PSEN:是外部程序存储器之读选通信号,AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 51单片机的4个8位的I/O口l P0.0P0.7:8位数据口和输出低8位地址复用口(复用时是双向口;不复用时也是准双向口)。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。访问外部程序和数据存储器时,P0口亦被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在FLASH编程时,P0口亦用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需外部上拉电阻。l P1.0P1.7: 通用I/O口(准双向口),有内部上拉电阻的8位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口用。作输入用时,被外部拉低的引脚因内部电阻,将输出电流(IIL)。此外,P1.0及P1.2分别作定时器/计数器2之外部计数输入(P1.0/T2)及时器/计数器2之触发输入(P1.1/T2EX),详见表1所示。在flash编程及校验时,P1口接收低8位地址字节。 表1: 引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)l P2.0P2.7: 输出高8位地址(用于寻址时是输出口;不寻址时是准双向口),有内部上拉电阻的8 位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口。作输入用时,被外部拉低的引脚因内部电阻,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2口送出高八位地址。在这种应用中,P2口用很强的内部上拉发送1。在用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器之内容。在FLASH编程及校验时,P2口亦接收高8位地址字节及一些控制信号。 P3.0P3.7: 具有特定的第二功能(准双向口),有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可用作输入口。作输入用时,被外部拉低的引脚因内部电阻之原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)用,如表2所示。在FLASH编程及校验时,P3口亦接收些控制信号。此外,P3口亦接收些用于FLASH闪存编程及程序校验的控制信号。 表2 端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)注意:(1)在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O口!(2)P0口需外接上拉电阻, P1P3 可接也可不接(3)在用作输入时 都需要先置 ”1”3.1 电源电路向单片机供电。单片机电源:AT89S51单片机的工作电压范围:4.0V5.5V,所以通常给单片机外接5V直流电源。连接方式为:VCC(40脚):接电源+5V端,VSS(20脚):接电源地端。3.2 复位电路复位电路的作用是确定单片机工作的起始状态,完成单片机的启动过程。单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。也可以手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机“重启”。图11 单片机的复位电路3.3 时钟电路(振荡电路)单片机工作的时间基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S52单片机时钟频率范围:0 33MHz。时钟电路连接方式为:图12 单片机的振荡电路CPU都是按照一定的时钟节拍与时序进行工作:时钟周期: Tc=晶振频率fosc的倒数机器周期Tm=12个时钟周期(Tc)(12分频)指令周期 Ti:执行一条指令所需的机器周期(Tm)数例: 晶振频率是24M 时 一个机器周期需要多长时间? Tc= 1/fosc=1/24Mhz Tm=12XTc =12X1/24Mhz = 0.5us 3.4 单片机外围电路单片机外围电路设计如下图,注意 20号脚GND 40号脚被隐藏。图13 单片机外围电路凡是电路图上标有VCC和都是指接到负极,凡是标有3.7V的都是接到正极。3.4 传感器组本电脑鼠设计有5组传感器。这5组传感器分别安装于电脑鼠的左、左前、前、右前、右5个不同的方向,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左右前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止走偏而撞到迷宫墙。3.4.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译码选择器电路3.4.2 载波发生器红外传感器是由红外发射管和红外一体化接收头构成的障碍检测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。如图16所示,是产生38KHz方波的载波发生器电路。图16 38KHz载波发生器电路3.4.3 传感器电路传感器电路由红外发射LED和红外一体化接收头HS0038构成,红外LED由载波发生器产生的CLOCK信号驱动产生38KHz红外调制光。RP1为可调电阻,通过调节RP1来调节红外LED发光强度,从而调整传感器组检测迷宫墙障碍物的距离,RP1电阻越大,检测距离越近,电阻越小,检测距离越远。irT1用于控制该组传感器是否工作,连接到3-8译码选择电路。红外调制光经障碍物反射由HS0038红外一体化接收头接收,进行放大滤波、解调等处理后由irR1输出,单片机通过识别irR1位的高低电平来判断传感器前面是否有障碍物。图17所示是传感器1的电路,用于电脑鼠的环境感知,另外四组传感器也与该组传感器相同的。电脑鼠通过对这五组传感器信息的融合,实现环境感知功能。图17 传感器组电路3.5 电机驱动电路由于单片机I/O口电流输出能力有限,不能直接驱动电机转动。为了能让单片机控制电机运转,需要使用电机驱动电路,将单片机I/O口弱电流放大到足以驱动电机的电流。根据电机的型号,选用L9110电机驱动芯片。L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过750800mA的持续电流,峰值电流能力可达1.52.0A;同时它具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。L9110被广泛应用于玩具汽车电机驱动、步进电机驱动和开关功率管等电路上。器件的管脚图为:图18 L9110管脚图管脚定义如下:L9110的逻辑关系表如表1所示。表1 L9110逻辑关系表IAIBOAOBHLHL正转LHLH反转LLLL停止HHLL停止应用电路图如下:图19 L9110连接方式通过L9110驱动芯片IA、IB输入的逻辑值的组合,可以控制电机正转、反转、停转。单片机输出P2.0、P2.1、P2.2、P2.3是电动机驱动器控制输入,ML1、MR1、ML2、MR2是左右两个电机驱动电路控制引脚,为提高电流驱动能力,分别接入2K的上拉电阻。如图20所示,是用来驱动电脑鼠的左电机驱动电路,右电机驱动电路和这个也是一样的。ML为左电机,1、2脚是电机组绕,与驱动芯片L9110输出相连。3脚是电机光电码盘A相脉冲输出,连接到单片机的T1定时/计数器1外部计数引脚,通过脉冲计数,计算电机角位移和速度。图20 驱动电路如图21所示,是选用的伺服电机接口图,其引脚与驱动电路中的引脚编号一一对应。图21 左电机接口图(ML,PH2.0-6P)3.6 显示器(可选)电脑鼠可以通过液晶显示屏来显示相关信息。设计时使用SMC1602A型号的字符型液晶显示器SMC1602A可以显示2行字符,每行16个字符,显示容量为162个字符。(1)SMC1602A的引脚及功能图22 SMC1602A管脚图 D0D7:I/O数据传输线; RS:数据(1)/指令(0)寄存器选择端; R/W:读(1)/写(0)选择端; E:使能信号,下降沿触发; VSS、VDD:电源地、电源正; VL:液晶显示偏压信号; BLA、BLK:背光源正极、负极;本电脑鼠的显示连接方式如下,通过单片机P0口传送数据。图23 SMC1602A连接图可以查阅1602液晶显示器相关资料,显示字符。3.7 蜂鸣器(可选)要求电脑鼠通过循迹到达终点后,蜂鸣器发出提示音,说明找到终点,当返回到起点后,也发出提示音,最后再一次冲刺到终点后发出提示音后停止。提示音可以通过蜂鸣器来实现。需要通过三极管8550驱动放大。三极管8550是电子电路中常用到的小功率PNP型硅晶体三极管。很多放大电路中都要用到。三极管的基本作用是放大电信号。图24三极管8550管脚图图25贴片smt封装的8550三极管引脚图三极管工作在放大状态的外部条件是:发射结加正向电压,集电结加反向电压。三极管的连接方法:图26 三极管的连接方法本电脑鼠设计中有源蜂鸣器通过单片机的P2.4引脚控制(SPEAK引脚),靠三极管8550驱动放大。发射极接蜂鸣器,集电极接地,基极接单片机的speak信号输出。图27 蜂鸣器的连接3.8 电脑鼠的整体电路图图28 电脑鼠的整体电路图4.软件设计4.1 迷宫形状参照IEEE电脑鼠走迷宫竞赛的规则,迷宫为8*8,迷宫格大小为18*18cm,选取电脑鼠底盘大小为迷宫格一半8*8cm左右。图29 迷宫形状4.2 算法流程如图30所示,是电脑鼠主程序流程图。启动按键按下后,电脑鼠启动,然后根据设定的终点坐标,探索迷宫,通过到达终点子程序找到终点后,蜂鸣器发出提示音,说明找到终点。之后电脑鼠根据记忆通过返回起点子程序按原路返回起点,不再去走走不通的路。电脑鼠到达起点后,调用冲刺子程序立即掉头,根据先前探索阶段记忆下的路径冲刺到终点后停止,完成电脑鼠走迷宫。开始初始化按下启动?设定终点坐标到达终点蜂鸣器提示返回起点冲刺结束YN图30 主程序流程图4.1.1到达终点子程序如图31所示,是电脑鼠到达终点子程序流程图。电脑鼠到达终点子程序就是根据设定的终点坐标,采用一定的规则不断的去搜索迷宫,直到找到一条通往终点的路为止。如下流程图所示,电脑鼠每走一格就将当前坐标与终点坐标进行比对,如果比对相同说明找到终点子程序退出返回,不相同则继续探索迷宫,判断当前坐标格是否走过,对于没有走过的迷宫格采用向心法则选路。对于走过的迷宫格,选一个未走过的方向进行探索或返回上一个路口探索。如果所有路都走不通,使电脑鼠返回到了起点,则电脑鼠蜂鸣器提示目的坐标不可到达。开始当前坐标是终点?返回当前坐标走过?向心法则选路返回上一个路口有未走过方向?走未走过的方向当前坐标是起点?报告目标不可达返回NYNYNYNY图31 到达终点子程序流程图4.1.2返回起点子程序如图32所示,是电脑鼠到达终点后,返回起点的子程序流程图。电脑鼠根据当前迷宫格所在的坐标查找探索迷宫时记忆下的当前坐标第一次的进入方向,用电脑鼠的当前方向和进入方向进行方向运算,得到转向进入方向的动作,电脑鼠执行这个动作就可以转向第一次进入该坐标格的方向,再走一格后就返回了一步,依据电脑鼠移动方向每走一格更新一次坐标,一步一步的返回,直到回到坐标原点,子程序返回退出。开始查当前坐标进入方向当前坐标是起点?转向进入方向走一格返回YN更新坐标图32 返回起点子程序流程图4.1.3冲刺子程序如图33所示,是电脑鼠回到起点后,从起点到终点的冲刺子程序流程图。其流程与返回到起点子程序流程差不多,只不过在冲刺时是根据当前坐标最后一次出去方向来进行转向的。首先电脑鼠根据当前迷宫格坐标在迷宫搜索阶段记忆下的最后一次出去方向来确定通往终点的路怎么走,然后向前走一格并更新坐标,反复的执行查询方向、转向、走一格、更新坐标、直到电脑鼠冲刺到终点为止。对于最后一次出去方向,如果电脑鼠探索路口某一个方向走不通,返回走另外一条路时,则会将最后一次出去方向更新为另外这条路的方向。因此只要电脑鼠找到终点,则最后一次出去方向就是通往终点的方向。这样电脑鼠按最后一次出去方向走,在冲刺的时候就不会再去走那些走不通的死胡同了,自己走通往终点的路,到达终点,完成冲刺。开始查当前坐标最后一次出去方向当前坐标是终点?转向出去方向走一格返回YN更新坐标图33 冲刺子程序流程图4.3怎样判断电脑鼠的位置迷宫隔墙构成的通道宽度为18厘米,通常所制作的电脑鼠的宽度为8厘米左右。在这种情况下,如果电脑鼠行进在通道中央,其边缘与迷宫隔墙间的距离在34厘米左右;如果偏离了,那么一边的距离会增加,另一边的距离会减少。通过安装在电脑鼠上的传感器能够快速准确地测量这些距离信息,以便不断地调整电脑鼠的行进方向。使用红外LED管测距时,发射管和接收管平行安装在电脑鼠的前方或左右方。当发送管发射的红外光线遇到迷宫隔墙后,红外光线发生反射并被接收管所接收。接收管收到的信号转换为电压,它和电脑鼠与迷宫隔墙之间的距离有确切的对应关系。检测该输出电压的大小就可以测定电脑鼠与迷宫隔墙之间的距离。4.4怎样判断电脑鼠偏离了直线前进方向首先设定电脑鼠离左右墙的安全距离,由于各电脑鼠在硬件方面有一定的差异,所得到的检测数据也有一定的差异,那么安全距离的设定大家可以根据自己的电脑鼠进行相应的调整。当然左右的安全距离也可以设定为不一样的值,只要能保证电脑鼠前进的时候能走直线,而不撞到墙就可以了。如图所示:读出左前方LED的数据之后用来跟左边安全距离比较,当偏向左边的时就要修正电脑鼠的位置了,我们可以通过减慢右边轮子的速度来调整电脑鼠的位置。接着就读出右前方LED的数据之后用来跟右边安全距离比较,当偏向右边的时就要修正电脑鼠的位置了,我们可以通过减慢左边轮子的速度来调整电脑鼠的位置。4.5怎样判断电脑鼠前面有无障碍物和怎样判断左右转当电脑鼠前面障碍物已经在安全距离之内时,电脑鼠必须要减速,并寻找左右是否有出口,判断的方法:当电脑鼠离墙的距离小于安全距离(设为5CM)时,即L1L4.判断的依据我想大家也很明白了吧。我们只要设定一个转弯距离值,超过这个距离值,我们就可以判断有出口。前面的安全距离可以根据你自己设定的电脑鼠的速度来决定,速度越快那么所设定的安全距离越远,反之越近。判断左右转弯的距离当然要比你所设定的左右安全距离要大。这个大家可以通过实验来慢慢体会。4.6怎样来控制速度4.7 转弯原则转弯方法有很多种,下面笔者将为大家讲述转弯的几种常用方法。图示1:图示1解说:电脑鼠到转弯的时候,停下来作90度原地转-前进。向左转的话左边轮子反转,右边轮子正转。向右转的话右边轮子反转,左边轮子正转。左右轮子速度一样。流程图为:怎样判断是否已经转过90度:电脑鼠转90度,就相当于车轮转半圈。车轮编码器平均分为26等份,车轮转一圈就是13个正弦周期,转半圈就是6.5个正弦周期。通过车轮左右两边的红外检测管就可以获得车轮的转动情况。检测到左右轮已经有6.5个正弦周期了的话就说明已经转弯成功了。缺点:转弯速度太慢。图示2:图示2解说:一边转弯一边前进。向右转的话就把右边轮子的速度调慢,左边的轮子速度快。向左转的话就把左边轮子的速度调慢,右边的轮子速度快。流程图为(以左转为例):怎样判断是否已经转弯成功: 左转的话可以通过对左前方墙壁到电脑鼠的距离来判断是否已转弯成功。右边的话可以通过对右前方墙壁到电脑鼠的距离来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国石化2025届秋季校园招聘笔真题及答案
- 幼儿园保安考试试题及答案
- 压力性损伤管理与预防考核试题及答案
- 双重预防体系建设应知应会试题库(含答案)
- 吉林长春市宽城区2025-2026学年八年级下学期期末道德与法治试卷(文字版含答案)
- 环境监测试题库(附答案)
- 各种注射技术操作并发症预防及处理考核试题及答案
- 常用护理技术操作并发症的预防及处理考核试题及答案
- 保安考试试题及答案
- 2026年预防接种狂犬病暴露处置上岗资质考试试题及答案
- 全球及中国医药喷雾泵市场竞争风险及供需前景预测研究报告
- 2026年四川宜宾三江新区社区工作者(社区综合岗)招聘考试试卷-含答案解析
- 广东省湛江市2026年八年级下学期语文期末试卷附答案
- 2026共享经济理念对管理咨询行业组织形式影响深度分析报告
- 中心静脉置管维护操作规范及评分标准
- 2026年普通党员学习教育对照查摆清单(立党为公、为民造福、科学决策、真抓实干)
- 2026年学校食堂餐饮服务合同
- 2026年新版药品GCP考试题库附参考答案(完整版)
- 2026年广州中考试卷语文及答案
- 污水生化系统调试方案
- 江西师范大学《国际金融学(姜波克版)》2025-2026学年期末试卷
评论
0/150
提交评论