IEEE电脑鼠迷宫路径选择及死区决策

合集下载

迷宫机器人简介

迷宫机器人简介
初始化,接着待机300ms,然后进入while循环检测按键4,如果 按键没有按下,则等待100ms,如果按键4被按下,则再以速度50向前运行4格,但 是遇到岔路就会停止,向右转,继续前进3格,遇岔路停止。
六、迷宫机器人使用说明
1、迷宫的方向值定义
2)相对方向和绝对方向的转换:
图6-1
图6-2
六、迷宫机器人使用说明
2)一侧有墙壁时的姿态纠正策略 当仅一侧存在挡板时,且当电脑鼠处在如图6-3(a)、图6-3(b)所示位置时需要 对电脑鼠姿态进行纠正。它们分别表示电脑鼠的位置偏离了迷宫中心(向左) 和偏离了迷宫中心(向右)。图6-3(a)中,右边的传感器信号弱,但依然能检 测到墙壁。电脑鼠应当向右转以回到理想的方位和姿态。同样,图6-3(b)中左 边的传感器信号弱,但依然能检测到墙壁。电脑鼠应当向左转以回到理想的方 位和姿态。
三、迷宫机器人场地简介
场地整体由木板组装面成,可以通过更改部分隔墙位置来实现场地变更 底板尺寸为1.5*1.5米,由不同长度的隔墙板与底板共同组合而成,每个通 道为168mm,隔墙高50mm,宽12mm 底板为黑色防滑表面,隔墙表面贴白色防火板,顶上贴红色边条
168mm
四、迷宫机器人规则简介
比赛时机器人可以将场地的任一个角作为起点,终点设置在场地正中。 比赛时选手通过程序控制机器人从起点出现,按顺序将场地上的所有通道 全部跑完再回到起点位置,并自动分析刚才所走路线中到达终点的最短路 线,然后沿着最短路线前进到达终区并再次返回起点,以到达目的地所用 的时间最少者为胜
二、迷宫机器人的结构与教学
电脑鼠可看作是一个集多项工程学科知识于一体的小型系统,与多各学科 关系精密 1、机械工程:大多数使用步进电机的电脑鼠可以直接将车轮安装在电机 轴上,而使用直流电机驱动的电脑鼠往往许多添加减速和传动装置,如何 既使轮子安装稳定不颤动,保证高传动效率,又使车体轻巧美观是机械设 计时需要解决的问题 2、 电子工程:电脑鼠是一个嵌入式系统,需要广泛的涉及信号处理、通 信、微处理器应用和电机控制等 3、自动控制:控制电脑鼠在迷宫中快速而准确的行走属于自动控制技术 范畴。测距传感器获取距离信息并将其反馈给微处理器,微处理器对距离 值分析处理获得墙壁信息并根据墙壁信息控制电机动作以带动轮子产生相 应的动作,这整个构成一个大自动控制系统。 4、人工智能:电脑鼠走迷宫竞赛的整个过程可大体分为两个部分:一、 搜索迷宫,从起点出发,找到终点并找出一条最短路径;二、冲刺,从起 点开始,在最短时间内到达终点。搜索迷宫过程是电脑鼠学习过程。冲刺 过程前需要在所有走过的通路中依据自己的原则选择一条路径作为最短路 径,这是一个决策过程 5、程序设计:电脑鼠是一个精密控制体,足够的控制精度才能保证在高 速行走的时候不撞墙和迷失自我。不但要求能够准确测量,还必须有足够 快的响应速度

一种电脑鼠走迷宫算法

一种电脑鼠走迷宫算法

一种电脑鼠走迷宫算法作者:周杰来源:《电脑知识与技术》2018年第03期摘要:该文通过对电脑鼠走迷宫算法的研究,提出了一种电脑鼠走迷宫算法,该算法引用了斜线K和Z用以更新期望坐标,并将迷宫分割为多个部分,以斜线K上的点为起点坐标,下一条斜线K上的点为期望终点坐标,找到起点坐标和终点坐标的最优解,以局部最优,引出全局最优找到最佳路径,并与传统走迷宫算法进行比较,提高了迷宫搜索效率。

