电脑鼠的原理分析及算法研究
关于电脑鼠的论文(有框图)

电脑鼠学习心得和遇到的问题及解决方法彭旺 16012126学习心得:在大一的时候就经常看见学长们整天在宿舍弄一个小车,后来才知道那就是视觉知道机器人。
于是到了大二选择选修课的时候就果断选了这个课。
本来我选的是机器人那个,上了才知道又要做实验还要参加比赛还要交押金甚是麻烦,顿时欲哭无泪,硬着头皮去上,因为分组问题被弄到了电脑鼠这边来,觉得比机器人那边要好玩得多。
第一次去上课就要交押金,并且那个电脑鼠还好贵的,整整两千多啊。
那是最开始就给我们讲了电脑鼠处理器运行的相关函数,后面几节课分别讲了电脑鼠在迷宫中搜索以及最后冲刺的相关程序。
好吧,我承认当时确实有点无聊。
直到后来,老师终于给了我们完整的程序,于是兴奋的我们毫不犹豫的把程序“捎”了进去,然后把电脑鼠放到迷宫中,结果发现它除了撞墙就是转圈。
探索调试:我们小组分工合作,一起研发。
电脑鼠走迷宫可以采用全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。
或者可以采用部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径。
我们的电脑鼠要实现的功能有如下几个方面:路口检测:由安装在前、右、左的三个红外线发射对管SIR563ST3F 和IRM8601S实现, 发射信号为38KHz, 实现远红外测距功能, 探测前、右、左有无障碍。
行走控制:由左、右两个红外线发射对管SIR563ST3F和IRM8601S为实现, 发射信号为30.5KHz, 实现近红外测距功能, 保持电脑鼠在中轴线上行走, 避免撞墙。
路程控制:安装在左右轮内侧的红外收发对管IR204和PD204一6B, 对黑白码盘计数, 按照迷宫单元的长度为单位进行路程计数, 以记录老鼠在迷宫中的位置同时还可以准确地实现转弯。
微控制器和其它子系统共同构成一个闭环的反馈控制系统, 通过对三种传感器信号的检测行走信号、路口信号和黑白码盘计数信号, 由微控制器进行运算, 运算结果交给电机执行, 由此实现电脑鼠的智能穿越迷宫。
人工智能电脑鼠搜迷宫实验

北京科技大学实验报告学院:自动化学院专业:智能科学学技术班级:姓名:学号:实验日期:2017年11月6日实验名称:人工智能电脑鼠搜迷宫实验实验目的:掌握电脑鼠的基本操作及智能搜索算法操作。
实验仪器:KEIL MDK、电脑鼠、J-Link、VS实验原理:所谓“电脑鼠”,英文名叫做Micromouse,是一种具有人工智能的轮式机器人,是由嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称。
当电脑鼠放入起点,按下启动键之后,他就必须自行决定搜索法则并且在迷宫中前进,转弯,记忆迷宫墙壁资料,计算最短路径,搜索终点等功能。
电脑鼠更结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。
本实验中,通过红外传感器检测电脑鼠所处位置状态,通过智能算法保存地图并实现地图的搜索,通过pid等控制算法控制电机,达到电脑鼠搜索迷宫并计算最短路径等功能。
实验内容与步骤:实验内容1)KEIL MDK的安装2)电脑鼠硬件的检查及调整3)智能搜索算法的编写4)算法的调试与优化5)实验结果实验步骤(一)KEIL MDK的安装1双击运行Ke i l MDK 4.12 安装程序,出现软件安装界面,如图所示:2点击Next,勾选安装协议;3选择安装路径,建议安装在C 盘,运行速度快些4 填入用户信息,个人用户随意填入即可;点击Next 就进入实质的安装过程了,Wait for a Whle…5点击Finish,Keil MDK 就完成安装了,可以发现桌面上生成了名为“Keil uVis ion4”的可执行文件快捷方式。
(二)检查和调整电脑鼠的硬件1.电机检查:在电脑鼠程序文件中找到Motor.c文件,直接为两侧电机赋相同的速度值,用G-link连接电脑鼠和电脑,传入程序,打开电脑鼠放在地面上,如果电脑鼠能正常直线行进,即证明两侧电机正常工作。
如果有电机有问题,拆下原来的电机换新的再次进行电机检查即可。
2.传感器检查:用G-link连接电脑鼠和电脑,打开传感器查询模式,用手逐渐靠近每一个传感器,如果相应的传感器值由小变大,那么此传感器工作正常。
迷宫电脑鼠的设计报告

