VEX编程软件使用教程20课件_第1页
VEX编程软件使用教程20课件_第2页
VEX编程软件使用教程20课件_第3页
VEX编程软件使用教程20课件_第4页
VEX编程软件使用教程20课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VEX 机器人软件编程教程目录一一、使用注意事项八、Inputs主控输入:1、碰撞开关传感器 bumper switch2、光敏传感器 light sensor3、限位开关limit switch4、巡线传感器 Line Follower5、编码器 Optical Shaft6、超声波传感器Ultrasonic Sensor7、数字输入 Digital Input8、模拟输入 Analog Input二、主界面三、工具栏模块四、编程区五、I/O定义模块六、变量设置模块七、接口说明目录二九、Outputs主控输出:1、马达控制 Motor Module2、伺服控制 Servo Module3、数

2、字输出 Digital Output十、Program Flow程序流程控制:1、单向选择结构If2、 Else-If嵌套选择结构模块3、 Else模块4、双向选择结构 If-Else3、当循环While Loop4、多次循环For Loop5、定时器Timer6、悬空等待Wait7、表达式赋值Assignment8、中断Break9、继续Continue10、返回Return11、屏幕输出Print To Screen12、程序注释Comment13、自定义代码User Code目录三十一、RC Control遥控通道控制:1、 遥控器按键说明2、 遥控器的基本操作3、 遥控接收器接法示意图

3、4、 遥控最优系统搭配5、 单杆控制双马达Arcade-2 motor6、 单杆控制四马达Arcade-4 motor7、 双杆控制双马达Arcade-2 motor8、 双杆控制四马达Arcade-4 motor9、 单杆控制单马达Motor Module Rx10、单杆控制伺服器Servo Module Rx11、遥控通道Rx Input12、脉宽调制PWM Control13、用户自定义函数User Functions14、在线控制模式十二、自动程序和遥控程序结合范例十三、下载线接法十四、下载线端口查看方法十五、中文版程序下载步骤十六、英文版下载步骤一、使用注意事项如果是没有购买序列号的

4、用户,安装了软件,打开软件时会弹出一个注册的窗口,中文版点暂不注册按钮便可以试用。英文版点Run in Evaluation Mode按钮便可试用; 1.0版本的软件只能试用30天,2.0英文版本只能试用7天;2.0中文版有15天;如果是购买了序列号的用户,在注册的时候需要联网注册, 每个序列号也只能在一台电脑上使用,英文版如果换了电脑再使用该序列号注册,那么该系列号就不可用了,2.0中文版一个序列号也只能一台电脑注册,如要换电脑注册可以点菜单栏 帮助 注销,然后在另一台电脑上就可以再次使用该序列号了;如果是没有购买序列号的用户,只要一装上软件,便自动与系统硬件绑定,试用期到了以后即使把软件卸

5、载了在重装也不能继续试用,建议先用备份工具备份系统,然后才安装英文版软件,这样软件过期了以后,只需要把系统还原,在重装VEX软件即可继续试用;VEX编程软件有中文版和英文版两个版本(中文和英文分别都有1.0版本和2.0版本),两个版本不能混用,不要既下载中文版编的程序到主控器,又下载英文版编的程序到主控器,这样会损坏主控器的底层程序,严重时会导致主控器的某些芯片不可用,从而导致主控器不能使用;中文版和英文版的程序和代码都不能用对方的的软件相互打开并编辑,既:英文版只能打开用英文版软件编的程序和代码,中文版只能打开用中文版软件编的程序和代码;中文1.0版软件编好的程序不能保存到C盘(包括桌面),

6、否则会导致程序不能打开或者出现错误;中文1.0版软件在每次下载程序之前都要先保存编译链接然后再下载,然后选择端口;查看下载线使用的COM口的方法是:我的电脑右键属性硬件设备管理器端口(COM和LPT) Prolific USB-to-Serial Comm Port (com3)最后这一项的com3就是当前VEX下载线使用的端口;然后再在软件里面选择相应的端口即可下载程序到主控器,具体方法后面有详细介绍;1.0版本软件不能定义子程序,2.0版本软件可以定义子程序;1.0版本的软件所有变量都是全局变量;2.0版本软件中可以定义全局变量和局部变量;1.0版本的软件没有中断、继续、返回模块,2.0版

7、本软件中有。当主控器出现执行程序混乱的情况时,说明有可能是主控器的底层程序不正常,那么只需要从新下载一次底层程序即可,中文版2.0为,菜单栏生成下栽初始化程序二、主界面工具栏菜单编程区C语言代码区链接编译区模块区三、工具栏模块(英文版)新建工程 :创建一个新的工程调试和下载 :下载你当前窗口的程序到主控器打开工程: 打开你保存在电脑上的程序或代码文件终端窗口:选择下载线和电脑连接的COM端口保存工程:保存一个工程在线窗口 :开始在线检测窗口工程窗口:显示和隐藏工程窗口入门级别:在工程窗口显示基本的函数模块输出窗口 :显示和隐藏输出窗口高级级别 :在工程窗口显示先进(高级)的函数模块控制器配置

