能力风暴的编程技术VJC1.5简介图形化交互式C语言(简称VJC)是用于能力风暴智能机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C语言,为开发智能机器人项目,程序与算法,教学等提供了简单而又功能强大的平台。流程图流程图是用一些图框表示各种操作。用图形表示算法,直观形象,易于理解。流程图能够比较清楚的显示出各个框直接的逻辑关系,因此它是表示算法的较好工具。例:将50名学生中成绩在80分以上者的学号和成绩打印出来。流程图的组成表示相应操作的框带箭头的流程线框内外必要的文字说明图形化编程VJC的图形化编程采用的就是流程图模型。它由几种基本形状的模块及带有箭头的方向线组成图形模块包括执行器模块(蓝色矩形)、单功能传感器模块(紫色平行四边形)、带判断功能的传感器模块(紫色菱形)、控制模块(红色菱形)和程序模块(黄色矩形或椭圆形)五种。流程图支持多任务程序,子程序调用,浮点数和整数,全局变量,简单表达式,复合条件判断,循环嵌套等。VJC1.5界面介绍流程图编程方法模块的基本操作模块的新增和连接模块的移动模块的删除图形模块的使用方法直行模块(1)功能:“直行”模块主要用于控制机器人前进、后退。(2)操作:用鼠标将“执行器模块库”中的“直行”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“直行”模块,在弹出的对话框中输入移动快慢与时间。(3)设置参数说明:?速度:可用两种方式进行设置。可在速度输入对话框中直接输入前进/后退速度值;当输入值为1~100时,机器人前进速度由慢到快;值为0时,机器人原地不动(停止);值为-1~-100时,机器人后退速度由慢到快;输入值的绝对值越大,机器人移动速度就越快;也可以直接用鼠标拖动旁边滑线按钮来设置速度。?时间:在时间输入对话框中输入机器人移动的时间,单位为秒;你也可以选中时间因子复选框,它可随机产生小于输入值的随机时间。转向模块(1)功能:“转向”模块主要用于控制机器人转向。(2)操作:用鼠标将“执行器模块库”中的“转向”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“转向”模块,在弹出的对话框中输入左/右转速度和时间。(3)设置参数说明:?转向速度:可用两种方式进行设置。可在速度输入对话框中直接输入左转/右转速度值;当输入值为1~100时,机器人右转速度由慢到快;值为0时,机器人原地不动(停止);值为-1~-100时,机器人左转速度由慢到快;输入值的绝对值越大,机器人转动速度就越快;也可以直接用鼠标拖动旁边滑线按钮来设置转向速度。注意:图形模块的名称根据设置的不同速度方向而变化,如果设置右转速度,模块名称为“右转”,如果设置左转速度,模块名称为“左转”,如果设置速度为0,模块名称为“停止”。启动、停止电机模块(1)功能:“启动电机”模块主要用于控制机器人移动,可以分别控制机器人的左右电机快慢和方向。“停止电机”模块主要用于关闭两个电机。(2)操作:用鼠标将“执行器模块库”中的“启动电机”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“启动电机”模块,在弹出的对话框中输入左/右电机功率参数,实现左右两只主动轮按不同速度、不同方向行走。延时等待模块(1)功能:“延时等待”模块主要是让机器人保持前一个状态一段时间。(2)(2)操作:用鼠标将“执行器模块库”中的“延时等待”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“延时等待”模块,在弹出的对话框中输入“等待时间”参数,以“秒”为时间单位。发音模块(1)功能:“发音”模块主要用于让机器人发音,唱一个音符。(2)操作:用鼠标将“执行器模块库”中的“发音”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“发音”模块,在弹出的对话框中可按单选简谱的节拍及音阶,也可直接输入音频与发声时间参数。(3)设置参数说明:发音持续时间:在时间输入对话框中输入机器人发音的持续时间,单位为秒显示。二分之一音符代表发音0.5秒,四分之一音符代表发音0.25秒。发音频率设置:机器人唱的音符,单位为赫兹。1,2,3,代表用简谱表示的音符。休止符,表示不发声。自定义,在音频输入对话框直接输入发音的频率。显示模块(1)功能:“显示”模块主要用于在机器人LCD上显示信息。(2)操作:用鼠标将“执行器模块库”中的“显示”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“显示”模块,在弹出的对话框中输入显示信息。选择“引用变量”,可以显示出程序中各种全局变量,显示模块与传感器模块相配合,就可以显示各个传感器的检测值。(3)设置参数说明:显示信息设置:直接在显示信息输入对话框输入显示英文信息。可以显示两行信息,每行最多可以显示16个字符。计算模块(1)功能:“计算”模块主要用加减乘除对变量进行计算和赋值。(2)操作:用鼠标将“执行器模块库”中的“计算”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“计算”模块,在弹出的对话框中输入计算表达式。(3)设置参数说明:计算结果赋值设置:点击整型变量按钮,弹出变量百宝箱对话框,在变量百宝箱对话框中选择计算结果存放的变量。运算符号设置:在下拉列表框中选择运算符号。计算数设置:在输入框中输入整数或小数。红外检测模块(1)功能:红外传感器包括两个红外发射器和一个红外接收器,能够检测到机器人左/右/前方是否有障碍物。(2)操作:用鼠标将“传感器模块库”中的“红外检测”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“红外检测”模块,在弹出的对话框中设置相应的参数(3)设置参数说明:单功能模块①“红外变量一“按钮:表明存储红外传感器检测值的变量。若要更换存储变量,左键单击击该按钮,可选择其它两个变量,红外变量二和红外变量三。带判断功能的模块①“红外变量一”按钮,功能同上②第二项是条件比较判断关系,第三项是方向。例:“==”“左”代表如果检测到障碍在左边,条件判断成功,执行“是”一侧连接的模块;其他任何情况条件判断失败,执行“否”一侧连接的模块。碰撞检测模块(1)功能:“碰撞检测”模块,主要用于检测机器人是否碰到障碍物,它能判断左/右/前/后/左前/右前/左后/右后八个方向。(2)操作:用鼠标将“传感器模块库”中的“碰撞检测”模块移到流程图生成区并连接在程序中的相应位置。设置时,右击“碰撞检测”模块,在弹出的对话框中设置相应的参数。(3)设置参数说明:单功能模块①“碰撞变量一“按钮:表明存储光敏传感器检测值的变量。若要更换存储变量,鼠标左键单击该按钮,可选择其它两个变量,碰撞变量二和碰撞变量三带判断功能模块①“红外变量一”按钮,功能同上②第二项是条件比较判断关系,第三项是方向。注意:第三项同时可选择多个方向,表示这些方向上的均发生碰撞。这时编辑框中的内容会相应变化,表明碰撞发生的方向,如作前、左后同时选则表示左边有碰撞。亮度检测模块(1)功能:“亮度检测”模块主要用于检测环境的光线明暗,传感器的返回值为0~255,其值越大,说明光线越暗。(2)操作:用鼠标将“传感器模块库”中的“亮度检测”模块移到流程图生成区并连接在程序的相应位置。设置时,右击“亮度检测”模块,在弹出的对话框中设置相应的参数(3)设置参数说明:单功能模块:①“方式“单选按钮:②“亮度变量一”按钮:表明存储光敏传感器检测值的变量。若要更换存储变量,可点击它,可选择其它两个变量,亮度变量二和亮度变量三带判断功能的模块:①“方式“单选按钮:功能同上;②“亮度变量一”按钮:功能同上;③条件判断关系:设置左边的亮度变量与右边的参数如何进行比较。④第三项是参数:用于和亮度检测值进行比较,需要根据机器人实际运行情况进行调整。声音检测模块(1)功能:“声音检测”模块,主要用于检测声音的大小,反馈的检测值为0~255之间的整数,值越大,声音越响,值越小,声音越弱。(2)操作:用鼠标将“传感器模块库”中的“声音检测”模块移到流程图生成区并连接在程序的相应位置。设置时,鼠标右键单击“声音检测”模块,在弹出的对话框中设置相应的参数。(3)设置参数说明:Ø单功能模块声音变量一:用来存储声音传感器检测值的变量。若要更换存储变量,鼠标左键单击该按钮,可选择其它两个变量,声音变量二和声音变量三。带判断功能的模块①声音变量一:功能同上②条件比较关系:设置左边的声音变量与右边的参数如何进行比较。③第三项声音参数:用于和声音检测值进行比较。需要根据机器人实际运行情况进行调整。系统时间模块(1)功能:“时间”模块主要用于检测机器人运行的时间,开机计时从零开始,下载程序后和按下复位键都会使时间恢复从零开始。(2)操作:用鼠标将“传感器模块库”中的“系统时间”模块移到流程图生成区并连接在程序的相应位置。设置时,鼠标右键单击“系统时间”模块,在弹出的对话框中设置相应的参数。(3)设置参数说明:单功能模块:①“时间变量一”按钮:用来存储系统时间的变量。若要更换存储变量,可点击它,可选择其它两个变量,时间变量二和时间变量三。带判断功能的模块:①“时间变量一”按钮:功能同上;②条件比较关系:设置左边的时间变量与右边的参数如何进行比较。③第三项时间参数:用于和时间检测值进行比较。需要根据机器人实际运行情况进行调整。转角检测模块(1)功能:转角检测”模块用于左右轮子旋转的角度和圈数,传感器的返回值为旋转的计数值。轮子转一圈,有32个计数脉冲,一个计数对应旋转角360/32≈11度。(2)操作:用鼠标将“传感器模块库”中的“转角检测”模块移到流程图生成区并连接在程序的相应位置。设置时,右击“转角检测”模块,在弹出的对话框中选择对左右轮旋转计数的检测方式和判断条件。(3)设置参数说明:单功能模块:①检测对象;②“转角变量一”按钮:用来存储旋转计数的变量。若要更换存储变量,可点击它,可选择其它两个变量,转角变量二和转角变量三。带判断功能的模块:①检测对象:功能同上;②条件比较关系:设置左边的转角变量与右边的参数如何进行比较。③第三项是参数:用于和旋转检测值进行比较。需要根据机器人实际运行情况进行调整。多次循环模块(1)功能:“多次循环”模块功能允许多次执行同一组指令。(2)操作:用鼠标将“控制模块库”中的“多次循环”模块移到流程图生成区并连接在程序的相应位置。设置时,右击“多次循环”模块,在弹出的对话框中输入需循环次数值,然后点“确定”。在“多次循环”流程图中插入需重复处理的其它模块。(3)范例:让机器人连续唱doremi三次。操作如下:永远循环模块(1)功能:“永远循环”模块功能允许永远执行同一组指令。(2)操作:用鼠标将“控制模块库”中的“永远循环”模块移到流程图生成区并连接在程序的相应位置。在“永远循环”流程图中插入需永远循环处理的模块。(3)范例:要求机器人如遇有碰撞,则发音,如下图:条件循环模块(1)功能:当设定条件成立,就进行循环。(2)操作:用鼠标将“控制模块库”中的“条件循环”模块移到流程图生成区并连接在程序的相应位置。设置时,右击“条件循环”模块,在弹出的对话框中输入判断条件,然后点“确定”。在“条件循环”流程图中插入需重复处理的其它模块。(3)范例:在周围很安静的情况下,机器人一直等待主人下达命令,直到你发出声音,机器人才开始运动,如图所示:条件判断模块(1)功能:条件判断的功能非常强大,根据条件在两组指令中选择一组执行,可以对任何全局变量和传感器变量进行判断,如果满足条件就执行左边“是”的指令,不满足条件就执行右边“否”的指令。(2)操作:用鼠标将“控制模块库”中的“条件判断”模块移到流程图生成区并连接在程序的相应位置。设置时,右击“条件判断”模块,在弹出的对话框中输入判断条件,然后点“确定”。在“条件判断”流程图中插入其它执行模块。任务开始模块(1)功能:用于新建一个与主程序同时运行的子任务。(2)操作:用鼠标将“程序模块库”中的“任务开始”模块移到流程图生成区,任务开始模块自动定位在主程序右侧。你可以象编写主程序一样编写新任务。子任务可以像普通模块一样删除。新建子任务不能超过16个。结束模块(1)功能