2、管脚定义如下:
3、通过L9110驱动芯片IA、IB输入的逻辑值的组合,不同高低电平的输入输出,控制电机正转、反转、停转。L9110的逻辑关系表如下表所示:
L9110逻辑关系
IA
IB
OA
OB
H
L
H
L
正转
L
H
L
H
反转
L
L
L
L
停止
H
H
L
L
停止
3.3
3.3.1
电脑鼠正常行走包括直走、左转弯、右转弯和向后转弯四个功能函数。这四个功能函数中要用到T0、T1定时/计数器;所以函数中首先初始化T0、T1。T0初始化:打开总开关EA=1;开T0中断ET0=1;设定T0模式2,8位自动重装值定时计数器TMOD&=0xf6; TMOD|=0x06;设定T0计数初值,定义中断脉冲数TH0=256-ICP;TL0=256-ICP;//启动T0计数TR0=1;T1初始化也是一样的。
传感器组是由38KHz的红外一体化接收头和红外发射管构成的障碍感测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。如图所示,是产生38KHz方波的载波发生器电路。
(4)传感器的调试
(主要写每组传感器如何进行调试。)
1、左右两边的传感器检测是否有墙壁。
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
//红外地址接口定义(74HC138译码器
迷宫电脑小鼠实验报告

一、实验背景迷宫实验是心理学和神经科学领域常用的实验方法,用于研究动物的学习和记忆能力。
近年来,随着计算机技术的不断发展,迷宫实验也逐步实现了电脑化。
本实验旨在利用迷宫电脑小鼠实验系统,研究小鼠在迷宫中的行为特征,以及其学习记忆能力。
二、实验目的1. 了解迷宫电脑小鼠实验系统的操作方法和原理。
2. 观察并记录小鼠在迷宫中的行为表现。
3. 分析小鼠的学习记忆能力,探讨影响因素。
三、实验材料1. 迷宫电脑小鼠实验系统:包括迷宫、电脑控制台、摄像头等。
2. 实验小鼠:体重20-25克,性别不限。
四、实验方法1. 迷宫电脑小鼠实验系统操作:将迷宫电脑小鼠实验系统连接到电脑,启动软件,设置实验参数,如迷宫形状、实验次数、时间限制等。
2. 实验步骤:(1)将实验小鼠放入迷宫入口,记录其进入迷宫的时间。
(2)观察并记录小鼠在迷宫中的行为表现,如逃避、探索、犹豫等。
(3)记录小鼠到达迷宫出口的时间,并计算其速度。
(4)重复实验多次,观察小鼠的学习记忆能力。
五、实验结果与分析1. 实验结果(1)实验小鼠在迷宫中的行为表现:在实验初期,小鼠表现出逃避、犹豫等行为,随着实验次数的增加,小鼠逐渐适应迷宫环境,表现出更快的速度和更准确的方向判断。
(2)实验小鼠的学习记忆能力:经过多次实验,小鼠的学习记忆能力得到显著提高。
在后期实验中,小鼠能够快速找到迷宫出口,且速度逐渐提高。
2. 分析(1)迷宫电脑小鼠实验系统能够有效地模拟真实迷宫环境,为研究小鼠的学习记忆能力提供可靠平台。
(2)实验结果表明,小鼠在迷宫中的行为表现与其学习记忆能力密切相关。
逃避、犹豫等行为可能表明小鼠在适应迷宫环境过程中存在困难,而随着实验次数的增加,小鼠逐渐适应迷宫,表现出更好的学习记忆能力。
(3)实验结果还表明,迷宫电脑小鼠实验系统具有良好的重复性和可靠性,可用于研究小鼠的学习记忆能力。
六、结论本实验通过迷宫电脑小鼠实验系统,研究了小鼠在迷宫中的行为表现和学习记忆能力。
电脑鼠算法