8、:打开控制器配置对话框专业级别 :在工程窗口显示所有可利用的函数模块程序变量 :打开程序变量对话框放大 :增大流程图显示的比例尺寸编译工程 :编译打开的工程代码缩小 :减小流程图显示的比例尺寸工具栏模块(中文版1.0)新建工程 :创建一个新的工程打开工程: 打开你保存在电脑上的程序或代码文件编译工程 :编译打开的工程代码链接工程 :链接打开的工程代码下载 :下载你当前窗口的程序到主控器放大 :增大当前窗口显示的比例尺寸缩小 :减小当前窗口显示的比例尺寸关于我们 :显示版本信息工具栏模块(中文版2.0)新建工程 :创建一个新的工程打开工程: 打开你保存在电脑上的程序或代码文件保存工程 :保存当前

9、的工程代码项目浏览 :关闭和打开模块区输出窗口 :关闭和打开编译链接代码输出显示区主控器设置 :设置主控器的I/O口全局定义 :定义全局变量编译 :对当前打开的程序进行编译查错编译并下载:对当前打开的程序进行编译并下载到主控器四、编程区 对于1.0版每一个新的程序都会有一个I/O定义模块,变量定义模块(Variables),开始模块(BEGNI)和结束模块(END)。 2.0版则增加了局部变量定义模块; I/O模块和变量定义模块应当在开始编程之前定义。 在每一个程序里,开始模块标识程序模块代码的第一个模块;结束模块标识程序模块代码的最后一个模块。你必须放置所有的模块在这两个模块之间。 插入模块

10、:在模块区用鼠标左键点住相应模块,拖动到编程区的开始和结束模块之间,放开鼠标,然后只要设置好模块的属性就行了。编辑模块(Edit):左键双击修改,也可单击右键。英文版是点右键,选择粘贴编辑。复制模块(Copy):中文版2.0是ctrl+c复制模块,也可单击右键;英文版是按住ctrl键,拖拽模块。将复制的模块放到你需要放置它的位置。也可单击右键。剪切模块(Cut):中文版2.0是ctrl+x剪切模块,也可单击右键;英文版是先选中模块,再点右键选择剪切。粘贴(Paste) :中文版2.0是ctrl+v粘贴模块,也可单击右键;英文版是点右键,选择粘贴。删除模块(Delete):中文版2.0是Dele

11、te键删除模块,也可单击右键;英文版是点右键,然后选择删除。右键单击任何一个模块,可以对该模块进行编辑、复制、剪切、删除、粘贴等操作 。五、I/O定义模块双击I/O图标或点鼠标右键(I/O定义模块),你能够配置控制器的I/O端口。模拟/数字端口(共16个口)(ANALOG/DIGITAL):波浪线表示模拟端口(默认为14),箭头表示数字端口;箭头向左的表示信号是由外部输入到主控器(默认为510) ,箭头向右的表示信号是由主控器内部输出(默认为1116),模拟和数字端口可以互换,数字端口的输入输出也可以更改;中断端口(INTERRUPTS) (共6个口):不能更改;马达端口(MOTORS) (共

12、8个口):不能更改;六、变量设置模块(1.0版)双击变量设置图标,打开程序变量定义对话框。你能设置程序需要使用到的变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值全局变量设置模块(2.0版)双击全局变量设置图标,打开程序变量定义对话框。你能设置程序需要使用到的全局变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值,也可以不设置。1.选择变量类型,一般都选int(整型变量)2.键入变量名字,要求必须是英文字母组成这里可以键入变量的值,要求必须是英文数字组成,也可先不定义变量的值这里可以删

13、除整行不需要的变量局部变量设置模块(2.0版)双击局部变量设置图标,打开程序变量定义对话框。你能设置程序需要使用到的局部变量;这里数据类型一般都选择int,变量名称需要是英文字母,其它的可以不填也可以在变量取值处设置变量的值1.选择变量类型,一般都选int(整型变量)2.键入变量名字,要求必须是英文字母组成这里可以删除整行不需要的变量这里可以键入变量的值,要求必须是英文数字组成,也可先不定义变量的值变量定义表七、接口说明接口功能马达端口MOTORS共有8个口主控器上标有MOTORS字样的端口,用来接马达和伺服器中断端口INTERRUPTS共有6个口主控器上标有INTERRUPTS字样的端口,用

14、来接超声波传感器的OUTPUT端和编码器模拟/数字端口ANALOG/DIGITAL共有16个口主控器上标有ANALOG/DIGITAL字样的端口,默认14为模拟/数字通用端口,可接巡线、光敏、碰撞、行程,默认510为数字输出端口,可接碰撞、行程,默认1116为数字输入端口,接超声波的Input端,都可以自行更改接口说明电源开关电池插口接收器/线控插口1接收器/线控插口2程序下载线插口八、Inputs主控输入1、碰撞开关传感器 bumper switch碰撞开关是数字式的传感器。它有两种状态:即开和关;当碰撞开关断开的时候,定义为1。当碰撞开关闭合的时候,定义为0。打开位于Test Code的文

