调试绝地求生全军出击机器人太多时motor次数太多是什么意思?

已解决问题
求ASIMO阿西莫机器人的工作原理?
求ASIMO阿西莫机器人的工作原理?
浏览次数:476
用手机阿里扫一扫
最满意答案
想要用机器人做饭、做家务、打扫房间或购买食品杂货吗?机器人已承担了许多我们人类不想做、不能做或做得不如机器人好的工作。在全球各地的工厂中,无躯体的机械臂可以装配汽车、灵巧地将糖果装入盒内,以及从事各种其他单调乏味的工作。市场上甚至还出售一些机器人,它们唯一的工作就是使用真空吸尘器清洁地板或者修剪草坪。&本田的ASIMO机器人&Honda&Motor&Co.,&Ltd.&供图&我们中的许多人在成长过程中,都曾在电视电影里看到过机器人:有Jetsons的机器人管家Rosie,Star&Trek&TNG中的机器人飞船船员Data,当然,还有《星球大战》中的C3PO&。&目前研制的机器人远未达到Data或C3PO那样的境界,但它们的技术已呈现不小的进步。本田工程师研制ASIMO机器人已经17年多。在这篇文章中,我们将揭示ASIMO成为迄今为止最先进类人机器人的原因。&本田汽车公司开发的ASIMO(Advanced&Step&in&Innovative&Mobility,高级步行创新移动机器人)是世界上最先进的类人机器人。ASIMO网站宣称,ASIMO是世界上唯一可独立行走和爬楼梯的类人机器人。虽然世界上也有一些其他可行走的类人机器人,但它们均不具有ASIMO那样平稳流畅和逼真的步态。&&ASIMO除了可像人类那样行走外,它还懂得一些口头指令(目前只有日语),并能识别面孔。ASIMO有双臂和双手,可以做一些诸如开灯、开门、携物和推车之类的事情。&本田对ASIMO的构想&本田公司并非要设计一种类似玩具的机器人,而是要研制出一种可成为人类助手的机器人,用来照看房子、帮助老人、帮助坐轮椅者或卧床不起的人。ASIM高1.2米,与坐在椅子上的人的高度基本持平。这使得ASIMO能够正常完成份内工作,而不会显得太大和吓人。ASIMO外表友善、个头适中,常被人称为像&穿着太空服的孩子&,非常适合本田的研究目的。&ASIMO只有1.2米高&Honda&Motor&Co.,&Ltd.&供图ASIMO也可从事对人类来说过于危险的工作,例如进入危险区、排除炸弹或灭火。&ASIMO得到第一份工作!尽管ASIMO的黄金时期尚未到来(仍然需要改进,以发挥本田所希望的全部功能),有些ASIMO机器人已投放到日本的企业中,包括IBM日本分公司和位于东京的日本科学未来馆&(National&Museum&of&Emerging&Science&and&Innovation)。ASIMO在这些企业中担任接待员,迎接客人并带领他们参观。&&要执行这些任务,必须对ASIMO进行专门的编程,让它了解建筑物的布局,知道如何迎接客人和回答问题。尽管ASIMO的租金高达15万美元,比企业支付给人类接待员的薪资高出许多,但它带给人们一种酷的感觉,因此似乎物有所值。&本田的研究人员从研究昆虫、哺乳动物的腿以及装有假腿的登山者的动作开始,以便更好地理解行走生理学及其相关的问题,尤其是关节的运动。例如,我们利用身体(尤其是双臂)改变自身的重心,以获得平衡,这一事实对于正确掌握ASIMO的行走机制很重要。此外,研究人员还考虑到了我们通过足趾帮助自身获得平衡这一事实:ASIMO实际上在足部有一些软的凸起,起到类似于我们在行走时足趾所起的作用。这种软材料还可以吸收关节处的冲击,就如我们在行走时软组织所起的作用一样。&对ASIMO的生理机能进行仿人开发&Honda&Motor&Co.,&Ltd.&供图&ASIMO有臀部、膝和足关节。机器人具有研究人员称为&自由度&的关节。单一的自由度允许关节左右或上下移动。ASIMO全身拥有26个自由度,使它能自由移动。ASIMO的颈部有两个自由度,每只胳膊上有六个自由度,每条腿上有六个自由度。ASIMO的腿所需的自由度数量是通过对人类在平地和楼梯上行走时关节动作的测量确定的。&&ASIMO的身上还安装有速度传感器和陀螺仪传感器,&用于执行以下任务:&&&感测ASIMO的体位及移动速度&&向中央计算机传递平衡调节信息&&这些传感器的工作方式与我们的内耳保持平衡和定位的方式相似。为了完成人类肌肉和皮肤在感测肌肉力量、压力和关节角度方面所做的工作,ASIMO还具有关节角度传感器和六轴压力传感器。&&如果您不是非常了解机器人技术,您可能难以完全领悟ASIMO像人类一样行走的里程碑意义。ASIMO行走功能的最重要部分是转身能力。ASIMO能够像人类一样倾斜和平稳流畅地转身,而不是必须一停一顿地拖行或慢吞吞地转向。ASIMO在被绊倒、推动或遇到改变其正常行走的东西时,还可自行调整步伐。要完成这项任务,ASIMO的工程师们必须设法处理行走时产生的惯性力。例如,地心引力产生力,行走时的速度也会产生力,这两种力被称为&总惯性力&。当脚与地面接触时,也会产生力,称为&地面反作用力&。这些力必须平衡,且必须通过适当的姿势取得平衡。这被称为&零力矩点&(ZMP)。&为控制ASIMO的姿势,工程师们研究了三个控制领域:&&&地面反作用控制是指脚掌在削减地面凹凸不平的同时,仍能保持稳定的姿态。&&目标ZMP控制是指当ASIMO不能站稳且身体开始向前倒下时,它可通过向即将倒下的相反方向移动上半身来保持姿势。同时,它会加快行走速度,以快速平衡向下倒的力。&&&当启动ZMP控制时,脚部稳定位置控制开始起作用,&以调整步幅,恢复体位、身体速度与步幅间的协调。&ASIMO可感测倒下的动作并快速做出反应;但ASIMO的工程师们想要得到更多。他们希望机器人具有平稳的步态以及做到其他机器人不能做到的事情&&无需停住就能转身。&&Honda&Motor&Co.,&Ltd.&供图&当我们绕过角落时,我们会将身体的重心移向转弯处。ASIMO使用一种被称为&预测移动控制&的技术,也称为本田智能行走技术,完成同样的事情。ASIMO预测它应将其重心多大程度移向转弯内侧以及应将这种移动保持多久。因为该技术是以实时的方式起作用的,所以ASIMO无需停止步伐就能做到这一点,而其他机器人必须停止步伐才能做到。&&本质上,ASIMO每走一步都必须确定其惯性,并随后预测下一步需如何移动其重量,才能平稳地行走和转身。它会调整以下因素,以保持正确的姿势:&?&步幅&?&体位&?&速度&?&行走方向&&现在让我们来谈谈ASIMO的另一项才能:识别图像。&在机器人技术中,视觉是根据程序化模板来解释的被捕捉的图像。在制造环境中,机械臂制造汽车,机器人检查半导体芯片上的显微连接,这是一种受控的环境。照明始终是相同的,角度始终是相同的,要查看和了解的事物数量也是有限的。然而,在真实(和无序)的世界中,要查看和了解的事物会大量增加。&在工作时必须行经住宅、建筑物或户外的类人机器人必须能够懂得它&看到&的许多物体,必须能够理解阴影、偏僻的角落和动作。例如,机器人独自步入未知区域时,必须实时察觉和识别物体,选择诸如颜色、形状和边缘之类的特征,并与它知道的物体或环境的数据库做比较。在机器人的&记忆&中可能有数千种物体。&Honda&Motor&Co.,&Ltd.&供图&ASIMO的视觉系统包括用作眼睛的基本摄像机,位于头部。ASIMO使用专有的视觉算法,即使物体的方位和光线与其记忆数据库中的不同,它也可以看到、识别和避免碰撞物体。这些摄像机可察觉物体、识别程序化面孔,甚至理解手势。例如,当您向ASIMO举起手摆出&停&的姿势时,ASIMO即停住。它的面孔识别功能允许ASIMO向&熟悉&的人致意。&摄像机还可以通过USB将ASIMO看到的内容传递到ASIMO的控制器。因此,如果您正在通过PC控制ASIMO,您就可以看到ASIMO所看到的内容。&ASIMO不是自主式机器人,它不能进入房间和自行决定如何前进。因此必须对ASIMO进行编程,使它在具有它理解的标记的特定区域中从事特定的工作;或者必须由人手动控制。&ASIMO的&背包&携带有计算机(又称大脑),用于控制ASIMO的动作。ASIMO可由三种方法控制:&?&PC&?&无线控制器(有点类似操纵杆)&?&声音指令&&通过采用802.11无线技术以及膝上型或台式电脑,可以控制ASIMO,还可以看到它通过摄像眼看到的东西。ASIMO还可使用PC连线访问互联网,为您检索诸如气象报告和新闻之类的信息。&无线操纵杆控制器通过与人类控制遥控汽车相同的方式控制ASIMO的移动,可使ASIMO向前、向后、向旁边、沿对角行走,就地转身,或绕过一个角落。通过遥控使ASIMO移动或许不是很先进,但ASIMO确实能够自行调节步伐。如果让它向前行走,它在遇到斜坡或某种障碍时可以自动调节步伐,以适应地形。&您也可使用控制器上的按钮选择预先设定的手势,包括挥手、抓握之类的动作以及其他反应。&让ASIMO理解声音指令是最新添加的控制项目。它的数据库包括约30个不同的口头指令,用于激活ASIMO指令系统中的特定动作。&除了控制ASIMO动作的声音指令外,还有ASIMO可以口头回应的口头指令。这项功能使ASIMO有可能担任接待员的工作,迎接客人并回答问题。&&如同机器人技术领域中的大多数其他技术一样,ASIMO是由伺服马达提供动力的。它们是小而动力强大的马达,带有可移动四肢或表面转向特定角度的转轴,由控制器对角度进行控制。马达转到适当角度后,就会关闭,直到被指令再次运转时为止。例如,伺服系统可控制机器人臂关节的角度,将其保持在正确的角度,直到它需要移动为止,然后控制该移动。伺服系统使用位置传感装置(也称为数字解码器)来确保马达轴处于正确的位置。它们使用的动力通常与它们承载的机械负荷成比例。例如,承载轻微负载的伺服系统不会耗用很多能量。&ASIMO体内有26台伺服马达,用于移动它的臂、手、腿、脚、脚踝以及其他移动部分。ASIMO通过控制一系列伺服马达来控制每一种动作。&要求使用电池&ASIMO由可充电的40伏镍氢电池提供动力,充一次电可使用30分钟。电池置于ASIMO的中部,其重量也有助于建立ASIMO的平衡中心。ASIMO的电池充满电需四个小时,因此,如果需要让ASIMO长时间工作,有必要配一到两块备用电池。除ASIMO外,另外还有一些相当复杂的类人机器人似乎在做许多相同的事情(平稳转身除外)。&不同的是,它们中的大部分的建造规模小很多,更多是为了娱乐,而不是替人劳动。&就当前而言,ASIMO在技术方面最有力的竞争对手似乎是:&?&日本索尼公司的QRIO机器人&?&日本富士通公司的HOAP-1机器人&?&机器人医生&&还有两种不同的机器人用于世界各地的医院中,它们行走在走廊上,乘电梯在医院各处递送患者记录、X光片、药品以及其他物品。它们用轮子行走,并编有程序,以识别和跟随墙壁上的标记和条形码。本田从1986年起开始开发类人助手型机器人。本田工程师们认识到机器人必须能够轻易在房子或建筑物周围行走,这意味着行走技术必须精湛。因此,他们的最初尝试基本上是有腿的盒子。当行走机制的大部分都开发出来以后,机器人的臂、手和头都先后添加进来。&ASIMO阿西莫年表?&1986年&&静态行走&本田建造的第一部机器人被称为EO。EO走得很慢,走一步有时需要20秒。这是因为EO采用所谓的&静态行走&方式。在静态行走中,机器人在开始向前移动一步后,必须等到其重量在那只脚上取得平衡后,才开始向前移动另一只脚。人类不是那样行走的,因此科学家继续研究机器人行走技术。&?&1987年&&动态行走&迄今工程师们已开发出更像人类的&动态行走&方法。通过这种行走技术,机器人(现在称为原型E1,随着研究的进展,很快又出现E2和E3)进入到下一阶段,即可移动自身重量,并向前移动另一只脚,以稳住自身,而不会向前倒下。&?&1991年&&像人类一样行走&在原型E4、E5和E6中,本田工程师们完善了行走机制,使得机器人可轻易在斜面上行走、爬楼梯以及在不平整的地面上行走。因为像人类一样真实地行走实际上需要用到身体、双臂和头,工程师们必须进入到下一步,为机器人添加身体中的其他部分。&?&1993年&&外貌更像人类的机器人&下一代原型(P1、P2和P3)具有身体、双臂,双手和头,看起来更像是&类人&。&然而P1身材庞大,高188厘米,重175公斤。P2的高度略有下降,但重量更重,有210公斤,人们决不愿意在厨房中被这样的东西踩到脚趾。但它可在不平整表面、斜面上行走得很好,甚至可抓住物体和推动手推车。P2甚至可在被推时保持平衡。最后,P3建造得更为令人舒服(不那么令人恐惧),高157厘米。重130公斤,行走速度更快,比以前的机器人走得更平稳。&?&1997年&&我们知道的ASIMO问世&人们对行走系统进行了更多的改进,由此允许ASIMO优雅地行走并轻易进入几乎所有的环境中。复杂的髋关节允许ASIMO平稳地转身,而其他机器人必须停住和拖行才能做到这一点。&&考虑到ASIMO的用途,工程师们决定进一步缩小ASIMO的尺寸,变成122厘米,以便使它不仅不会对坐着(就这一方面而言,或站着)的人构成威胁,还会具有与人对眼的平视高度。&这一高度也使ASIMO可以以桌子或计算机的高度工作、够到灯的开关和转动门的把手。ASIMO具有很坚固而又质地较轻的镁合金身体,覆有塑料&皮肤&,重量只有52公斤。&被称为&预测移动控制&的技术允许ASIMO自动预测下一动作,并移动重量进行转身。也可实时调节ASIMO的步幅,让它走得更快或更慢。P2和P3必须使用程序化行走模式。&20世纪60年代起,机器人已应用到许多领域。&随着计算机处理器的日益强大和机器人技术扩展到新的领域,不久的将来我们就会拥有&Rosie&为我们做饭和打扫房子。本文来源:http://www.robot360.cn/
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is okABB机器人调试指导手册正式版_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ABB机器人调试指导手册正式版
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩25页未读,
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 上传文档
 下载
 收藏