算法简介
08计算机(1)班 龚若皓
软件算法所需要实现的功能
最基本的功能: 最基本的功能: 1.正确记录迷宫的信息 1.正确记录迷宫的信息 2.正录小车的状态(当前的方向,四周的挡板情况等) 正确记录小车的状态 3.确保小车的移动, 3.确保小车的移动,停止和转弯的可控性 确保小车的移动
需要实现的核心功能 1.实现基本的从起点到终点的寻路过程。 1.实现基本的从起点到终点的寻路过程。 实现基本的从起点到终点的寻路过程 2.实现等高表的生成算法。 2.实现等高表的生成算法。 实现等高表的生成算法 3.实现从当前的位置通过最有效的路径移动到指定的任意位置。 3.实现从当前的位置通过最有效的路径移动到指定的任意位置。 实现从当前的位置通过最有效的路径移动到指定的任意位置 (通过建立等高表来实现) 通过建立等高表来实现) 4.根据已经得到的迷宫地图信息实现起点到终点的最短路径分析。 4.根据已经得到的迷宫地图信息实现起点到终点的最短路径分析。 根据已经得到的迷宫地图信息实现起点到终点的最短路径分析 (通过建立等高表来实现) 通过建立等高表来实现)
寻路算法简介
正确使用堆栈, 2. 正确使用堆栈,整个选路算法的运行过程中会大量地使用堆栈 的入栈和出栈操作,如果对入栈和出栈的条件判断不正确, 的入栈和出栈操作,如果对入栈和出栈的条件判断不正确,有 可能造成数据紊乱,整个算法就崩溃了, 可能造成数据紊乱,整个算法就崩溃了,最好使用调试版上的 数码管实时显示堆栈栈顶的数据,发现有错误就在程序中寻找 数码管实时显示堆栈栈顶的数据, 错误,直到整个寻路算法稳定为止。 错误,直到整个寻路算法稳定为止。
数据的存储方式
绝对方向和相对方向的变换: 绝对方向和相对方向的变换: 假设数值0 假设数值0,1,2,3分别表示绝对方向的上,右,下,左,那 分别表示绝对方向的上, 么就用0 么就用0,1,2,3中的其中一个数值来表示当前小车车头朝向的方 向,当然这个数值是动态变化的,每转弯一次该数值应当变化一 当然这个数值是动态变化的, 次,例如当前方向的数值为3(左方),那么经过一次右转操作后 例如当前方向的数值为3 左方),那么经过一次右转操作后 ), 该数值就应该变化为0 该数值就应该变化为0了(上方)。其实转化的规则相当简单,只 上方)。其实转化的规则相当简单, )。其实转化的规则相当简单 要右转方向数值就加1 只要左转方向数值就加3 要右转方向数值就加1,只要左转方向数值就加3,只要后转方向数 值就加2 当然可能有越界的情况, 值就加2,当然可能有越界的情况,所以得出的方向数值再进行模 运算对4 运算对4取余数得出的结果就是转弯后小车的车头所面向的方向的 数值了。 数值了。
走迷宫电脑鼠的算法分析与研究

走迷宫电脑鼠的算法分析与研究收稿日期: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引言人类在科技的发展史上,一直在尝试着想要创造出一个具有肢体、感官、脑力等综合一体的智能机器人,而电脑鼠就是一个能够用来诠释肢体、感官及脑力综合工作的基本实例,这也是当初电脑鼠被发明的理由,希望能够借助电脑鼠的创作来进而研究与发明更加复杂的机械。
人工智能电脑鼠搜迷宫实验

北京科技大学实验报告学院:自动化专业:智能科学与技术班级:智能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.算法设计在本次实验中,使用的是机械鼠优先向左移动的,即深度优先算法。
基于ARM的电脑鼠走迷宫的研究

