灭火机器人教程课件.ppt
2022/12/9,灭火机器人教程1,灭火机器人教程,灭火机器人教程1,仿真平台介绍,广茂达伙伴机器人有限公司开发的“能力风暴VJC1.5仿真版“VJC1.5开发版”简便易学 的图形化编程风格。同时,用户能在PC机上对程序进行仿真,通过虚拟机器人模拟“能力风暴智能机器人”的行为,从而验证软件的正确性,提高程序设计与调试能力。,灭火机器人教程1,平台的安装,安装:双击拷贝资料中如图所示的图标。用户可根据安装向导的提示进行安装,安装成功后,图形化交互式C语言开发库以及范例会自动安装到指定目录(默认为c盘)。,灭火机器人教程1,模块库区,灭火机器人教程1,1.执行模块,灭火机器人教程1,执行模块库简介, 功能:“直行”模块主要用于控制机器人前进、后退。 操作:用鼠标将“直行”模块移到流程图生成区并连接在程序中。设置时,右击“直行”模块,在弹出的对话框中设置参数。 设置参数说明: 速度:可用两种方式进行设置。第一种方式,可在速度输入对话框中直接输入速度值。当输入值为正时,机器人前进;值为0时,机器人停止;值为负时,机器人后退。输入值的绝对值越大,机器人移动速度就越快。第二种方式,可以直接用鼠标拖动标尺上的游标,改变速度的大小。注意:“直行”模块的名称根据设置的不同速度而变化,如果设置正速度,模块名称为“前进”;如果设置负速度,模块名称为“后退”;如果设置速度为0,模块名称为“停止”。时间:在时间输入对话框中,输入机器人移动的时间,单位为秒。你也可以选中随机时间,得到小于输入值的随机时间。,灭火机器人教程1,直行,灭火机器人教程1,转向, 功能:“转向”模块主要用于控制机器人转向。 操作:用鼠标将“转向”模块移到流程图生成区并连接在程序中。设置时,右击“转向”模块,在弹出的对话框中输入速度和时间。 设置参数说明: 转向速度:可用两种方式进行设置。第一种方式,可在对话框中直接输入速度值。当输入值为正时,机器人右转;值为0时,机器人原地不动(停止);值为负时,机器人左转。输入值的绝对值越大,机器人转动速度就越快。第二种方式,也可以直接用鼠标拖动游尺上的游标,设置转向速度。 注意:“转向”模块的名称根据设置的不同速度而变化,如果设置正速度,模块名称为“右转”;如果设置负速度,模块名称为“左转”;如果设置速度为0,模块名称为“停止”。 转向时间:在对话框中输入机器人转向的时间,单位为秒;你也可以选中随机时间,得到小于输入值的随机时间,灭火机器人教程1,转向,灭火机器人教程1,启动、停止电机, 功能: “启动电机”模块主要用于控制机器人移动,可以分别控制机器人左右两只电机的功率,得到“直行”和“转向”的各种组合。 “停止电机”模块主要用于关闭两个电机。 操作:用鼠标将“启动电机”模块移到流程图生成区,并连接在程序中。右击“启动电机”模块,在弹出的对话框中输入电机功率参数,可以实现左右两只主动轮按不同速度、不同方向行走。 设置参数说明: 左/右电机设置:可用两种方式进行设置。第一种方式,可在对话框中直接输入左/右电机功率值。当左右电机功率相同时,机器人直线行走。当左右电机功率不同时,机器人会走弧线。第二种方式,可拖动游标设置电机功率。 扩展电机设置:选中扩展电机即可。扩展电机的功率为100。,灭火机器人教程1,启动、停止电机,灭火机器人教程1,发音,1) 功能:“发音”模块主要用于让机器人发音,唱一个音符。 (2) 操作:用鼠标将“发音”模块移到流程图生成区并连接在程序中。右击“发音”模块,在弹出的对话框中选择音阶和节拍,也可直接输入音频与发声时间参数。 (3)设置参数说明: 时间:在对话框中输入机器人发音的持续时间,单位为秒。也可直接选择节拍,如二分之一音符发音0.5秒,四分之一音符发音0.25秒,以此类推。 音频设置:音频对应于机器人唱的音阶,单位为赫兹。 1,2,3等代表简谱音阶。 休止符,表示不发声(静音),也须指定时间间隔。自定义,可在对话框中输入任意音频数值,使机器人发出相应频率的声音。,灭火机器人教程1,发音,灭火机器人教程1,显示, 功能:“显示”模块主要用于在机器人LCD液晶显示屏上显示信息。 操作:用鼠标将“显示”模块移到流程图生成区,并连接在程序中。设置时,右击“显示”模块,在弹出的对话框中输入显示信息(英文、数字等)。选择“引用变量”,可以显示出程序中各种全局变量。显示模块与传感器模块相配合,就可以显示各个传感器的检测值。 显示信息设置:在对话框中直接输入要显示的英文信息。可以显示两行信息,每行最多16个字符。,灭火机器人教程1,显示,灭火机器人教程1,设置眼睛, 功能:模块主要用于设置机器人眼睛的颜色和状态,如:红、绿、黄、闪烁或者熄灭。 操作:用鼠标将“设置眼睛”模块移到流程图生成区,并连接在程序中。右击“设置眼睛”模块,在弹出的对话框中按你的想法设置机器人的眼睛。 设置参数说明: 眼睛参数:红色 绿色 黄色 闪烁 熄灭 。 先选中左眼或右眼,才可以对相应眼睛进行设置。,灭火机器人教程1,设置眼睛,灭火机器人教程1,计算, 功能:“计算”模块可用于加减乘除计算。 操作:用鼠标将“计算”模块移到流程图生成区,并连接在程序中。右击“计算”模块,在弹出的对话框中输入计算表达式。 设置参数说明: 计算结果赋值设置:点击整型变量按钮,随之弹出“变量百宝箱”对话框,在“变量百宝箱”对话框中选择变量,用来存放计算结果。 运算符号设置:在下拉列表框中选择运算符号。 计算表达式设置:可以是数与数运算,引用变量与引用变量运算,也可以是数与引用变量运算。,灭火机器人教程1,计算,灭火机器人教程1,2.传感器块模,灭火机器人教程1,传感器块模简介,红外测障: 功能:红外传感器包括两个红外发射器和一个红外接收器,能够检测到机器人左/右/前方是否有障碍物。 操作:将“红外测障”模块移到流程图生成区,并连接在程序中。右击“红外检测”模块,在弹出的对话框中设置相应的参数。 设置参数说明: 单功能模块 “红外变量一”:存储红外传感器检测值的变量。若要更换存储变量,左键单击该按钮,可在弹出的变量百宝箱中选择其它两个变量,“红外变量二”和“红外变量三”。 带判断功能的模块 “红外变量一”:功能同上。 条件判断表达式:左边的红外变量与右边的参数进行比较。 例:“红外变量一 = 左”代表如果检测到障碍在左边,条件判断成功,执行“是”下面的模块;如果检测到其他任何情况,条件判断失败,执行“否”下面的模块。例:“红外变量二 != 无”代表如果检测到有障碍物(无论在左边、在右边还是在前面),条件判断成功,执行“是”下面的模块;如果检测不到障碍物,条件判断失败,执行“否”下面的模块。,灭火机器人教程1,红外测障,灭火机器人教程1,碰撞检测,碰撞检测:功能:“碰撞检测”模块,主要用于检测机器人是否碰到障碍物,它能判断左/右/前/后等方向。操作:将“碰撞检测”模块移到流程图生成区,连接在程序中。右击“碰撞检测”模块,在弹出的对话框中设置相应的参数 。 设置参数说明: 单功能模块 “碰撞变量一”:存储碰撞传感器检测值的变量。若要更换存储变量,鼠标左键单击该按钮,可在弹出的变量百宝箱中选择其它两个变量,“碰撞变量二”和“碰撞变量三”。 带判断功能模块 “碰撞变量一”按钮:功能同上。 条件判断表达式:左边的碰撞变量与右边的参数进行比较。例:“碰撞变量一 = 左”代表如果检测到左边发生碰撞,则判断成功,执行“是”下面的模块;如果检测到其他任何情况,条件判断失败,执行“否”下面的模块。例:“碰撞变量三 != 无”代表如果检测到有碰撞(无论在哪个方向),条件判断成功,执行“是”下面的模块;如果检测不到碰撞,条件判断失败,执行“否”下面的模块。,灭火机器人教程1,碰撞检测,灭火机器人教程1,亮度检测,亮度检测:功能:“亮度检测”模块主要用于检测环境的光线明暗,传感器的返回值为0255,值越大,说明光线越暗。 操作:将“亮度检测”模块移到流程图生成区,连接在程序中。右击“亮度检测”模块,在弹出的对话框中设置参数。 设置参数说明: 单功能模块 “方式”单选按钮: 平均 检测左右两个光敏,再取平均值 左 检测左侧光敏 右 检测右侧光敏 偏差 左亮度检测值与右亮度检测值的差值 “亮度变量一”:存储光敏传感器检测值的变量。若要更换存储变量,可点击它,在弹出的变量百宝箱中可选择其它两个变量,“亮度变量二”和“亮度变量三”。 带判断功能的模块 “方式”单选按钮:功能同上。 “亮度变量一”按钮:功能同上。 条件判断表达式:左边的亮度变量与右边的参数进行比较。 例: “亮度变量一 200”代表检测到的光敏值小于200时候,条件判断成功,执行“是”下面的模块;否则条件判断失败,执行“否”下面的模块。光敏值可以是左光敏值、右光敏值、平均光敏值或左右光敏值之差。,灭火机器人教程1,亮度检测,灭火机器人教程1,灰度检测,灰度检测: 功能:“地面检测”模块,功能是通过照射地面,检测地面 的反射光强。传感器的返回值为0255,其值越大,说明地面越暗。 操作:将“地面检测”模块移到流程图生成区,连接在程序的相应位置。鼠标右键单击“地面检测”模块,在弹出的对话框中设置参数。 设置参数说明: 单功能模块 “地面变量一”:存储地面传感器检测值的变量。若要更换存储变量, 点击它,在弹出的变量百宝箱中,可选择其它两个变量,“地面变量二”和“地面变量三”。 带判断功能的模块 “地面变量一”按钮:功能同上。 条件判断表达式:左边的地面变量与右边的参数进行比较。 例:“地面变量一 200”代表地面灰度的检测值大于200的时候,条件判断成功,执行“是”下面的模块;否则条件判断失败,执行“否”下面的模块。,灭火机器人教程1,灰度检测,灭火机器人教程1,3.控制模块,灭火机器人教程1,多次循环, 功能:“多次循环”模块允许多次执行同一组指令。 操作:将“多次循环”模块移到流程图生成区,连接在程序中。右击“多次循环”模块,在弹出的对话框中输入循环次数,然后点击“确定”。在“多次循环”模块体内插入需重复处理的模块。 范例:让机器人唱do re mi 三次。操作如下,如图5-1所示: 先将“多次循环”模块移到流程图生成区,与主程序相连,并设置循环次数为3次; 再将三个“发音”模块移入到循环体内部,分别设置音符; 再将“结束”模块连接在程序的末尾。,灭火机器人教程1,多次循环,灭火机器人教程1,永远循环,功能:“永远循环”模块可用于永远执行循环体内的同一组指令。 操作:将“永远循环”模块移到流程图生成区,并连接在程序中的相应位置。在循环体内插入需永远循环处理的模块。 范例:要求机器人受到碰撞,则发音,如图5-2所示: 先将“永远循环”模块移到流程图生成区,与主程序相连; 再将“碰撞检测”模块移入到循环体内部,进行条件判断设置,如图5-2右上图所示: 再将“发音”模块移入到碰撞检测模块中,进行设置,如图5-2右下图所示: 再将“结束”模块连接在程序的末尾。,灭火机器人教程1,永远循环,灭火机器人教程1,条件循环, 功能:当设定条件成立,就进行循环。当设定条件不成立,就退出循环,执行后面的语句。 操作:将“条件循环”模块移到流程图生成区并连接在程序的相应位置。右击“条件循环”模块,在弹出的对话框中输入判断条件表达式,然后点“确定”。在循环体内插入需重复处理的模块。 范例:在周围很安静的情况下,机器人一直重复进行声音检测。你一旦发出响一点的声音,机器人就开始运动。程序如图5-3所示:先将“条件循环”模块移到流程图生成区,与主程序相连;在模块上点击右键,打开参数设置对话框,在“整形变量一”处点击,就会出现变量百宝箱,点击声音图标,然后选择“声音变量一”(如图5-3右上图所示),确定后,再按照图5-3右下图设置条件;接着将“声音检测”模块移入到循环体内部;然后将“直行”模块放在循环体外,设置速度和时间;最后将“结束”模块连接在程序的末尾。运行结果:一发出响一点的声音,机器人就行动起来。,灭火机器人教程1,条件循环,灭火机器人教程1,条件判断, 功能:根据条件在两组指令中选择一组执行,可以对任何全局变量和传感器变量进行判断,如果满足条件就执行左边“是”下面的指令,不满足条件就执行右边“否”下面的指令。 操作:将“条件判断”模块移到流程图生成区并连接在程序的相应位置。右击“条件判断”模块,在弹出的对话框中输入判断条件,然后点“确定”。在“条件判断”体内插入其它执行模块。 范例:机器人对外界的光线进行检测,如果外界光线很暗,就安静地呆着,如果光线足够亮,就旋转并发音(如图5-4所示)。 要点如下:将“亮度检测”模块的参数设置为“亮度变量一”;将“条件判断”模块的条件判断表达式设置为“亮度变量一 200”。,灭火机器人教程1,条件判断,灭火机器人教程1,控制模块的嵌套应用,前面介绍的各种控制模块也可以嵌套使用,完成一个复杂任务。那么这些模块如何嵌套呢?下面用例子来说明。 例如:让机器人不断检测外界碰撞,没有碰撞时不作反应,当右方有碰撞时向左转;前方有碰撞就后退;左方有障碍物就唱“mi就右转”。 我们先来看看这个程序(见图5-5)。不断的检测碰撞,要用到“永远循环”模块和“碰撞检测”模块。判断三个碰撞方向,要设置三个判断条件,条件判断表达式参考图5-6进行设置。,灭火机器人教程1,控制模块的嵌套应用,灭火机器人教程1,4.程序模块,灭火机器人教程1,结束模块, 功能:用于给主程序或任务加一个结束标志,该模块不产生JC代码。“结束”模块后不能再连接其他模块。 操作:用鼠标将“结束”模块移到流程图生成区,并连接在主程序或任务的结束位置。,灭火机器人教程1,新建子程序, 功能:把需要重复使用的一组模块新建为“子程序”,便于主程序调用,以精简程序。 操作:新建子程序是一个特殊的模块,它是子程序调用的第一步。其操作如下: 用鼠标点击“程序模块库”中的“新建子程序”模块,就会弹出一个“新建子程序”对话框。当从“子程序位置”组合框中选择“系统子程序“时,右边的列表框中会显示系统子程序模板。 “跟人走”、“红外避障”、“边唱边跳”等均是系统提供的比较常用的子程序模板。用户可以直接调用这些模板,也可以在这些模板的基础上对子程序修改后调用。“自定义”子程序模板可用于建立一个新的子程序。使用任何一种系统子程序,都需要确定子程序名称。 当从“子程序位置”组合框中选择“其它程序”时,会弹出一个文件打开对话框,如下图所示:,灭火机器人教程1,新建子程序,灭火机器人教程1,新建子程序,在这里可以选择任一流程图文件,点击“打开”。如果该流程图文件包括子程序,列表框中会出现存在的子程序名,用户也可调用这些子程序。 根据以上步骤,新建子程序后,会自动进入子程序的编辑窗口,可以像编辑主程序一样编辑子程序。在子程序窗口中,点击“主程序”快捷按钮 ,可以返回到主程序编辑界面。新建子程序不能超过10个。 主程序与子程序窗口之间的切换,选择菜单栏中“编辑主程序”或“编辑子程序”命令即可,灭火机器人教程1,子程序, 功能:调用一个“子程序”。此模块只能只能在主程序中使用。只有在新建了子程序之后,这个模块才会在主程序编辑界面“程序模块库”中出现。 操作: 在主程序编辑界面“程序模块库”中,可以看到新建的子程序模块图标。子程序模块和其他模块一样,可以移到流程图生成区,连接在主程序中使用。 在子程序模块上点击右键,可打开子程序设置对话框,点击其中“编辑”按钮,即可进入子程序的编辑界面。,灭火机器人教程1,为什么要用子程序,在编程的过程中,经常会遇到某一段程序在主程序中使用多次的情况,这时,我们就可以把这一段程序编写成子程序。而在主程序界面中,子程序就是一个功能模块,调用起来很方便。子程序的使用能让整个程序很有条理,也便于多人分工编写程序。,灭火机器人教程1,变量百宝箱,变量百宝箱提供了42个变量,分为14类。按顺时针方向依次为红外 、亮度 、地面 、声音 、电量 、整型数 、浮点数 、串行口 、通用扩展卡输入 、模拟输入 、数字输入 、时间 、转角 、碰撞 。黄色变量代表该变量里已经存放了数值,白色变量代表该变量还是空的。在变量名上点击一下,就会出现一把钥匙,表示该变量被选中。变量百宝箱的每个变量就是一个抽屉,存放数值和读取数值都需要变量百宝箱分配的“钥匙”。,2022/12/9,灭火机器人教程1,演讲完毕,谢谢听讲!,再见,see you again,3rew,