Access denied | blog.swineson.me used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (blog.swineson.me) has banned your access based on your browser's signature (44373efbfdc92120-ua98).当前位置: >>
VEX机器人编程软件入门新版
Think. Create. Build. Amaze. Vex.目录一一、使用注意事项 二、主界面 八、Inputs主控输入: 1、碰撞开关传感器 bumper switch 2、光敏传感器 light sensor 3、限位开关limit switch 4、巡线传感器 Line Follower 5、编码器 Optical Shaft 6、超声波传感器Ultrasonic Sensor 7、角度传感器Potentiometer Kit 8、数字输入 Digital Input 9、模拟输入 Analog Input三、工具栏模块四、编程区 五、I/O定义模块 六、变量设置模块七、接口说明目录二九、Outputs主控输出: 1、马达控制 Motor Module 2、伺服控制 Servo Module 3、数字输出 Digital Output 9、继续Continue 10、返回Return 11、屏幕输出Print To Screen 12、程序注释Comment 13、自定义代码User Code十、Program Flow程序流程控制: 1、单向选择结构If 2、 Else-If嵌套选择结构模块 3、 Else模块 4、双向选择结构 If-Else 3、当循环While Loop 4、多次循环For Loop 5、定时器Timer 6、悬空等待Wait 7、表达式赋值Assignment 8、中断Break目录三十一、RC Control遥控通道控制: 1、 遥控器按键说明 2、 遥控器的基本操作 3、 遥控接收器接法示意图 4、 遥控最优系统搭配 5、 单杆控制双马达Arcade-2 motor 6、 单杆控制四马达Arcade-4 motor 7、 双杆控制双马达Arcade-2 motor 8、 双杆控制四马达Arcade-4 motor 9、 单杆控制单马达Motor Module Rx 10、单杆控制伺服器Servo Module Rx 11、遥控通道Rx Input 12、脉宽调制PWM Control 13、用户自定义函数User Functions 14、在线控制模式 十二、自动程序和遥控程序结合范例 十三、下载线接法 十四、下载线端口查看方法 十五、中文版程序下载步骤十六、英文版下载步骤 附录一、变量命名 附录二、变量类型 附录三、常用运算符 附录四、常用操作符运算优先级一、使用注意事项返回目录? VEX编程软件有中、英文版(中、英文版各自都有1.0版和2.0版),中、英文版不能 混用,最好不要既下载中文版编的程序到主控器,又下载英文版编的程序到主控器, 这样会损坏主控器内部芯片中的底层程序,严重时会导致主控器的某些芯片不可用, 从而使主控器不能使用; ? 如果是没有购买序列号的用户,打开软件时会弹出一个注册窗口,中文版点暂不注册 即可试用。英文版点Run in Evaluation Mode按钮即可试用;中、英文1.0版的都可 试用30天,英文2.0版可试用7天;中文2.0版可试用15天; ? 购买了序列号的用户,需联网注册, 英文版的序列号只能在一台电脑注册一次,如更 换电脑安装,需在软件的注册页面填写一些资料发送给美国First公司,经其审核通过 后便会回发一个新的序列号,也可向本公司购买;中文2.0版的如需更换电脑安装,先 点菜单栏→ 帮助→ 注销,然后在另一台电脑使用该序列号联网注册便可继续使用了; ? 没有购买序列号的用户,一旦安装软件,软件便自动与系统硬件绑定,试用期满后即 使把软件卸载重装也不能继续试用,解决办法为在系统未安装VEX软件时,先用备份 工具备份系统,然后再安装英文版软件,当软件过期后,只需把系统还原,在重装 VEX软件即可继续试用; ? 英文版软件比中文版软件稳定,中文版软件存在一些BUG;使用注意事项返回目录? 中文版及英文版编写的程序和代码不能相互用对方的软件打开和编辑(英文版只能打 开用英文版软件编的程序和代码,中文版只能打开用中文版软件编的程序和代码); ? 中文1.0版软件编写的程序不能保存到C盘(包括桌面),否则会导致程序不能打开或 者出现未知错误; ? 中文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版软件中有; ? 使用英文网络版2.0时,请烧录V7版底层程序; ? 当机器人不按照编写的程序动作时,如果仔细检查程序都未发现错误,则说明可能是 主控器的底层程序不正常,那么需要对底层程序作一次修复,中文版2.0为,菜单栏生 成→下载初始化程序二、主界面工具栏菜单 编程区模块区C语言代码区链接编译区返回目录三、工具栏模块(英文版)新建工程 :创建一个新的工程 打开工程: 打开你保存在电脑上的 程序或代码文件 保存工程:保存一个工程 工程窗口:显示和隐藏工程窗口 输出窗口 :显示和隐藏输出窗口 控制器配置 :打开控制器配置对话 框 程序变量 :打开程序变量对话框 编译工程 :编译打开的工程代码返回目录调试和下载 :下载你当前窗口的程序 到主控器 终端窗口:选择下载线和电脑连接的 COM端口 在线窗口 :开始在线检测窗口 入门级别:在工程窗口显示基本的函数 模块 高级级别 :在工程窗口显示先进(高 级)的函数模块 专业级别 :在工程窗口显示所有可利 用的函数模块 放大 :增大流程图显示的比例尺寸 缩小 :减小流程图显示的比例尺寸工具栏模块(中文版1.0)新建工程 :创建一个新的工程 打开工程: 打开你保存在电脑上的程序或代码文件 编译工程 :编译打开的工程代码 链接工程 :链接打开的工程代码 下载 :下载你当前窗口的程序到主控器 放大 :增大当前窗口显示的比例尺寸 缩小 :减小当前窗口显示的比例尺寸 关于我们 :显示版本信息返回目录工具栏模块(中文版2.0)新建工程 :创建一个新的工程 打开工程: 打开你保存在电脑上的程序或代码文件返回目录保存工程 :保存当前的工程代码项目浏览 :关闭和打开模块区 输出窗口 :关闭和打开编译链接代码输出显示区 主控器设置 :设置主控器的I/O口 全局定义 :定义全局变量 编译 :对当前打开的程序进行编译查错 编译并下载:对当前打开的程序进行编译并下载到主控器四、编程区返回目录?对于1.0版每一个新的程序都会有一个I/O定义模块,变量定义模块(Variables),开始模块(BEGNI)和结束 模块(END)。 2.0版则增加了局部变量定义模块; ?I/O模块、全局变量定义模块、局部变量定义模块应当在开始编程之前定义。 ? 在每一个程序里,开始模块表示程序的第一个模块;结束模块表示程序的最后一个模块。 你必须放置所有 的模块在这两个模块之间。?下面介绍一些常用操作: ?插入模块:在模块区用鼠标左键点住相应模块,拖动到编程区的开始和结束模块之间,放开鼠标,然后只要 设置好模块的属性就行了。 需要说明的是传感器模块必须先定义其变量才能插入到编程区内。 ?编辑模块(Edit):左键双击修改,也可单击右键。英文版是点右键,选择编辑。 ?复制模块(Copy):中文版2.0是ctrl+c复制模块,也可单击右键;英文版是按住ctrl键,拖拽模块,然后将 复制的模块放到你需要放置的位置。也可单击右键。 ?剪切模块(Cut):中文版2.0是ctrl+x剪切模块,也可单击右键;英文版是先选中模块,再点右键选择剪切。 ?粘贴(Paste) :中文版2.0是ctrl+v粘贴模块,也可单击右键;英文版是点右键,选择粘贴。 ?删除模块(Delete):中文版2.0是Delete键删除模块,也可单击右键;英文版是点右键,然后选择删除。?右键单击任何一个模块,可以对该模块进行编辑、复制、剪切、删除、粘贴等操作 ?编译下载:F5为编译程序,F6为编译并下载程序。五、I/O定义模块返回目录?双击I/O图标或点鼠标右键(I/O 定义模块),你能够配置控制器的 I/O端口。 ?模拟/数字端口(共16个口) (ANALOG/DIGITAL):波浪线 表示模拟端口(默认为1~4),箭 头表示数字端口;箭头向左的表示 信号是由外部输入到主控器(默认 为5~10) ,箭头向右的表示信号 是由主控器内部输出(默认为 11~16),模拟和数字端口可以互 换,数字端口的输入输出也可以更 改; ?中断端口(INTERRUPTS) (共6个口):不能更改; ?马达端口(MOTORS) (共8个 口):不能更改;六、变量设置模块(1.0版)返回目录双击变量设置图标,打开程序变量 定义对话框。你能设置程序需要使 用到的变量; 这里数据类型一般都选择 int(整型,它存储 -~之间 的整数), 变量名称:英文字母或字母加数字, 不能以数字开头且变量名不能与软 件中使用到的单词相同(如变量的 类型),变量取值处可预先设置变 量的值,也可在后面的条件中设置 其值局部变量设置模块(2.0版)双击局部变量设置图标,打 开程序变量定义对话框。你 能设置程序需要使用到的局 部变量; 局部变来那个指只能在部分 区域使用的变量; 这里数据类型一般都选择 int(整型,它存储 - ~ 之间的整数), 变量名称:英文字母或字母 加数字,不能以数字开头且 变量名不能与软件中使用到 的单词相同(如变量的类 型),变量取值处可预先设 置变量的值,也可在后面的 条件中设置其值返回目录1.选择变量类型,一般 都选int(整 型变量)2.键入变量名字,要求 必须是英文 字母组成这里可以键入变量 的值,要求必须是 英文数字组成,也 可先不定义变量的 值这里可以删 除整行不需 要的变量全局变量设置模块(2.0版)返回目录双击全局变量设置图标,打 开程序变量定义对话框。你 能设置程序需要使用到的全 局变量; 全局变量指在该程序的所有 模块中都可以使用该变量; 这里数据类型一般都选择 int(整型,它存储 - ~ 之间的整数), 变量名称:英文字母或字母 加数字,不能以数字开头且 变量名不能与软件中使用到 的单词相同(如变量的类 型),变量取值处可预先设 置变量的值,也可在后面的 条件中设置其值2.键入变量名字,要求 必须是英文 字母组成1.选择变量类型,一般都选int(整 型变量)这里可以键入变量的值,要求 必须是英文数字组成,也可先 不定义变量的值这里可以删除整行不需要的变量七、接口说明返回目录接口功能主控器上标有 马达端口 “MOTORS” “MOTORS”字样的端口,用来接马 共有8个口 达和伺服器主控器上标有 中断端口 “INTERRUPTS”字样的端口,用来 “INTERRU 接超声波传感器的OUTPUT端和编 PTS” 码器 共有6个口模拟/数字端 口 “ANALOG /DIGITAL” 共有16个口主控器上标有“ANALOG/DIGITAL” 字样的端口,默认1~4为模拟/数字 通用端口,可接巡线、光敏、碰撞、 行程,默认5~10为数字输出端口, 可接碰撞、行程,默认11~16为数 字输入端口,接超声波的Input端, 都可以自行更改马达端口MOTORS返回目录1-8可接: 马达、伺服 器中断端口INTERRUPTS返回目录1-6可接:编码器、 超声波传感器标有 Output字样的线模拟/数字端口ANALOG/DIGITAL返回目录11-16可接:超声波 传感器标有Input字 样的线、气缸5-10可接:碰撞开关、 限位开关 1-4可接:光敏传感器、 寻迹传感器、碰撞开 关、限位开关、角度 传感器接口说明返回目录指示灯说明返回目录八、Inputs主控输入?这里需要先解释一下数字和模拟这两个概念,它们是电路中信号传输的两种方式; ?简单解释为:返回目录?数字电路传输的信号的波形在示波器上显示为方形,称为方波,其波形高低一致,高的用1表示,低的用0 表示; ?模拟电路传输的信号的波形在示波器上显示为波浪形,称为正弦波,其波形高低起伏不一致,所以它是连 续的,表示它的数字也是大小变化不定的; ?通俗的讲数字信号传输的信号用1和0表示;?模拟信号传输的信号用0、5、10、50、18、33 EEE100等等这样大小不定的数字表示;?数字电路与模拟电路的信号要互相交换传输就必须采用数模转换电路转换以后才能传输; ?VEX机器人中的传感器也分数字传感器和模拟传感器,简单解释为: ?数字传感器是指传感器传输的是数字信号,即传感器只有两种状态,这两种状态在软件里面用1和0表示 ?模拟传感器是指传感器传输的信号会随外界环境条件的改变以及人为的因素而改变,即它们的状态是不确 定的,那么在软件里面表示其状态的数字也是大小不变的(但也规定了一个范围);1、碰撞开关传感器 bumper switch返回目录1.选择碰撞开关连接在主控器上 的通道?碰撞开关是数字式的传感器。 ?它有两种状态:即开和关; ?当碰撞开关断开的时候,定义为1。 ?当碰撞开关闭合的时候,定义为0。 ?打开英文版位于Test Code的文件 夹中的BUMPERTEST.ECP工程,看 其示范怎样编写碰撞开关程序。2.选择一个预先定义的碰撞 开关变量对当前模块注释, 将帮助你阅读程 序和理解模块的 功能。3.设置好以后点OK碰撞开关传感器 bumper switch碰撞开关程序范例: ?右边每一个模块的属性在后面的注释 里面都有说明 ?首先在变量定义模块(Variables)里 面定义了一个变量a,然后拖入一个碰撞 检测模块,接着拖入一个当循环模块对 当前碰撞变量进行判断,然后在当循环 里面拖入一个马达控制模块,再拖入一 个碰撞检测模块,属性和当循环外面的 碰撞检测模块的属性一样,这样就构成 了一个条件循环,最后在当循环外面在 拖入一个马达控制模块; ?程序功能:当 a=1即是碰撞开关没碰 到时,就不停的启动马达1正转,反之 a=0则是当碰撞开关碰到时,就跳出当 循环,停止马达1。返回目录碰撞开关 bumper switch组装示意图返回目录2、光敏传感器 light sensor返回目录1.选择光敏传感器连接 在主控器上 的通道 ?光敏传感器是模拟式的传感器, 它是用来检测周围环境光线的亮 暗的传感器; ?把光线由亮到暗的范围定义在0 到1024。值越小表示光线越亮, 值越大表示光线越暗; ?打开英文版位于Test Code文件 夹中的LIGHTTEST.ECP工程,看 其示范怎样编写光敏传感器程序。2.选择一个预先定义的光敏传 感器变量 对当前模块注释, 将帮助你阅读程序 和理解模块的功能。3.设置好以后点OK光敏传感器 light sensor光敏传感器程序范例: ?右边每一个模块的属性在后面的注释 里面都有说明 ?首先在变量定义模块(Variables)里 面定义了一个变量a,然后拖入一个光敏 检测模块,选择变量a,接着拖入一个当 循环模块对当前亮度变量(即变量a)进 行判断,然后在当循环里面拖入一个马 达控制模块,再拖入一个光敏检测模块, 属性和当循环外面的光敏检测模块的属 性一样,这样就构成了一个条件循环, 最后在当循环外面在拖入一个马达控制 模块; ?程序功能:当 a&800即是光线比较亮 时,就不停的启动马达1正转,反之 a&=800则是光线比较暗时,就跳出当循 环,停止马达1。返回目录3、限位开关limit switch返回目录1.选择限位开关连接在 主控器上的 通道 ?限位开关是数字式的传感器。和 碰撞开关类似; ?它有两种状态:即开和关; ?当限位开关断开的时候,定义为12.选择一个预先定义的限位 开关变量?当限位开关闭合的时候,定义为0?打开英文版位于Test Code的文件 夹中的LIMITTEST.ECP工程,看其 示范怎样编写行程开关程序。 对当前模块注 释,将帮助你 阅读程序和理 解模块的功能。3.设置好以后点确定限位开关limit switch限位开关程序范例: ?右边每一个模块的属性在后面的注释 里面都有说明 ?首先在变量定义模块(Variables)里 面定义了一个变量a,然后拖入一个限 位检测模块,接着拖入一个当循环模块 对当前限位变量进行判断,然后在当循 环里面拖入一个马达控制模块,再拖入 一个限位检测模块,属性和当循环外面 的限位检测模块的属性一样,这样就构 成了一个条件循环,最后在当循环外面 在拖入一个马达控制模块; ?程序功能:当 a=1即是限位开关没闭 合时,就不停的启动马达1正转,反之 a=0则是当限位开关碰到时,就跳出当 循环,停止马达1。返回目录限位开关limit switch组装示意图返回目录4、巡线传感器 Line Follower返回目录1.选择巡线传感器连接 在主控器上 的通道?巡线传感器是模拟式的传感器, 它是用来检测颜色的传感器; ?把颜色的深浅由白到黑的范围 定义在0到1024。值越小表示颜 色越白,值越大表示颜色越黑;2.选择一个预先定义的巡线 传感器变量?打开英文版位于Test Code的文 件夹中的LINEFOLLOWER.ECP 工程,看其示范怎样编写巡线传 感器程序。对当前模块注 释,将帮助你 阅读程序和理 解模块的功能。3.设置好以后点确定巡线传感器 Line Follower巡线传感器程序范例: ?右边每一个模块的属性在后面的注 释里面都有说明 ?首先在变量定义模块(Variables) 里面定义了一个变量a,然后拖入一 个巡线检测模块,接着拖入一个当循 环模块对当前灰度变量(即变量a) 进行判断,然后在当循环里面拖入一 个马达控制模块,再拖入一个巡线检 测模块,属性和当循环外面的巡线检 测模块的属性一样,这样就构成了一 个条件循环,最后在当循环外面在拖 入一个马达控制模块; ?程序功能:当 a&800即是颜色比较 白时,就不停的启动马达1正转,反 之a&=800则是颜色比较黑时,就跳出 当循环,停止马达1。返回目录5、编码器 Optical Shaft Encoder返回目录1.选择开始,告诉编码器 开始记录编 码脉冲?编码器是一个数字式的传感器。它能够用 来测量和定义马达转动的圈数或者路程。 ?编码器一般插在中断端口(INTERRUPTS) ?编码器旋转(360 度)等于90个编码脉冲。 ?编程时,模块需要放三次到编程区,第一 次选择开始,第二次选择预设,第三次选择 取值。 ?打开英文版位于Test Code的文件夹中的 ENCODERTEST.ECP工程,看其示范怎样编 写编码器程序。2.选择编码器连接在主 控器上的端 口编码器 Optical Shaft Encoder3.选择预设,为编码器清零返回目录6.选择取值, 开始把 编码脉 冲的值 反馈给 变量 7.选择编 码器连接 在主控器 上的端口4.选择编码器连接在主 控器上的端 口5.选择固定值,设为0,表示 编码器的初始 值为0,为编 码器清零 对当前模块注 释,将帮助你 阅读程序和理 解模块的功能。8.选择一个预先定义 的变量编码器 Optical Shaft Encoder编码器程序范例: ?右边每一个模块的属性在后面的注释里 面都有说明 ?首先在变量定义模块(Variables)里面 定义了一个变量a,然后拖入三个编码器 检测模块,第一个选择开始,第二个选择 预设,第三个选择取值;接着拖入一个当 循环模块对当前路程变量(即变量a)进 行判断,然后在当循环里面拖入一个马达 控制模块,再拖入一个编码器检测模块, 属性和当循环外面设置取值的那个编码器 检测模块的属性一样,这样就构成了一个 条件循环,最后在当循环外面在拖入一个 马达控制模块; ?程序功能:当 a&=30即是当前马达转动 的路程没由达到30时,就不停的启动马 达1正转,反之a&30则是马达转动的路程 达到30时,就跳出当循环,停止马达1。返回目录编码器安装示意图返回目录6、超声波传感器Ultrasonic Sensor1.选择开?超声波传感器利用高频率的声波来 探测障碍物。它发射一个超声波信号, 声波被外界物体反射回来。然后超声 波传感器就可以根据接收到的信号的 时间和强弱计算出离障碍物的距离 ?超声波传感器有两根连接线 始,开始 命令告诉 超声波开 始记录声 波。返回目录4.选择取值,取值命令允许用户 将来自超声波的 值反馈给一个变 量。5.选择超声波 传感器 连接在 主控器 上的中 断端口?确保标有Output标签的线连接到主 控器的中断端口。?确保标有Input标签的线连接到主控 器的数字输出端口(默认的为 11~16)。 ?超声波的取值范围是:2~100 ?小于2cm是超声波的盲区,在2cm 以内就检测不到任何物体。 ?打开英文版位于Test Code的文件 夹中的ULTRASONICTEST.ECP工 程,看其示范怎样编写超声波传感器 程序。2.选择超声波传感器连 接在主控器 上的中断端 口6.选择超声波 3.选择超声波传感器连接在 主控器上的输 出端口7.选择一个预先定义的 变量传感器连接在 主控器上的输 出端口超声波传感器Ultrasonic Sensor超声波传感器程序范例:编程时,模块需要放三次到编程区,第一次 选择开始,第二次选择预设,第三次选择取 值。 ?右边每一个模块的属性在后面的注释里面 都有说明 ?首先在变量定义模块(Variables)里面定 义了一个变量a,然后拖入两个超声波检测模 块,第一个选择开始,第二个选择取值;接 着拖入一个当循环模块对当前超声波变量 (即变量a)进行判断,然后在当循环里面拖 入一个马达控制模块,再拖入一个超声波检 测模块,属性和当循环外面设置取值的那个 超声波取值模块的属性一样,这样就构成了 一个条件循环,最后在当循环外面在拖入一 个马达控制模块; ?程序功能:当 a&20即是当前超声波和障碍 物的距离没有达到20时,就不停的启动马达 1正转,反之a&=20则是超声波与障碍物之间 的距离达到20和20以内时,就跳出当循环, 停止马达1。返回目录如发现超声波第一次检测很好, 而第二次检测就不准确了可尝试 在第一次检测后在加上一个超声 波模块,属性设置为停止,起到 清空它检测后的数据的作用7、角度传感器Potentiometer Kit返回目录?这是一个测量角度的传感器,它是一个模拟传感器,主要是用来控制伺服电机转动角度,可以替代伺服器, 并比伺服器的角度要精确,它基本上不受电量的影响,也不受传动结构的限制,在某些场合可以替代编码器或 者伺服器的功能,它需要与马达、伺服电机、传动结构用轴连接在一起使用,其转动的角度大约是260度,主 要可以用在一些只需要转动一定角度的机械结构中。 ?角度传感器由于是一个模拟传感器,它的编程模块在VEX2.0中文版中可以使用光敏传感器模块、寻线传感器 模块以及模拟输入模块来进行编程,通道是插模拟/数字口的模拟口(默认1~4)。 ?经测试,它在软件里面显示的数值是一组数据,其范围是0到1023,在实际编程的时候由于马达有一定的惯 性,所以最好不要设置单个的数据,这样通常会转过设置的数值,所以一般都设置一个范围,如小于某个数值 的时候,让马达转或停,大于该数值让马达停或转,这样就能很好的应用该传感器。 ?把角度传感器标有VEX字样的一面正对自己,然后顺时针转动它的中心孔,此时的数值是由小变到大,逆时 针转动则为由大变到小。 ?该传感器具有记忆功能,比如把中心孔转动到数值500的位置,关闭电源,只要它的中心孔位置不变,无论 什么时候再次打开电源,它的数值仍是500,即使更换它的通道数值也不变;如调到数值500,关闭电源,再转 动了它的孔的位置,那么在打开电源后,它的数值就不再是500,而是你当前位置的数值,这个数值通过屏幕 输出可以测试到。角度传感器Potentiometer Kit角度传感器程序范例: ?首先把角度传感器插在模 拟端口1,定义一个类型为 int的变量a; ?接着放入巡线模块设置通 道和选择变量a; ?然后放入当循环,设置a小 于200,在当循环里面放入 马达1正转,在次赋值,在 当循环外面放一个停止马达;返回目录?程序功能:角度传感器的 值小于200就启动马达1正转, 大于等于200就停止马达1;8、数字输入 Digital Input返回目录1.选择端口,?数字输入 Digital Input模块可以代 替所有数字式的传感器模块 一般默认为 数字/模拟口 5~102.选择选择预先定义好 的变量9、模拟输入 Analog Input返回目录1.选择端口,?模拟输入 Analog Input 模块 可以代替所有模拟式的传感器 模块 一般默认为 数字/模拟口 1~42.选择选择预先定义好 的变量返回目录九、Outputs主控输出1、马达控制 Motor Module控器上的端口返回目录1.选择马达连接在主2.选择255表示马达以最快的速度正转 ?马达的输出轴正对自己, 顺时针表示正转,逆时针 表示反转; ?箭头图标向上暗示马达 正转。3.选择127表示马达以停止?箭头图标变成一个黄色 的点暗示马达停止。?箭头图标向下暗示马达 反转。4.选择0表示马达以最快的速度反转5.选择用户自定义则表示用户自己 6.设置好以后点确定设置马达的速度0~127之间的数字 都是反转,越接近127速度越慢, 127~255之间的数字都表示正转, 越接近127速度越慢马达控制 Motor Module?马达控制编程范例1:右边每一个模块的属 性在后面的注释里面都有说明 ?首先拖入一个马达模块,选择正转,再拖入 一个悬空等待模块,设置为1000,表示一秒, 然后再拖入一个马达模块,选择停止;返回目录?程序功能:马达1正转一秒后停止。需要注 意的是你启动了几个马达那么在停止的时候就 要加多少个停止马达。?马达控制编程范例2:右边每一个 模块的属性在后面的注释里面都有说 明 ?首先拖入一个当循环模块,条件设 置为1,表示永远循环;然后再当循 环里面拖入一个马达模块,选择正转; ?程序功能:马达1永远正转。马达安装示意图双马达小车 三马达小车返回目录四马达小车或马达方向辅助图表返回目录假设一部vex机器人小车上装了两个马达,左右各一个,来给小车提供动力,那么小车的运 动情况如下表小车前进小车后退小车以两个轮子的中心点为圆心向左转弯 (也可一个马达转一个马达不转,这样以 一个马达为圆心转弯)小车以两个轮子的中心点为圆心向右转弯 (也可一个马达转一个马达不转,这样以 一个马达为圆心转弯)2、伺服控制 Servo Module返回目录1.选择伺服器连接在主控器上的端口2.选择255表示伺服器正转最大的角度 ?伺服器和马达有区别,马达能 转动360度,而伺服器只能转动 一定的角度,大约120度 ?伺服器的输出轴正对自己,顺 时针表示正转,逆时针表示反 转; ?箭头图标向下暗示伺服器正转。 ?箭头图标变成一个黄色的点暗 示伺服器停止。 ?箭头图标向上暗示伺服器反转。3.选择127表示伺服器停止4.选择0表示伺服器反转最大的角度5.选择用户自定义则表示用户自己设置伺服器的角度0~127之间的数 字都是反转,越接近127角度越小, 127~255之间的数字都表示正转, 越接近127角度越小6.设置好以后点确定伺服控制 Servo Module伺服器控制编程范例: ?右边每一个模块的属性在 后面的注释里面都有说明 ?首先拖入一个伺服器模块, 选择正转,再拖入一个悬 空等待模块,设置为1000, 表示一秒;然后再拖入一 个伺服器模块,选择停止; ?程序功能:伺服器1正转 一秒后停止。 ?需要注意的是你启动了几 个伺服器那么在停止的时 候就要加多少个停止伺服 器。返回目录马达、伺服器与离合器安装方法返回目录离合器:它是用来保护马达、 伺服器内部的齿轮或电机, 当外部扭力过强超过了马达、 伺服器的承受能力,此时会 首先损坏安装在马达或伺服 器外部的离合器,从而起到 保护马达或伺服器的作用。 但缺点是安装不到位、松动 等会导致连接在离合器外面 的传动结构脱落或导致马达 无法传动外部机械结构。马达、伺服器齿轮更换方法返回目录马达、伺服器齿轮更换方法返回目录3、数字输出 Digital Output返回目录1.选择端口,默认为数字/ 模拟口 11~16 ?使用数字输出功能模块用来控制数 字输出的状态。 ?你能够利用数字输出端口打开或者 关闭像一个发光二极管或一个螺线管 这样的设备。2.这里可自定义一个值也可 选择预先定义 好的变量?数字输出能够设置1或0固定的值, 它同样能够设置成一个预先定义的变 量。?缺省情况下所有的数字输出值设置 为1(或者0)数字输出 Digital Output数值输出程序例子(输出数字信号来控制气缸伸缩): ?由于气缸的动作就只有伸缩两个动作,所以它的状态可以 用1和0来表示,我们用1表示它伸出去,0表示它缩回来; ?首先用数字输出模块输出一个固定值1,控制气缸伸出去, 如在后面加悬空等待,则可以控制气缸伸出去的时间,不 设置时间则表示它一直伸出去; ?同样输出一个0来控制气缸缩回来,如在后面加悬空等待, 则可以控制气缸缩回来的时间,不设置时间表示它瞬间缩 回来又伸出去,因气缸的初始状态是伸出去的,所以它缩 回来会马上伸出去,保持该状态; ?接着永远循环进入遥控程序,把从控制器传给气缸插的端 口11所得到的信号赋给变量a,接着由接收通道1的接收器 接收由遥控器的1通道发出来的控制信号,并将该信号赋给 a,传给控制器,通过控制器来控制气缸的伸缩; ?程序功能:由于气缸的自动程序的两个模块之间没有其他 程序隔开,且控制他们伸缩的两个模块后都没有加悬空等 待,所以打开电源后气缸只迅速的伸缩就进入遥控程序了, 如在自动的两模块之间有延时或其他程序则是先伸出去, 在运行其他程序,在缩回来,在回位,当没按遥控器时, 气缸会一直伸出去,如按遥控,气缸会缩回来;返回目录返回目录十、Program Flow程序流程控制1、单向选择结构If返回目录3.设置变 量的 表达 式?If-条件,汉语也称“如 果”的意思,即如果满足 设定的条件,那么就运行 If模块所包含的程序,如 果不符合设定的条件,它 将跳过if条件语句的部分, 运行其后面的程序模块。2.选 1.选择变 量 择变 量运 算符 号单向选择结构IfIf模块编程范例: 以编碰撞开关程序为例; ?右边每一个模块的属性在后面的注 释里面都有说明返回目录?首先在变量定义模块(Variables) 里面定义了一个变量a,接着拖入一个 当循环模块,条件设置为数字1,构成 永远循环,然后拖入一个碰撞检测模 块,再拖入If 模块,在if条件里面设置 a=0,在if 语句里面拖入一个马达模块 设置为正转和一个悬空等待模块设置 为2秒;然后停止马达;?程序功能:当碰撞开关碰到时马达 一正转两秒,然后停止;当没碰到时 则不运行任何程序。2、 Else-If嵌套选择结构模块返回目录3.设置变量的表达 式?Else-If条件,必须与IF 模块结合才能使用,表示 和IF模块的条件相反,也 可自定义条件2.选择 1.选择变量 变量运 算符号3、 Else模块返回目录1.只能注释?Else条件,必须与IF模 块结合才能使用,默认表 示和IF模块的条件相反, 不能自定义条件4、双向选择结构 If-Else?IF-Else既IF模块 和Else模块的结合 体,只要符合设定 的条件,将运行if里 面的程序。如果不 符合设定的条件, 它将跳过表达式IF 条件部分,执行 Else里面的程序返回目录3.设 1.选择变 量 置变 量的 表达 式2.选择变 量运 算符 号?它只执行一次程 序,没有循环功能双向选择结构 If-ElseIf-Else条件编程范例: 以编碰撞开关程序为例:返回目录?右边每一个模块的属性在后 面的注释里面都有说明?首先在变量定义模块 (Variables)里面定义了一个 变量a,接着拖入一个当循环 模块,条件设置为数字1,构 成永远循环,然后拖入一个碰 撞检测模块,再拖入If-Else模 块,再if条件里面设置a=1,在 if语句里面拖入一个马达模块设 置为正转; ?在else语句里面拖入一个马 达模块设置为停止; ?程序功能:当碰撞开关没碰 到时马达一正转,当碰撞开关 碰到时就执行Else里面的停止 马达3、当循环While Loop返回目录3.设 1.选择变 量 置变 量的 表达 式?只要符合设定的条件,当循环将不停的重 复执行其语句内部的程序。如果不符合设定 的条件,它将跳出循环,执行循环外部的模 块。2.选择变 量运 算符 号?给它设置条件时,它构成的时条件循环, 即不满足条件的时候,它还能跳出该循环;?当把条件设置成数字1的时候,它则构成了 一个永远循环,即永远都运行其内部的程序。 在遥控编程的时候需要用到永远循环。当循环While Loop当循环模块编程范例1: 以编碰撞开关程序为例: ?右边每一个模块的属性在后面的 注释里面都有说明 ?首先在变量定义模块(Variables) 里面定义了一个变量a,然后拖入一 个碰撞检测模块,再拖入当循环模 块,条件里面设置a=1,表示碰撞 开关处在断开的状态,在当循环里 面拖入一个马达模块设置为正转, 再拖入一个碰撞检测模块,属性和 当循环外面的碰撞检测模块的属性 一样,; ?在当循环外面拖入一个马达模块 设置为停止; ?程序功能:当碰撞开关没碰到时 马达一正转,直到碰撞开关碰到时, 马达1才停止返回目录当循环While Loop返回目录当循环模块编程范例2: ?右边每一个模块的属性在 后面的注释里面都有说明 ?首先拖入当循环模块,在 当循环条件里面输入数字1, 表示永远循环运行当循环 内部册程序;在当循环里 面拖入一个马达模块设置 为正转; ?程序功能:马达1永远正 转4、多次循环For Loop返回目录3.选择运算符号,这里选 2.设置循环次数,表示需要运行FOR语句里面的程序多 少次,如变量是a,要循环运 行一段程序10次,那么这里 就该设置:a&=10 择++,意思是:使变量做 自加运算,即变量运行完 一次,便在原来的基础上 在加1,加1以后,程序就 会在运行一次,直到运行 完前面设置的10次,它才 停止自加运算;如变量是a, 那么这里里就该设置:a++1.选择变量,并设置变量的初始值, 如变量是a,初始值 为0,那么这里就该 设置:a=0多次循环For Loop多次循环For Loop模块编 程范例:返回目录?右边每一个模块的属性 在后面的注释里面都有说 明?首先在变量定义模块 (Variables)里面定义了 一个变量a,然后拖入一 个FOR模块,条件设置为 for条件设置为 a == 0; a &= 3; a ++ ,表示变量a 初始值为0,做自加运算, 直到a的值等于3才跳出 for条件;接着拖入一个 悬空等待模块,设置为2 秒,最后拖入一个马达模 块,停止马达1; ?程序功能: 马达1正转6秒后停止5、定时器Timer返回目录1.选择开始,“开始”命令定时器开 始计时。 定时器Timer ?相当于一个预先放置在主控器 内部的时间传感器,它需要预先 定义变量才能使用,它既可以控 制马达的启动时间,也可控制程 序的执行时间,悬空等待模块只 能控制马达的启动时间; ?定时器的单位为毫秒 100表示0.1秒 1000表示1秒2.选择定时器的编号10000表示10秒以此类推定时器Timer3.选择预设,“预设”命令允许用 户给定时器预设 一个固定的值或 预先定义好的变 量。返回目录6.选择取值,“取值”命令允许用 户把来自定时器 的反馈值赋给一 个变量。7.选择编号 4.选择编号 8.选择变量 5.选择变量定时器Timer定时器Timer编程范例:?右边每一个模块的属性在后面 的注释里面都有说明 ?首先在变量定义模块 (Variables)里面定义变量a和 变量b,然后拖入一个定时器模 块选择开始,赋值给变量a;接 着拖入一个定时器模块,选择预 设,赋值给变量a;在拖入一个 定时器模块,选择取值,赋值给 变量a;然后拖入一个当循环模 块,条件设置为a&=5000表示定 时器变量小于等于5秒,当循环 里面拖如一个马达模块,正转1 秒,然后停止1秒,最后在次赋 值; ?程序功能:定时器时间小于等 于5秒就执行其内部的马达正转1 秒然后停止1秒,当定时器的时 间大于5秒时就跳出当循环返回目录6、悬空等待Wait返回目录?悬空等待模块,在指定的时间段 里,延长上一个模块的执行时间。 这段时间以微秒计时。 ?一般用来延续马达和伺服器的启 动时间 即 100表示0.1秒 1000表示1秒 10000表示10秒以此类推悬空等待Wait返回目录悬空等待Wait模块编程范例: ?右边每一个模块的属性在后面的注释里面都 有说明 ?以编马达为例,?首先拖入一个马达模块,设置为正转;然后 拖入以个悬空等待模块,设置为3秒,最后拖 入一个马达模块设置为停止;?程序功能:马达1正转3秒停止。7、表达式赋值Assignment返回目录?表达式赋值Assignment 模块相当于一个通用模块, 你可以在里面输入任何条 件对变量进行运算或者输 入任何代码来代替任何模 块的功能; ?你能够为一个变量设置一 个明确的值,例如: bumper=0 ?你能够定义一个数学表达 式,例如: x + y=z8、中断Break返回目录?中断模块功能常用在当循 环或者IF条件中,表示当程 序运行到中断模块处,不 管它后面还有没有模块, 或者不管满不满足条件, 它都会跳到当循环或IF条件 的后面,执行它们后面的 程序只能对该模块做对 你修改和查阅程序 有帮助的注释说明中断Break中断Break编程范例1:?右边每一个模块的属性在后 面的注释里面都有说明 ?虽然程序一开始设置的是一 个永远循环,理论上是永远都 运行当循环里面的程序,永远 都跳不出来,但是加了中断模 块以后,程序的功能就变化了; ?程序功能:程序进入当循环, 启动马达1正转2秒,然后停 止2秒,接着就马上中断当循 环条件,跳到当循环的下面, 执行下面的马达1反转1秒, 然后停止。返回目录中断Break中断Break编程范例2: ?右边每一个模块的属性在 后面的注释里面都有说明 ?虽然程序一开始设置的是 一个永远循环,理论上是 永远都运行当循环里面的 程序,永远都跳不出来, 但是加了中断模块以后, 程序的功能就变化了; ?程序功能:程序进入当循 环,检测碰撞,如果碰撞 没碰到,就启动马达1正转, 如果碰撞开关闭合,程序 就马上中断当循环条件, 跳到当循环的下面,执行 下面的马达1反转1秒,然 后停止。返回目录9、继续Continue返回目录?继续Continue:跳 到循环的条件判断处, 从新判断只能对该模块做对 你修改和查阅程序 有帮助的注释说明继续Continue继续Continue模块编程范例: ?右边每一个模块的属性在后面 的注释里面都有说明 ?首先在变量定义模块 (Variables)里面定义了一个 变量a,首先拖入一个碰撞检测 模块,然后拖入一个当循环模 块,设置为a=1,表示碰撞开关 断开,然后拖入一个马达模块, 设置为正转,在拖入一个悬空 等待模块,设置为3秒,在停止 马达,在拖入一个继续模块, 然后拖入马达,设置为反转, 延时3秒,然后停止; ?程序功能:当碰撞开关没碰到 的时候就进入循环,然后马达1 正转3秒停止,接着就跳到当循 环的条件判断处,从新判断, 而不执行继续模块后面的马达1 反转3秒这段程序。返回目录10、返回Return返回目录自定义代码返回参数 ?返回模块的功能是跳到程 序的结尾处,不管它后面 有没有程序,它都不执行, 直接跳到程序的结束位置只能对该模块做对 你修改和查阅程序 有帮助的注释说明返回Return返回Return编程范例: ?右边每一个模块的属性在 后面的注释里面都有说明 ?虽然程序一开始设置的是 一个永远循环,理论上是永 远都运行当循环里面的程序, 永远都跳不出来,但是加了 返回模块以后,程序的功能 就变化了; ?程序功能:程序进入当循 环,启动马达1正转3秒,接 着就马上执行返回模块,跳 到程序的结束位置。当循环 外面的程序也不会执行了。 但由于在返回前面没有停止 马达1,所以返回执行以后, 马达1仍然会继续转动。返回目录11、屏幕输出Print To Screen返回目录1.设置要显示在屏幕输出窗口?屏幕输出模块(Print To Screen)主要是用 来显示用户需要检测的和主控器连接在一起的 电子元件的当前参数; ?打开VEX编程软件英文版的安装目录:一般 默认的路径是C:\Program Files\Intelitek;快 速找到它的安装位置的方法是在桌面右键点击 VEX编程软件的图标→属性→快捷方式→查找 目标; ?接着打开ProjectsProjects\Test Code这个文 件夹就可以查看如何使用屏幕输出模块 (Print To Screen)进行编程;接着把要检测 的传感器的程序下载到主控器,在不关闭主控 器电源并且下载线也和主控器相连接的情况 下,点击 图标 上的内容,如定义的变量为a, 那么就可以输入a=,那么显示 的时候等号后面的数值就是检 测到的值?然后该窗口里面就可以显示出主控器的端口 从当前电子元件获得的参数值。屏幕输出Print To Screen3.选择格式,这一项是具有C语言编程经验的用 户的一个选项。对于大 多数的用户只需要选择 %d。返回目录5.输入需要在屏幕上显示的内容,在显示多个 变量时,这里输入的内 容可以起到区别各个变 量的显示值的作用。4.选择类型,这一项也是具有C语言编程经验 的用户的一个选项。对 于大多数的用户只需要 选择int。2.选择屏幕输出模块要检测的变 量,既是说要把 哪一个变量的值 显示到屏幕上屏幕输出Print To Screen返回目录7. 点下载窗口上的终端,该窗口 会显示出当前传 感器的状态或检 测到的值6.把程序下载到控制器,并让下 载线与控制器保 持连接,电源保 持打开;8.如果看不清楚显示的值,可以点这里的 停止按钮,要继续检 测仍点开始按钮,后 面的清除按钮为清空 当前窗口内的数据屏幕输出Print To Screen屏幕输出Print To Screen模块 编程范例1: ?右边每一个模块的属性在后 面的注释里面都有说明 ?首先在变量定义模块 (Variables)里面定义了一个 变量a,然后拖入一个当循环 模块,条件为数字1,然后在 当循环里面拖入一个碰撞检测 模块,选择变量a,然后拖入 一个屏幕输出模块,屏幕输出 模块的变量为预先定义的变量 a,格式一般为%d,类型为int, 输出内容为a= ?把该程序下载到主控器后, 保持主控器电源为打开,并且 下载线和主控器连接正常,然 后点终端,就可以显示当前碰 撞检测到的数据返回目录12、程序注释Comment返回目录?对程序做对你 修改和查阅有帮 助的说明或注释, 中文版1.0不能中 文注释,英文版 1.0和2.0可以中文 注释,中文2.0可 以中文注释; ?源码注释被编 译器忽略。13、自定义代码User Code返回目录键入自定义 的代码 自定义代码User Code: ?可以替代任何模块,比如马 达模块的代码是SetMotor ( 1 , 255 ) ;那么只要在自定义代码 User Code模块里面键入马达 的代码,那么它就表示一个马 达模块; ?这个模块为熟悉C语言的用 户设计。为了编译器能够正确 编译代码,你必须正确使用语 法。对于C 语言的信息请自行 参阅C 语言的相关指导书。返回目录十一、RC Control遥控通道控制1、遥控器按键说明1 6 1、左操纵杆 2、左操纵杆纵向微调 (通道3) 3、左操纵杆横向微调 (通道4) 4、控制方法设定键 10 11 插晶体 5、控制方法选择键 6、右操纵 7、右操纵杆纵向微调 (通道2)返回目录11、数字选择设定键 12、信号频率振荡器(晶 体)2 3 4 57 8 913、通道6按键1 14、通道6按键2 15、天线(可拉长) 16、通道5按键117、通道5按键2 18、电池盖 19、线控插槽插线控连 接线8、右操纵杆纵向微调 (通道1) 9、电源开关 10、LCD显示屏(显示电 池电压和遥控通道)打开电池盖这 里放电池遥控器及接收器晶体连接示意图返回目录遥控器线控连接示意图返回目录2、遥控接收器接法示意图返回目录这里插晶体遥控接收器连接示意图返回目录3、遥控最优系统搭配最优系统搭配遥控、程控、线控多种控制方式。返回目录+接收器 6通道数字比例遥控器, 与Futaba 6通道遥控 器全面兼容+控制器使用两个遥控器同时控制不同的机 器人时,你必须使用两种不同频率 的RF晶体。在基本套装里只有一种 频率的晶体;在晶体升级套装里可 以获得更多的不同频率的晶体。遥控最优系统搭配返回目录可更换晶振,多通道输入,可实现单机 器人双遥控,增添操控和竞赛乐趣。双遥控器双接收器主控器4、遥控器的基本操作返回目录遥控器的操控杆是有两种模式配置的. 请看以 下指示来查看或转换: (1) 把遥控器的开关推到’ON’的位置来启 动遥控器 (2) 同时按下’Mode’ 及 ‘Select’ 钮直 至液晶屏显示出菜单画面为止. (3) 按Mode钮直到有”Drive”字出现在液晶 屏的左方(是最后的菜单)来进入驱动模式调节 菜单. (4) 目前的设定会显示在液晶屏里, 显示内 容是”23”或”12”. 你利用LCD右边的数据 输入按钮“+ ”或“ C”推上或推下来转换 模式.。 一般不建议用户随意调整,以免设置错乱造成 无法正常遥控,使用默认的配置即可;5、单杆控制双马达Arcade-2 motor返回目录1.这里一般选自动单杆控制双马达4.选择小车左右马达连 ?指的是遥控器 接在主控器 的一个操纵杆控 上的通道 制两个马达同时 转或同时停,这 样两个马达转动 的速度不论快慢, 都是一致的,就 不会因为手的力 量问题而使两个 5.选择小车 马达转动的速度 左右马达转 不一样 动的正反方 向2.选择遥控器控制小车 前进后退的 控制通道3.选择遥控器控制小车 左右转弯的 控制通道单杆控制双马达Arcade-2 motor单杆控制双马达编程范例:返回目录?首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号; ?然后在当循环里面拖入一个单杆控制双马达模块,前进后退选择1,旋转选择3,马达通道则选择1和2; ?程序功能:遥控器控制马达1和2同时转动;遥控器的1通道控制前进后退;遥控器的3通道控制旋转6、单杆控制四马达Arcade-4 motor返回目录1.这里一般选自动单杆控制四马达 ?指的是遥控器 的一个操纵杆控 制四个马达同时 转或同时停,这 样四个马达转动 的速度不论快慢, 都是一致的,就 不会因为手的力 量问题而使四个 马达转动的速度 不一样4.选择小车左右马达连 接在主控器 上的通道2.选择遥控器控制小车 前进后退的 控制通道3.选择遥控器控制小车 左右转弯的 控制通道5.选择小车左右马达转 动的正反方 向单杆控制四马达Arcade-4 motor单杆控制四马达编程范例:返回目录?首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出 来的信号; ?然后在当循环里面拖入一个单杆控制四马达模块,前进后退选择1,旋转选择3,马达通道则选择1、 2、3、4; ?程序功能:遥控器控制马达1、2、3、4同时转动,遥控器的1通道控制前进后退,遥控器的3通道控 制旋转7、双杆控制双马达Arcade-2 motor返回目录1.这里一般选自动双杆控制双马达 ?指的是遥控器 的两个操纵杆控 制两个马达转或 停,这样两个马 达转动的速度不 论快慢,都有可 能不一致,就会 因为手的力量问 题而使两个马达 转动的速度不一 样4.选择小车左右马达连 接在主控器 上的通道2.选择遥控器控制小车 左边马达的 控制通道3.选择遥控器控制小车 右边马达的 控制通道5.选择小车左右马达转 动的正反方 向双杆控制双马达Arcade-2 motor双杆控制双马达编程范例:返回目录?首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发射出来的信号; ?然后在当循环里面拖入一个双杆控制双马达模块,左马达选择1,右马达选择3,马达通道则选择1和2; ?程序功能:遥控器控制马达1和2转动,遥控器的1通道控制马达1,遥控器的3通道控制马达28、双杆控制四马达Arcade-4 motor返回目录1.这里一般选自动双杆控制四马达4.选择小车左右马达连 ?指的是遥控器 接在主控器 的两个操纵杆控 上的通道 制四个马达转或 停,即一个操纵 杆控制两个马达;2.选择遥控器控制小车左边 两个马达的控 制通道?这样四个马达 转动的速度不论 快慢,都有可能 不一致,就会因 为手的力量问题 而使四个马达转 动的速度不一样3.选择遥控器控制小车右边 两个马达的控 制通道5.选择小车左右马达转 动的正反方 向双杆控制四马达Arcade-4 motor双杆控制四马达编程范例: ?首先拖入一个当循环模块,条件设置为1,构成一个永远循环,这样使它永远都检测遥控器发 射出来的信号;返回目录?然后在当循环里面拖入一个双杆控制四马达模块,左马达选择1,右马达选择3,马达通道则选 择1、2、3、4 ; ?程序功能:遥控器控制马达1、2、3、4转动;遥控器的1通道控制马达1、2,遥控器的3通道 控制马达3、49、单杆控制单马达Motor Module Rx返回目录1.这里一般选自动3.选择马达连接在主控 器上的通道2.选择遥控器控制马达 的控制通道单杆控制单马达 ?指的是遥控器 的一个操纵杆控 制一个马达转或 停4.选择马达转动的正反 方向单杆控制单马达Motor Module Rx单杆控制单马达编程范例:?首先拖入一个当循环模块, 条件设置为1,构成一个永远 循环,这样使它永远都检测遥 控器发射出来的信号;返回目录?然后在当循环里面拖入一个 单杆控制单马达模块,遥控器 控制通道选择1,马达通道则 选择1;?程序功能:遥控器的1通道 控制马达1转动10、单杆控制伺服器Servo Module Rx返回目录1.这里一般选自动3.选择伺服单杆控制伺服器 ?指的是遥控器 的一个操纵杆控 制一个伺服器转 或停器连接在主 控器上的通 道2.选择遥控器控制伺服 器的控制通 道4.选择伺服器转动的正 反方向单杆控制伺服器Servo Module Rx单杆控制伺服器编程范例:?首先拖入一个当循环模块, 条件设置为1,构成一个永远 循环,这样使它永远都检测遥 控器发射出来的信号;返回目录?然后在当循环里面拖入一个 单杆控制伺服器模块,遥控器 控制通道选择1,伺服器通道 则选择1;?程序功能:遥控器的1通道 控制伺服器1转动11、遥控通道Rx Input返回目录?使用遥控输入功能模块得 到一个Rx1或Rx2通道的反 馈值,并将其存储于一个 变量;12、脉宽调制PWM Control返回目录?在竞赛模型里,使用脉宽调制控制模块控制马达端 口的脉宽调制值。你可以使用一组值或预先定义的 变量。?你能够使用脉宽调制控制:? 在遥控控制模式如果遥控器没有发送信号的情况 下,可以开启一个马达给其一组脉宽调制值。 使其 运转。 ?混合发送器信号,构造一个程序,像单杆控制模块。 ?在竞赛模式下,控制带有一个行程开关的马达行进。 ?参看英文版Project夹里ARMLIMITSAMPLE.ECP 工程。13、用户自定义函数User Functions返回目录?用户自定义函数User Functions即通常说的子函数 或子程序; ?其主要作用在于可以简化主 程序、简化编程步骤等 ?右图为新建的子函数窗口 ?可以在其开始模块和结束模 块之间进行编程操作,如果需 要使用传感器,那么可以在其 局部变量里面设置局部变量编程区C语言代码区用户自定义函数User Functions模块编程操作步骤1.右键单击模块区最下面的 用户自定义函 数返回目录2.左键选择新增自定义函数3.选择子函数的返回类型, void为不返回 任何参数4.为子函数命名,必须为英 文字母 点这里可以打 开已经保存的 子函数用户自定义函数User Functions模块编程操作步骤5.接着就可以在子 程序的编 程区里面 自行编制 程序了;返回目录6.然后在软件的模块区最下面的用户自定义函数的下面就会显示你当 前的子函数编好程序 后直接关 闭子程序 就行了, 它已自动 保存在相应子函数图标上点右键, 可以打开子程序的编程窗口, 也可以对子程序进行复制、 删除等操作当新增了子程序后,点击工具栏上的主函数右边的下拉按钮, 然后选择你想要打开的子程序名字,左键单击也可以打开相应 的子程序进行编程操作用户自定义函数User Functions模块编程操作步骤7.然后选中子程序,点鼠标左键拖动到主 程序的开始模块和结 束模块之间,在放开 鼠标 放开鼠标会显示如下 图窗口,确定即可返回目录9.到这里就成功引用子函数到主程序里面了,主程序里面就会出 现子函数的模块图标,当主程序 运行到这里时,就会依次执行子 函数里面的模块了 这样主程序看起来也比较简明14、在线控制模式拖动滑块可以控 制马达的转动方 向和转动速度 ?中文版2.0为点击菜单栏的 生成项→在线控制;返回目录1.点这里下载在线控制程序,然后要保证下载线要连接在主控器上和主控器电源必须要打开这里显示模拟口的 数值 这里显示数字输入 口的数值?英文版为菜单”Build&Doenload“ → ” On line window…“ ?为了能使用在线控制,你必 须先下载在线控制程序到主控 器; 这里显示马达转动 速度的数值这 里 显 示中 断端口 的数值十二、自动程序和遥控程序结合范例?假设一部小车,底座装了4个马达,一个马达控制吸球 装置,两个马达控制吸球装置的升降,那么给它编一个简 单的自动和手动相结合的程序:返回目录?首先拖入四个马达控制模块,设置1.2通道正转;3.4通 道反转;再拖入一个悬空等待模块,设置为2秒;然后停 止马达;拖入一个当循环模块,条件设置为1,构成一个 永远循环,这样使它永远都检测遥控器发射出来的信号;?然后在当循环里面拖入一个单杆控制单马达模块,遥控 器控制通道选择6,马达通道选择7; ?再拖入一个单杆控制双马达马快,前进后退选择4,旋 转选择5,马达选择5和6; ?最后拖入一个单杆控制4马达模块,前进后退选择1,旋 转选择3,马达选择1、2、3、4;如果要加入其它程 序模块,加在当循 环前面则是自动程 序; 当循环里面则只需 要加入遥控器控制 模块即可?程序功能:首先小车前进2秒,然后停止,接着就进入 遥控控制模式了,遥控器的1和3通道控制小车前进后退或者转弯; 遥控器的4和5通道控制吸球装置的升降; 遥控器的6通道控制吸球十三、下载线接法1.连接USB串口线缆到你 的计算机前面 或后面有usb 接口的地方返回目录3.连接机器人接口线到编程模块4.连接从编程模块到Vex主 2.连接USB-串口线连接器到编 程模块 控器上标有“SERLAL”的机 器人线缆串口下载线接法返回目录十四、下载线端口查看方法?方法一: 2.选择硬件 3.选择设备管理器返回目录1.右键“我的电脑”, 点“属性”下载线端口查看方法?方法二:返回目录2.选择“设备管理器”3.选择“端口(COM和 LPT)”1.右键我的电脑,点 “管理”下载线端口查看方法返回目录4、双击“端口(COM和LPT)“ 如果安装了下载线驱动, 则会有” Prolific USB-toSerial Comm Port (com3)“这 一项,最后显示的com3就是 当前VEX下载线连接在电脑上 的端口号;然后在软件里面选 择相应的端口即可进行程序下 载; 如果有时候发现那一项的前面 是一个黄颜色的问号,那就说 明没有安装下载线的驱动程序。十五、1.0中文版程序下载步骤1.点保存,中文1.0版不能保存在C盘(包括桌 面),其它版任何地方 都可以保存返回目录2.点编译3.点链接4.点下载编译成功或是 失败在软件下 方的链接编译 窗口会有显示在编译成功的前提下才 能链接,链接成功或是 失败在软件下方的链接 编译窗口会有显示1.0中文版程序下载步骤5.点下载以后,会弹出下载窗口,点 击端口号选择下载 线与电脑连接的 COM口号码(com 口在设备管理器里 面查看)返回目录如果端口不正确、下 载线没连接好,或是 其他原因导致电脑没 检测到下载线,则会 弹出该窗口,则需要 用户从电脑端到控制 器端挨个检查1.0中文版程序下载步骤6.打开你保存的程序文 件返回目录7. 最后点下载2.0中文版程序下载步骤返回目录1.点菜单栏的配置→下载端口设置,2. 在弹出的窗口里面选择下载线与电脑连接的COM口号码(com口在 设备管理器里面查看)2.0中文版程序下载步骤3. 在点工具栏的编译下载图 标(快捷键为 F6)5. 如果有电源没打开、下载线没连接好、端口没选 择对等情况会弹出该提示4. 接着就开始下载程序 了,进度条 会显示程序 下载的进度十六、英文版下载步骤2.点弹出的窗口的左上角处的”port setting“ 选择下载线与电脑连接 的COM口号码(com 口在设备管理器里面查 看)返回目录1.首先查看下载线当前使用的 COM口并且记 住,方法前面已 介绍; 接着点工具栏上 的端口设置图标英文版下载步骤3、接着点工具栏上的下载图标返回目录4、接着弹出等候窗口,软 件此时正在编 译链接程序5、点击”Yes“后会弹出下载窗口, 4、然后弹出确认窗口,要下载 就点”Yes“,不 下载就点”NO“ 如电脑、下载线、控制器中存在连 接问题,会英文版2.0网络版底层更新步骤3、接着点击“Options”,选择 1、点击菜单栏首先点击菜单栏的 “Build&Download”, 接着点击“Terminal Window…”返回目录“Download Master Code…”2、点击弹出窗口的“Close ”英文版2.0网络版底层更新步骤5、接着弹出如下窗口 4、点击弹出窗口中的“是”返回目录英文版2.0网络版底层更新步骤6、接打开“Vex”文件夹,并双击 “VEX_MASTER_V7_4EASYC”返回目录7、接着软件就开始下载英文版软件的底 层程序v7到控制器了英文版下载问题如果你当前的计算 机用户没有访问权 限则会弹出该错误返回目录假如你企图保存一 个文件,类似的则 会出现以下的位置 受限信息。为了解决这些问题,在easyC被安装的位置, 你的用户必须拥有改变包含文件写入和访问 文件夹的权限,即你必须拥有计算机管理员 权限;在大多数的计算机上,程序的安装位 置是“C:\Program Files\Intellitek”。英文版下载问题如果你当前的程序有错误 那么在链接编译区会出现 这样的现象 解决方法是仔细检查程序返回目录假如你没有安装合适的硬件,或者你的软件没有符合你的硬件的配置,当你下载代码到微 控制器的时候,你将接收到以下的错误信息。解决方法:1、检查核对硬件设置符合硬件程序。 2、确保机器人开启。 3、确保安装USB-串口驱动, 和合适的COM端口设置。 4、在下载的时候保证你的机器人开启。检查电池是否符合要求。 5、确保所有的线缆被完全插入。英文版下载问题返回目录如果电脑、下载线、控制器之间存在 问题,则会弹出该窗口,需要用户认 真检查附录一、变量命名变量(variable)返回目录?变量是描述一条信息的名称,在变量中可以 存储各种类型的数字、字符及其它信息;?在计算机中,变量代表存储地址,变量的类 型决定了存储在变量中的数值的类型; ?而在机器人编程软件中定义的变量的名称可 看作是该传感器在软件中的代号,给它赋的值, 则可看作是当前传感器的状态或检测到的值; ?变量的值可以通过赋值或++、 ?变量必须先定义,后使用; ?变量命名:变量名必须以字母开头;变量名 只能由字母、数字、下划线组成,不能包含空 格、标点符号、运算符等其它符号 ; ?变量名称不能与右边表内的单词相同,因为 右边表内的单词都是C语言中的关键字,它们 都有特殊的作用,如果变量名与其相同,那么 程序执行时就会产生错误;-运算符改变; -附录二、变量类型变量类型分为值类型和引用类型;返回目录?一、值类型分为:简单类型(Simple types)、结构类型(Struct types)、枚举类型(Enumeration typs)1、简单类型分为:整数类型、布尔类型、字符类型、实数类型。 (1)、整数类型:整数类型有:整数短字节型(sbyte)、字节型(byte)、短整数型(short)、无符号短整 数型(ushort)、整型(int)、无符号整型(uint)、长整型(long)、无符号长整型(ulong); ?划分的依据是根据该类型的变量在内存中所占的位数;位数的概念是按照2的指数幂来定义的,如8位整数,则可 以表示为2的8次方个数值,即256; 整数类型在数学上的表示及在计算机中的取值范围如下表:变量类型(2)布尔类型: ? 布尔类型用来表示真和假这两个概念;C语言中用true表示真,false表示假; (3)实数类型:返回目录① 浮点类型? ? 数学中,实数包括整数也包括小数;小数分为: 单精度(float)和双精度(double); 它们的差别在于取值范围和精度不同; 计算机对浮点数的运算低于对整数的运算;在精度要求不高的浮点数计算中,可采用float型,当然采用double 如在程序中大量使用double类浮点数,将占用很多内存,使计算机处理起来更加繁重; 单精度:取值范围在正负1.5×10到3.4×10之间,精度为7位数; 双精度:取值范围在正负1.5×10到1.7×10,精度为15到16位数; ② 十进制类型(decimal) 型的计算更为精确;?主要用于方便我们在金融和货币方面的计算;它是一种高精度、128位的数据类型,范围大约从1.0×10到7.9×10的28至29位有效数字,该精度使用位数(digits)而不是以小数位(decimal places)来表示的,运算结果 准确到28个小数位,十进制类型的取值范围比double类型的范围要小,但更精确; 定义一个decimal变量并赋值时,使用m下标以表示它是一个十进制类型;如果省略了m,在变量赋值之前,它将被编译器当做双精度(double)类型来处理;如:decimal a=1.0m;变量类型(4)字符类型:? ? ? ? ? 计算机处理的信息除了数字外,主要就是字符了;主要有char 和string两种; 字符包括数字字符、英文字母、表达符号等;返回目录2、结构类型(Struct types): 结构类型是由不同类型的数据组成的一组新的数据类型,结构类型的变量的值是由各个成员的值组合而成的;3、枚举类型(Enumeration typs) 枚举(enum)是为了一组在逻辑上密不可分的整数值提供便于记忆的符号; 枚举类型的变量在某一时刻只能取枚举中某一个元素的值;二、引用类型 ? ? 引用的含义是:该类型的变量不直接存储所包含的值,而是指向它所要存储的值,即引用类型存储实际数据的 引用值的地址; 引用类型有:类、代表、数组、接口四种;这里不做深究;附录三、常用运算符常用关系运算符: = =:等于; != :不等于; & :大于; &:小于;返回目录&= :大于等于; &= :小于等于; &&:与(必须满足该运算符左右两边设定的所 有条件); ‖:或(只需满足该运算符左右两边设定条 件的其中一个条件) :常用运算符: +:加法运算; -:减法运算; *:乘法运算; /:除法运算; %:求余数运算; ++:递增运算; --:递减运算;附录四、常用操作符运算优先级返回目录返回目录
All rights reserved Powered by
www.tceic.com
copyright ©right 。文档资料库内容来自网络,如有侵犯请联系客服。}