关键词:迷宫;斜线;局部最优;最佳路径中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0053-031 概述电脑鼠是一种机电一体化装置,是由单片机、传感器、机电运动部件组成的一种能在迷宫行走的小型机器人可以通过预先设定的算法,探索迷宫,可以找到一条从预设的起点到终点的最佳路径,运行环境是由一个16X16正方形单元格所组成的迷宫,其中单元格的大小为18cmX18cm,文献[1][2]给出了电脑鼠走迷宫的相关规则,每一个单元格有相应的挡板组成,电脑鼠的目的是在最短的时间内找到出口,在整个电脑鼠中最重要的是硬件的可靠性和算法的优劣,在当今单片机迅速发展的时代,硬件稳定性上已经趋于稳定,本文主要研究和设计搜索迷宫算法,并提出了一种电脑鼠搜索迷宫的算法。

2 迷宫环境建模电脑鼠不具有思维能力,它只能按照我们设定的算法运行,因此需要模拟现场运行环境[6][7].构建一个16X16的迷宫,迷宫的水平方向为Y轴,垂直方向为X轴,第一个坐标为(1,1),那么依次下去最上角的坐标为(16,16)。

迷宫构建图,如图1 所示,迷宫内的挡板信息未知。

假设起点为(1,1)终点为(16,16),现在规定,X方向为地理北,Y方向为地理南,如图2所示。

对于当前坐标,和下一步目标,两个坐标的差值比如(X1,Y1)-(X2,Y2)。

(1,0)表示电脑鼠向北前进一步。

其中差值(0,1)表示向东前进一步,(-1,0)表示向南前进一步,(0,-1)表示向西前进一步。

电脑鼠设计与制作——文档资料

电脑鼠设计与制作——文档资料
P1.0—P1.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:
图7传动部件实物图
2.2电子部分
电脑鼠的硬件电路结构图如下。
图8硬件电路结构框图
(1)微控制器
微控制器是电脑鼠的核心,可以选择单片机,若RAM需求量大或者算法复杂或者性能要求高时,需要使用ARM等高性能的微处理器。
(2)传感器
传感器的作用是用来感知环境,探测电脑鼠的左、前、右是否有路可走。本设计中采用的是红外线方式,发射和接收分别受微控制器控制。由硬件电路部分结构框图可知,在电脑鼠的前、左、右、左前、右前方共有5组,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左、右、前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行பைடு நூலகம்态矫正,防止电脑鼠走偏而撞到迷宫墙。
例子:一个电脑鼠在迷宫中的搜索时间为4分钟,没有碰触过,运行时间使用了20秒,这次运行的排障时间就是:
20+(240×1/30)-10=18秒
1.
电脑鼠是指由车身、轮子、和相关软件构成。车体是电脑鼠最基本的架构,它的设计在电脑鼠的整体规划中战友想到重要的地位,应当遵守整体结构坚固耐用、材质轻、重心低的原则。在设计中,既要考虑到符合各零件的规格,又要考虑到配合迷宫的规格。

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

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

目录摘要 (2)1、课程设计的H的及要求 (3)2、题目分析 (3)1.1功能分析 (3)1.2性能需求分析 (3)1.3算法分析 (3)3、系统设计 (4)3」系统整体设计 (4)3.2锁件设计 (6)3.2.1硬件结构设计 (6)3. 2.2传感器组设计 (6)3. 2.3电机驱动电路设计 (7)3.3软件设计 (11)3.3.1电脑鼠正常行走程序设讣 (11)3. 3.2电脑鼠记路径程序设计 (13)3. 3.3电脑鼠找终点程序设计 (14)摘要“电脑鼠”是使用嵌入式或单片机微控制器、传感器和机电运动部件构成的一种微型机器人, 可以在“迷宫”中门动记忆和选择路径,快速地达到所设定的H的地。

