2016年里约奥运会,男足决赛在东道主巴西队和有“战车”之称的德国队之间展开。经过120分钟的激烈拼杀,双方1∶1战平,随后双方展开了点球大战,最后巴西队以6∶5的总比分险胜德国队,获得了奥运会男足冠军。在这场比赛中,最让人热血沸腾也最残酷的时刻莫过于最后的点球大战了。点球大战是足球比赛双方经过上下半场共计90分钟外加全场30分钟加时赛的激战后,仍未决出胜负的情况下,采取互射点球的方式来一决胜负。
学习目标:熟悉超声波传感器和舵机的工作原理;学习顺序逻辑程序结构;动手制作和编程实现一个可以感应裁判员手势、进行射门动作的足球机器人
材料清单:控制器×1、超声波传感器×1、转接线缆×2、舵机×1、拼接木板套材×1套(见图1)
■图1 制作所需材料
知识learning
传感器
(1)触控传感器(微动开关)
微动开关是一种具有微小接点间隔和快动机构,用规定的行程和规定的力度进行开关动作的接点机构,用外壳覆盖,其外部有驱动杆,因为其开关的触点间距比较小,故名微动开关,又叫灵敏开关。
微动开关的工作原理:外部机械力通过传动元件(按销、按钮、杠杆、滚轮等)将力作用于动作簧片上,当动作簧片位移到临界点时产生瞬时动作,使动作簧片末端的动触点与定触点快速接通或断开。后面讲到守门员的时候会给同学们讲解微动开关的作用。微动开关外观如图2所示。
■图2 微动开关实物图
(2)超声波传感器
超声波传感器是利用超声波的特性进行探测的传感器。超声波是一种振动频率高于声波的机械波,具有方向性良好,能够成为射线而定向传播的特点。目前广泛应用在工业、国防、生物医学等方面。
在机器人点球大战中,这个小巧的超声波传感器就起到了射门球员眼睛的作用。我们都知道,在足球运动中,只有裁判发令,主罚点球的球员才能射门。那么这双“大眼睛”(见图3)一旦接到射门指令,就会告诉“球员”的“大脑”赶紧射门。
■图3 超声波传感器实物图
“点球”这个足球用语对于喜爱足球的同学们来说必然不会陌生,可是同学们知道吗,在实际足球比赛中,点球的罚球距离只有11米(罚球点到球门线的垂直距离)。也就是说,在球速很快的情况下,守门员是来不及在球飞向球门时做出正确反应的,守门员需要很大的幸运因素才能扑到飞过来的足球,那么这就需要他提前预判,这就是为什么同学们会在足球比赛中,看到守门员“滑稽”地扑反了方向。在这堂机器人点球大战课中,我们的守门员也是如此,同样要在射门球员射门的同时做出预判,提前反应扑救。在后面拼装过程中,会给大家一一解释。
技能getting
足球机器人的核心是控制器,如图4所示的方形盒体。该控制器包含10个与外界连接的端口,包括4个电动机或者舵机控制端口、模拟输入端口、数字输入端口等。本次制作的足球机器人需要用到控制盒的一个舵机控制端口和一个模拟信号输入端口,具体连接方式为:
■图4 硬件电路连接图
舵机用来实现机器人一条腿的摆动,进而实现射门动作。舵机连接到控制盒的舵机1号端口,如图4所示M1位置。
超声波传感器用来实现对裁判手势的判决,需要连接至控制盒的I/O端口,即与舵机中间间隔一个端口。
■图5 舵机外形图
舵机
舵机也可以叫做伺服电动机,通过编程指令,可以控制电动机转动到一个你想要的精确角度。舵机实物外形如图5所示。
舵机最初因为用在船舶上控制舵面(实现转向)而得名。其内部包括直流电动机、减速机构和控制电路,可以通过传感器精确获得电动机转动的角度,并加以控制,最终实现精确的电动机转动角度输出。
动手DIY
Step1 拼装射门机器人
将机器人主体拼装好,并把超声波传感器插在射门机器人眼睛部位,如图6所示。
Step2 安装微动开关
在射门机器人左侧胯部安装上微动开关,如图7所示。
■图6 安装超声波传感器
■图7 安装微动开关
Step3 安装数据线
将射门机器人身上的超声波传感器和微动开关分别插上相应的数据线,如图8所示。
■图8 插好数据线
Step4 安装守门机器人
如图9和10所示,右侧门柱内装有一台小电动机,电动机的头部引出一条滑杆连接守门员与右侧门柱。
■图9 守门机器人1
■图10 守门机器人2
同学们应该知道,机器人光有躯体是工作不了的,所以我们要给这两位“运动员”安装上属于他们的大脑,并且要给他们一定的指令。机器人的“大脑”如图11所示。
■图11 机器人的“大脑”
图11可能只能看个大概,那么机器人是怎样连接控制盒的呢?请看图12。
■图12 控制盒侧面图
如图12所示,控制盒上面有插孔,我们用带有与之匹配的插头的数据线连接机器人与控制盒,这样就给机器人装上“大脑”啦。现在我们来看一看机器人是如何进行射门和守门的,如图13和图14所示。
■图13 射门机器人的舵机
■图14 小木条
射门机器人内部有一台舵机,一旦超声波传感器(射门机器人的大眼睛)收到手势指令(在它眼前晃一下),这个指令就会传给机器人的大脑,大脑再反馈给它的身体,让它射门,从而使舵机转动,机器人射门,进而带动图14中标有“B”的小木条旋转,按下微动开关。大家可以看到,微动开关和超声波传感器上面有数据线连接,这个数据线就是连接机器人“大脑”的。不过有所不同的是,微动开关的数据线是连接守门员大脑的。那么我们想,为什么微动开关的数据线要连接守门员的大脑呢?之前在游戏概要里面我们提到过,一旦射门的“运动员”射门,“守门员”就会提前做出预判。只要射门机器人一抬脚,守门员就要提前预判啦!那么我们是给这两个呆呆的机器人赋予了什么样的“魔力”,才能让它们听话地射门和守门呢?下面就要提到我们的编程模块啦。
图形化编程
Step1 打开编程软件
在桌面找到如图15所示的图形化编程软件图标,鼠标左键双击该图标,进入编程界面,如图16所示。
■图15 桌面上的编程软件图标
■图16 图形化编程软件开启界面(www.xing528.com)
Step2 新建程序文件
在步骤1打开的编程界面中,用鼠标左键单击窗口左上角的“文件”,在弹出菜单中选择“新建”,即可新建图18所示的图形化程序窗口,操作过程如图17左图所示。新建文件也可以直接用鼠标单击图17右图中红色圆圈的快捷图标完成。
■图17 新建文件的两种方法
■图18 新建的图形化编程文件界面
Step3 机器人起始站位
机器人的踢球动作是靠右腿连接的舵机转动来完成的,舵机0°时,机器人右腿踢向正前方,垂直于身体;舵机90°时,机器人右腿垂直于地面;舵机180°时,机器人右腿摆向正后方。在比赛之前,需要机器人处于直立站位,对应舵机应处于90°位置。在程序中则对应加入舵机旋转图标。在编程界面左侧模型库流程控制模块中左键选取“舵机(绝对角度)”图标,拖拽到开始图标右后方,当右侧出现小圆圈时,松开鼠标左键,完成加入和连接,连接后如图19所示。
双击图标,弹出舵机设置窗口,这里我们选择端口1,舵机旋转到90°,单击关闭完成设置,设置窗口如图20所示。
■图19 起始位置舵机加入示意图
■图20 步骤3舵机设置窗口
Step4 总循环功能
从模型库流程控制模块中拖拽While到绘图区,并将while的后半部分图标向后拖拽,鼠标拖动while向后方移动,当右边出现小圆圈时,松开鼠标,连线成功,连线过程如图21所示。
■图21 总循环加入操作示意图
Step5 加入超声波传感器
拖拽传感器模块中的超声波测距图标至绘图区,并将该图标靠近循环开始图标后方,直到图标后出现小圆圈,放开,使得该图标连接在循环图标中间,连接后效果如图22所示。
■图22 超声波测距传感器加入操作示意图
双击超声波测距图标,弹出超声波测距模块参数配置窗口,如图23所示。这里需要对超声波测距模块输出定义一个变量(代号),选择char,变量名为var1。单击确认并关闭退出。
■图23 超声波测距模块参数配置
Step6 加入条件判断
从流程控制模块栏中,拖拽条件判断图标If到绘图区,并将条件判断图标的后半部分向后拖拽一段距离,为后续图标预留位置,拖拽后效果如图24所示。
■图24 条件判断图标加入示意图
双击条件判断图标,弹出条件输入窗口,在表达式空格内填入判断条件(这里假设超声波传感器检测到障碍物,即人手的距离在3~6),输入方式为var1<=6&&var1>=3。var1为步骤4中定义的超声波传感器输出的数值变量(代号);第二个空白处不用填写。输入窗口如图25中蓝色窗格所示。鼠标左键单击窗口中的“关闭”,绘图界面中上方将显示刚刚输入的表达式,如图25所示。
■图25 条件判断属性填写示意图
Step7 检测到裁判手势,足球机器人进行踢球动作
机器人的踢球动作可以分解为后扬腿、腿摆动前踢、返回站立位三个动作,每个动作对应一个不同的舵机操作。考虑到舵机从一个角度旋转到另一个角度需要一定的时间,因此需要在每两次舵机调整角度中间插入一定的等待时间(在程序里,称这个等待时间为“延时”)。这一过程的程序编写流程为:在超声波测距模块检测到手势时(对应在程序里就是条件判断的上半分支),加入舵机控制模块(该模块需要放置在条件判断开始图标右侧稍靠上一点,直到上方出现小圆圈时,松开鼠标左键,使得该图标与相互连接);双击图标,并在弹出窗口中按照步骤3的方法设置舵机端口为1,旋转的角度为100°,设置过程及设置后效果如图26所示。
■图26 机器人后扬腿程序及参数配置示意图
下面,我们插入延时模块来确保机器人可靠地将腿后扬到100°。具体操作方法为:在软件模型库流程控制模块中选择延时模块,并把它连接到刚刚加入的舵机控制模块右侧,双击延时模块,在弹出的参数设置窗口中,设置延迟时间为500(此处单位为毫秒),设置过程及设置后状态如图27所示。
■图27 延迟模块加入及设置方法
按照类似的方法,加入舵机控制模块,使舵机旋转到70°,实现舵机的前踢腿;加入延时程序(可以设置延迟时间仍然是500),确保舵机可靠地旋转到70°;再加入一个舵机控制模块,让舵机恢复到站立状态的90°,完成以上这些操作后,编程图形变为如图28所示状态。
■图28 整体程序图形
Step8 将程序下载到机器人大脑
程序下载包括代码生成、编译、下载三个步骤。编写好图形连接的程序后,鼠标左键单击自动对齐图标,如图29左图所示,可以让绘图区内的图标自动有序地排列。单击图29右图红色圆圈中的图标,完成将图形编程转换为计算机可以读取的字符代码,生成代码如图29右图所示。
■图29 图标自动对齐、代码生成示意图
单击代码生成图标右侧的编译图标,完成对代码的编译(编译就是计算机把上面所生成的代码转换成机器人“大脑”能识别的指令),编译成功后会在整个软件界面的左下角显示“编译成功!”,如图30右图所示。
■图30 编译及编译结果显示
将控制盒用USB线与电脑相连,并打开控制盒电源,按下控制盒上的相应按键,使控制盒屏幕选中下载。单击电脑编程软件的下载图标(该图标在编译图标右侧),弹出下载配置窗口,如图31所示。单击“串口号:”空白处的下拉三角处,选择最下面一行,鼠标左键单击下载,同时按下控制盒中间确定键,开始下载程序。当程序下载完成窗口弹出后,拔下连接线即可。
■图31 下载配置窗口
射门球员的程序就算是大功告成了,守门员程序的大体步骤和射门球员程序步骤基本类似,只是程序内容有所不同,同学们可以参考射门球员程序来编写守门员程序。守门员程序如图32和图33所示。
机器人“点球”大战例程
守门员程序图形如图32所示,具体参数设置如图33所示。
■图32 守门员程序图形
■图33 参数设置
创意expanding
超声波传感器可以对集装箱状态进行探测,如图34所示。将超声波传感器安装在塑料熔体罐或塑料粒料室顶部,当向集装箱内部发出声波时,就可以据此分析集装箱的状态,如满、空或半满等。
■图34 利用超声波传感器探测集装箱状态
超声波传感器可用于检测透明物体、液体、任何表面粗糙、光滑、光的密致材料和不规则物体。但不适用于室外、酷热环境或压力罐以及泡沫物体。
超声波传感器可以应用于食品加工厂,实现塑料包装检测的闭环控制系统。配合新的技术可在潮湿环(如洗瓶机)、噪声环境、温度极剧烈变化环境等条件下进行探测。
超声波传感器可用于探测液位、透明物体和材料,控制张力以及测量距离,主要为包装、制瓶、物料搬运、检验煤的设备、塑料加工以及汽车行业等。超声波传感器可用于流程监控,以提高产品质量、检测缺陷、确定有无以及其他方面。如图35所示,利用超声波传感器,我们可以探知海底深度,防止货船触礁。在捕鱼业中,超声波声呐技术也起到了至关重要的作用,如图35所示。同时,军事上,超声波雷达也可以探知敌方潜艇位置,可谓是海上万能法宝。
■图35 声呐的应用
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。