15、件夹中的BUMPERTEST.ECP工程,看其示范怎样编写碰撞开关程序。 1.选择碰撞开关连接在主控器上的通道2.选择一个预先定义的碰撞开关变量对当前模块注释,将帮助你阅读程序和理解模块的功能。 3.设置好以后点OK碰撞开关传感器 bumper switch碰撞开关程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个碰撞检测模块,接着拖入一个当循环模块对当前碰撞变量进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个碰撞检测模块,属性和当循环外面的碰撞检测模块的属性一样,这样就构成了一个条件循环,最后在当循环外面

16、在拖入一个马达控制模块;那么这个程序的功能就是:当 a=1即是碰撞开关没碰到时,就不停的启动马达1正转,反之a=0则是当碰撞开关碰到时,就跳出当循环,停止马达1。2、光敏传感器 light sensor 光敏传感器是模拟式的传感器,它是用来检测周围环境光线的亮暗的传感器;把光线由亮到暗的范围定义在0到1024。值越小表示光线越亮,值越大表示光线越暗; 打开位于Test Code文件夹中的LIGHTTEST.ECP工程,看其示范怎样编写光敏传感器程序。 1.选择光敏传感器连接在主控器上的通道2.选择一个预先定义的光敏传感器变量对当前模块注释,将帮助你阅读程序和理解模块的功能。 3.设置好以后点O

17、K光敏传感器 light sensor光敏传感器程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个光敏检测模块,选择变量a,接着拖入一个当循环模块对当前亮度变量(即变量a)进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个光敏检测模块,属性和当循环外面的光敏检测模块的属性一样,这样就构成了一个条件循环,最后在当循环外面在拖入一个马达控制模块;那么这个程序的功能就是:当 a=800则是光线比较暗时,就跳出当循环,停止马达1。3、限位开关limit switch 限位开关是数字式的传感器。和碰撞开关类似;它有两种

18、状态:即开和关;当限位开关断开的时候,定义为1。当限位开关闭合的时候,定义为0。打开位于Test Code的文件夹中的LIMITTEST.ECP工程,看其示范怎样编写行程开关程序。 1.选择限位开关连接在主控器上的通道2.选择一个预先定义的限位开关变量对当前模块注释,将帮助你阅读程序和理解模块的功能。 3.设置好以后点确定限位开关limit switch限位开关程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个限位检测模块,接着拖入一个当循环模块对当前限位变量进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个

19、限位检测模块,属性和当循环外面的限位检测模块的属性一样,这样就构成了一个条件循环,最后在当循环外面在拖入一个马达控制模块;那么这个程序的功能就是:当 a=1即是限位开关没闭合时,就不停的启动马达1正转,反之a=0则是当限位开关碰到时,就跳出当循环,停止马达1。4、巡线传感器 Line Follower1.选择巡线传感器连接在主控器上的通道2.选择一个预先定义的巡线传感器变量对当前模块注释,将帮助你阅读程序和理解模块的功能。 3.设置好以后点确定巡线传感器是模拟式的传感器,它是用来检测颜色的传感器;把颜色的深浅由白到黑的范围定义在0到1024。值越小表示颜色越白,值越大表示颜色越黑; 打开位于T

20、est Code的文件夹中的LINEFOLLOWER.ECP工程,看其示范怎样编写巡线传感器程序。 巡线传感器 Line Follower巡线传感器程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个巡线检测模块,接着拖入一个当循环模块对当前灰度变量(即变量a)进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个巡线检测模块,属性和当循环外面的巡线检测模块的属性一样,这样就构成了一个条件循环,最后在当循环外面在拖入一个马达控制模块;那么这个程序的功能就是:当 a=800则是颜色比较黑时,就跳出当循环,停止马达1。

21、5、编码器 Optical Shaft Encoder编码器是一个数字式的传感器。它能够用来测量和定义马达转动的圈数或者路程。编码器一般插在中断端口(INTERRUPTS)编码器旋转(360 度)等于90个编码脉冲。 打开位于Test Code的文件夹中的ENCODERTEST.ECP工程,看其示范怎样编写编码器程序。 1.选择开始,开始记录编码脉冲2.选择编码器连接在主控器上的端口编码器 Optical Shaft Encoder6.选择取值,开始把值反馈给变量7.选择编码器连接在主控器上的端口8.选择一个预先定义的变量3.选择预设4.选择编码器连接在主控器上的端口5.选择固定值,设为0,表

22、示编码器的初始值为0,为编码器清零对当前模块注释,将帮助你阅读程序和理解模块的功能。 编码器 Optical Shaft Encoder编码器程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入三个编码器检测模块,第一个选择开始,第二个选择预设,第三个选择取值;接着拖入一个当循环模块对当前路程变量(即变量a)进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个编码器检测模块,属性和当循环外面设置取值的那个编码器检测模块的属性一样,这样就构成了一个条件循环,最后在当循环外面在拖入一个马达控制模块;那么这个程序的功能就是