电脑鼠走迷宫竞赛是一项具有一定难度、富有挑战性和趣味性的比赛。

本研究性课程重点对电脑鼠硬件、迷宫算法进行分析研究。

木研究性课程通过对电脑鼠白动穿越迷宫过程的研究,综合尿入式专业的电路设计、传感器控制、单片机程序开发和算法研究等名学科知识,熟悉学握嵌入式应用开发的全过程。

关键词:嵌入式或单片机微控制器,电脑鼠,押能算法1、课程设计的冃的及要求本项目婆实现的是用电脑鼠找出迷宫中通往终点的瑕短路径并以最快速度到达迷宫的终点。

电脑鼠从迷宫起点位置前进,由程用判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制年轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在束新开始时便町以最快速度从最短路径到达终点。

设计的电脑鼠应该具有三种玻基木的能力:・拥有稳定、准确、快速的行走能力・能争取判断环境的能力(如有墙、有路)・记忆路径的能力总之,电脑鼠的设计目标是:在最短的时间内找到-条通往总店的最短路径,并以戢快速度从起点到达终点。

如何衡量:迷宫时间(搜索时间〉:电脑鼠激活到每次运行开始的时间;注:搜索结束,从终点返回到起点的时间不算在迷宫时间内;运行时间:电脑鼠从起点走到终点的时间;如果电脑鼠在比赛时需耍手动辅助,这个动作就成为“碰触”。

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

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

目录摘要 (2)1、课程设计的目的及要求 (3)2、题目分析 (3)1.1 功能分析 (3)1.2 性能需求分析 (3)1.3 算法分析 (3)3、系统设计 (4)3.1系统整体设计 (4)3.2硬件设计 (5)3.2.1 硬件结构设计 (5)3.2.2 传感器组设计 (5)3.2.3 电机驱动电路设计 (6)3.3软件设计 (11)3.3.1 电脑鼠正常行走程序设计 (11)3.3.2 电脑鼠记路径程序设计 (12)3.3.3 电脑鼠找终点程序设计 (13)摘要“电脑鼠”是使用嵌入式或单片机微控制器、传感器和机电运动部件构成的一种微型机器人,可以在“迷宫”中自动记忆和选择路径,快速地达到所设定的目的地。

电脑鼠走迷宫竞赛是一项具有一定难度、富有挑战性和趣味性的比赛。

本研究性课程重点对电脑鼠硬件、迷宫算法进行分析研究。

本研究性课程通过对电脑鼠自动穿越迷宫过程的研究,综合嵌入式专业的电路设计、传感器控制、单片机程序开发和算法研究等多学科知识,熟悉掌握嵌入式应用开发的全过程。

关键词:嵌入式或单片机微控制器,电脑鼠,智能算法1、课程设计的目的及要求本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。

电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。

设计的电脑鼠应该具有三种最基本的能力:•拥有稳定、准确、快速的行走能力•能争取判断环境的能力(如有墙、有路)•记忆路径的能力总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。

如何衡量:迷宫时间(搜索时间):电脑鼠激活到每次运行开始的时间;注:搜索结束,从终点返回到起点的时间不算在迷宫时间内;运行时间:电脑鼠从起点走到终点的时间;如果电脑鼠在比赛时需要手动辅助,这个动作就成为“碰触”。

走迷宫电脑鼠的算法分析与研究

走迷宫电脑鼠的算法分析与研究

走迷宫电脑鼠的算法分析与研究收稿日期:2010-03-30;修订日期:2010-11-08作者简介:夏炎(1984-),男,南京人,硕士研究生,研究方向:基于ARM 的嵌入式系统的设计与开发。

夏炎(南京工业大学电子与信息工程学院,南京210013)摘要:电脑鼠的灵活性和智能程度不但取决于硬件的结构和性能,还取决于软件设计的好坏,越是智能的电脑鼠,其软件设计就越不简单。

对走迷宫电脑鼠的算法做了总结和比较,并对各算法的优缺点进行了阐述。

关键词:电脑鼠;迷宫;算法中图分类号:TP18文献标识码:A 文章编号:1008-8725(2011)01-0194-03Analyzing and Researching on Maze-runningMicromouse AlgorithmXIA Yan(School of Electronics and Information Engineering,Nanjing University of Technology,Nanjing 210013,China )Abstract:The flexibility and intelligence degree of Micromouse depended on not only structure and properties of hardware,but also whether software design was good or bad.The more intelligent the Micromouse was,the more difficult software design was.This paper concluded and compared the algorithms of maze -running micromouse,and discribed advantages and disadvantages of different algorithms.Key words:Micromouse;maze;algorithm0引言人类在科技的发展史上,一直在尝试着想要创造出一个具有肢体、感官、脑力等综合一体的智能机器人,而电脑鼠就是一个能够用来诠释肢体、感官及脑力综合工作的基本实例,这也是当初电脑鼠被发明的理由,希望能够借助电脑鼠的创作来进而研究与发明更加复杂的机械。

走迷宫电脑鼠软件设计

南京理工大学毕业设计说明书(论文)作者: 学号:学院(系):自动化学院专业: 电气工程及其自动化题目: 走迷宫电脑鼠软件设计目次1 引言 (1)1.1 电脑鼠的简介 (1)1.2论文主要完成的工作 (1)1.3 器件选择 (2)1.4 相关开发工具 (5)2 走迷宫挡板检测 (5)2.1 红外接收头的工作原理 (5)2.2 原理分析 (6)2.3 用红外进行挡板检测 (7)3 步进电机的驱动控制 (8)3.1步进电机的驱动 (11)3.2车速检测模块 (11)4 电脑鼠姿势修正 (12)4.1姿势修正 (12)4.2挡板检测 (14)4.3 电脑鼠转弯 (15)5 电脑鼠走迷宫的算法 (17)5.1电脑鼠软件主要模块 (17)5.2迷宫地图相对方向与绝对方向的建立 (17)5.3墙壁资料存储 (21)5.4电脑鼠搜索策略 (23)5.5 迷宫搜索程序 (26)结论 (31)致谢 (32)参考文献 (33)1 引言1.1 电脑鼠的简介人类在科技的发展上,一直在尝试着想要创造出一个具有肢体,感觉,脑力,综合一体的机械,而智能老鼠既是一个能够用来诠释肢体,感官及脑力综合工作的智能机械。

所谓的智能老鼠我们用电脑鼠(MicroMouse)来代替,它是使用微控器,光电传感器和机动运动部件构成一种智能行走装置的俗称,它可以在“迷宫”中自动记忆和选择路径,寻找出口,最终达到所设的目的地。

电脑鼠搜索路径应该是没有人工干预的情况下自主完成的,也就是说,需要运用搜索算法使电脑鼠自主行走。

搜索算法的主要目的是,根据电脑鼠当前的位置确定下一步,以迅速达到迷宫的中心并返回,同时利用搜索迷宫时得到的隔墙信息找出从起点到终点并返回的最优路径。

电脑鼠的制作技术的基本要求一定要稳定,在符合规则的不同迷宫中都能运行自如。

快速,高效的探索迷宫则一直是个重点更是个难点。

快速和高效两个要素又彼此联系,相互影响。

实现快速探索可以通过选用合适的电机解决,但是快速不一定实现高效。

人工智能电脑鼠搜迷宫实验

北京科技大学实验报告学院:自动化专业:智能科学与技术班级:智能1501姓名:卢静怡学号:41523404 实验日期:2017年11 月8 日实验名称:人工智能电脑鼠搜迷宫实验实验目的:掌握电脑鼠的基本操作及智能搜索算法操作。

实验仪器:KEIL MDK、电脑鼠、J-Link、VS实验原理:所谓“电脑鼠”,英文名叫做Micromouse,是一种具有人工智能的轮式机器人,是由嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称。

当电脑鼠放入起点,按下启动键之后,他就必须自行决定搜索法则并且在迷宫中前进,转弯,记忆迷宫墙壁资料,计算最短路径,搜索终点等功能。

电脑鼠更结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。

本实验中,通过红外传感器检测电脑鼠所处位置状态,通过智能算法保存地图并实现地图的搜索,通过pid等控制算法控制电机,达到电脑鼠搜索迷宫并计算最短路径等功能。

实验内容与步骤:内容1)KEIL MDK的安装2)电脑鼠硬件的检查及调整3)智能搜索算法的编写4)算法的调试与优化5)实验结果步骤(一)KEIL MDK的安装按照实验指导书上的步骤安装,一步一步安装成功KEIL MDK uVision5 (二)检查和调整电脑鼠的硬件1.电机检查:我们原始的电脑鼠下载好程序之后,开机即可试探性运动。