粉丝量:40
该文档贡献者很忙,什么也没留下。
 下载此文档
信息技术走进机器人世界
下载积分:1000
内容提示:信息技术走进机器人世界
文档格式:DOC|
浏览次数:412|
上传日期: 07:43:34|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
信息技术走进机器人世界
关注微信公众号机器人制作与程序设计前言我们现在已经身处于信息发达的时代, 当今世界的微电子软、 硬件技 术的发展一日千里。各种各样的智慧家居电器如洗衣机、空调、微波炉、 冰箱、数码相机等等层出不穷,已越来越多地为广大民众所普遍使用,让 我们的生活倍感舒适和安逸。 顺应时代的潮流, 青少年学生应更多地了解身边的科技发展, 跟上时 代的步伐。本课程的开设是以电脑机器人为教学媒体,通过电脑机器人的 制作活动,以兴趣带动学习,使学生掌握最新的微电脑控制技术及相关技 能,适应当今社会对人才的需求。 电脑机器人是集机械设计、 微电子技术、 软件技术及人工智能技术于 一体科学结晶。青少年学生往往对其充满好奇和探究的欲望,正因如此, 本课程可以通过一系列由浅入深的设计项目,让学生边做边学,在快乐中 学习,在探究中去主动思考,从而学习到程序、电子、机械等软硬件的综 合知识。 需要一提的是:尽管在完成本课程的学习后,学生可以参与各类的机 器人竞赛,但本课程并非以参与竞赛为目的而开设的。参与竞赛只是作为 一种提高学习兴趣和检验学习效果的手段,本课程开设的真正意义是在于 培养具备综合素质的理工科后备人才,让学生尽早了解身边的科学,明白 学以致用的目的。 编者 2010 年 07 月 第三版 机器人制作与程序设计 机器人制作与程序设计==目录==前 言 .......................................................... 1 第一章 进入智能机器人世界 ....................................... 11.1 认识机器人 ............................................................1 1.1.1 机器人——Robot 一词的来源 ..................................1 1.1.2 什么是机器人? ...............................................1 1.1.3 机器人的基本的机能 ..........................................2 1.1.4 机器人构成的基本条件 ........................................2 1.2 机器人的种类 ..........................................................4 1.3 习题...................................................................5第二章 认识机器人的组成 ......................................... 62.1 机器人的硬件组成 ......................................................6 2.2 机器人思维器官:机器人控制模块 ........................................7 2.3 动作器官 ..............................................................9 2.4 感觉器官 .............................................................10 2.5 创造思想的工具——ROBOEXP .............................................10 2.5.1 主窗体界面 .................................................11 2.5.2 应用程序编辑界面 ...........................................11 2.5.3 机器人快车工具栏说明 .......................................12 2.6 ROBOEXP 安装与升级.....................................................13 2.6.1 系统要求 ...................................................13 2.6.2 《RoboEXP 机器人快车》的安装 ...............................13 2.6.3 《RoboEXP 机器人快车》软件的卸载 ...........................16 2.6.4 《RoboEXP 机器人快车》软件的升级 ...........................17第三章 照明机器人 .............................................. 183.1 基础知识 .............................................................18 3.1.1 发光模块 ...................................................18 3.1.2 新建应用程序 ...............................................19 3.1.3 模块的操作 .................................................20 3.1.4 线的操作 ...................................................22 3.1.5 硬件信息 ...................................................24 3.1.6 保存机器人程序 .............................................26 3.1.7 编译操作 ...................................................26 3.1.8 下载操作 ...................................................28 3.2 照明机器人制作........................................................29 机器人制作与程序设计 3.2.1 结构搭建................................................... 29 3.2.2 软件编程................................................... 30 3.3 常见问题............................................................. 32 3.4 习题................................................................. 32 3.5 选学部分............................................................. 32第四章 进退自如的机器人.........................................344.1 基础知识 ............................................................. 34 4.1.1 L 形马达模块............................................... 34 4.1.2 马达模块图标 .............................................. 37 4.1.3 延时模块 .................................................. 39 4.1.4 循环结构 .................................................. 42 4.1.5 无限循环结构 .............................................. 44 4.1.6 复制模块图标 .............................................. 45 4.1.7 删除模块图标 .............................................. 46 4.1.8 文字说明 .................................................. 46 4.2 进退自如的机器人制作 ................................................. 47 4.2.1 任务分析 .................................................. 47 4.2.2 结构搭建 .................................................. 48 4.2.3 程序编写 .................................................. 52 4.3 常见问题............................................................. 56 4.4 习题 ................................................................. 57 4.5 选学部分............................................................. 57第五章 综合设计 I ...............................................595.1 基础知识 ............................................................. 59 5.2 机器人制作学习与实践................................................. 59 5.2.1 制作机器人的基本流程 ...................................... 59 5.2.2 舞蹈机器人制作实践 ........................................ 61 5.3 常见问题............................................................. 70 5.4 习题................................................................. 70第六章 会辨色的机器人...........................................716.1 基础知识 ............................................................. 71 6.1.1 灰度测量模块 .............................................. 71 6.1.2 内置液晶模块 .............................................. 72 6.1.3 变量 ...................................................... 72 6.1.4 Calculate 模块的应用....................................... 77 6.2 会辨色的机器人制作................................................... 83 6.2.1 结构搭建................................................... 83 6.2.2 编程模块说明 .............................................. 83 机器人制作与程序设计 6.2.3 程序编程 ...................................................86 6.3 常见问题 .............................................................88 6.4 习题 .................................................................89 6.5 选学部分 .............................................................89 6.5.1 代码分析 ...................................................89第七章 会避障的机器人 .......................................... 917.1 基础知识..............................................................91 7.1.1 转轮触碰检测模块 ...........................................91 7.1.2 触碰检测模块图标 ...........................................93 7.1.3 内置发音模块 ...............................................96 7.1.4 分支结构 ...................................................96 7.1.5 7.1.6 IfElse 模块的应用 .........................................97 IfElse 模块的判断条件 .....................................987.2 会避障的机器人制作....................................................99 7.2.1 结构搭建 ...................................................99 7.2.2 模块与端口的连接 ..........................................102 7.2.3 编写程序 ..................................................102 7.3 常见问题 ............................................................103 7.4 习题 ................................................................103 7.5 选学部分 ............................................................103 7.5.1 音符与频率的关系 ..........................................103第八章 三次往返跑的机器人 ..................................... 1078.1 基础知识.............................................................107 8.1.1 有限循环结构 ..............................................107 8.1.2 循环条件 ..................................................108 8.1.3 8.1.4 continue 的应用 ..........................................108 break 的应用 .............................................1108.2 三次往返跑的机器人制作...............................................112 8.2.1 任务分析 ..................................................112 8.2.2 结构搭建 ..................................................112 8.2.3 程序编写 ..................................................113 8.3 FOR 循环 .............................................................117 8.3.1 For 循环结构 ..............................................117 8.3.2 For 循环应用 ..............................................118 8.4 常见问题.............................................................119 8.5 习题 ................................................................119 8.6 选学部分 ............................................................120 8.6.1 源代码分析 ................................................120 机器人制作与程序设计 8.6.2 For 循环与 While 循环比较.................................. 121 8.6.3 用 continue 实现往返跑 .................................... 121 8.6.4 用 break 实现往返跑 ....................................... 122第九章 综合设计 II .............................................1249.1 基础知识............................................................ 124 9.2 走迷宫机器人制作 .................................................... 124 9.2.1 任务简介 ................................................. 124 9.2.2 任务分析 ................................................. 125 9.2.3 算法与结构搭建 ........................................... 127 9.2.4 程序编写 ................................................. 132 9.3 常见问题 ............................................................ 134第十章 SENSOR MONITOR 的使用 ...................................13510.1 SENSOR MONITOR 简介 ................................................... 135 10.1.1 简介 .................................................... 135 10.1.2 使用说明 ................................................ 135 10.2 数据采集应用....................................................... 139 10.2.1 传感器的安装 ............................................ 139 10.2.2 Sensor Monitor 的使用.................................... 139 10.3 使用 RCU 文件检验传感器............................................. 142 10.4 常见问题 ........................................................... 142 10.5 习题............................................................... 142 10.6 选学部分........................................................... 143知识点分类目录 ................................................144 第一章 进入智能机器人世界第一章 进入智能机器人世界1.1 认识机器人1.1.1 机器人——Robot 一词的来源 “Robot”一词源自捷克语“Robota” ,其含义是“农奴”的意思。 1920 年捷克作家卡雷尔·卡佩 克(Kapel Capek)发表了科幻剧本 《罗萨姆的万能机器人》 , 它讲述了 以下的科幻剧情: 罗萨姆公司把机器人当人类劳 动工具一样生产出来,这些机器人 最初是没有感情的,它只会机械地 按照主人的命令去代替人类劳动。 后来, 由于偶然的原因使机器 图 1.1.1 人有了感情和知觉,他们发现人类 十分自私自利和不公正,于是向人 类发动攻击,并因此消灭了人类。但机器人不知道如何制造自己,为了繁衍后代,它们开 始寻找人类的幸存者,但没有结果。 最后,一对感知能力优于其他机器人的男女机器人相爱了,终于机器人进化成人类, 世界又起死回生。 1.1.2 什么是机器人? 各国科学家对它的定义都有所不同,而且随着 时代的变化,机器人的定义也在不断发生变化。 中国的科学家们把机器人定义为: “机器人是一 种自动化的机器,而且其具备一些与人或生物相似 的智能能力,如感知能力、规划能力、动作能力和 协同能力,是一种具有高度灵活性的自动化机器。 ” 图 1.1.21 机器人制作与程序设计 1.1.3 机器人的基本的机能 机器人作为一种具备一定智能的自动化机器,有如下 3 个基本的机能: 1) 对外界产生作用:相当于人 的手和脚, 可称之为动作器官。 2) 获取外界信息: 相当于人 的眼、耳、舌头和皮肤,可称 之为感应器官。 3) 规划作业: 相当于人的大 脑,可称之为思维器官。 1.1.4 机器人构成的基本条件 人类是地球上最高级、 最聪图 1.1.3明的动物, 基本条件是因为人类在漫长的进化过程中不但拥有了复杂的、 完美的身体结构, 而且还拥有了发达的大脑。那么机器人要发展成为优秀的、高级的机器人也应该具备相应 的条件。 1、机械部件 正如人类的身体需由骨 架和肌肉牵引才能完成一定 的动作一样,机器人的身体 和动作表现也是由特定的机 械结构组成的。在制作机器 人的时候,我们不仅可以使 用课堂上提供的拼装套件, 还可以选取身边随手可得的 各种材料作为机器人的加工 原料。例如:木板、金属板、 塑料板、还有像螺丝、螺帽 那样的各种各样的五金紧固 件。 图 1.1.4只要我们在日常生活中留心观察身边的各种机械设备的动作,例如缝纫机、变速自行 车、起重机、挖土机等等,相信一定能受到良好的启发,从而设计出能满足我们自己功能 需求的机械结构。2 第一章 进入智能机器人世界 2、感应和动作电子部件 一个真正拥有智能的机器人通常都 需要具备一定的感知能力,具有感知能 力的电子器件 我们通常又称 之为传感 器,顾名思义,这类器件具备了“传” 递“感”应信息到机器人大脑的功能。 和人的感觉器官——眼、耳、舌、 鼻、皮肤分别对光线、声音、味道、气 味、触碰、气温起感应作用一样,构成 机器人的电子 传感器也是按 功能分类 图 1.1.5的,例如光源传感器、声音传感器、气体(煤气、烟雾)传感器、压力传感器、温度传感 器等等;它们的灵敏度和感应范围甚至超越了人的感知界限,例如电子指南针、红外线传 感器等。 因此,在我们设计机器人的时候,应该根据设计的要求,选用合适的电子传感器件。 3、机器人的大脑 机器人的大脑可称之为 RCU(Robot Control Unit),RCU 就好象一台微型的家用电脑, 它可以执行程序指令,并向具体动作器官发出相应的动作信息。图 1.1.63 机器人制作与程序设计4、机器人的思维 智能机器人尽管具备了以上的感 应、动作和大脑器官,但它只具备了作 为智能机器人的物质基础,RCU 初期是 完全空白的,像初生的婴儿一样。需要 我们用学到的编程知识,按照我们的意 图编写出特定的程序,灌输给它后才能 变成真正具备智能的大脑。 机器人对知识的掌握是非常快速 的,而当它跟人类一样能够对外界的复 杂环境进行观察、思考,然后做出反应 的时候,我们的机器人就拥有真正的智 能了。#include &DelayNs\DelayNs.c& #include &SetLedState\SetLedState.c& int main(void) { while(1) { SetLedState(_LED_test_,1); DelayNs(2); SetLedState(_LED_test_,0); DelayNs(2); } return 1; }因此,必须学习编写机器人程序的 方法,才能让我们的机器人不但拥有漂亮的躯壳,还能拥有真正的灵魂。1.2 机器人的种类机器人的分类方法很多,这里我们仅依据 机器人的应用来分类: (1) (2) 工业机器人: 可分为搬送、 焊接、 装配、 喷漆、 检查等机器人, 主要用于工厂内; 极限作业机器人: 主要应用在人们难以 进入的场所和环境,例如在核电站、海 底、宇宙空间等进行作业的机器人。也 包括建筑、农业机器人等。 (3) 娱乐机器人:有弹奏乐器的机器人、舞 蹈机器人、宠物机器人等,具有某种程 度的通用性。 也有适应环境而改变行动 的宠物机器人。 此外,也还有正在研制开发中的福利机器 人、医疗机器人、灾难救援机器人、乒乓球机器 人一类机器人。在上述分类当中,工业机器人最 早开始普及, 极限作业机器人和娱乐机器人多是 图 1.2.1由工业机器人改进的。近来正在积极开展拟人(类人)机器人的研究和制作。4 第一章 进入智能机器人世界1.3 习题1 . 到 internet 上 面 查 找 机 器 人 的 相 关 网 站 了 解 更 多 的 机 器 人 知 识 , 例 如 www.robotplayer.com 、www.iroc.org 等 。 2. 想一想,达到什么条件才能称为机器人,机器人最基本的要素是什么? 3. 用你自己的方式,表达你心目中未来的机器人应该是什么样的?5 机器人制作与程序设计第二章 认识机器人的组成学习目标通过了解一种拼装式机器人套件的构成部分; 认识机器人的组成原理。第一章中我们了解到,未来机器人可能是我们最亲密的朋友。下面以一种拼装式机器 人套件的为例,说明机器人的组成原理。 拼装式机器人的外形是用各种拼装零件组合而成的,所以它没有固定的外形和功能, 是由我们的创意和设计决定的。 而且当我们觉得拼装套件提供的零件不能满足设计要求时, 一些身边随手可得的各种材料都可以充当拼装零件,就看你的动手能力了。 拼装式机器人是完全开放式的,它给了我们无限的创意空间。在整个机器人的制作过 程中,不但能学习到制作机器人的知识,而且还能培养我们科学的思维方式和良好的动手 能力。机器人有很多动作器官、感觉器官、思想器官等硬件,同时也必须具备一定的思想 ——程序软件,熟悉了这些硬件器官和软件编程后,我们就可以轻而易举地给机器人添加 各种功能。2.1 机器人的硬件组成在种类繁多的机器人当中,最让人感兴趣的就是仿人类机器人了,如图 2.1.1。因为 人类是最高级的动物,能让机器人各项机能达到人类的高度是每一个从事此工作的科学家 不断追求的梦想。 人体外形各项器官基本可划分为动作器官、感觉器官、思维器官三部分,机器人套件 里的电子模块也是按这三部分来划分的。6 第二章 认识机器人的组成图 2.1.1 动作器官包括:可以让我们机器人唱歌的发音模块、可以装饰和指示的发光模块、速度可 以调节的马达模块等。 感觉器官包括:可以分辨黑白甚至是不同颜色的灰度测量模块、可以检测碰撞的触碰检测 模块等。 思维器官包括:RCU,也就是中央控制器,整个机器人的核心模块。 当然还有一些辅助功能的拼装配件等等。 现在我们已经大致清楚了机器人的硬件组成部分,但是具体每个硬件具有什么功能却 不太清楚,可能有些比较容易理解,但有些却是陌生的。下面我们对拼装式机器人套件里 的模块做一个系统的介绍。1. 你所看过或者所知道的机器人能够帮助人类完成什么工作? 2. 你想设计一个什么样的机器人来帮你完成某项工作?2.2 机器人思维器官:机器人控制模块机器人控制模块(RCU)可比作机器人的“大脑” ,机器人要实现各种功能都是靠它来 指挥。 “大脑” 的初期是完全空白的, 像初生的婴儿一样, 需要我们用学到的编程知识教它。 这样机器人才能对外界的复杂环境进行观察和思考, 然后做出相应的反应, 完成各种动作! 主控板能承受 7 伏到 12 伏的电压,并且配有多个电子接口,所有的电子接口均可由 同学们自由定义,可以任意接插各种各样的传感器和电子配件。电子线路开放,方便同学 们深入学习。主控板如图 2.2.1。7 机器人制作与程序设计图 2.2.1 我们可以从上图看到: 第一类数字端口,以“Dx”表示。它提供稳定的 5V 电源,可以接插任何检测模块(只 返回 0、1 值的)和输出模块等等,不建议接插大功率模块; 第二类模拟端口,以“Ax”表示。它提供稳定的 5V 电源,可以接插任何传感器(返回 0~255 的测量值)模块和输出模块等等。它最主要的用途是接插模拟传感器; 第三类马达端口,以“Mx”表示。它提供直接外部输入的电源(或者是电池) 。由于 RCU 可以承受较高电压,所以此端口可以接插大功率的设备,例如大功率马达等等; 接口上方,可以清晰地看到有 G,V,X,Y 四个字母。其中 G 指的是地线(黑线) ;V 指的是电源(红线) ;X,Y 是信号线(黄、棕线) 。字母正下方的插针,应当连接相应颜色 的接线。最简单一个分辨方法就是:接插时,黑色线放两边。 “ON/OFF”上面的圆形按钮是电源开关。除了用于启动机器人也用于程序下载,在用 户下载应用程序过程中,当软件提示“等待硬件连接…”时,按一下此按钮重新启动电源即 可进行程序下载。 电源开关左面的“PWR”指示灯是电源指示灯。正常状态下,该灯为绿色,表示电源正 常。如果偶尔闪动红色,表示电压偶尔跌落到正常状态以下,请注意编程时不应当马达高 速地正反转动。如果一直为红色,或者红色闪动频繁,表示电源电压不足,请准备电池准 备更换,或者是使用功率足够的外接电源。 8 第二章 认识机器人的组成 电源开关右面的“COM”指示灯是通讯指示灯。当 RCU 有数据发出或者是正在下载通讯 时,此灯会闪动,表示通讯正常。 圆形的插座孔是电源插座。可以接插 DC5.0 的电源插头,电源极性内正外负,7V~12V 范围均可以使用。 (注意:极性切勿相反!电压切勿超过限制!电源功率应当足够。 )在机 器人程序调试过程中,为了节约电池电量,机器人可以接外部电源。 中间方形的是程序下载口,也称作通信端口。RCU 可以通过该端口下载保存程序,也 可以和外部通信。1. 简单描述一下机器人控制模块的主要功能? 2. 看看机器人控制模块有哪些端口?2.3 动作器官动作器官也可以称为动作模块, 动作模块使机器人能够模仿人类或动物的某些动作, 我们可以为机器人命名为它所模仿的对象,如人形机器人、机器狗、蛇形机器人等等。 下面就对各个动作模块做简单介绍。 模块名称 实物外形 模块功能 具有发光功能, 可亮 可灭。 BE-1510 红光可以带动物体转动, BE-3548X 马达模块 有前转或后转选择, 从静止到最高速的 运动过程中有 0— 100 节速度可调节。当使用到马达模块在运行时,它会给整个系统产生强大的 电流,该电流会对发音模块产生不同程度的电磁干扰,有可能 导致频率不准确,出现几种音。发音的频率越高,影响越大。 发音频率的建议值:50 到 1800(赫兹) ,要停止发音,频率值 应设为 0(赫兹) 。9 机器人制作与程序设计1. 叙述发光模块有什么功能? 2. 在套装盒里找到以下模块实物:发光模块,马达模块,认识它们的造型特点。 3. 在软件的使用手册里面看看不同模块的特点和使用方法。2.4 感觉器官众所周知,人是用眼睛去观察这美丽的世界,用耳朵去聆听这世界美妙的音乐,用 心去感受这世界的一切的。机器人也能做到与外界环境沟通,现在我们来介绍一下机器人 的感觉器官——机器人的各种感觉传感器。 模块名称 实物外形 模块功能 可以测量 BE-1111 灰度测量 模块 物体的灰 度值。可以检测 BE-1610A 转轮触碰 模块(V2) 触碰情况, 察觉是否 碰到物体。1. 讲一讲灰度测量模块能测量什么? 2. 讲一讲触碰模块能检测什么? 3. 在软件的使用手册里面查看不同传感器模块的特点和使用方法。2.5 创造思想的工具——RoboEXPRoboEXP 又称为机器人快车,是用于赋予机器人思想的好工具,它是图形化的编程方 式,比传统的文本编程更加高级。它的易学、易用、易读、易懂,都非常适合于编程思维 的培养。机器人快车采用基于工程 c 的图形化、模块化编程语言,全部功能模块使用图标 表示,遵循自顶向下的编程逻辑思维过程。读者只需简单地拖放各个模块图标,绘制出流 程图,机器人快车就能自动生成可视化 c 源代码,帮助您轻松完成编程,快速掌握如何控 制机器人。机器人快车 RoboEXP 软件是完全开放的,方便大家更有效的学习。不但可以学 习到功能模块的内核,还可以学习编写定义自己的功能模块。 下面介绍一下 RoboEXP 的基础知识。 10 第二章 认识机器人的组成 2.5.1 主窗体界面 打开机器人快车软件后,你就可以看到如图 2.5.1 的界面了。其中: 菜单栏:显示机器人快车的快捷菜单 工具栏:显示机器人快车的快捷按键 标签栏:显示所有编辑窗体的名称,方便用户在不同编辑窗体之间的切换 模块库:显示所有流程控制模块、系统模块和用户自定义模块 主编辑窗口:显示各个编辑窗体 属性、代码、变量窗口:显示属性、C 代码、和变量的窗体 输出窗口:显示编译输出信息图 2.5.1 2.5.2 应用程序编辑界面 拖放图标是机器人快车可视化编程的基础,我们的编程思想就是通过流程图来表 现。而流程图主要表现为图标、图标间的连线和参数设置。 我们可以从模块库中拖动各类图标到编程区,然后用线把编程区里的图标按照一 定的逻辑顺序连起来,以此实现自己的编程思想。 代码区将显示与编程区中已连线图标对应的 C 语言代码,如图 2.5.2。11 机器人制作与程序设计图 2.5.2 2.5.3 机器人快车工具栏说明 机器人快车的工具栏共包含 21 个快捷按键,如下表: 快捷键 新建 打开 保存 剪切 复制 粘贴 删除 撤销 重做 自动选择工具 选择 连线 滚动 文字 左对齐 右对齐 顶部对齐 底部对齐 自动对齐 编译 图标 说明 创建新的应用程序或函数,可以是图形化的或者 C 语言代码。 打开以前所创建应用程序或函数。 保存当前编辑窗体的内容。 把选中的图标或线剪切到剪贴板。 把选中的图标或线拷贝到剪贴板。 把剪贴板中拷贝的图标或线粘贴到当前编辑窗体中。 把选中的图标或线删除掉。 取消刚做的操作。 再做一次同样的操作。 根据鼠标不同的位置,自动处于相应的状态,此值为默认。 在图形编辑区,鼠标处于选择状态。 在图形编辑区,鼠标处于连线操作状态。 在图形编辑区,鼠标处于滚动状态。 在编辑窗口中单击后可输入说明文字。 将选定的模块按左边对齐排列。 将选定的模块按右边对齐排列。 将选定的模块按上边对齐排列。 将选定的模块按下边对齐排列。 将选定的模块按流程图结构自动排列整齐。 编译当前编辑窗体的程序。 12 第二章 认识机器人的组成 下载 将当前编辑窗体的程序下载到机器人中。1. 机器人快车的主窗体界面由哪几部分组成? 2. 机器人快车的应用程序编辑界面由哪几部分组成? 3. 机器人快车的工具栏有多少个快捷按键,各含义是什么? 4. 自己试用一下机器人快车软件。2.6 RoboEXP 安装与升级2.6.1 系统要求 软件环境 操作系统:Windows 98/Me/2000/XP Internet Explorer:版本不低于 5.01 最低配置: CPU:奔腾 MMX166 以上 内存:64MB 硬盘空间:80M 硬件环境 驱动器:8 倍速 CD-ROM 以上 其它设备:声卡(非必备) 建议配置: CPU: 奔腾 II 或更高 内存: 128M 以上 其他设备同最低配置2.6.2 《RoboEXP 机器人快车》的安装 1、安装要求 为了正常运行机器人快车,您所使用的 IE(网页浏览器)的版本必须是 5.01 以上。 如果您正在使用低于 5.01 版本的 IE,那么您必须先升级 IE。 通过以下方法可以知道 IE 的版本:打开 IE,点击 IE 的“帮助” 菜单中的“关于 Internet Explorer”,如图 2.6.1。13 机器人制作与程序设计图 2.6.1 您就可以在弹出的对话框中看到 IE 的版本了。 2、安装步骤 1) 2) 3) 4) 5) 6) 将 RoboEXP 的安装光盘放入光驱,系统的安装程序会自动运行(Autorun); 如果您的电脑没有自动运行功能,您可以通过双击光盘驱动器根目录下的 Setup.exe 文件进入安装程序; 安装程序开始运行,出现 RoboEXP 的安装向导窗口; 在初始界面选择您所要安装的语言版本,然后按“下一步”; 根据提示信息输入单位信息、用户信息和 CD-KEY; 根据提示信息完成 RoboEXP 的安装。3、软件设置 点击菜单栏中“工具”主菜单下的“选项”子菜单,我们可以在弹出的设置对话框中 设置机器人快车的系统参数。 1) 编译器 机器人快车的编译功能必须通过编译器才能实现, 所以在编译之前必须为机器人快车 指定一个编译器。在选项对话框中点击“编译器”项,如图 2.6.2。图 2.6.2 14 第二章 认识机器人的组成 说明: 编译器是指选择编译器,点击“浏览”按钮,然后在对话框中选择中鸣编译器 (JMCompiler.exe)或其它编译器。中鸣编译器(JMCompiler.exe)可以在机器人快车安 装目录下的 Compiler 目录下找到,我们一般使用该编译器。 参数是指编译命令的参数。我们一般将默认项打上勾,表示使用默认参数。 2) 全局设置 在选项对话框中点击“全局设置”项,如图 2.6.3。图 2.6.3 说明: 不用提示更新:当您打开项目时,如果项目的模块版本与当前机器人快车的模块版本 不相同,系统不会弹出提示更新的对话框。虽然系统没有提示,但您可以通过点击“项目” 主菜单下的“更新模块”子菜单进行手动更新。 提示更新:当您打开项目时,如果项目的模块版本与当前机器人快车的模块版本不相 同,系统会弹出提示更新的对话框。 在提示更新下有三个复选框,软件已经选定在编译前保存文件,用户可以选择在下载 前是否编译文件,下载后是否校验数据。若没有选择下载后校验数据,用户在下载时就会 提示校验数据。 3) 流程图 流程图选项可以设置图形化编程窗口的显示属性和一些相关属性。在选项对话框中点 击“流程图”项,如图 2.6.4。15 机器人制作与程序设计图 2.6.4 2.6.3 《RoboEXP 机器人快车》软件的卸载 以机器人快车 v3.7 为例。 方法一: RoboEXP 本身提供了卸载功能,利用它您可以方便地删除“RoboEXP”的所有文件、程 序组或快捷方式。 具体步骤是,依次单击【开始】 /【程序】/机器人快车 v3.7→单击卸载机器人快车 v3.7→弹出设置卸载程序界面;如图 2.6.5。图 2.6.5 点击“是(Y)”后出现该界面,卸载完成,如图 2.6.6。图 2.6.616 第二章 认识机器人的组成 方法二: 当然,您也可以在 Windows 系统的控制面板中“添加/删除程序”选中“RoboEXP”, 然后点击“添加/删除”按钮,就可以完全卸载了。 说明:其他版本的卸载与该版本的卸载相同。 2.6.4 《RoboEXP 机器人快车》软件的升级 机器人快车版本必须高于 1.0 才能升级。 点击“帮助”主菜单的“关于...”子菜单, 就能查看当前机器人快车的版本了,如图 2.6.7。图 2.6.7 用户可以在 http://www.robotplayer.com/download/下载最新的升级包文件。 机器人快车升级包括两部分:一是模块库的升级,二是机器人快车程序的升级。 先退出机器人快车,然后双击升级包文件,执行升级程序,根据说明文字完成升级。1. 2. 3.怎样查看 IE 的版本信息? 机器人快车的软件设置由哪几部分组成? 如何进行机器人快车的卸载?4. 如何进行机器人快车的升级?17 机器人制作与程序设计第三章 照明机器人学习目标了解发光模块的应用以及编写机器人程序的流程; 掌握机器人快车的基本操作。 学习要点:发光模块、新建应用程序、模块的操作、 线的操作、硬件信息、保存机器人程序、编译操作、 下载操作、程序顺序结构、简单流程图。制作一个能够发光的机器人,让机器人能够控制灯的发光或者熄灭。3.1 基础知识在制作一个照明机器人之前,我们先要了解必需的软、硬件知识,包括机器人控制器、 发光模块以及机器人快车软件的一些基本操作。 3.1.1 发光模块 一个能够实现发光功能的电子部件,如图 3.1.1 所示。图 3.1.1 ①:发光二极管; 18 第三章 照明机器人 ②:标签 BE-1510; ③:接口线,由三条线组成。黑色线:地线, 红色线:电源线(+5V) , 黄色线:信号线; 套件里面还有一种标签是 BE-1511 的发光模块。使用上和 BE-1510 基本相同,除了发 出的光线是绿色外。 发光模块主要用作指示用途。例如:在机器人走轨迹比赛的过程中,当检测到黑线的 时候,使发光模块点亮,否则熄灭;在机器人灭火比赛的过程中,当检测到火焰的时候, 使发光模块点亮,否则熄灭,等等。 3.1.2 新建应用程序 点击菜单栏中“文件”主菜单下的“新建”子菜单,或者直接点击工具栏的 弹出的对话框如图 3.1.2 所示。 按键,图 3.1.2 项目类型: 图形化编程——以图形化的模块为基本编程元素进行编程。 用户只需简单地拖放各 种模块图标,绘制出流程图,机器人快车就能自动生成可视化 C 源代码; C 语言代码——编程区中用可视化的 C 语言源代码进行编程。 模板: 应用程序——应用程序通过编译下载到机器人上使机器人执行程序所要求的任务; 函 位置输入框: 可以直接在输入框中修改新建的位置,也可点击“浏览”按钮并在弹出窗体中选 择新建文件的位置。 名称输入框: 将要创建的应用程序、函数的名称。虽然 RoboEXP 会自动产生一个名称,但您也可 以根据自己的喜好,取一个有意义的名称。 说明输入框: 19 数——函数是应用程序的组成部分,不能直接下载到机器人上执行所给定 的命令。它只能被应用程序调用才可以完成程序所给定的任务。 机器人制作与程序设计 将要新建的应用程序、 函数的说明文字。 您可以在说明输入框中输入一些说明文字, 用来说明其作用或者其它需要注意的地方。 注意: 位置和名称的修改必须遵循 Windows 操作系统的命名规范, 即文件夹和文件 名中不能包含\/:*?”&&|等字符。另外,位置和名称中也不能含有空格,也不能有中文字 符。 点击“确定”按钮或者直接按回车(Enter)键,RoboEXP 就在制定目录下新建一个名 称输入框内名字的目录,并把应用程序的文件保存在该目录下。 3.1.3 模块的操作 包括拖放模块图标,移动模块图标,复制模块图标,删除模块图标,模块的调用,添 加删除模块说明。 1、拖放模块图标 拖放图标是机器人快车可视化编程的基础,我们的编程思想就是通过流程图来表 现。拖放图标主要涉及到两个区域,第一个是模块库区,第二个是编程区。 我们可以从模块库中拖动各类图标到编程区, 然后用线把编程区的图标按照一定的 逻辑顺序连起来,以此实现自己的编程思想。 代码区将显示与编程区中已连线图标对应的 C 语言代码。 方法: 选中模块 取消选择 例子如下: 点击模块库中的“执行模块”,模块库界面如图 3.1.3 所示。 鼠标左键单击该模块,模块会随鼠标一起移动,再移动到图形化编程 选中模块后,用鼠标右键单击该模块,取消该模块的选择。 区窗口,单击鼠标左键;图 3.1.3 选中发光模块图标 ,并按住鼠标左键不放,把其拖到编程区后再放开鼠标左键,或选中图标后,放开鼠标左键,移动光标到编程区后,再单击鼠标,即完成图标的拖放操作。 20 第三章 照明机器人 虽然发光图标已经被拖到编程区内,但代码区里的 C 语言代码并没有改变。这是因为 Start 模块图标 和发光模块图标之间还没有用线连起来。所以我们必须在这两个图标之间连上线,连线之前我们先设置好拖进来的图标。 2、移动模块图标 在编程区中的图标,可以随便改变其位置。 在编程区中移动模块图标的方法如下: 如果要改变位置的图标只是一个,可以用鼠标左键按住该图标不放,把其拖到编 程区其它位置后放开鼠标左键。 如果要改变位置的图标不止一个,可以在窗口中空白点按住鼠标左键不放,拖动 鼠标形成一虚框, 使要移动的图标都在虚框内, 再任意按住其中一个被选定的图标不放, 拖到编程区其它位置后放开鼠标左键。 多个图标同时拖动后, 其相连的线也会跟随移动。 3、模块的调用 在机器人快车中,一个特定功能的程序段落可以编辑成为一个模块。所谓模块调用, 其实就是模块的使用。在这一节中所说的模块,不包括流程控制模块。简单来说,把模块 图标从模块库拖动到编程区中,然后将图标通过线连接到程序中,这样的过程就是一个调 用模块的过程。但实际上,模块调用并不是这么简单而已。不同的模块图标都有其各自不 同的数据需要设置,只有完成数据参数设置的,才是一个完整的模块的调用。 下面我们会用一个发光模块图标来说明调用模块的过程。 把发光模块图标 从模块库拖放到编程区中。然后在属性、代码、变量窗口中选择属性显示, 再鼠标单击发光模块的图标, 属性窗口就会显示发光模块的属性(或者直接双 击发光模块的图标来显示属性)。 选择 which 参数,如图 3.1.4 所示。图 3.1.4 21 机器人制作与程序设计 在图 3.1.4 中: 圈 1 表示:发光模块图标设置的当前参数的名称是 which; 圈 2 表示:发光模块图标设置的当前参数的数据类型; 圈 3 表示:发光模块图标设置的当前参数的说明信息。 注意:如果你的机器人快车看到的圈 2 或圈 3 说明是不完整的,请用鼠标拖大这个说 明框就可以了。 选择 state 参数,如图 3.1.5 所示。图 3.1.5 在图 3.1.5 中: 圈 1 表示:发光模块图标的当前参数 state 的参数值; 圈 2 表示:发光模块图标的当前参数的默认值,在修改参数值之前,参数值就是默认 值; 圈 3 表示:发光模块图标的当前参数的最大值与最小值,最大值与最小值用于限制参 数值的范围,在这里,最小值是 0,最大值是 1,那么参数值只能是 0 或者 1 两者之间的一个; 圈 4 表示:发光模块图标的当前参数的说明信息,从说明信息可以了解到,state 表 示状态值,只有两个数值 0 和 1,这与最大值与最小值相一致,其中 0 表 示灭,1 表示亮。当前的参数值是 0(1 号圆圈标示) ,表示控制发光模块 灭。 3.1.4 线的操作 1、 自动连线 连线规则: 按照程序思路, 从模块的出口到另外一个模块的入口, 系统会自动检测连线的正确 和错误。22 第三章 照明机器人现在,我们来学习自动连线的方法。我们将用这种方法把 Start 模块图标和发光模块图标连接起来。操作步骤如下: ,或者直接1) 鼠标移动到 Start 模块上,模块的边角变黑,同时出现连线图标 点击工具栏上该图标。如图 3.1.6 所示。图 3.1.6 2) 在边角点击后移动鼠标会出现红色虚线。 3)选择合适的路径,移动到另外一个模块入口处。如图 3.1.7 所示。图 3.1.7 4) 在模块入口处单击,连线完成。如图 3.1.8 所示。图 3.1.8 以上就是自动连线的方法。 技巧:选择合适的线路时,要使虚线在某一点改变方向,单击击鼠标左键; 取消此次连线时,单击鼠标右键。 值得一提的是:如果图标本来已经连接了其它线,那么自动连线的方法会在连线的同 时删除原有的线,这样就能更改线的连接了。23 机器人制作与程序设计 2、 线的移动 鼠标左键点击该线选中或点击空白点拉虚框选中需要移动的线,同时按住该线拖放到 合适位置。 3、 删除线 删除编程区中某条线的方法如下: 1) 用鼠标双击该线,然后按键盘的删除(Delete)键。 2) 用鼠标双击该线,然后按鼠标右键,在弹出的右键菜单中点击“删除”。 3) 用鼠标双击该线,点击工具栏内 图标删除。注:线的默认状态: 红线 灰线 3.1.5 硬件信息 包括硬件信息界面简介、硬件类型、硬件端口、硬件表四部分。 1、硬件信息界面简介 由于机器人的控制器所提供的电子接口可由用户自由定义, 所以要使机器人快车能正 确控制机器人,您必须先设置硬件信息。 点击菜单栏中“项目”主菜单下的“硬件信息”子菜单,弹出硬件信息对话框如图 3.1.9 所示。 模块之间连线正确; 模块之间连线错误。图 3.1.9 24 第三章 照明机器人 选项卡上第一项为系统默认硬件信息,其余的为当前被编辑文件的硬件信息。每个文 件都独立有一份硬件信息。 在上图界面的硬件表中,父节点是所有已经定义的硬件类型,子节点是已经定义的硬 件(硬件端口)。如上图中,_LED_为硬件类型,_LED_1_为硬件端口。 在子函数使用信息表中显示的是当前程序已经用到的硬件端口。 子函数使用信息表有 两种显示模式(通过鼠标右键点击切换) :一种是按程序所使用的硬件类型分类,另一种是 按程序所使用到的模块分类。如果项目中用到未定义的硬件端口,那么该硬件端口将会在 使用信息表中以灰底色显示。 在硬件信息对话框左边的树状表中,您只要选中某个节点,就能看到该节点相应的说 明。如果您选中的是硬件类型的节点,您就能看到该硬件类型的定义和各个针脚的说明。 如果您选中的是硬件端口的节点,您就能看到该硬件端口的定义。 2、硬件类型 在机器人快车中, 具有相同解释的硬件被归入同一类, 形成一种硬件类型, 例如_LED_。 安装机器人快车后,软件已经定义了多种硬件类型,一般来说是不需要再对硬件类型 作任何操作的。 3、硬件端口 硬件端口是指某一个已经定义了控制针针位的硬件,例如_LED_1_。 添加硬件端口 在硬件信息对话框左边的树状表中, 选中一种硬件类型, 然后点击“添加端口”按钮, 弹出的对话框如图 3.1.10 所示。图 3.1.10 在上图对话框中,顶部是一张与控制器相对应的针位图。在针位图中,禁用的针位会 标记红色的叉,其它硬件端口正在使用的控制针会标记白色的叉,当前硬件端口的针位会 25 机器人制作与程序设计 标记绿色,鼠标所在位置的针位会标记蓝色。 硬件名称是指您要设置的硬件端口的名称。 您可以在硬件名称输入框中输入字母或数 字,机器人快车将自动在字符串的首位添加硬件类型名称,并在结尾添加下划线,从而形 成新的硬件端口名称。例如您定义_LED_类型的硬件端口,在硬件名称输入框中输入 1,将 会添加一个_LED_1_的新硬件端口。 针定义是指您要设置的硬件端口在控制器上所占用的控制针针位。 在针位图上移动鼠标指针,当出现绿色标记并且鼠标指针变为手的形状时,您点击鼠 标左键就可以为硬件端口定义针位了。如果不是默认顺序排列,您必须在控制针选择框中 选中要定义的控制针,然后一针一针地为其定义针位。如果是默认顺序排列,您只需点击 一次就可以了,机器人快车会按默认顺序自动为硬件端口定义针位。 删除硬件端口 在硬件信息对话框左边的树状表中,选中一个硬件端口,然后点击“删除”按钮,您 就可以删除该硬件端口。 编辑硬件端口 在硬件信息对话框左边的树状表中,选中一种硬件端口,然后点击“编辑”按钮,您 就可以编辑该硬件端口。 编辑硬件端口时,除了不能修改硬件端口名称之外,其它操作与添加硬件端品时的操 作相似,这里将不再赘述。 4、硬件表 硬件表是一份已经存储了硬件类型与硬件端口的类型—端口表。 导入硬件表 从磁盘文件中读入硬件表。 另存硬件表 把当前编辑的硬件表存放到磁盘上。 3.1.6 保存机器人程序 使用机器人快车的保存功能,能够保存当前编辑项目的信息,这与其它大多数软件相 同。 点击菜单栏中“文件”主菜单下的“保存”子菜单, 或者直接点击工具栏的 机器人快车就会将您当前正在编辑的应用程序或函数保存下来。 3.1.7 编译操作 在其它的章节中,我们举了许多应用程序的例子。机器人快车提供的编译功能,除了 用来检查应用程序是否有错误,还可以帮我们把程序翻译成机器人认识的代码,准备传送 给机器人执行。 C 语言程序必须通过编译生成一个机器指令程序,即目标程序,然后才能执行。编译 26 按键, 第三章 照明机器人 的时候会检查程序是否有语法错误,没有错误的程序才能生成目标程序。如果您是第一次 使用机器人快车的编译功能,请参阅第二章的“编译器” ,为机器人快车指定一个编译器。 点击“工具”主菜单下的“编译”子菜单,或者直接点击工具栏上的 人快车就开始编译了。 按钮,机器如果输出窗口显示“找不到编译器。 ”的字样,并弹出“选项”对话框,如下图 3.1.11。图 3.1.11 说明您还没有指定编译器。请参阅机器人快车的“编译器”,为机器人快车指定一个编译 器(譬如中鸣编译器)。 如果输出窗口显示“编译成功”的字样,说明您的程序没有错误,编译已经完成。 如果您的程序存在错误, 编译后的错误信息将会显示在输出窗口中, 您可以根据这 些提示信息修改您的程序。比如,输出窗口显示“函数的参数不完整: ......(某个硬件 模块的函数名)”,那么有可能是该模块还没有定义硬件信息,或者定义不完整 。 如果弹出对话框如图 3.1.12 所示。图 3.1.12 27 机器人制作与程序设计 这说明您在程序中使用了未定义的硬件端口。 这些未定义的硬件端口将在硬件名称中 标示出来,如上图中的硬件端口_LED_1_。您可以参阅硬件端口的章节,把同名的硬件端口 添加到硬件信息表中。 3.1.8 下载操作 在其它章节中,我们做了几个应用程序的例子,也讲了如何编译这些应用程序。现在, 我们就要把程序下载到机器人上让它执行。 下载步骤如下: 第一步:关闭机器人的电源,并确定您电脑的 USB 口未被其它软件或硬件占用。 第二步:拿出机器人套件中的下载线,将一端接在电脑的 USB 口上,另外一端接在机 器人的下载口上。连接方式如图 3.1.13 所示。图 3.1.13 第三步:点击 “工具”主菜单下的“下载”子菜单,或者直接点击工具栏的 弹出的下载窗体界面,如图 3.1.14 所示。 按钮,图 3.1.14 第四步:打开机器人的电源,机器人快车就开始下载程序。对话框如图 3.1.15 所示。28 第三章 照明机器人图 3.1.15 第五步:当程序下载完成后,上图对话框将自动关闭。接着,拔出机器人上的下载线。 第六步:关闭机器人的电源,然后重新打开机器人的电源就可以了。 如果在下载过程中弹出如图 3.1.16 所示的对话框。图 3.1.16 这说明在下载过程中, 由于下载线脱落、 电池电量不足或其它原因导致下载无法继续, 请按上述步骤重新下载。3.2 照明机器人制作有了前面的基础知识,现在我们可以开始制作一个照明机器人了。 3.2.1 结构搭建 1、首先,要准备好 6 节 5 号电池(最好是充电电池,这样可以反复充电,比较经济 与环保) ,一个机器人 RCU,一个发光模块和一台已经安装了机器人快车软件的电脑(已经 装好下载线的驱动程序) 。 2、接下来,我们开始搭建照明机器人:把发光模块接到 RCU 的 D1X 端口(端口命名 规则:用端口旁边的编号加上控制线端号,所以这个端口叫 D1X。如有两条控制线的,则 用端口旁边的编号加上靠近电源线的控制线端号.例:"M1Y"则表示马达接在 M1 端口的 左边) ,正确安装电池后如图 3.2.1 所示。29 机器人制作与程序设计图 3.2.1 3.2.2 软件编程 一般我们要编写程序之前,都会先构思一下整个过程的解决方法,写出流程图,然后 才着手进行编程。图 3.2.2 就是我们准备编写的程序的流程图。由于没有复杂的判断、循 环等等,这种顺序结构的程序流程是十分容易理解的。图 3.2.2 1、 打开 RoboEXP 机器人快车软件,出现如下图的软件。几秒钟后,弹出快车主窗体,如 图 3.2.3 所示。30 第三章 照明机器人图 3.2.3 2、 我们先建立一个新的 “应用程序” ,命名为 LedTest。 3、 根据发光模块的安装情况设置硬件信息。如图 3.2.4 所示。图 3.2.4 4、 从模块库“执行模块”栏里拖动“发光”模块到主编辑窗口,把 Start 图标和发光模 块图标连接起来了,结果如图 3.2.5 所示。 31 机器人制作与程序设计图 3.2.5 5、 设置发光模块的参数,参数 which 选择“_LED_1_” ,参数 state,在参数值处填1, 控制发光模块亮(参考模块的调用部分) 。这样就编写好了。 6、 把程序编译、下载到机器人后,重新启动机器人,我们就可以控制发光模块点亮了。3.3 常见问题1、 编译的时候弹出“选项”对话框。 解答:这说明您仍未指定一个编译器。请先进行指定编译器操作,参考第二章软件设 置里面“编译器”部分。 2、 程序编译好后,无法下载,提示:通讯超时,请重新下载。 解答:1)请看看有没有其他 USB 口程序占用同一个接口; 2)请再另一台机子上试用,以防是本机 USB 口损坏。 3、 正常编译、下载程序后发光模块不能点亮。 解答:1)程序下载后必须重新启动机器人,机器人才能够正常运作; 2)程序是否正确,如图 3.2.5,线是否处于正确状态; 3)硬件信息是否跟实际的物理连接一致,前面的例子如图 3.2.4; 4)检查物理接线是否正确,黑线接电源负极 G,红线接电源正极 V,黄线接信 号线 X(参考 图 3.2.1 与 图 3.2.4) ;3.4 习题1、 同时点亮两个发光模块。 2、 点亮一个发光模块,熄灭一个发光模块。3.5 选学部分在本章中,我们所编写的机器人程序的源代码如下: #include &SetLED.h& #include &HardwareInfo.c& int main(void) { SetLED(_LED_1_, 0); return 1; } 32 第三章 照明机器人 现在,我们就来详细分析这些源代码。 第一、二行是“文件包含”处理。所谓“文件包含”处理是指一个源文件可以将另外 一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。其一般格式为 #include “文件名” HardwareInfo.c 文件保存了硬件实例的信息,#include &HardwareInfo.c& 能将该文 件包含到程序中。 SetLED.h 文件保存着函数 SetLedState 的代码。用 include &SetLED.h& 可以将 SetLED.h 文件包含到程序中, 这样我们就能在程序中使用 SetLED.h 文件中的 SetLED 函数。 和这个函数对应的就是发光模块图标 。int main(void) 表示这是一个主函数,int 表示该主函数返回值的类型是整型 int, void 表示函数没有参数。所有的可以执行的 c 语言程序都需要一个 main 函数(主函数) 。 花括弧 { 和 } 之间的代码构成复合语句,可以当成一个代码块,表示这个是一个整 体。 SetLED(_LED_1_, 0); 是一个函数调用的过程,相当于图形编程区里面的 发光模块 图标 的调用。SetLED 是函数的名称,表示调用前面包含了的函数。小括号中是表示函数调用时使用的参数。函数 SetLED 的参数中,第一个参数是硬件实例的名称,填的就 是发光模块图标设置里面的 which 参数值。 第二个参数是发光模块图标设置里面的 state 参数值状态对应的值,1 是亮,0 是灭。行末的分号表示这个执行语句的结束。 return 1 是函数的返回值,表示函数的终止。33 机器人制作与程序设计第四章 进退自如的机器人学习目标掌握马达的控制方法; 掌握循环结构和无限循环结构的编程方法。 学习要点:L 形马达模块、马达模块图标、延时模块、 循环结构、无限循环结构、复制模块图标、 删除模块图标、文字说明开发一个机器人,该机器人能够“不断”地“前进”和“后退” , 即不断做往返跑。4.1 基础知识4.1.1 L 形马达模块 1、L 形马达模块简述 BE-3548X L 形马达模块,是一个驱动部件,能够实现转动功能。L 形马达模块的实 物如图 4.1.1 所示,图 4.1.2 为外观略图。图 4.1.1 ①:接口线,由两条信号线组成 ②:标签 BE-3548X 高力矩马达标签34 第四章 进退自如的机器人 2、L 形马达模块的功用与安装 L 形马达模块是机器人的动力输出模块,动力从输出轴以圆周运动的方式输出。为了 便于输出轴驱动其它构件,可以采用转轮轴进行过渡。L 形马达模块可以通过四个角的螺 栓孔与其它零件紧固。 下面安装方法仅仅是个范例,在实际应用当中可根据功能要求灵活运用。图 4.1.2图 4.1.3图 4.1.4 35 机器人制作与程序设计图 4.1.5图 4.1.6图 4.1.7 3、L 形马达模块的应用范围 L 形马达模块可用于运动的机器人中。如图 4.1.8 就是 L 形马达模块的应用实例。36 第四章 进退自如的机器人图 4.1.8 4、L 形马达模块的端口接插 BE-3548X L 形马达模块是四芯控制线的模块,RCU 的接插示意如图 4.1.9 所示。图 4.1.9 4.1.2 马达模块图标 在 RoboEXP 机器人快车软件里面,我们使用马达模块图标 来控制马达模块的状态(正转、停止、反转)和速度(1~100 软件调节) 。当然马达停止时,速度是没有意 37 机器人制作与程序设计 义的。 1、马达模块图标控制的设备 马达模块图标能够控制中鸣拼装式机器人的 BE-3548X 所示) 。 L 形马达模块(如图 4.1.10图 4.1.10 2、马达模块图标的参数 首先把马达模块图标 拖进编程区,双击这个马达模块图标 ,属性窗口就会显示发光模块的属性,如图 4.1.11 所示。图 4.1.11 正常使用马达模块时,我们要设置三个地方。 第一个是“which”,指明我们要控制的马达模块,在“参数值”的下拉菜单里面选 择。如果选项里面没有我们要操作的那个设备,那我们就要选择“硬件信息”来对我们的 模块接口进行设置。 一旦指定了模块,就可以在“state”栏控制该模块的状态,如图 4.1.12 所示。 “state”的参数值有三个: 0、 1、 2 分别对应正转、 停止、 反转, 它是一个“unsigned char” 类型的参数。 38 第四章 进退自如的机器人图 4.1.12 最后我们要输入“speed”栏的参数值,图 4.1.13。“speed”栏的参数值控制马达 模块的速度,它是“unsigned char”类型的,可以直接填入 1~100 范围内的任一数字。图 4.1.13 4.1.3 延时模块 1、延时模块概述 由于机器人控制器 RCU 的处理速度非常快,如果我们需要看清楚一些连续的动作,或 者让机器人持续某个动作一段时间,我们可以使用 RoboEXP 机器人快车软件里面的延时模 39 机器人制作与程序设计 块图标来控制。延时模块有 3 种:秒级延时模块 延时模块 。、1/10 秒级延时模块、1/100 秒级使用时直接把延时模块拖到编程区,然后连线就可以了。 2、秒级延时模块的参数如果要让机器人持续某个动作一段时间,一般我们可以使用 秒级延时模块。顾名思义, “秒级延时模块”就是以秒为计算单位的。我们在模块“参数”填入我们设定延 时的时间(1~200) ,机器人控制模块 RCU 运行到程序这里的时候就会维持当时状态,等待 多少秒,然后继续执行下面的程序。 使用时,直接把模块拖到编程区,接着双击模块的图标,然后在图 4.1.14 所示属性 框中设定你要 RCU 等待的秒数,再连线就可以了。图 4.1.14 3、十分之一秒级延时模块的参数 如果要让机器人持续动作一阵子(例如转弯) ,一般我们使 1/10 秒级延时模块。 “1/10 秒级延时模块”是以十分之一秒为计算单位的。在延时前面的程序先设定 好机器人的状态,然后我们拖入 1/10 秒级延时模块 ,在模块“参数”里填入设定的持续 时间(1~200 个 1/10 秒,也就是最短十分之一秒,最长 20 秒) ,连好线,RCU 运行到这里 就会维持状态,实现我们需要的功能。设置属性框如图 4.1.15 所示。40 第四章 进退自如的机器人图 4.1.15 4、百分之一秒级延时模块的参数 如果某些机器人外围器件的运行速度不是非常快,通常我们都会在后面加上 1/100 秒级延时模块 ,让模块稳定下来,机器人再继续执行。图 4.1.16 “1/100 秒级延时模块”是以百分之一秒为计算单位的,参数填 1~200,表示设置从 最短百分之一秒到最长两秒。等待伺服马达转到指定角度,检测到黑线之后等待灰度模块 通过黑线,多次用模块测量来求稳定的平均值等等,都会使用这个模块。设置属性框如图 41 机器人制作与程序设计 4.1.16 所示。 4.1.4 循环结构 1、循环结构简述 在日常生活中,我们经常要周期性反复地做着同样的事情。例如:张三早上 8:00 吃 早餐;中午 12:00 吃午餐;晚上 7:00 吃晚餐,他几乎每天都如此,我们可以把他的三餐时 间安排看作是一个循环,如图 4.1.17 所示。由图 4.1.17 可看出,这种循环是永无止境的, 不会被中断或终止。 但事实上绝大多数情况下,我们都会在某种特定的条件下才会重复做某些事。例如, 张三只有在周一至周五的工作日时间内才会这样安排三餐,周六、周日他都较迟起床,一 般到 8:30 才吃早餐,这样,张三的三餐安排便变为带条件判断的循环结构,如图 4.1.18 所示。图 4.1.17 多数程序语言都提供了循环结构的程序设计方法。 循环结构是结构化程序设计方法的三种基本结构之一。图 4.1.18同样,在程序设计中,很多时候我们也需要程序做某些周期性重复的工作。因此,大C 语言程序的循环结构有两种形式: “当型”循环和“直到型”循环。 “当型”循环 首先判断循环控制表达式是否为“真” 。若为“真” ,则反复执行循环体;若为“假” , 则结束循环。 “真”用 Y 表示, “假”用 N 表示。如图 4.1.19 所示。在 C 语言中,while 语 42 第四章 进退自如的机器人 句和 for 语句可以实现“当型”循环。图 4.1.19 “直到型”循环图 4.1.20首先执行循环体,然后才判断循环控制表达式。若为“真” ,则反复执行循环体;直 到循环控制表达式为“假”时结束循环。如图 4.1.20 所示。在 C 语言中,do-while 语句 可以实现“直到型”循环。 2、循环结构的嵌套 循环结构是可以嵌套的,而且必须是层层内嵌,不能交错嵌套。正确的嵌套方式如图 4.1.21 所示,错误的嵌套方式如图 4.1.22 所示。想了解更多关于“循环结构的嵌套”的 知识,请自行参阅其它书籍。图 4.1.21 3、While 模块的应用图 4.1.22机器人快车的 While 模块具有循环功能,它能够实现循环结构中的“当型”循环,它 43 机器人制作与程序设计 被用来控制机器人反复做某个或某些动作。 在实际编程应用中,我们可以用 While 模块来控制机器人反复执行我们所规定的动 作。例如:要让机器人不断检测转轮触碰检测模块的状态,就要用到 While 模块。 在机器人快车中,把 While 模块从模块库拖动到编程区,编程区中就会自动添加一个 While 图标 和一个 EndWhile 图标 。使用原理如图 4.1.23 所示。图 4.1.23 4.1.5 无限循环结构 1、无限循环结构图 4.1.24通常,带条件判断的循环结构在程序设计中被普遍应用。在实际应用中,循环结构还 有一种条件永远成立的特例,这被称为无限循环结构或无条件循环结构。 如图 4.1.24 所示,我们把图 4.1.19 的循环条件修改为“是否周一至周日” 。由于条 件 “是否周一至周日” 一直成立, 所以动作 “早上 8:00 吃早餐” 将不断被执行, 而动作 “早 上 8:30 吃早餐”将永不被执行。 2、While 模块实现无限循环结构 在机器人快车中,我们能够很方便地使用 While 模块来实现无限循环结构。把 While 模块从模块库拖动到编程区,不做任何设置,直接把 While 图标、EndWhile 图标和其它模 块图标连接在一起,这样就实现无限循环结构了。如图 4.1.25 所示。图 4.1.25 44 第四章 进退自如的机器人4.1.6 复制模块图标 机器人快车提供了复制图标的功能。由于新复制的图标保持了原图标的设置,所以我 们可以通过该功能来快捷地添加相同设置的图标。 在机器人快车中,复制图标的步骤如下: 1) 选定一个或多个图标。选定方法与在 Windows 操作系统中选定文件的方法相同。 如图 4.1.26 所示。图 4.1.26 2) 3) 4) 菜单。如图 4.1.27 所示。图 4.1.27用鼠标右键点击其中一个被选定的图标,然后在弹出的右键菜单中点击“复制” 用鼠标右键点击编程区的空白区域,然后在弹出的右键菜单中点击“粘贴”菜 单。如图 4.1.28 所示。 这样,相同的图标就会被添加到编程区中了。如图 4.1.29 所示。图 4.1.28图 4.1.2945 机器人制作与程序设计 4.1.7 删除模块图标 机器人快车提供了删除图标的功能。您可以通过该功能来删除编程区中的图标。 在机器人快车中,删除图标的步骤如下: 1) 2) 3) 选定一个或多个图标。选定方法与在 Windows 操作系统中选定文件的方法相同。 如图 4.1.26 所示。 用鼠标右键点击其中一个被选定的图标,然后在弹出的右键菜单中点击“删除” 菜单。如图 4.1.30 所示。 这样,选中的图标就会被删除掉了。图 4.1.30 4.1.8 文字说明 在使用机器人快车的过程中,可能会有多个相同的图标出现在编程区中。为了能更方 便地阅读程序和更清晰地理解程序,我们有必要为其中一些模块图标添加说明文字。 在机器人快车中,为模块图标添加说明的方法如下: 1) 点击工具栏上的 按钮,在编程区中,用鼠标左键点击任一区域,然后弹出文本框,如图 4.1.31 所示。46 第四章 进退自如的机器人图 4.1.31 2) 在如图 4.1.31 所示的文本框中输入模块图标的说明文字。图 4.1.32 为多个图标添加说明后,编程区的显示效果如图 4.1.32 所示。4.2 进退自如的机器人制作4.2.1 任务分析 大多数的机器人都是由硬件结构和软件程序两部分组成,硬件结构是机器人的“身 体” ,软件程序是机器人的“灵魂” 。 这里,我们将构建一部进退自如的机器人,我们可以从硬件和软件两方面进行构思。 1、硬件构思 为了能够进退“自如” ,我们的机器人必须有一个能操纵机器人自由做动作的控制设 备,即需要一个机器人的“大脑” 。 为了能够“进退” ,我们的机器人必须有“走路”的能力,即需要“脚”或“车轮” 。 就目前来说,构建一部用“脚”走路的机器人,难度是比较大。所以我们将构建一部比较 简单的用“车轮”走路的机器人。我们将用马达来驱动机器人的“车轮” ,我们甚至可以把 机器人设计为单驱的(只有一个驱动轮) 、双驱的(有两个驱动轮)或多驱的(有多个驱动 轮) 。 2、软件构思 为了能够“进退” ,程序中必须有控制机器人“前进”和“后退”的代码段。如果想 让机器人“不断地”运动,那么程序中也必须有循环结构。流程思想如图 4.2.1 所示。47 机器人制作与程序设计图 4.2.1 由图 4.2.1 可以看出,该程序将是“永不结束”的。 4.2.2 结构搭建 现在,我们就来搭建一部进退自如的机器人。搭建步骤如下: 1) 用两个 L 形马达模块搭建机器人的驱动部分。正面如图 4.2.2 所示。图 4.2.2 2) 将马达与 RCU 连接固定在一起,如图 4.2.3 所示。48 第四章 进退自如的机器人图 4.2.349 机器人制作与程序设计 3) 轮子的搭建。图 4.2.4 4) 车头结构的搭建。图 4.2.55)万向轮模块的搭建。50 第四章 进退自如的机器人图 4.2.6 6) 控制线的插接。右马达: M2Y 端口左马达: M1Y 端口图 4.2.751 机器人制作与程序设计 4.2.3 程序编写 现在,我们就来编写机器人的程序,步骤如下: 1) 新建一个名为“WalkingRobot”的应用程序,并为其输入“进退自如的机器人” 的说明文字,如图 4.2.8 所示。图 4.2.8 2) 为了让机器人“前进” ,我们要驱动两个马达同时同速转动。我们从模块库拖动 两个马达模块图标和一个秒级延时模块到编程区,如图 4.2.9 所示。图 4.2.9 3) 为图 4.2.9 的左马达定义一个硬件实例。添加一个“_MOTOR_”类型的硬件实例 “_MOTOR_left_” ,并将其端口设在“M1Y”针口上。我们将用图 4.2.10 的 1 号 马达模块图标来控制左马达,其设置如图 4.2.10 所示。52 第四章 进退自如的机器人图 4.2.10 4) 为图 4.2.9 的右马达定义一个硬件实例。添加一个“_MOTOR_”类型的硬件实例 “_MOTOR_ right _” ,并将其端口设在“M2Y”针口上。我们将用图 4.2.10 的 2 号马达模块图标来控制右马达,其设置如图 4.2.11 所示。图 4.2.11 5) 为了让机器人“后退” ,我们需要同时改变两个马达的转动方向。复制图 4.2.9 53 机器人制作与程序设计 中的两个马达模块图标和秒级延时模块,如图 4.2.12 所示。图 4.2.12 6) 用图 4.2.12 的 3 号马达模块图标来改变左马达的转动方向,设置如图 4.2.13 所示。图 4.2.13 7) 我们将用图 4.2.12 的 4 号马达模块图标来控制右马达,其设置如图 4.2.14 所 示。54 第四章 进退自如的机器人图 4.2.14 8) 为了让机器人“不断地”运动,我们需要在程序中加入循环结构。我们从模块 库拖动一个 While 模块到编程区,然后按流程图思想连线,如图 4.2.15 所示。图 4.2.15 9) 这样, “进退自如的机器人”的程序就编写完成了,对 C 语言感兴趣的同学可以 在编程区中看到相应的 C 语言代码,如图 4.2.16 所示。55 机器人制作与程序设计图 4.2.16 10) 编译程序,然后下载到机器人上。在马达接口时,如果设置正转、反转和前进、后退的方法 不一致,可以反接下 X 和 Y 端口。例:一个马达接 M1Y 端口, 设为正转时,马达前进,但把它接 M1X 接口时,程序不变,马 达就后退了。 这样方便机器人前进、 后退与正转、 反转的调试, , 如果发现前进与后退的方向反了,就反接下端口。4.3 常见问题1. 怎样让机器人“前进”或“后退”呢? “前进”和“后退”是相对机器人而言的,马达模块只有“正转”和“反转”的概念。 机器人的结构是任意搭建的,相同设置的马达模块安装在机器人左侧或右侧会产生不同的 效果, “正转”的马达模块不一定能使机器人“前进” 。在使用马达模块时,可以先用马达 模块图标来确定“马达模块转动的方向”与“机器人的方向”之间的关系。如果马达模块 56 第四章 进退自如的机器人 “正转”能使机器人“前进” ,那么马达模块“反转”就能使机器人“后退”了。 2. 为什么我的机器人往返的路程非常短? 这有可能是由于机器人马达模块图标设置的速度太慢了, 也有可能是由于设置的延时 太短了。4.4 习题1. 自行设计、搭建其它结构的“进退自如的机器人” 。 2. 用“1/10 秒级延时模块”代替原程序中的“秒级延时模块” ,实现与原程序相同 的功能。 3. 转动两个轮子,然机器人实现前进转弯、后退转弯以及原地旋转。4.5 选学部分源代码分析: 在本章中,我们所编写的机器人程序的源代码如下: #include &HardwareInfo.c& #include &SetNS.h& #include &SetMotor.h& int main(void) { while (1) { SetMotor(_MOTOR_left_, 0, 30); SetMotor(_MOTOR_right_, 0, 30); SetNS(1); SetMotor(_MOTOR_left_, 2, 30); SetMotor(_MOTOR_right_, 2, 30); SetNS(1); } return 1; } 第一、二、三行将文件 HardwareInfo.c、SetNS.h、SetMotor.h 包含到程序中。 SetMotor.h 文件保存函数 SetMotor 的代码,该函数对应马达模块图标 。SetNS.h 文件保存函数 SetNS 的代码,该函数对应秒级延时模块 while(1) 表示这是一个循环,它对应 While 模块 57。。其中,1 表示真,即循环不 机器人制作与程序设计 断执行、永不终止。后面的大括号内的程序段,就是需要循环执行的内容。 SetMotor(_MOTOR_left_, 0, 30); 是一个函数调用的过程,相当于图形编程区里面 的 马达模块图标 的调用。SetMotor 是函数的名称,表示调用前面包含了的函数。小括号中是表示函数调用时使用的参数。 函数 SetMotor 的参数中, 第一个参数是硬件实例 的名称, 填的就是马达模块图标设置里面的 which 参数值。 第二个参数是马达模块图标设 置里面的 state 参数值状态对应的值,0 是正转,1 是不转,2 是反转。第二个参数是马 达模块图标设置里面的 speed 参数值,即马达转动的速度。SetNS(1); 相当于图形编程区里面的 秒级延时模块 参数值,表示延时的秒数。 总结一下无限循环的语句格式: while(1) { 不断重复执行的程序段 }的调用。SetNS 是这个秒级延时函数的名称。 函数 DelayNs 小括号中只有一个参数, 就是秒级延时模块设置里面的 s58 第五章 综合设}

我要回帖

更多关于 刺激战场太多机器人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信