23、:当 a30则是马达转动的路程达到30时,就跳出当循环,停止马达1。6、超声波传感器Ultrasonic Sensor 1.选择开始,开始命令告诉超声波开始记录声波。 2.选择超声波传感器连接在主控器上的中断端口3.选择超声波传感器连接在主控器上的输出端口4.选择取值,取值命令允许用户将来自超声波的值反馈给一个变量。 5.选择超声波传感器连接在主控器上的中断端口6.选择超声波传感器连接在主控器上的输出端口7.选择一个预先定义的变量超声波传感器利用高频率的声波来探测障碍物。它发射一个超声波信号,声波被外界物体反射回来。然后超声波传感器就可以根据接收到的信号的时间和强弱计算出离障碍物的距离超声波传

24、感器有两根连接线确保标有Output标签的线连接到主控器的中断端口。确保标有Input标签的线连接到主控器的数字输出端口(默认的为1116)。超声波的取值范围是:2100小于2cm是超声波的盲区,在2cm以内就检测不到任何物体。打开位于Test Code的文件夹中的ULTRASONICTEST.ECP工程,看其示范怎样编写超声波传感器程序。 超声波传感器Ultrasonic Sensor超声波传感器程序范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入两个超声波检测模块,第一个选择开始,第二个选择取值;接着拖入一个当循环模块

25、对当前超声波变量(即变量a)进行判断,然后在当循环里面拖入一个马达控制模块,再拖入一个超声波检测模块,属性和当循环外面设置取值的那个超声波取值模块的属性一样,这样就构成了一个条件循环,最后在当循环外面在拖入一个马达控制模块;那么这个程序的功能就是:当 a20即是当前超声波和障碍物的距离没有达到20时,就不停的启动马达1正转,反之a=20则是超声波与障碍物之间的距离达到20和20以内时,就跳出当循环,停止马达1。7、数字输入 Digital Input1.选择端口,一般默认为数字/模拟口5102.选择选择预先定义好的变量数字输入 Digital Input模块可以代替所有数字式的传感器模块8、模

26、拟输入 Analog Input1.选择端口,一般默认为数字/模拟口142.选择选择预先定义好的变量模拟输入 Analog Input 模块可以代替所有模拟式的传感器模块九、Outputs主控输出1、马达控制 Motor Module1.选择马达连接在主控器上的端口2.选择255表示马达以最快的速度正转3.选择127表示马达以停止4.选择0表示马达以最快的速度反转5.选择用户自定义则表示用户自己设置马达的速度0127之间的数字都是反转,越接近127速度越慢,127255之间的数字都表示正转,越接近127速度越慢6.设置好以后点确定马达的输出轴正对自己,顺时针表示正转,逆时针表示反转;箭头图标向

27、上暗示马达正转。箭头图标变成一个黄色的点暗示马达停止。 箭头图标向下暗示马达反转。马达控制 Motor Module马达控制编程范例1:右边每一个模块的属性在后面的注释里面都有说明首先拖入一个马达模块,选择正转,再拖入一个悬空等待模块,设置为1000,表示一秒;然后再拖入一个马达模块,选择停止;那么这个程序的功能为:马达1正转一秒后停止。需要注意的是你启动了几个马达那么在停止的时候就要加多少个停止马达。马达控制编程范例2:右边每一个模块的属性在后面的注释里面都有说明首先拖入一个当循环模块,条件设置为1,表示永远循环;然后再当循环里面拖入一个马达模块,选择正转;那么这个程序的功能为:马达1永远正

28、转。马达方向辅助图表假设一不小车上装了两个马达,左右各一个,来给小车提供动力,那么小车的运动情况如下表小车前进小车后退小车以两个轮子的中心点为圆心向左转弯(也可一个马达转一个马达不转,这样以一个马达为圆心转弯)小车以两个轮子的中心点为圆心向右转弯(也可一个马达转一个马达不转,这样以一个马达为圆心转弯)2、伺服控制 Servo Module伺服器和马达有区别,马达能转动360度,而伺服器只能转动一定的角度,大约120度伺服器的输出轴正对自己,顺时针表示正转,逆时针表示反转;箭头图标向下暗示伺服器正转。箭头图标变成一个黄色的点暗示伺服器停止。 箭头图标向上暗示伺服器反转。1.选择伺服器连接在主控器

29、上的端口2.选择255表示伺服器正转最大的角度3.选择127表示伺服器停止4.选择0表示伺服器反转最大的角度5.选择用户自定义则表示用户自己设置伺服器的角度0127之间的数字都是反转,越接近127角度越小,127255之间的数字都表示正转,越接近127角度越小6.设置好以后点确定伺服控制 Servo Module伺服器控制编程范例:右边每一个模块的属性在后面的注释里面都有说明首先拖入一个伺服器模块,选择正转,再拖入一个悬空等待模块,设置为1000,表示一秒;然后再拖入一个伺服器模块,选择停止;那么这个程序的功能为:伺服器1正转一秒后停止。需要注意的是你启动了几个伺服器那么在停止的时候就要加多少