故判断,电机无故障。

2.传感器检查:我们原始的电脑鼠在初跑时总是会对墙壁不感应,如果用手挡住传感器周围的光线后放开,那么电脑鼠会产生一个相应动作。

分析是原代码中接受传感器信号的参数不合适的原因。

(三)智能搜索算法的编写我们组结合了很多同学的经验,最终找到了影响电脑鼠运动的核心参数。

并且修正了一个反应弧长的设定,使得后来电脑鼠试跑非常成功。

1.查资料——常见的算法形式选择曼哈顿距离作为预测函数h(n),整体的框架代码如下:2.算法设计在本次实验中,使用的是机械鼠优先向左移动的,即深度优先算法。

“XX大学第十三届IEEE标准电脑鼠走迷宫竞赛”章程【模板】

“XX大学第十三届IEEE标准电脑鼠走迷宫竞赛”章程一、竞赛时间2020年5月二、参赛对象以机械工程学院、仪器科学与工程学院、生物科学与医学工程学院、自动化学院、信息科学与工程学院、电子科学与工程学院、集成电路(IC)学院、计算机科学与工程学院、吴健雄学院、物理系学生二年级以上学生为主,欢迎其他院系的学生参加。

三、竞赛的内容竞赛的内容:采用组委会确定的由嵌入式处理器单片机控制的电脑鼠构件,选用的微控制器是Luminary 公司生产的Cortex-M3 内核的ARM处理器,除电机与处理器不可改变外,其他均可改进或重新选择、设计、加工。

