目 录
序 言 嵌入式微型机器人--电脑鼠走迷宫大赛 .............................. 3
第一章 概论 .................................................................... 8
1.1 电脑鼠集多学科于一身 ..................................................... 8
1.2 电脑鼠走迷宫标准套件 .................................................... 9
1.2.1 电脑鼠比赛标准迷宫 .................................................. 9
1.2.2 MicroMouse615 ...................................................... 10
1.2.3 配套的开发工具 ..................................................... 11
1.3 文档阅读说明 ............................................................ 11
第二章 MICROMOUSE615 硬件原理 ................................................ 13
2.1 原件布局图 .............................................................. 13
2.2 电路原理图 .............................................................. 13
2.3 原理说明 ................................................................ 13
2.3.1 电源电路 ............................................................ 15
2.3.2 JTAG 接口电路 ...................................................... 16
2.3.3 按键电路 ............................................................ 17
2.3.4 红外检测电路 ....................................................... 17
2.3.5 电机驱动电路 ........................................................ 18
第三章 IAR EWARM 集成开发环境及 LMLINK 使用 .................................... 20
3.1 IAR EWARM 简介 ........................................................... 20
3.2 LM LINK 调试器介绍 ....................................................... 20
3.3 IAR EWARM 的安装 ......................................................... 20
3.3.1 IAR EWARM 的安装步骤................................................. 20
3.3.2 安装 LM LINK 驱动 .................................................... 23
3.4 安装流明诺瑞驱动库 ...................................................... 26
3.4.1 下载最新库文件....................................................... 26
3.4.2 拷贝连接器命令文件................................................... 27
3.4.4 拷贝底层驱动函数库................................................... 29
3.5 在 EWARM 中新建一个新项目 ................................................ 30
3.5.1 建立一个项目文件目录 ................................................ 30
3.5.2 新建工作区 ......................................................... 31
3.5.3 生成新项目 ......................................................... 31
3.5.4 添加新建文件......................................................... 34
3.6 项目选件设置 ............................................................ 37
1.通用选件设置 ............................................................ 38
~ 1 ~
2.C/C++编译器选件设置 .................................................... 39
3.Assembler 选件设置 ...................................................... 40
4.Linker 选件设置 ......................................................... 40
5.Debugger 选件设置 ....................................................... 45
3.7 编译和运行应用程序 ..................................................... 47
3.7.1 编译连接处理 ........................................................ 48
3.7.2 查看 MAP 文件 ........................................................ 48
3.7.3 加载应用程序 ....................................................... 49
3.8 生成 HEX 文件和 BIN 文件 ................................................... 49
3.8.1 生成 hex 文件 ....................................................... 49
3.8.2 生成 bin 文件 ....................................................... 50
第四章 基础实验 .............................................................. 52
4.1 7289 EX BOARD 的使用 .................................................... 52
4.2 红外线传感器测距 ....................................................... 56
4.3 步进电机控制........................................................... 65
4.4 电池电压检测 ............................................................ 79
第五章 高级实验 .............................................................. 82
5.1 步进电机匀加减速控制 .................................................... 82
5.2 含姿势修正的走直线实验 ................................................ 100
5.3 无记忆功能的走迷宫实验 ................................................. 105
第六章 智能算法 ............................................................ 108
6.1 迷宫坐标和绝对方向的建立 .............................................. 108
6.2 相对方向与绝对方向的转换 .............................................. 108
6.3 坐标转换 .............................................................. 110
6.4 墙壁资料存储 .......................................................... 111
6.5 迷宫搜索方法 .......................................................... 111
6.6 寻找最优路径的方法 .................................................... 113
~ 2 ~
序 言 嵌入式微型机器人--电脑鼠走迷宫大赛
成功非你莫“鼠” !
熟悉启诚科技的朋友都知道,我们公司始创于 1989 年,从事单片机嵌
入式核心控制系统产品的生产、研发、销售,1995 年公司开始转型生产销售
电子教学仪器设备,在天津地区高校创造了不凡的销售业绩。启诚与时俱
进,针对国家教委重视发展高校实训教学的先进理念,于 2005 年正式开始
研发竞赛、实训教学机器人,“承载梦想 奔赴未来”是启诚机器人的广告
语,更是启诚人执着追求的梦想,经过几年的磨练努力,2008 年在国家教育
部主办的全国高职机器人技能大赛中,启诚科技全面技术支持的天津参赛
队,在全国 33 支精英级赛队中脱颖而出,荣登冠军宝座。为天津高职征得
了辉煌与荣耀。
2009 年获得国家科委科技型中小企业技术创新基金 ,项目名称:系列智
能型教学/竞赛机器人开发平台,立项代码:10C26211200199,这个项目获
得两项实用新型专利证书:1.一种教学机器人,ZL 2009 2 0095805.3 ;2.
拼装式教学机器人:ZL 2009 2 0096235.X,获得一项计算机软件著作权:
2009SR037836「简称:Qrs」V1.0,TQD 机器人得到了国家的认可和肯定,让
启诚人倍感骄傲和自豪。
电脑鼠”,英文名叫做 MicroMouse,是使用嵌入式微控制器、传感器
和机电运动部件构成的一种智能行走装置(微型机器人),电脑鼠可以在不
同“迷宫”中自动记忆和选择路径,采用相应的算法,快速地达到所设定目
的地。这项竞技赛事风靡全球,从 1979 年国际电工和电子工程学会
(IEEE)每年都举办一次国际性的电脑鼠走迷宫竞赛,至今已有 30 年的历
史,在欧洲东南亚日本、韩国等地区颇为盛行。为此许多国家大学还开设了
“电脑鼠原理和制作”选修课程。2007 年由上海市计算机学会把这项赛事首
次引入国内,当时全国有三十多所高等院校参与角逐,反响强烈。电脑鼠大
赛亮点不仅仅在于它的火爆竞技性表演,而在于这项比赛是对嵌入式技术应
用能力水平的体现。对于参赛选手掌握 ARM 嵌入式技术有较高要求,对于大
学生动手能力的培养起到引领作用。
2009 年天津启诚伟业科技有限公司经过深思熟虑和严谨的市场考察,
决定将这项国际赛事引进到天津高等院校,让这项嵌入式微型机器人竞赛落
~ 3 ~
户津门。同年 10 月 31 日与南开大学、天津计算机学会单片机分会正式组织
策划联合承办了电脑鼠走迷宫大赛,天津参赛队热情高涨踊跃参与,共有 8
所知名高校,16 支精英级赛队角逐天津决赛。天津单片机学会理事长 李刚
教授 在大赛开幕式讲话中激动的重申:天津启诚伟业科技有限公司把电脑
鼠走迷宫大赛引入天津,不仅培养了天津地区大学生的科技创新意识和动手
设计能力,而且提高天津地区嵌入式系统技术开发应用水平,对于完善天津
高校嵌入式技术创新实训教学发展有着重要的意义,启诚科技为天津的大学
生做了一件功德无量的大好事!让天津地区大学生嵌入式微型机器人竞赛在
落后于世界整整 30 年后,追上先进国家的步伐与世界同步接轨!
紧张激烈的 2009“IEEE 标准电脑鼠走迷宫”决赛在:赛出成绩、赛出
风格、赛出水平的热烈火爆气氛中,圆满落下帷幕!通过这次大赛更加坚定
了我们公司,研发生产嵌入式微型机器人的决心,公司同仁心往一处想,劲
往一处使,上下齐努力,创造了公司内部最短时间(半年),成功研发新产
品的记录。在这里我们也由衷的感谢,对于新产品研发给予我们支持、鼓
励、帮助的领导、专业老师和每一位关心启诚的好朋友,谢谢大家!我们一
定会更加努力,回报您的支持与厚爱!请相信启诚的明天会更好!
转眼间 2010 年“IEEE 标准电脑鼠走迷宫”大赛又在紧锣密鼓的准备阶
段,到了一触即发的时刻!本届大赛天津地区有 21 所知名院校,48 支精英
级赛队角逐冠军宝座。相信有那么多热爱电子、嵌入式技术,具有创新意
识,喜欢动手实践的大学生参与这项竞赛,天津乃至全中国嵌入式技术一定
会迅猛发展,我们国家未来单片机嵌入式技术,一定会在国际舞台上占有重
要位置。
嵌入式竞技机器人的时代已经来临!您准备好了吗?
宋立红 2010-9 随笔
~ 4 ~
电脑鼠我为你痴狂!
我是天津启诚伟业科技公司,负责竞赛教学机器人的技术支持汉娜,记
得刚刚涉足微型嵌入式机器人-电脑鼠竞赛的时候,是 2009 年 4 月的一天,
我们公司的风云级 “大姐大” 人物,精明能干的宋立红总经理,(我们喜
欢叫她 Bella 姐)找到我,让我负责电脑鼠走迷宫大赛的工作。我知道这是
公司领导给我表现能力的机会和展示魅力的平台,可我是去年刚毕业的本科
生,能弄得懂应用嵌入式 ARM 的电脑鼠吗?带着种种疑虑我踏上了电脑鼠竞
赛的征程。
作为工作人员,学习流明诺瑞应用产品--电脑鼠,是我别无选择的必修
课程,对它的认识当时仅限于知道,它在处理能力上有很大的优势。我也清
楚的认识到如果想要在比赛中取得理想的成绩,必须在算法和结构的适应性
上做相应的调整。电脑鼠走迷宫是需要同时考虑机械、电子、电气等方方面
面相互配合的技巧性竞赛,对于我接触到的一些高校学生来说,他们大多只
擅长其中的某一方面,再加上处理核心对他们来说也是一项比较新颖的技
术,所以挑战性确实不小。
与电脑鼠真正的“零距离”接触是从 2009 年 9 月份开始的,因为工作
关系,我要到天津各参赛校了解实际情况,到各个参赛院校的拜访交流,帮
助他们顺利完成电脑鼠大赛的筹备工作。通过交流参赛队的一些好的经验做
法,令我从中获益匪浅,他们对待电脑鼠的热情让我折服,他们重在学习交
流的精神更是让我深深感动。
在很长一段时间里,令他们深感苦恼的是速度与稳定性搭配不好的问
题。既然想要在最短时间内完成任务,就需要电脑鼠速度快才能达到目的。
但是每当速度快的时候,电脑鼠就容易出现撞墙或者步伐混乱的问题,之后
电脑鼠就不能很好的继续前进,而且在下一次走到相同的地方时候发生故障
的概率也会变得很大。后来我发现天津赛区一些学校的解决方法是,当电脑
鼠探测到前方有障碍物时候,使减速的步数更大一些。比如说在示例程序
中,当传感器探测到宫墙需减速时,减速步数为 1,当然示例程序中电脑鼠
本身速度就不是很快,所以这样的合理性就比较好;但是这样的运行速度是
不能满足比赛的要求的,这时候为了不撞到宫墙,就可以把减速步数在允许
范围内改为 2 或者更大。
~ 5 ~
另外一个热点问题是,电脑鼠在转弯的时候,以及探测两边的时候,会
有较长时间的延时,这点缺陷在搜索小迷宫的时候可能不太明显,但是比赛
中用的是大场地,再加上激烈的比赛当中,每一分每一秒都可能会影响自己
的大排名成绩,这样的缺陷就尤为突出了。我们的参赛同学采用准确计算转
弯时左右两边步进电机行走距离的方法,电脑鼠在转弯时就变得更加顺畅、
准确,快速,甚至能够达到漂移的效果。
第三大难题是,在赛前,参赛队员及老师对竞赛规则理解得稍有偏差,
这也使得在准备过程中有一些思路或做法不利于自己取得更好的成绩。比如
有的队员按照大众的思维,认为电脑鼠走迷宫比赛的结果,便是在迷宫的边
缘某一处有一缺口,电脑鼠只要在最短的时间内找到这个缺口,便是完成了
比赛。当然在使用“最短时间”这点上,参赛队员的理解并没有偏差,但是
对于终点理解的偏差,就需要在程序中做相应的调整。但是我认为,虽然有
这点偏差,但是只要能参加比赛,这也是一种对自适应能力的一种考察,通
过这样会使得电脑鼠能够更好的适应各种迷宫场地。
2009 年 10 月 31 日天津赛区的决赛在大家的期盼声中,终于揭开了神秘
的面纱。看着电脑鼠在场地中间穿梭行走,观众们都摒住呼吸紧张观看比
赛,当看到电脑鼠出现失误的时候,惋惜叹气声不绝于耳;当看到我们的小
明星电脑鼠有上佳出色表现的时候,欢呼沸腾的掌声响彻整个赛场。这一刻
电脑鼠牵动着我们每个人的心弦,让我们为它揪心,为它痴狂!
2009 年电脑鼠走迷宫比赛现场 观众席座无虚席盛况空前
比赛结束后,我的心久久不能平静,回想起来,既有经验也有教训:首
先是天津赛区电脑鼠的机械结构还需进一步加强。当电脑鼠在迷宫中因为自
身的轮子不平衡而左右晃时,每个人的心都提到嗓子为它捏把汗。针对这个
~ 6 ~
问题,我认为各赛队在做准备时候就需要充分调节好,切不可上场比赛时候
才想起来,要知道那时候什么想法都晚了。
其次是在赛前准备方面,平时就应该养成习惯,每次使用电脑鼠之前,
需要检查电量是否能够完成调试或比赛的工作。我认为,在电脑鼠使用完之
后或是使用之前,都应该给电池充满电,以免上了赛场才发现动力源不足。
最后就是在电子方面,大多数参赛队员没有足够的时间,充分理解掌握
有关 ARM7 处理器的相关知识,没有能够充分发挥这项技术的优势。如果通
过比赛,大家都能重视这项技术的学习,这样对于应用嵌入式技术的学习会
有一个很大的促进作用,并为下次参加比赛做好充分的准备。我相信,通过
赛前的学习,加上紧张激烈的比赛,更多的参赛学生会因此吸取经验教训,
为下一次能够取得更好的成绩做出不懈的努力。
记得前一段比赛准备阶段,每天都特辛苦,既要给学校解决参赛难题,
又要自己学习这项技术知识,当时总想比赛快快结束吧,这样就轻松啦!可
现在又被恋恋不舍的心情所笼罩,虽然天津赛区比赛结束了,但我们想要学
习流明诺瑞 ARM7 的兴趣和热情反而更加的高涨。有强有力的天津启诚伟业
科技有限公司软件硬件技术支持,以及我们必须要学习征服它的决心,再加
上通过大赛,我们公司和参赛学校之间建立的深厚的友谊感情,以及相互之
间的学习切磋交流的经验。我相信,所有的努力一定会有收获,我爱电脑
鼠;我爱嵌入式单片机;我更爱我们引以为荣的天津启诚伟业科技有限公
司!因为有您,我像一颗青色的小苗在启诚的温馨大家庭里经风雨长见识,
不断的成长进步。现在已经变成了稚嫩的小树,相信不久的将来,通过不断
的尝试,不懈的努力,一定能成为栋梁之才!
人生在经历过失败挫折之后的成功,往往是最难忘、最甜蜜,也是最
乐意与他人分享的。从失败到成功的每一步,也都只有亲身经历过的人才能
领悟到其中的奥妙,而这每一步都是我们为今后的成功所积累的宝贵经验和
人生的积淀!
天津启诚伟业科技有限公司 技术支持:汉娜
~ 7 ~
第一章 概论
1.1 电脑鼠集多学科于一身
电脑鼠走迷宫竞赛具有一定难度,是一项富有挑战性和趣味性的比赛。此外,它还
是一个很好的教学工具。电脑鼠可看作是一个集多项工程学科知识于一体的小型系统。
成功的设计者通常都是合作团体,他们必须考虑电子、电气、机械以及计算机各方面的
问题。重量、速度、功耗、传感技术、重心以及程序各方面都是设计中需要决定和综合
考虑的因素。电脑鼠是一个多学科的综合体,与多各学科关系精密:
(1) 机械工程:首先电脑鼠必须是个实实在在的机器人,而对于在迷宫中高速穿梭的电
脑鼠,“身材”的好坏极其重要。大多数使用步进电机的电脑鼠可以直接将车轮安装在
电机轴上,而使用直流电机驱动的电脑鼠往往许多添加减速和传动装置,如何既使轮子
安装稳定不颤动,保证高传动效率,又使车体轻巧美观是机械设计时需要解决的问题。
(2) 电子工程:电脑鼠是一个嵌入式系统,需要广泛的涉及信号处理、通信、微处理器
应用和电机控制等。
(3) 自动控制:控制电脑鼠在迷宫中快速而准确的行走属于自动控制技术范畴。测距传
感器获取距离信息并将其反馈给微处理器,微处理器对距离值分析处理获得墙壁信息并
根据墙壁信息控制电机动作以带动轮子产生相应的动作,这整个构成一个大自动控制系
统。而在这个大系统内还可以包含其他的自动控制系统。
(4) 人工智能:电脑鼠走迷宫竞赛的整个过程可大体分为两个部分:一、搜索迷宫,从
起点出发,找到终点并找出一条最短路径;二、冲刺,从起点开始,在最短时间内到达
终点。搜索迷宫过程是电脑鼠学习过程。冲刺过程前需要在所有走过的通路中依据自己
的原则选择一条路径作为最短路径,这是一个决策过程。
(5) 程序设计:电脑鼠程序具有嵌入式软件的一般特征并有更高要求。电脑鼠程序必须
高效率和高实时性才能保证电脑鼠的控制精和灵敏度。
(6) 传感与测试技术:电脑鼠需要有众多信息的反馈,如墙壁信息等。需要用到许多传
感器,如测试墙壁信息红外传感器测量距离,使用霍尔传感器测试车轮转速以控制转速
和测量路程等。电脑鼠是一个精密控制体,足够的控制精度才能保证在高速行走的时候
不撞墙和迷失自我。不但要求能够准确测量,还必须有足够快的响应速度。
~ 8 ~