30、个停止伺服器。3、数字输出 Digital Output1.选择端口,一般默认为数字/模拟口11162.选择选择预先定义好的变量或者自定义一个值使用数字输出功能模块用来控制数字输出的状态。 你能够利用数字输出端口打开或者关闭像一个发光二极管或一个螺线管这样的设备。 数字输出能够设置1或0固定的值,它同样能够设置成一个预先定义的变量。 缺省情况下所有的数字输出值设置为1(或者0)十、Program Flow程序流程控制1、单向选择结构IfIf-条件,只要符合设定的条件,将运行if语句内部的程序。如果不符合设定的条件,它将跳过表达式if条件语句的部分,运行下一个程序模块。 1.选择变量2.选择变量

31、运算符号3.设置变量的表达式单向选择结构IfIf模块编程范例:以编碰撞开关为例;右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,接着拖入一个当循环模块,条件设置为数字1,构成永远循环,然后拖入一个碰撞检测模块,再拖入If 模块,在if条件里面设置a=0,在if 语句里面拖入一个马达模块设置为正转和一个悬空等待模块设置为2秒;然后停止马达;那么这个程序的功能为:当碰撞开关碰到时马达一正转两秒,然后停止;当没碰到时则不运行任何程序。2、 Else-If嵌套选择结构模块Else-If条件,必须与IF模块结合才能使用,表示和IF模块的条件相反,

32、也可自定义条件1.选择变量2.选择变量运算符号3.设置变量的表达式3、 Else模块Else条件,必须与IF模块结合才能使用,默认表示和IF模块的条件相反,不能自定义条件1.只能注释4、双向选择结构 If-ElseIF-Else既IF模块和Else模块的结合体,只要符合设定的条件,将运行if里面的程序。如果不符合设定的条件, 它将跳过表达式IF条件部分,执行Else里面的程序。它只执行一次程序,没有循环功能 2.选择变量运算符号1.选择变量3.设置变量的表达式双向选择结构 If-ElseIf-Else条件编程范例:以编碰撞开关为例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块

33、(Variables)里面定义了一个变量a,接着拖入一个当循环模块,条件设置为数字1,构成永远循环,然后拖入一个碰撞检测模块,再拖入If-Else模块,再if条件里面设置a=1,在if语句里面拖入一个马达模块设置为正转;在else语句里面拖入一个马达模块设置为停止;那么这个程序的功能为:当碰撞开关没碰到时马达一正转,当碰撞开关碰到时就执行Else里面的停止马达3、当循环While Loop只要符合设定的条件,当循环将不停的重复执行其语句内部的程序。如果不符合设定的条件,它将跳出循环,执行循环外部的模块。给它设置条件时,它构成的时条件循环,即不满足条件的时候,它还能跳出该循环;当把条件设置成数字

34、1的时候,它则构成了一个永远循环,即永远都运行其内部的程序。 在遥控编程的时候需要用到永远循环。1.选择变量2.选择变量运算符号3.设置变量的表达式当循环While Loop当循环模块编程范例1:以编碰撞开关为例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个碰撞检测模块,再拖入当循环模块,条件里面设置a=1,表示碰撞开关处在断开的状态,在当循环里面拖入一个马达模块设置为正转,再拖入一个碰撞检测模块,属性和当循环外面的碰撞检测模块的属性一样,;在当循环外面拖入一个马达模块设置为停止;那么这个程序的功能为:当碰撞开关没碰到时

35、马达一正转,直到碰撞开关碰到时,马达1才停止当循环While Loop当循环模块编程范例2:右边每一个模块的属性在后面的注释里面都有说明首先拖入当循环模块,在当循环条件里面输入数字1,表示永远循环运行当循环内部册程序;在当循环里面拖入一个马达模块设置为正转;那么这个程序的功能为:马达1永远正转4、多次循环For Loop1.选择变量,并设置变量的初始值,如变量是a,初始值为0,那么这里就该设置:a=02.设置循环次数,表示需要运行FOR语句里面的程序多少次,如变量是a,要循环运行一段程序10次,那么这里就该设置:a=103.选择运算符号,这里选择+,意思是:使变量做自加运算,即变量运行完一次,

36、便在原来的基础上在加1,加1以后,程序就会在运行一次,直到运行完前面设置的10次,它才停止自加运算;如变量是a,那么这里里就该设置:a+多次循环For Loop多次循环For Loop模块编程范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个FOR模块,条件设置为for条件设置为 a = 0; a = 3; a + ,表示变量a初始值为0,做自加运算,直到a的值等于3才跳出for条件;接着拖入一个悬空等待模块,设置为2秒,最后拖入一个马达模块,停止马达1;那么该程序的功能为:马达1正转6秒后停止5、定时器Timer定时器