鼓励自行设计新型电脑鼠。

凡采用新型电脑鼠参赛者可获得额外加分。

本竞赛采用国际电工和电子工程学会(IEEE)制定的电脑鼠走迷宫竞赛规则,此规则也是制作与改进电脑鼠实施方案的设计依据,使用完全符合IEEE 国际标准的电脑鼠比赛专用迷宫,各参赛队在赛前应提交阐述其设计思想、系统结构和软件框图的设计计划书。

赛前培训每学年由机电动力实验平台面向全校学生开设的通识课程“机电一体化与机器人技术”和“机电基础实践”进行入门培训,课程结束后再进行竞赛培训。

四、竞赛的组织管理本竞赛项目由教务处主办,机电动力实验平台承办,设立竞赛组委会(组委会名单见附件)。

五、竞赛报名报名时间:2019年11月26日—2020年5月10日报名方式:参赛人员以个人身份在网上直接报名(报名请登录竞赛报名网址:教务处—办事平台—学生学科竞赛管理系统)。

报名后经竞赛组委会审核,获得参赛资格的学生可自主结合组队报名参加,建议不同院系学生跨院系混合组队。

每参赛队不得超过3人,参赛队队数不限。

赛前有相关培训课程,详见http://10.6.0.90。

竞赛不收报名费,使用组委会提供的构件和零部件不收费用;若需自行设计、加工、购买,则费用由各参赛院系或参赛队自理。

竞赛时间、地点及相关事项另行通知。

六、竞赛方式每参赛队在指定时间内完成硬件的设计、安装调试、软件编写和系统调试,并撰写相应的设计计划书阐述其设计思想、系统结构和软件框图。

机器鼠走迷宫的优化路径算法及实践


