VEX easy v4编程软件使用教程.ppt
81页VEX 机器人软件编程教程,EasyC V4 VEX机器人编程软件,说明:本教程大部分采用以下系统配置:主机 Windows 8 Consumer Preview x64虚拟机:Hyper-V Windows 7/windows xpEasyC版本:4020注意:EasyC的试用期为7天,如果你没有序列号,请使用沙盘或硬盘保护系统一、软件的安装,1.1、双击EasyC安装程序 ,启动安装;1.2、引导界面,单击Next继续;1.3、使用协议,单击Next继续;,软件的安装,1.4、选择安装位置建议使用默认位置,这样不容易出现问题编译工具类软件在安装到非默认路径时常常出现各种各样的问题1.5、单击Install开始安装软件的安装,1.6、安装过程1.7、安装完成,附加选项: ☞Add easyC icon to the Desktop Folder(在桌面上建立easyC快捷方式)☞Install VEX Programming Driver(安装Vex编程驱动)-这个驱动用于使用USB把Vex主控器直接连接到电脑以下载程序和/或更新固件☞Install Innovation FIRST USB to Serial adapter driver(安装PL-2303HX USB转串口驱动)-这个驱动用于通过VEXnet下载程序。
注意:在沙盘中安装驱动极有可能失败二、主界面,模块区,链接编译区,C语言代码区,编程区,工具栏菜单,三、工具栏模块,,,,,,,,,四、编程区,对于4.0版其编程区包括端口设置模块(Config)、变量定义模块(Variables)、全局变量模块(Globals)、开始模块(BEGNI)和结束模块(END) 全局变量模块和变量定义模块应当在开始编程之前定义 在每一个程序里,开始模块标识程序模块代码的第一个模块;结束模块标识程序模块代码的最后一个模块你必须放置所有的模块在这两个模块之间 插入模块:在模块区用鼠标左键点住相应模块,拖动到编程区的开始和结束模块之间,放开鼠标,然后只要设置好模块的属性就行了编辑模块(Edit):左键双击修改,也可单击右键选择Edit block进行修改复制模块(Copy):可单击右键选择copy,也可以按住ctrl键拖拽模块将复制的模块放到你需要放置它的位置剪切模块(Cut):先选中模块,再点右键选择剪切cut,将剪切的模块粘贴到你需要放置它的位置粘贴(Paste) :点右键,选择粘贴删除模块(Delete):点右键,然后选择删除右键单击任何一个模块,可以对该模块进行编辑、复制、剪切、删除、粘贴等操作 。
五、I/O定义模块,双击I/O图标或点鼠标右键(I/O定义模块),你能够配置控制器的I/O端口模拟/数字端口(共21个端口)(ANALOG/DIGITAL):模拟端口(默认为1~8),箭头表示数字端口;箭头向左的表示信号是由外部输入到主控器(默认为9~12) ,箭头向右的表示信号是由主控器内部输出(默认为1~8),模拟和数字端口不可以互换,数字端口的输入输出也可以更改;马达端口(MOTORS) (共10个口):不能更改;其中三线马达接口2~9,两线马达分别是1和10. UART1/UART2为通用异步收发器端口,I2C为总线端口六、变量设置模块,双击变量设置图标,打开程序变量定义对话框你能设置程序需要使用到的变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值,全局变量设置模块(4.0版),双击全局变量设置图标,打开程序变量定义对话框你能设置程序需要使用到的全局变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值,也可以不设置这里可以键入变量的值,要求必须是英文数字组成,也可先不定义变量的值,这里可以删除整行不需要的变量,1.变量类型,一般选整形int,2.键入变量名字,要求必须是英文字母组成,局部变量设置模块(4.0版),双击局部变量设置图标,打开程序变量定义对话框。
你能设置程序需要使用到的局部变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值,1.选择变量类型,一般都选int(整型变量),2.键入变量名字,要求必须是英文字母组成,这里可以删除整行不需要的变量,这里可以键入变量的值,要求必须是英文数字组成,也可先不定义变量的值,变量定义表,七、接口说明,马达端口,模拟端口,数字端口,接口说明,电源开关,电池插口,接收器/线控插口1,接收器/线控插口2,USB接口,主控器备用电池接口,复位键,八、Program Flow程序流程控制,1、单向选择结构If,,If-条件,只要符合设定的条件,将运行if语句内部的程序如果不符合设定的条件,它将跳过表达式if条件语句的部分,运行下一个程序模块1.选择变量,2.选择变量运算符号,3.设置变量的表达式,4.注释内容,单向选择结构If,If模块编程范例:以编碰撞开关为例;右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,接着拖入一个while loop模块,条件设置为数字1,构成永远循环,然后拖入一个Bumper Switch模块,再拖入If 模块,在if条件里面设置a=0,在if 语句里面拖入一个马达模块设置为正转和一个wait模块设置为1秒;然后停止马达;那么这个程序的功能为:当碰撞开关碰到时马达一正转1秒,然后停止;当没碰到时则不运行任何程序。
2、 Else-If嵌套选择结构模块,,Else-If条件,必须与IF模块结合才能使用,表示和IF模块的条件相反,也可自定义条件,1.选择变量,2.选择变量运算符号,3.设置变量的表达式,3、 Else模块,,Else条件,必须与IF模块结合才能使用,默认表示和IF模块的条件相反,不能自定义条件,1.只能注释,4、While Loop模块,只要符合设定的条件, While Loop将不停的重复执行其语句内部的程序如果不符合设定的条件,它将跳出循环,执行循环外部的模块给它设置条件时,它构成的时条件循环,即不满足条件的时候,它还能跳出该循环;当把条件设置成数字1的时候,它则构成了一个永远循环,即永远都运行其内部的程序 在遥控编程的时候需要用到永远循环1.选择变量,2.选择变量运算符号,3.设置变量的表达式,While Loop模块,While Loop模块编程范例1:以编碰撞开关为例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个碰撞检测模块,再拖入While Loop模块,条件里面设置a=1,表示碰撞开关处在断开的状态,在当循环里面拖入一个马达模块设置为正转,再拖入一个Bumper Switch模块,属性和While Loop外面的Bumper Switch的属性一样,;在While Loop外面拖入一个马达模块设置为停止;那么这个程序的功能为:当碰撞开关没碰到时马达2正转,直到碰撞开关碰到时,马达2才停止,5、多次循环For Loop,1.选择变量,并设置变量的初始值,如变量是a,初始值为0,那么这里就该设置:a=0,2.设置循环次数,表示需要运行FOR语句里面的程序多少次,如变量是a,要循环运行一段程序10次,那么这里就该设置:a<=10,3.选择运算符号,这里选择++,意思是:使变量做自加运算,即变量运行完一次,便在原来的基础上在加1,加1以后,程序就会在运行一次,直到运行完前面设置的10次,它才停止自加运算;如变量是a,那么这里里就该设置:a++,多次循环For Loop,多次循环For Loop模块编程范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个FOR模块,条件设置为for条件设置为 a == 0; a <= 3; a ++ ,表示变量a初始值为0,做自加运算,直到a的值等于3才跳出for条件;接着拖入一个Wait模块,设置为3秒,最后拖入一个马达模块,停止马达2;那么该程序的功能为:马达2正转9秒后停止,6、定时器Timer,定时器Timer相当于一个预先放置在主控器内部的时间传感器,它需要预先定义变量才能使用,可以控制程序的执行时间,Wait只能延续马达的启动时间定时器的单位为毫秒100表示0.1秒1000表示1秒10000表示10秒以此类推,1.选择开始,“开始”命令定时器开始计时。
2.选择定时器的编号,定时器Timer,3.选择预设,“预设”命令允许用户给定时器预设一个固定的值或预先定义好的变量6.选择取值,“取值”命令允许用户把来自定时器的反馈值赋给一个变量4.选择编号,5.选择变量,7.选择编号,8.选择变量,定时器Timer,定时器Timer编程范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义变量a和变量b,然后拖入一个定时器模块选择开始,赋值给变量a;接着拖入一个定时器模块,选择预设,赋值给变量a;在拖入一个定时器模块,选择取值,赋值给变量a;然后拖入一个当循环模块,条件设置为a<=5000表示定时器变量小于等于5秒,当循环里面拖如一个马达模块,正转1秒,然后停止1秒,最后在次赋值;这个程序的功能为:定时器时间小于等于5秒就执行其内部的马达正转1秒然后停止1秒,当定时器的时间大于5秒时就跳出当循环,7、悬空等待Wait,Wait模块,在指定的时间段里,延长上一个模块的执行时间这段时间以微秒计时即100表示0.1秒1000表示1秒10000表示10秒以此类推,悬空等待Wait,悬空等待Wait模块编程范例:右边每一个模块的属性在后面的注释里面都有说明以编马达为例,首先拖入一个马达模块,设置为正转;然后拖入以个悬空等待模块,设置为3秒,最后拖入一个马达模块设置为停止;那么该程序的功能为:马达1正转3秒停止。
8、表达式赋值Assignment,表达式赋值Assignment模块相当于一个通用模块,你可以在里面输入任何条件对变量进行运算或者输入任何代码来代替任何模块的功能; 你能够为一个变量设置一个明确的值,例如: bumper=0 你能够定义一个数学表达式,例如: x + y=z,9、中断Break,中断模块功能常用在当循环或者IF条件中,表示当程序运行到中断模块处,不管它后面还有没有模块,或者不管满不满足条件,它都会跳到当循环或IF条件的后面,执行它们后面的程序,只能对该模块做对你修改和查阅程序有帮助的注释说明,中断Break,中断Break编程范例1:右边每一个模块的属性在后面的注释里面都有说明虽然程序一开始设置的是一个永远循环,理论上是永远都运行当循环里面的程序,永远都跳不出来,但是加了中断模块以后,程序的功能就变化了;该程序功能为:程序进入当循环,启动马达1正转2秒,然后停止2秒,接着就马上中断当循环条件,跳到当循环的下面,执行下面的马达1反转1秒,然后停止中断Break,中断Break编程范例2:右边每一个模块的属性在后面的注释里面都有说明虽然程序一开始设置的是一个永远循环,理论上是永远都运行当循环里面的程序,永远都跳不出来,但是加了中断模块以后,程序的功能就变化了;该程序功能为:程序进入当循环,检测碰撞,如果碰撞没碰到,就启动马达1正转,如果碰撞开关闭合,程序就马上中断当循环条件,跳到当循环的下面,执行下面的马达1反转1秒,然后停止。
10、继续Continue,继续Continue:跳到循环的条件判断处,从新判断,。