37、Timer相当于一个预先放置在主控器内部的时间传感器,它需要预先定义变量才能使用,可以控制程序的执行时间,悬空等待只能延续马达的启动时间定时器的单位为毫秒100表示0.1秒1000表示1秒10000表示10秒以此类推1.选择开始,“开始”命令定时器开始计时。 2.选择定时器的编号定时器Timer3.选择预设,“预设”命令允许用户给定时器预设一个固定的值或预先定义好的变量。 6.选择取值,“取值”命令允许用户把来自定时器的反馈值赋给一个变量。 4.选择编号5.选择变量7.选择编号8.选择变量定时器Timer定时器Timer编程范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(

38、Variables)里面定义变量a和变量b,然后拖入一个定时器模块选择开始,赋值给变量a;接着拖入一个定时器模块,选择预设,赋值给变量a;在拖入一个定时器模块,选择取值,赋值给变量a;然后拖入一个当循环模块,条件设置为a=5000表示定时器变量小于等于5秒,当循环里面拖如一个马达模块,正转1秒,然后停止1秒,最后在次赋值;这个程序的功能为:定时器时间小于等于5秒就执行其内部的马达正转1秒然后停止1秒,当定时器的时间大于5秒时就跳出当循环6、悬空等待Wait悬空等待模块,在指定的时间段里,延长上一个模块的执行时间。这段时间以微秒计时。即100表示0.1秒1000表示1秒10000表示10秒以此类

39、推悬空等待Wait悬空等待Wait模块编程范例:右边每一个模块的属性在后面的注释里面都有说明以编马达为例,首先拖入一个马达模块,设置为正转;然后拖入以个悬空等待模块,设置为3秒,最后拖入一个马达模块设置为停止;那么该程序的功能为:马达1正转3秒停止。7、表达式赋值Assignment表达式赋值Assignment模块相当于一个通用模块,你可以在里面输入任何条件对变量进行运算或者输入任何代码来代替任何模块的功能; 你能够为一个变量设置一个明确的值,例如: bumper=0 你能够定义一个数学表达式,例如: x + y=z 8、中断Break中断模块功能常用在当循环或者IF条件中,表示当程序运行到

40、中断模块处,不管它后面还有没有模块,或者不管满不满足条件,它都会跳到当循环或IF条件的后面,执行它们后面的程序只能对该模块做对你修改和查阅程序有帮助的注释说明书签!中断Break中断Break编程范例1:右边每一个模块的属性在后面的注释里面都有说明虽然程序一开始设置的是一个永远循环,理论上是永远都运行当循环里面的程序,永远都跳不出来,但是加了中断模块以后,程序的功能就变化了;该程序功能为:程序进入当循环,启动马达1正转2秒,然后停止2秒,接着就马上中断当循环条件,跳到当循环的下面,执行下面的马达1反转1秒,然后停止。中断Break中断Break编程范例2:右边每一个模块的属性在后面的注释里面都

41、有说明虽然程序一开始设置的是一个永远循环,理论上是永远都运行当循环里面的程序,永远都跳不出来,但是加了中断模块以后,程序的功能就变化了;该程序功能为:程序进入当循环,检测碰撞,如果碰撞没碰到,就启动马达1正转,如果碰撞开关闭合,程序就马上中断当循环条件,跳到当循环的下面,执行下面的马达1反转1秒,然后停止。9、继续Continue继续Continue:跳到循环的条件判断处,从新判断只能对该模块做对你修改和查阅程序有帮助的注释说明继续Continue继续Continue模块编程范例:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,首先拖入

42、一个碰撞检测模块,然后拖入一个当循环模块,设置为a=1,表示碰撞开关断开,然后拖入一个马达模块,设置为正转,在拖入一个悬空等待模块,设置为3秒,在停止马达,在拖入一个继续模块,然后拖入马达,设置为反转,延时3秒,然后停止;那么该程序的功能为:当碰撞开关没碰到的时候就进入循环,然后马达1正转3秒停止,接着就跳到当循环的条件判断处,从新判断,而不执行继续模块后面的马达1反转3秒这段程序。10、返回Return返回模块的功能是跳到程序的结尾处,不管它后面有没有程序,它都不执行,直接跳到程序的结束位置只能对该模块做对你修改和查阅程序有帮助的注释说明自定义代码返回参数返回Return返回Return编程

43、范例:右边每一个模块的属性在后面的注释里面都有说明虽然程序一开始设置的是一个永远循环,理论上是永远都运行当循环里面的程序,永远都跳不出来,但是加了返回模块以后,程序的功能就变化了;该程序功能为:程序进入当循环,启动马达1正转3秒,接着就马上执行返回模块,跳到程序的结束位置。当循环外面的程序也不会执行了。但是由于在返回前面没有停止马达1,所以返回执行以后,马达1仍然会继续转动11、屏幕输出Print To Screen屏幕输出模块(Print To Screen)主要是用来显示用户需要检测的和主控器连接在一起的电子元件的当前参数;打开VEX编程软件英文版的安装目录:一般默认的路径是C:Progr

44、am FilesIntelitek;快速找到它的安装位置的方法是在桌面右键点击VEX编程软件的图标属性快捷方式查找目标;接着打开ProjectsProjectsTest Code这个文件夹就可以查看如何使用屏幕输出模块(Print To Screen)进行编程;接着把要检测的传感器的程序下载到主控器,在不关闭主控器电源并且下载线也和主控器相连接的情况下,点击 图标然后该窗口里面就可以显示出当前电子元件检测到的参数值。:这是具有C程序经验的高级用户的一个选项。对于大多数的定义变量缺省为%d。 1.设置要显示在屏幕输出窗口上的内容,如定义的变量为a,那么就可以输入a=,那么显示的时候等号后面的数值