我们总是希望机器 鼠在经过几次试探后能够 找出
最 短的路径 。
粗虚线示意将死胡同堵死。 22 完成“ . 左顺 墙” 右顺墙 ” 和“ 机 器 人可 以通过 “ 顺墙 ” “ 左 和 右顺墙 ” 的办法 找
到两 条路 径 ,显然 这两 条路 径长度 是不 同的 。图 l
2 算法 设计 . 无论是树 型迷 宫还 是 网孔 型迷 宫 ,要找到 一条
维普资讯
芜湖职业技术学院学报 20 0 7年第 9卷第 2期
机 器 鼠走 迷 宫 的优 化路 径 算 法 及 实践
邓延 安
( 芜湖职业技术学院电气系,安徽 芜湖,2 10来自) 401 0 . .
迷宫问题 是计算机数据结构和计 算方法经常
涉及 的 问题 , 目前 最 常 见 的方 法有 广 探 法 和 深探
宫,后 一类称 为 网孔 形迷 宫 ,显 然 网孔 型迷 宫要 复 杂得 多 。图 l 就是 一个树 形迷 宫 。
1 . 宫 问题 2迷
图 1树 型迷 宫示例
本文采用坐标描述迷宫的位置,如果向右 ( 或
左 )越过虚 线 ,则 X加 l( 或减 1, 向上 ( ) 或下 )
越过虚线 , y l 或减 1。 则 加 ( ) 为简化问题的分析, 假设机器人只能走直线。
息 (bt 6i )和方 向信息 (bt。这 里 ,规 定方 向位 2i )
为:‘0 :上 ;‘ l :右;‘ l:下 ;‘ 0 :左 。 ‘” 0 ‘” 0 ‘” l ‘” l
3 . 5程序流程 图 图 2是“ ( 左 或右)顺墙算法流程图,图 3 是
路 径优 化流程 图。 4 .结束 语 对 于不 太 复杂 的树型 迷 宫,如 一个 1x 6迷 6 1 宫 ,PC1F 7 I 6 8 7单片机 可 以胜 任 。但对 于复杂 的迷 宫,由于存储空间要求较大 ,需外接 EP O 2R M。如
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IEEE电脑鼠路径选择及死区决策一、引言(一)IEEE电脑鼠走迷宫竞赛背景嵌入式系统融合了微电子、计算机软\硬件、通信和电子工程等多种技术,广泛应用于航空、航天、仪器仪表、工业控制和3C(Computer、Communication、Consumer)等领域,是科技集成创新的主要手段。

为了培养科技创性意识和动手能力,全国各地在近几年纷纷举办“电脑鼠走迷宫“邀请赛。

电脑鼠英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置(微型机器人)。

电脑鼠要在指定的迷宫中比赛,在迷宫中探索以找出通往终点的路径,并随时掌握自身的位置信息,准确获取墙壁信息并做记录,最终依靠记忆找出走出迷宫的最佳路径,以最短的时间解开迷宫,赢得比赛。

国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛,自举办以来参加国踊跃,为此许多大学还开设了“电脑鼠原理和制作”选修课程。

2007 年和2008 年,上海市计算机学会率先在国内主办了两次IEEE 标准电脑鼠走迷宫邀请赛(长三角地区),有三十多所院校参加。

2009 年广州致远电子有限公司赞助了全国“IEEE 标准电脑鼠走迷宫”邀请赛,共邀请全国9 个赛区的52所高校参赛,反响强烈。

图1 所示为电脑鼠图2 所示为比赛迷宫本文主要以MicroMouse615为平台,介绍电脑鼠参赛的实现,对有些方面的基本算法提出改进,并在此基础上加上了一些自己的算法思想,比如说:用数学模型的方法提出了用改进后的数字PID算法对行进中的电脑鼠进行状态调整,进入死区的电脑鼠的人工智能决策,参赛时迷宫搜索的易于实现的算法以及植入操作系统的思想。

(二)竞赛平台简介MicroMouse615平台包含了微控制器、电机、红外线传感器、控制平台。

