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