基于ARM的电脑鼠走迷宫的研究摘要:目标是设计制作集传感器与控制于一体的,能够自动穿越迷宫的电脑鼠。
该电脑鼠结合了模拟电路、数字电路,自动控制理论等相关专业知识。
提出将模块化方法应用于系统软、硬件的设计,不仅提高了软硬件开发效率,而且提高了软硬件在实验及检修过程中的可维护性、可升级性。
这里设计的电脑鼠能在迷宫中搜索路径,走出迷宫,并能实现路径优化。
关键词:电脑鼠;嵌入式;ARM;迷宫路径优化0 引言电脑鼠(Micromouse)是智能机电鼠的简称,是一个由微处理器控制的集探测、分析、行走功能于一体,能够自动搜索最佳路径到达目的地的微型机器人。
实际上电脑鼠就是一个电力驱动小车,而这个电动小车是由一个或多个微控制器来控制,通过传感器和其他各功能器件的配合,具备一定的智能。
同时,电脑鼠需拥有探测障碍物、行走、转弯、加减速和制动等基本功能。
本文是以IEEE 国际电脑鼠竞赛为背景,以美国Luminary Micro 公司生产的ARM CortexM3 内核的ARM 处理器LM3S615 为主控制器,控制和检测红外传感器;微控制器根据检测到的传感信号,控制电机驱动电路,调整行走,按照载入搜索算法进行迷宫的探测,寻找最短路径,最终实现从起点到终点的冲刺。
1 电脑鼠系统整体设计方案如图1 所示,整个系统可以大致分为以下主要部分:电源模块,控制模块,执行机构模块,传感器模块,机身模块。
可以做形象的比喻:电源模块是电脑鼠的葡萄糖,控制模块是电脑鼠的大脑,传感器模块是电脑鼠的眼睛,机身模块是电脑鼠的躯干,执行机构是电脑鼠的腿;各模块之间相互配合使电脑鼠正常工作并寻找到终点。
2 电脑鼠硬件研究与实现2.1 电脑鼠硬件设计原理本文研究的电脑鼠是一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电脑鼠的原理分析及算法研究摘要:本文阐述了电脑鼠的定义和意义,并对电脑鼠的工作原理及硬件、软件设备进行一定的分析,研究了一些传统和经典的算法。
关键词:电脑鼠,模块,算法,蚂蚁算法Analysis of the Principle and Study of Algorithm ofMicroMouseWang Huinan 04010515(Southeast University, Nanjing, 211189)Abstract:This paper describes the definition and significance of MicroMouse. And analyzing the work principle of MicroMouse’s hardware and software equipment. Studying a number of traditional and classical algorithms.Key words: MicroMouse; Module; Algorithms; Ant algorithm本学期,我选修了机电一体化——电脑鼠。
通过学习和查找资料,我对电脑鼠的运行原理有了一定的了解,并产生了一些新的想法。
1电脑鼠的基本知识1.1电脑鼠的定义所谓“电脑鼠”,英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称,它可以在“迷宫”中自动记忆和选择路径,寻找出口,最终达到所设定的目的地。
实际上电脑鼠就是一个电力驱动小车,而这个电动小车是由一个或多个为控制器来控制,通过传感器和其他各功能器件的配合,具备一定的智能。
同时,电脑鼠拥有探测障碍物、行走、转弯、加减速好制动等基本功能。
1.2电脑鼠的意义电脑鼠可谓是一种具有人工智能的小型机器人,结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。
人类在科技的发展史上,一直在尝试着想要创造出一个具有肢体、感官、脑力等综合一体的智能机器人,而电脑鼠就是一个很能够用来诠释肢体、感官及脑力综合工作的基本实例,这也是当初电脑鼠被发明的理由,希望能够借助电脑鼠的创作来进而研究与发明更加复杂的机械。
2电脑鼠的整体设计方案如图所示。
整个系统可以初步分为以下主要部分:电源模块,控制模块,执行机构模块,传感器模块,机身模块。
可以形象地认为,电源模块是电脑鼠的“动力源泉”,控制模块是电脑鼠的“大脑”,传感器模块是电脑鼠的“眼睛”,机身模块是电脑鼠的“躯干”,执行机构是电脑鼠的“脚”,几个模块之间要相互配合才能使这个电脑鼠最终“逃离”迷宫。
3电脑鼠的硬件原理3.1电脑鼠的硬件设计原理本文研究的电脑鼠是一个跨学科的综合作品,主要由电源、传感器、步进电机、控制核心电路、机身5个部分组成,如图1所示。
所以,电脑鼠的硬件设计主要包括电源模块、微控制器单元模块、传感器模块、电机控制模块4个部分的设计。
其中LM3S615微控制器是电脑鼠的核心,通过检测到的传感器信号,结合载入的搜索算法,控制步进电机,实现电脑鼠在迷宫中的行走。
3.2电源模块MicroMouse615 采取外接锂电池供电,并为整个系统提供三种不同的电压,分别用来驱动电机、给传感器供电和给微控制器供电。
MicroMouse615 装有两个永磁式步进电机,系统中直接把电池的输出电压连接到电机的驱动芯片上。
LM3S615 微控制器需要3.3V 供电,电路如图,外接电源经过C36、C2 滤波,然后通过SPX1117M-3.3 将电源稳压至 3.3V。
SPX1117M-3.3 是Exar 公司生产的LDO 芯片,其特点是输出电流大,输出电压精度高,稳定性高。
其输入电压范围为4.7V 到12V,输出电流可达800mA。
在其输出端的C3、C4 用来改善瞬态响应和稳定性。
MicroMouse615 使用的红外传感器的工作电压为5V,在一般情况下可以把电池的输出电压经过LDO 稳到5V。
但若电池电压较低或瞬间被拉低时,系统就不能为传感器提供稳定的电源,这将严重影响传感器的灵敏度。
所以原电路把系统中已经较为稳定的3.3V 电压升到5V。
3.3微控制器单元模块本文采用美国Luminary Micro公司生产的CorteX-M3内核的ARM处理器LM3S615,该芯片具有32位RISC性能,具备32 KB单周期FLASH,8 KB单周期SRAM,29个中断,带8个优先级。
微控制器模块和其他模块共同构成一个闭环的反馈控制系统,通过对路程信号、岔口信号和姿势修正信号的检测,经由LM3S615进行运算,再将结果赋给电机执行,由此实现电脑鼠的智能穿越迷宫。
3.4传感器原理MicroMouse615 使用一体化红外接收头IRM8601S,它内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路。
当连续收到38KHz 的红外线信号时,将产生脉宽10ms 左右的低电平,有效电平维持时间TWL 的范围为400μs<TWL<800μs。
如果没有收到信号,便在TWL 结束后输出高电平。
再根据数据手册,其调制信号应为周期1000us 的方波。
IRM8601S 内部的带通滤波器的中心频率为38KHz,所以发射红外线的载波信号为38KHz 时经过滤波器衰减最小,传感器最灵敏,越是偏离就衰减的越多,这是一体化接收头抗干扰的关键原理。
3.5电机原理电机控制模块主要负责控制电脑鼠的运动,包括电机和电机驱动电路两部分。
电机为两个两相四线制步进电机,工作电压为7.4 V。
电机驱动芯片采用BA6845FS,每个芯片包含2个H桥,它的最大驱动电流为1 A,且在输入逻辑的控制下输出有3种模式:正向、反向和停止。
一般的永磁式直流电动机的定子由永久磁钢组成,其主要作用是在电动机气隙中产生磁场,其电枢绕组通电后产生反应磁场。
由于电刷的换向作用,使得这两个磁场的方向在直流电动机运行的过程中始终保持互相垂直,从而产生最大转矩而驱动电动机不停的运转。
4电脑鼠的软件实现电脑鼠的软件部分主要用来检测迷宫环境,传送控制信号给相应的硬件模块,对在迷宫中行走的电脑鼠进行制导与导航。
其主要由迷宫搜索主程序和其他实现各种功能的子程序组成,主程序主要起到搜索探测迷宫和决策功能,而其他各种功能则是通过调用其相应子程序来实现的,搜索流程如图所示。
4.1 迷宫搜索主程序在没有预知迷宫路径的情况下,电脑鼠必须优先探索迷宫中的所有单元格,直到抵达终点为止。
做这个处理的电脑鼠要随时知道自己的位置及姿态,同时要记录所有访问过的方块四周是否有墙壁,并且在搜索过程中尽量避免重复搜索它搜索过的地方。
4.2其他子程序4.2.1 路程检测子程序通过安装在两轮内侧的红外线收发管和黑白码盘来测算电脑鼠走过的路程,确定电脑鼠在迷宫中的位置,并在岔口实现精确的90°和180°转弯。
4.2.2 岔口检测子程序由安装在正前、左前、右前方向的3个红外发射管发射38 kHz的信号完成远距检测,根据传感器读入值,判断迷宫中障碍信息、路口信息。
4.2.3 姿势修正子程序根据左右两侧红外传感器接收的反馈信号来判断电脑鼠偏离迷宫巷道中轴线的程度,通过调整步进电机工作脉冲使某一边电机减速来修正电脑鼠的行驶方向,使其基本行走在中轴线附近。
4.2.4 转弯子程序当电脑鼠检测到岔口,且需要转弯时,调用该子程序。
4.2.5 最优路径子程序通过对迷宫环境进行搜索检测,数组自动记录迷宫地图信息以及迷宫中每一单元格到起始点的路程,运行最优路径子程序,就能找到一条从始点到终点的最短路径。
其实质是一种路径优化算法,常用的算法有等高图法和蚁群算法。
4.2.6 冲刺子程序调用此程序可使电脑鼠循着最短路径从起点以最快的速度冲到终点。
5算法分析5.1常见算法右手法则 :以右边为优先的前进方向,然后是直线方向、左边方向。
左手法则 :以左边为优先的前进方向,然后是直线方向、右边方向。
中左法则 :以直线为优先的前进方向,然后是左边方向、右边方向。
与此类似的还有中右法则。
乱数法则 :取随机值作为前进方向。
向心法则 :由于终点设在迷宫的中心,遇有交叉时 ,以指向迷宫中心的方向为优先的前进方向。
5.2深度优先搜索(DFS)从入口出发,顺着某一方向向前探索,若能走通,则继续往前走;否则沿原路退回(回溯),换一个方向再继续探索.直至所有可能的通路都探索到为止。
如果恰好某一步探索到出口,则就找到了从入口到出口的路径。
为了保证在任何位置上都能沿原路退回,防止死循环,需要使用堆栈来保存大量记录。
而要求解迷宫最短路径,则必须用深度优先搜索出所有到达出口的路径,通过比较得到最短距离的路径.这样也必然要求增加数据空间来保存搜索过程中当前最短路径.增加了空间复杂度。
5.3广度优先搜索(BFS)从入口出发,离开入口后依次访问与当前位置邻接的单元格(上下左右方向),然后分别从这些相邻单元格出发依次访问它们的邻接格,并使“先被访问的单元格的邻接格‘先于’后被访问的单元格的邻接格”被访问,直至访问到迷宫出口,则找到了迷宫问题的最优解,即迷宫最短路径。
该算法的显著特点是“层层推进”,探索点会随着探索的深入急剧增加,相应地,需要大量的空间用来保存探索过程的记录。
空间复杂度大。
5.4蚂蚁算法在电脑鼠中的应用在利用蚁群算法求解迷宫最短路径问题时,为了使每只蚂蚁能以尽可能高的概率生成可行解,本文采用两组数量相等的蚁群分别从迷宫的起点和终点同时出发,该表记录蚂蚁当前走过的点集,以避免选择已经走过的点。
对任意一只蚂蚁,在移动过程中可以定义如下的生命周期:①蚂蚁走进死角,除非沿原路返回一步或多步,不能再朝前移动,则将该蚂蚁从系统中删除;②蚂蚁到达另一组蚁群的出发点,此时该蚂蚁走过的路径为一条可行路径;③蚂蚁碰到另一组的某只蚂蚁。
如果这两只蚂蚁所经过的点没有重复(tH遇点除外),则将两只蚂蚁所经过的路径相连以构成迷宫的一条可行路径。
因此,从蚁群的产生到生命周期的结束,会有一部分蚂蚁找到问题的可行解,但可行解的数量小于蚁群数的一半。
结束语本文从介绍电脑鼠入手,分析了电脑鼠的软、硬件原理,介绍有些算法。
参考文献[1]周立功,等.Cortex-M3 开发指南.广州:致远电子有限公司,2008.2.[2]樊晓平,等.复杂环境下基于蚁群优化算法的机器人路径规划[J]_控制与决策,2004,19(2).[3]张琛.直流无刷电机原理及应用[M].北京:机械工业出版社,1996.。