其中最重要的微控制器是LM3S615微控制器,如下图3为LM3S615的系统结构图。

其中内核用的是ARM Cortex-M3,外围还有存储器、系统时钟、定时器、输入输出端口、数模转换器等等。

ARM Cortex-M3 处理器为高性能、低成本的平台提供了一个能够满足小存储要求解决方案、简化管脚数、以及低功耗三方面要求的内核,与此同时,它还提供了出色的计算性能和优越的系统中断响应能力。

其特性如下:1、紧凑的内核2、Thumb-2 指令集,在与8 位和16 位器件相关的存储容量中,特别是在微控制器级应用的几千字节存储量中,提供了ARM 内核所期望的高性能。

3、优越的中断处理能力,通过执行寄存器操作来实现,这些寄存器操作在处理硬件中断时使用。

4、存储器保护单元(MPU),为复杂的应用提供特权操作模式5、功能齐全的调试解决方案,包括:串行线JTAG 调试端口(SWJ-DP);Flash 修补和断点(FPB)单元,用于实现断点操作;数据观察点和触发单元(DWT),用于执行观察点、触发源和系统性能分析等操作;仪表跟踪宏单元(ITM),用于支持Printf 型调试。

图3 MicroMouse615 原理图图4 LM3S615 CPU结构图关于各个部件的接线图如图3,关于系统编程尤为重要;编程时主要注意引脚的链接和存储器的地址映射等。

在具体嵌入式编程方面,可以参照LM3S651微控制器数据手册,其中提供了存储器、串并口通信时序等全部信息。

电机使用的是BA6845FS,它是步进电机,最大输出电流为1.0A。

逻辑输入允许三种输出模式:前进、反转和节电模式。

集成电路具有低输出饱和电压,能以低电压驱动电机。

红外传感器使用的型号是IRM-8601S,该设备是一种小型红外遥控器系统接收器,开发和设计利用最新IC技术. PIN二极管前置放大器是组装和引线框架,环氧包装被设计成一个IR过滤器.解调输出信号可直接由微处理器解码。

控制台是使用ZLG7289B, ZLG7289B是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片,可直接驱动8位共阴式数码管(或64 只独立LED),同时还可以扫描管理多达64 只按键。

ZLG7289B 内部含有显示译码器,可直接接受BCD 码或16 进制码,并同时具有2 种译码方式。

此外,还具有多种控制指令,如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。

ZLG7289B 采用SPI 串行总线与微控制器接口,仅占用少数几根I/O 口线。

利用片选信号,多片ZLG7289B 还可以并接在一起使用,能够方便地实现多于8 位的显示或多于64 只按键的应用。

ZLG7289B 可广泛地应用于仪器仪表,工业控制器,条形显示器,控制面板等领域。

二、实时状态采集及更新方法要想使电脑鼠具备智能选路的本领,必须使其具备记忆迷宫信息的能力,并且电脑鼠还需记忆当前所在迷宫格和前进方向的信息,这些信息将随着电脑鼠在迷宫格中行走而不断被刷新。

用CurDir 存储当前方向,用CurPosition[1][1]存储当前坐标,用MazeShape[16][16]存储每个迷宫格的形状,用CurWall存储当前传感器采集到迷宫格墙壁情况。

信息采集算法的核心是确定何时刷新信息以及输入参数。

为此用三张表格来表示这三个刷新逻辑。

当迷宫是以类似于如图5建立座标时:图5以下是数据的更新方法:表1 CurDir更新方法原始状态N S W E左转弯W E S N右转弯 E W N S后转弯S N E W其中转弯项代表:准备和刚转完时的小车位置,且用于非连续转弯。

表2 CurPosition更新方法原始状态N (X,Y) S (X,Y) W (X,Y) E (X,Y)直走(X,Y+1) (X,Y-1) (X-1,Y) (X+1,Y)左转弯(X,Y+1) (X,Y-1) (X-1,Y) (X+1,Y)右转弯(X,Y+1) (X,Y-1) (X-1,Y) (X+1,Y)后转弯(X,Y+1) (X,Y-1) (X-1,Y) (X+1,Y)其中转弯项代表:准备和刚转完时的小车位置,且用于非连续转弯。