45、就是检测到的值屏幕输出Print To Screen2.选择屏幕输出模块要检测的变量,既是说要把哪一个变量的值显示到屏幕上3.选择格式,这一项是具有C语言编程经验的用户的一个选项。对于大多数的用户只需要选择%d。 4.选择类型,这一项也是具有C语言编程经验的用户的一个选项。对于大多数的用户只需要选择int。 屏幕输出Print To Screen屏幕输出Print To Screen模块编程范例1:右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块(Variables)里面定义了一个变量a,然后拖入一个当循环模块,条件为数字1,然后在当循环里面拖入一个碰撞检测模块,选择变量a,然后

46、拖入一个屏幕输出模块,屏幕输出模块的变量为预先定义的变量a,格式一般为%d,类型为int,输出内容为a=把该程序下载到主控器后,不关闭电源,也不取掉下载线,然后点终端,就可以显示当前碰撞检测到的数据12、程序注释Comment对程序做对你修改和查阅有帮助的说明或注释,中文版1.0不能中文注释,英文版1.0和2.0可以中文注释,中文2.0可以中文注释;源码注释被编译器忽略。 13、自定义代码User Code自定义代码User Code:可以替代任何模块,比如马达模块的代码是SetMotor ( 1 , 255 ) ;那么只要在自定义代码User Code模块里面键入马达的代码,那么它就表示一个

47、马达模块;这个模块为熟悉C语言的用户设计。为了编译器能够正确编译代码,你必须正确使用语法。对于C 语言的信息请自行参阅C 语言的相关指导书。 键入自定义的代码十一、RC Control遥控通道控制1、遥控器按键说明这里插晶体1、左操纵杆9、电源开关2、左操纵杆纵向微调(通道3)10、LCD显示屏3、左操纵杆横向微调(通道4)11、数字选择设定键4、控制方法设定键12、信号频率振荡器(晶体)5、控制方法选择键13、通道6按键16、右操纵14、通道6按键27、右操纵杆纵向微调(通道2)15、通道5按键18、右操纵杆纵向微调(通道1)16、通道5按键2打开电池盖这里放电池2、遥控器的基本操作遥控器的

48、操控杆是有两种模式配置的. 请看以下指示来查看或转换:(1) 把遥控器的开关推到ON的位置来启动遥控器(2) 同时按下Mode 及 Select 钮直至液晶屏显示出菜单画面为止.(3) 按Mode钮直到有”Drive”字出现在液晶屏的左方(是最后的菜单)来进入驱动模式调节菜单.(4) 目前的设定会显示在液晶屏里, 显示内容是”23”或”12”. 你利用LCD右边的数据输入按钮“+ ”或“ ”推上或推下来转换模式.。3、遥控接收器接法示意图这里插晶体4、遥控最优系统搭配+6通道数字比例遥控器,与Futaba 6通道遥控器全面兼容接收器控制器最优系统搭配遥控、程控、线控多种控制方式。使用两个遥控器

49、同时控制不同的机器人时,你必须使用两种不同的晶体RF频率。在基本套装里只有一种频率的晶体;在晶体升级套装里可以获得更多的不同频率的晶体。 遥控最优系统搭配可更换晶振,多通道输入,可实现单机器人双遥控,增添操控和竞赛乐趣。双接收器双遥控器主控器5、单杆控制双马达Arcade-2 motor单杆控制双马达指的是遥控器的一个操纵杆控制两个马达同时转或同时停,这样两个马达转动的速度不论快慢,都是一致的,就不会因为手的力量问题而使两个马达转动的速度不一样1.这里一般选自动2.选择遥控器控制小车前进后退的控制通道3.选择遥控器控制小车左右转弯的控制通道4.选择小车左右马达连接在主控器上的通道5.选择小车左

50、右马达转动的正反方向单杆控制双马达Arcade-2 motor单杆控制双马达编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号;然后在当循环里面拖入一个单杆控制双马达模块,前进后退选择1,旋转选择3,马达通道则选择1和2;那么该程序的功能就是:遥控器控制马达1和2同时转动;遥控器的1通道控制前进后退;遥控器的3通道控制旋转6、单杆控制四马达Arcade-4 motor单杆控制四马达指的是遥控器的一个操纵杆控制四个马达同时转或同时停,这样四个马达转动的速度不论快慢,都是一致的,就不会因为手的力量问题而使四个马达转动的速度不一样1.这里一般选自

