网站大量收购独家精品文档,联系QQ:2885784924

川教版信息技术九下13课机器人灭火—迷宫灭火教案.doc

川教版信息技术九下13课机器人灭火—迷宫灭火教案.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
川教版信息技术九下13课机器人灭火—迷宫灭火教案.doc

灭火机器人迷宫策略     我们丹城中学机器人实验室经过大量实验,结合网络上搜索到的资料,经过归纳,总结出下列最基本的法则,下列原则和红外传感器的数量无关,和使用的教学机器人类型(红外传感器类型)无关,是抽象层次的描述,至于具体实现,请参考下面的代码或者各共享方案。 一)红外传感器实现左右手法则 的最基本原理 1)迷宫法则        看到墙壁离开墙壁,看不到墙壁,接近墙壁. 2)迷宫函数构造法则 迷宫函数语法结构中必须包含有前进、左转、右转三个分量,或者可以分解出上述三个分量。 二)红外传感器实现左右手法则 的一般过程 迷宫法则看似简单,实则博大精深,上面讲述的最基本原理非常抽象,就象牛顿第一定理f=ma一样,需要结合实际例子才能理解,我们把他分散在第6、9、11、13等章节进行讲解,使迷宫法则逐渐从科学的殿堂走下来,让他成为同学们手中的玩物。 上面的“看到墙壁离开墙壁,看不到墙壁,接近墙壁.”是哲学层次的描述,也是最高层次的描述,抽象性最高,是一切迷宫算法的理论基础,哲学层次的描述和红外传感器的数量无关。从哲学层次出发,我们可以找到几种算法层次的描述,哲学层次和算法层次都和使用的机器人种类无关。从算法层次出发,算法进行具体化,我们就要进行代码编程,代码层次和硬件直接有关,也就是不同公司的产品代码可能会有差别。编码后,我们还要到场地上进行实地调试,使机器人真真能走出稳定快速的迷宫线路。 构造迷宫算法的理论依据越原始,算法变化的空间越大,设计难度也大,但出现又快又稳的算法的可能性也大,下面内容,以及第9,11,13等章节,我们将从各个层次上来论述迷宫算法的构建过程。         为了找到火焰,我们要让机器人做迷宫搜索,不管使用什么策略,左手法则和右手法则都是迷宫搜索的基础,我们至少要实现其中一种行走方法。在这里作者向大家推荐的方案是机器人左右手法则都会走,这样机器人灭火和回家的效率就比较高,在这里中间朝前的红外传感器是左右手法则共用的传感器。本章我们只是简单介绍一下迷宫算法,关于迷宫法则的深入讨论,作者把它放在第九章和 第十三章这两章再作论述。     6.1???? 左手法则 所谓左手法则就是机器人把左边的墙壁看成是参照物,机器人贴迷宫左侧的墙壁实现行走。要实现左手法则需要用到红外避障传感器,最常见的是用两个或三个传感器的实现方法,两个传感器来实现左手法则调试最简单。三个传感器的实现方法调试比较难,三个以上传感器的用法行走速度不一定就快,传感器之间相互干扰很难解决,在这里我们不作介绍。一个传感器的实现方法稳定性低,实战中很少有人使用。 ? 6.1.1? 三个传感器实现左手法则的算法 三个传感器实现左手法则可以使用两个传感器类似的方法,就是“看到墙壁,往外走,看不到墙壁往里走。”在这里我们给出比较典型的算法,下面的算法调试比较难,调试得不好,机器人容易做出自向矛盾的微动作,表现为停步不前,或者在某处发抖。在这里提供的算法原理是:前面看到右转,左45度看到右转,左边看到前进,什么也没有看到转左弧。 图6-1 ? 图6-1是三个传感器走左手常见的安装方法,根据调试经验,左传感器也向前偏转一定角度,这样设计,机器人走迷宫的速度会快一些。前红外传感器观察范围20cm左右 ,左传感器观察范围20cm左右,左45度传感器观察范围10cm左右,红外的观察范围、角度和下面面的马达参数一样,都需要调节以适应自己的机器人。假设纳英特机器人前面传感器接13口,左45度接12口,左红外接11口。参考代码如下: ? Void migong_left() { ?????? If (digital(13)==1)//前面看到,原地右转 ????????????? { ???????????????????? motor(0,40); ???????????????????? Motor(1,-70); ????????????? } ?????? elseIf (digital(12)==1)//左上角45度看到,原地右转 ????????????? { ???????????????????? motor(0,40); ???????????????????? Motor(1,-70); ????????????? } ?????? elseIf (digital(11)==1)//左边看到,前进 ????????????? { ???????????????????? motor(0,60); ???????????????????? Motor(1,60); ????????????? ) ?????? Else//什么也没有看到,转左弧 ????????????? { ???????????????????? motor(0,-80); ?

您可能关注的文档

文档评论(0)

136****2894 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档