表3 MazeShape[16][16]更新方法原始状态参数N (X,Y) S (X,Y) W (X,Y)CurWall CurWall CurWallE (X,Y)CurWallMazeShape更新CurWall直接 CurWall CurWall赋给顺时针转180°顺时针转90°MazeShape 赋给MazeShape 赋给MazeShape[x][y] [x][y] [x][y]CurWall逆时针转90°赋给MazeShape[x][y]需要注意的是由上述三个刷新逻辑表可知,WallShape 需要CurPosition 作为参数,而CurPosition 需要CurDir作为输入参数来更新自身。

因此当需要同时刷新三个变量的两个或三个时,应先刷新CurDir 再刷新CurPosition 最后刷新WallShape。

收集完迷宫状态之后,就是怎么进行电脑鼠的行进过程,我们参考迷宫的整体状态,可以设计程序如下:(其中等高法在下面介绍)void objectGoTo (int8 x, int8 y){uint8 ucStep = 1;int8 cNBlock = 0, cDirTemp;int8 cX,cY;cX = GmcMouse.cX;cY = GmcMouse.cY;mapStepEdit(x,y); /* 制作等高图*//*根据等高值向目标点运动,直到达到目的地*/while ((cX != x) || (cY != y)) {ucStep = GucMapStep[cX][cY];/*任选一个等高值比当前自身等高值小的方向前进*/if ((GucMapBlock[cX][cY] & 0x01) && /* 上方有路*/(GucMapStep[cX][cY + 1] < ucStep)){ /* 上方等高值较小*/cDirTemp = UP; /* 记录方向*/if (cDirTemp == GucMouseDir) { /*优先选择不需要转弯的方向*/ cNBlock++; /* 前进一个方格*/cY++;continue; /* 跳过本次循环*/}}if ((GucMapBlock[cX][cY]&0x02) &&(GucMapStep[cX+1][cY] < ucStep)){cDirTemp = RIGHT;if (cDirTemp == GucMouseDir) {cNBlock++;cX++;continue;}}if ((GucMapBlock[cX][cY] & 0x04) &&(GucMapStep[cX][cY - 1] < ucStep)) {cDirTemp = DOWN;if (cDirTemp == GucMouseDir) {cNBlock++;cY--;continue;}}if ((GucMapBlock[cX][cY] & 0x08) &&(GucMapStep[cX - 1][cY] < ucStep)) {cDirTemp = LEFT;if (cDirTemp == GucMouseDir) {cNBlock++;cX--;continue;}}cDirTemp = (cDirTemp + 4 - GucMouseDir)%4;/* 计算方向偏移量*/ if (cNBlock) {mouseGoahead(cNBlock); /* 前进cNBlock步*/}cNBlock = 0; /* 任务清零*//*控制电脑鼠转弯*/switch (cDirTemp) {case 1:mouseTurnright();break;case 2:mouseTurnback();break;case 3:mouseTurnleft();break;default:break;}}if (cNBlock) { /*判断任务是否完成,否则继续前进*/mouseGoahead(cNBlock); }}三、迷宫算法的研究(一)传统算法我们把电脑鼠的迷宫算法分为两个层次,迷宫搜索算法和迷宫最优路径算法。

迷宫搜索算法的目的是在没有预知迷宫路径的情况下从起点迷宫格搜索到终点迷宫格,再从终点迷宫格搜索到起点迷宫格,好的搜索算法要求以更短的时间搜索到更多的迷宫格,所以要尽量避免重复搜索已经搜索过的地方。

迷宫最短路径算法要求根据已知的迷宫信息找出一条从入口到出口的最优路径,最优路径不仅要短而且要求弯道尽量少。

在很多地方容易得知常见的迷宫搜索算法有:1.右手法则: 以右边为优先的前进方向,然后是直线方向、左边方向。

相关文档
最新文档