51、动2.选择遥控器控制小车前进后退的控制通道3.选择遥控器控制小车左右转弯的控制通道4.选择小车左右马达连接在主控器上的通道5.选择小车左右马达转动的正反方向单杆控制四马达Arcade-4 motor单杆控制四马达编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号;然后在当循环里面拖入一个单杆控制四马达模块,前进后退选择1,旋转选择3,马达通道则选择1.2.3.4;那么该程序的功能就是:遥控器控制马达1.2.3.4同时转动;遥控器的1通道控制前进后退遥控器的3通道控制旋转7、双杆控制双马达Arcade-2 motor双杆控制双马达指的是遥控器

52、的两个操纵杆控制两个马达转或停,这样两个马达转动的速度不论快慢,都有可能不一致,就会因为手的力量问题而使两个马达转动的速度不一样1.这里一般选自动2.选择遥控器控制小车左边马达的控制通道3.选择遥控器控制小车右边马达的控制通道4.选择小车左右马达连接在主控器上的通道5.选择小车左右马达转动的正反方向双杆控制双马达Arcade-2 motor双杆控制双马达编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号;然后在当循环里面拖入一个双杆控制双马达模块,左马达选择1,右马达选择3,马达通道则选择1和2;那么该程序的功能就是:遥控器控制马达1和2转

53、动;遥控器的1通道控制马达1遥控器的3通道控制马达28、双杆控制四马达Arcade-4 motor双杆控制四马达指的是遥控器的两个操纵杆控制四个马达转或停,即一个操纵杆控制两个马达;这样四个马达转动的速度不论快慢,都有可能不一致,就会因为手的力量问题而使四个马达转动的速度不一样1.这里一般选自动2.选择遥控器控制小车左边两个马达的控制通道3.选择遥控器控制小车右边两个马达的控制通道4.选择小车左右马达连接在主控器上的通道5.选择小车左右马达转动的正反方向双杆控制四马达Arcade-4 motor双杆控制四马达编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥

54、控器发射出来的信号;然后在当循环里面拖入一个双杆控制四马达模块,左马达选择1,右马达选择3,马达通道则选择1.2.3.4 ;那么该程序的功能就是:遥控器控制马达1.2.3.4转动;遥控器的1通道控制马达1.2,遥控器的3通道控制马达3.49、单杆控制单马达Motor Module Rx单杆控制单马达指的是遥控器的一个操纵杆控制一个马达转或停1.这里一般选自动2.选择遥控器控制马达的控制通道3.选择马达连接在主控器上的通道4.选择马达转动的正反方向单杆控制单马达Motor Module Rx单杆控制单马达编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发

55、射出来的信号;然后在当循环里面拖入一个单杆控制单马达模块,遥控器控制通道选择1,马达通道则选择1;那么该程序的功能就是:遥控器的1通道控制马达1转动10、单杆控制伺服器Servo Module Rx1.这里一般选自动2.选择遥控器控制伺服器的控制通道3.选择伺服器连接在主控器上的通道4.选择伺服器转动的正反方向单杆控制伺服器指的是遥控器的一个操纵杆控制一个伺服器转或停单杆控制伺服器Servo Module Rx单杆控制伺服器编程范例:首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号;然后在当循环里面拖入一个单杆控制伺服器模块,遥控器控制通道选择1,

56、伺服器通道则选择1;那么该程序的功能就是:遥控器的1通道控制伺服器1转动11、遥控通道Rx Input使用遥控输入功能模块得到一个Rx1或Rx2通道的反馈值,并将其存储于一个变量;12、脉宽调制PWM Control在竞赛模型里,使用脉宽调制控制模块控制马达端口的脉宽调制值。你可以使用一组值或预先定义的变量。 你能够使用脉宽调制控制: 在遥控控制模式如果遥控器没有发送信号的情况下,可以开启一个马达给其一组脉宽调制值。 使其运转。 混合发送器信号,构造一个程序,像单杆控制模块。 在竞赛模式下,控制带有一个行程开关的马达行进。 参看Project夹里ARMLIMITSAMPLE.ECP 工程。 1

57、3、用户自定义函数User Functions用户自定义函数User Functions即通常说的子函数或子程序;其主要作用在于可以简化主程序、简化编程步骤等右图为新建的子函数窗口可以在其开始模块和结束模块之间进行编程操作,如果需要使用传感器,那么可以在其局部变量里面设置局部变量编程区C语言代码区用户自定义函数User Functions模块编程操作步骤1.右键单击模块区最下面的用户自定义函数2.左键选择新增自定义函数点这里可以打开已经保存的子函数3.选择子函数的返回类型,void为不返回任何参数4.为子函数命名,必须为英文字母用户自定义函数User Functions模块编程操作步骤5.接着就可以在子程序的编程区里面自行编制程序了;编好程序后直接关闭子程序就行了,它已自动保6.然后在软件的模块区最下面的用户自定义函数的下面就会显示你当前的子函数在相应子函数图标上点右键,可以打开子程序的编程窗口,也可以对子程序进行复制、删除等操作用户自定义函数User Functions模块编程操作步骤7.然后选中子程序,点右键拖动到主程序的开始模块和结束模块之间放开鼠标会显示如下图窗口,确定即可9.到这里就成功引用子函数到主程序里面了,主程序里面就会出现子函数的模块图标,那么程序就会依次执行子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论