VEX编程软件使用教程.ppt

上传人:sh****n 文档编号:6441733 上传时间:2020-02-25 格式:PPT 页数:110 大小:5.20MB
返回 下载 相关 举报
VEX编程软件使用教程.ppt_第1页
第1页 / 共110页
VEX编程软件使用教程.ppt_第2页
第2页 / 共110页
VEX编程软件使用教程.ppt_第3页
第3页 / 共110页
点击查看更多>>
资源描述
VEX机器人软件编程教程 目录一 目录二 目录三 一 使用注意事项 如果是没有购买序列号的用户 安装了软件 打开软件时会弹出一个注册的窗口 中文版点暂不注册按钮便可以试用 英文版点RuninEvaluationMode按钮便可试用 1 0版本的软件只能试用30天 2 0英文版本只能试用7天 2 0中文版有15天 如果是购买了序列号的用户 在注册的时候需要联网注册 每个序列号也只能在一台电脑上使用 英文版如果换了电脑再使用该序列号注册 那么该系列号就不可用了 2 0中文版一个序列号也只能一台电脑注册 如要换电脑注册可以点菜单栏 帮助 注销 然后在另一台电脑上就可以再次使用该序列号了 如果是没有购买序列号的用户 只要一装上软件 便自动与系统硬件绑定 试用期到了以后即使把软件卸载了在重装也不能继续试用 建议先用备份工具备份系统 然后才安装英文版软件 这样软件过期了以后 只需要把系统还原 在重装VEX软件即可继续试用 VEX编程软件有中文版和英文版两个版本 中文和英文分别都有1 0版本和2 0版本 两个版本不能混用 不要既下载中文版编的程序到主控器 又下载英文版编的程序到主控器 这样会损坏主控器的底层程序 严重时会导致主控器的某些芯片不可用 从而导致主控器不能使用 中文版和英文版的程序和代码都不能用对方的的软件相互打开并编辑 既 英文版只能打开用英文版软件编的程序和代码 中文版只能打开用中文版软件编的程序和代码 中文1 0版软件编好的程序不能保存到C盘 包括桌面 否则会导致程序不能打开或者出现错误 中文1 0版软件在每次下载程序之前都要先保存 编译 链接 然后再下载 然后选择端口 查看下载线使用的COM口的方法是 我的电脑 右键 属性 硬件 设备管理器 端口 COM和LPT ProlificUSB to SerialCommPort com3 最后这一项的com3就是当前VEX下载线使用的端口 然后再在软件里面选择相应的端口即可下载程序到主控器 具体方法后面有详细介绍 1 0版本软件不能定义子程序 2 0版本软件可以定义子程序 1 0版本的软件所有变量都是全局变量 2 0版本软件中可以定义全局变量和局部变量 1 0版本的软件没有中断 继续 返回模块 2 0版本软件中有 当主控器出现执行程序混乱的情况时 说明有可能是主控器的底层程序不正常 那么只需要从新下载一次底层程序即可 中文版2 0为 菜单栏生成 下栽初始化程序 二 主界面 工具栏菜单 编程区 C语言代码区 链接编译区 模块区 三 工具栏模块 英文版 工具栏模块 中文版1 0 工具栏模块 中文版2 0 四 编程区 对于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键删除模块 也可单击右键 英文版是点右键 然后选择删除 右键单击任何一个模块 可以对该模块进行编辑 复制 剪切 删除 粘贴等操作 五 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 变量名称需要是英文字母 其它的可以不填也可以在变量取值处设置变量的值 1 选择变量类型 一般都选int 整型变量 2 键入变量名字 要求必须是英文字母组成 这里可以删除整行不需要的变量 这里可以键入变量的值 要求必须是英文数字组成 也可先不定义变量的值 变量定义表 七 接口说明 接口说明 电源开关 电池插口 接收器 线控插口1 接收器 线控插口2 程序下载线插口 八 Inputs主控输入 1 碰撞开关传感器bumperswitch 碰撞开关是数字式的传感器 它有两种状态 即开和关 当碰撞开关断开的时候 定义为1 当碰撞开关闭合的时候 定义为0 打开位于TestCode的文件夹中的BUMPERTEST ECP工程 看其示范怎样编写碰撞开关程序 1 选择碰撞开关连接在主控器上的通道 2 选择一个预先定义的碰撞开关变量 对当前模块注释 将帮助你阅读程序和理解模块的功能 3 设置好以后点OK 碰撞开关传感器bumperswitch 碰撞开关程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个碰撞检测模块 接着拖入一个当循环模块对当前碰撞变量进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个碰撞检测模块 属性和当循环外面的碰撞检测模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a 1即是碰撞开关没碰到时 就不停的启动马达1正转 反之a 0则是当碰撞开关碰到时 就跳出当循环 停止马达1 2 光敏传感器lightsensor 光敏传感器是模拟式的传感器 它是用来检测周围环境光线的亮暗的传感器 把光线由亮到暗的范围定义在0到1024 值越小表示光线越亮 值越大表示光线越暗 打开位于TestCode文件夹中的LIGHTTEST ECP工程 看其示范怎样编写光敏传感器程序 1 选择光敏传感器连接在主控器上的通道 2 选择一个预先定义的光敏传感器变量 对当前模块注释 将帮助你阅读程序和理解模块的功能 3 设置好以后点OK 光敏传感器lightsensor 光敏传感器程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个光敏检测模块 选择变量a 接着拖入一个当循环模块对当前亮度变量 即变量a 进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个光敏检测模块 属性和当循环外面的光敏检测模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a 800则是光线比较暗时 就跳出当循环 停止马达1 3 限位开关limitswitch 限位开关是数字式的传感器 和碰撞开关类似 它有两种状态 即开和关 当限位开关断开的时候 定义为1 当限位开关闭合的时候 定义为0 打开位于TestCode的文件夹中的LIMITTEST ECP工程 看其示范怎样编写行程开关程序 1 选择限位开关连接在主控器上的通道 2 选择一个预先定义的限位开关变量 对当前模块注释 将帮助你阅读程序和理解模块的功能 3 设置好以后点确定 限位开关limitswitch 限位开关程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个限位检测模块 接着拖入一个当循环模块对当前限位变量进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个限位检测模块 属性和当循环外面的限位检测模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a 1即是限位开关没闭合时 就不停的启动马达1正转 反之a 0则是当限位开关碰到时 就跳出当循环 停止马达1 4 巡线传感器LineFollower 1 选择巡线传感器连接在主控器上的通道 2 选择一个预先定义的巡线传感器变量 对当前模块注释 将帮助你阅读程序和理解模块的功能 3 设置好以后点确定 巡线传感器是模拟式的传感器 它是用来检测颜色的传感器 把颜色的深浅由白到黑的范围定义在0到1024 值越小表示颜色越白 值越大表示颜色越黑 打开位于TestCode的文件夹中的LINEFOLLOWER ECP工程 看其示范怎样编写巡线传感器程序 巡线传感器LineFollower 巡线传感器程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个巡线检测模块 接着拖入一个当循环模块对当前灰度变量 即变量a 进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个巡线检测模块 属性和当循环外面的巡线检测模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a 800则是颜色比较黑时 就跳出当循环 停止马达1 5 编码器OpticalShaftEncoder 编码器是一个数字式的传感器 它能够用来测量和定义马达转动的圈数或者路程 编码器一般插在中断端口 INTERRUPTS 编码器旋转 360度 等于90个编码脉冲 打开位于TestCode的文件夹中的ENCODERTEST ECP工程 看其示范怎样编写编码器程序 1 选择开始 开始记录编码脉冲 2 选择编码器连接在主控器上的端口 编码器OpticalShaftEncoder 6 选择取值 开始把值反馈给变量 7 选择编码器连接在主控器上的端口 8 选择一个预先定义的变量 3 选择预设 4 选择编码器连接在主控器上的端口 5 选择固定值 设为0 表示编码器的初始值为0 为编码器清零 对当前模块注释 将帮助你阅读程序和理解模块的功能 编码器OpticalShaftEncoder 编码器程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入三个编码器检测模块 第一个选择开始 第二个选择预设 第三个选择取值 接着拖入一个当循环模块对当前路程变量 即变量a 进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个编码器检测模块 属性和当循环外面设置取值的那个编码器检测模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a30则是马达转动的路程达到30时 就跳出当循环 停止马达1 6 超声波传感器UltrasonicSensor 1 选择开始 开始命令告诉超声波开始记录声波 2 选择超声波传感器连接在主控器上的中断端口 3 选择超声波传感器连接在主控器上的输出端口 4 选择取值 取值命令允许用户将来自超声波的值反馈给一个变量 5 选择超声波传感器连接在主控器上的中断端口 6 选择超声波传感器连接在主控器上的输出端口 7 选择一个预先定义的变量 超声波传感器利用高频率的声波来探测障碍物 它发射一个超声波信号 声波被外界物体反射回来 然后超声波传感器就可以根据接收到的信号的时间和强弱计算出离障碍物的距离超声波传感器有两根连接线确保标有Output标签的线连接到主控器的中断端口 确保标有Input标签的线连接到主控器的数字输出端口 默认的为11 16 超声波的取值范围是 2 100小于2cm是超声波的盲区 在2cm以内就检测不到任何物体 打开位于TestCode的文件夹中的ULTRASONICTEST ECP工程 看其示范怎样编写超声波传感器程序 超声波传感器UltrasonicSensor 超声波传感器程序范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入两个超声波检测模块 第一个选择开始 第二个选择取值 接着拖入一个当循环模块对当前超声波变量 即变量a 进行判断 然后在当循环里面拖入一个马达控制模块 再拖入一个超声波检测模块 属性和当循环外面设置取值的那个超声波取值模块的属性一样 这样就构成了一个条件循环 最后在当循环外面在拖入一个马达控制模块 那么这个程序的功能就是 当a 20即是当前超声波和障碍物的距离没有达到20时 就不停的启动马达1正转 反之a 20则是超声波与障碍物之间的距离达到20和20以内时 就跳出当循环 停止马达1 7 数字输入DigitalInput 1 选择端口 一般默认为数字 模拟口5 10 2 选择选择预先定义好的变量 数字输入DigitalInput模块可以代替所有数字式的传感器模块 8 模拟输入AnalogInput 1 选择端口 一般默认为数字 模拟口1 4 2 选择选择预先定义好的变量 模拟输入AnalogInput模块可以代替所有模拟式的传感器模块 九 Outputs主控输出 1 马达控制MotorModule 1 选择马达连接在主控器上的端口 2 选择255表示马达以最快的速度正转 3 选择127表示马达以停止 4 选择0表示马达以最快的速度反转 5 选择用户自定义则表示用户自己设置马达的速度0 127之间的数字都是反转 越接近127速度越慢 127 255之间的数字都表示正转 越接近127速度越慢 6 设置好以后点确定 马达的输出轴正对自己 顺时针表示正转 逆时针表示反转 箭头图标向上暗示马达正转 箭头图标变成一个黄色的点暗示马达停止 箭头图标向下暗示马达反转 马达控制MotorModule 马达控制编程范例1 右边每一个模块的属性在后面的注释里面都有说明首先拖入一个马达模块 选择正转 再拖入一个悬空等待模块 设置为1000 表示一秒 然后再拖入一个马达模块 选择停止 那么这个程序的功能为 马达1正转一秒后停止 需要注意的是你启动了几个马达那么在停止的时候就要加多少个停止马达 马达控制编程范例2 右边每一个模块的属性在后面的注释里面都有说明首先拖入一个当循环模块 条件设置为1 表示永远循环 然后再当循环里面拖入一个马达模块 选择正转 那么这个程序的功能为 马达1永远正转 马达方向辅助图表 2 伺服控制ServoModule 伺服器和马达有区别 马达能转动360度 而伺服器只能转动一定的角度 大约120度伺服器的输出轴正对自己 顺时针表示正转 逆时针表示反转 箭头图标向下暗示伺服器正转 箭头图标变成一个黄色的点暗示伺服器停止 箭头图标向上暗示伺服器反转 1 选择伺服器连接在主控器上的端口 2 选择255表示伺服器正转最大的角度 3 选择127表示伺服器停止 4 选择0表示伺服器反转最大的角度 5 选择用户自定义则表示用户自己设置伺服器的角度0 127之间的数字都是反转 越接近127角度越小 127 255之间的数字都表示正转 越接近127角度越小 6 设置好以后点确定 伺服控制ServoModule 伺服器控制编程范例 右边每一个模块的属性在后面的注释里面都有说明首先拖入一个伺服器模块 选择正转 再拖入一个悬空等待模块 设置为1000 表示一秒 然后再拖入一个伺服器模块 选择停止 那么这个程序的功能为 伺服器1正转一秒后停止 需要注意的是你启动了几个伺服器那么在停止的时候就要加多少个停止伺服器 3 数字输出DigitalOutput 1 选择端口 一般默认为数字 模拟口11 16 2 选择选择预先定义好的变量或者自定义一个值 使用数字输出功能模块用来控制数字输出的状态 你能够利用数字输出端口打开或者关闭像一个发光二极管或一个螺线管这样的设备 数字输出能够设置1或0固定的值 它同样能够设置成一个预先定义的变量 缺省情况下所有的数字输出值设置为1 或者0 十 ProgramFlow程序流程控制 1 单向选择结构If If 条件 只要符合设定的条件 将运行if语句内部的程序 如果不符合设定的条件 它将跳过表达式if条件语句的部分 运行下一个程序模块 1 选择变量 2 选择变量运算符号 3 设置变量的表达式 单向选择结构If If模块编程范例 以编碰撞开关为例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 接着拖入一个当循环模块 条件设置为数字1 构成永远循环 然后拖入一个碰撞检测模块 再拖入If模块 在if条件里面设置a 0 在if语句里面拖入一个马达模块设置为正转和一个悬空等待模块设置为2秒 然后停止马达 那么这个程序的功能为 当碰撞开关碰到时马达一正转两秒 然后停止 当没碰到时则不运行任何程序 2 Else If嵌套选择结构模块 Else If条件 必须与IF模块结合才能使用 表示和IF模块的条件相反 也可自定义条件 1 选择变量 2 选择变量运算符号 3 设置变量的表达式 3 Else模块 Else条件 必须与IF模块结合才能使用 默认表示和IF模块的条件相反 不能自定义条件 1 只能注释 4 双向选择结构If Else IF Else既IF模块和Else模块的结合体 只要符合设定的条件 将运行if里面的程序 如果不符合设定的条件 它将跳过表达式IF条件部分 执行Else里面的程序 它只执行一次程序 没有循环功能 2 选择变量运算符号 1 选择变量 3 设置变量的表达式 双向选择结构If Else If Else条件编程范例 以编碰撞开关为例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 接着拖入一个当循环模块 条件设置为数字1 构成永远循环 然后拖入一个碰撞检测模块 再拖入If Else模块 再if条件里面设置a 1 在if语句里面拖入一个马达模块设置为正转 在else语句里面拖入一个马达模块设置为停止 那么这个程序的功能为 当碰撞开关没碰到时马达一正转 当碰撞开关碰到时就执行Else里面的停止马达 3 当循环WhileLoop 只要符合设定的条件 当循环将不停的重复执行其语句内部的程序 如果不符合设定的条件 它将跳出循环 执行循环外部的模块 给它设置条件时 它构成的时条件循环 即不满足条件的时候 它还能跳出该循环 当把条件设置成数字1的时候 它则构成了一个永远循环 即永远都运行其内部的程序 在遥控编程的时候需要用到永远循环 1 选择变量 2 选择变量运算符号 3 设置变量的表达式 当循环WhileLoop 当循环模块编程范例1 以编碰撞开关为例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个碰撞检测模块 再拖入当循环模块 条件里面设置a 1 表示碰撞开关处在断开的状态 在当循环里面拖入一个马达模块设置为正转 再拖入一个碰撞检测模块 属性和当循环外面的碰撞检测模块的属性一样 在当循环外面拖入一个马达模块设置为停止 那么这个程序的功能为 当碰撞开关没碰到时马达一正转 直到碰撞开关碰到时 马达1才停止 当循环WhileLoop 当循环模块编程范例2 右边每一个模块的属性在后面的注释里面都有说明首先拖入当循环模块 在当循环条件里面输入数字1 表示永远循环运行当循环内部册程序 在当循环里面拖入一个马达模块设置为正转 那么这个程序的功能为 马达1永远正转 4 多次循环ForLoop 1 选择变量 并设置变量的初始值 如变量是a 初始值为0 那么这里就该设置 a 0 2 设置循环次数 表示需要运行FOR语句里面的程序多少次 如变量是a 要循环运行一段程序10次 那么这里就该设置 a 10 3 选择运算符号 这里选择 意思是 使变量做自加运算 即变量运行完一次 便在原来的基础上在加1 加1以后 程序就会在运行一次 直到运行完前面设置的10次 它才停止自加运算 如变量是a 那么这里里就该设置 a 多次循环ForLoop 多次循环ForLoop模块编程范例 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个FOR模块 条件设置为for条件设置为a 0 a 3 a 表示变量a初始值为0 做自加运算 直到a的值等于3才跳出for条件 接着拖入一个悬空等待模块 设置为2秒 最后拖入一个马达模块 停止马达1 那么该程序的功能为 马达1正转6秒后停止 5 定时器Timer 定时器Timer相当于一个预先放置在主控器内部的时间传感器 它需要预先定义变量才能使用 可以控制程序的执行时间 悬空等待只能延续马达的启动时间定时器的单位为毫秒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秒时就跳出当循环 6 悬空等待Wait 悬空等待模块 在指定的时间段里 延长上一个模块的执行时间 这段时间以微秒计时 即100表示0 1秒1000表示1秒10000表示10秒以此类推 悬空等待Wait 悬空等待Wait模块编程范例 右边每一个模块的属性在后面的注释里面都有说明以编马达为例 首先拖入一个马达模块 设置为正转 然后拖入以个悬空等待模块 设置为3秒 最后拖入一个马达模块设置为停止 那么该程序的功能为 马达1正转3秒停止 7 表达式赋值Assignment 表达式赋值Assignment模块相当于一个通用模块 你可以在里面输入任何条件对变量进行运算或者输入任何代码来代替任何模块的功能 你能够为一个变量设置一个明确的值 例如 bumper 0你能够定义一个数学表达式 例如 x y z 8 中断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 屏幕输出PrintToScreen 屏幕输出模块 PrintToScreen 主要是用来显示用户需要检测的和主控器连接在一起的电子元件的当前参数 打开VEX编程软件英文版的安装目录 一般默认的路径是C ProgramFiles Intelitek 快速找到它的安装位置的方法是在桌面右键点击VEX编程软件的图标 属性 快捷方式 查找目标 接着打开ProjectsProjects TestCode这个文件夹就可以查看如何使用屏幕输出模块 PrintToScreen 进行编程 接着把要检测的传感器的程序下载到主控器 在不关闭主控器电源并且下载线也和主控器相连接的情况下 点击图标然后该窗口里面就可以显示出当前电子元件检测到的参数值 这是具有C程序经验的高级用户的一个选项 对于大多数的定义变量缺省为 d 1 设置要显示在屏幕输出窗口上的内容 如定义的变量为a 那么就可以输入a 那么显示的时候等号后面的数值就是检测到的值 屏幕输出PrintToScreen 2 选择屏幕输出模块要检测的变量 既是说要把哪一个变量的值显示到屏幕上 3 选择格式 这一项是具有C语言编程经验的用户的一个选项 对于大多数的用户只需要选择 d 4 选择类型 这一项也是具有C语言编程经验的用户的一个选项 对于大多数的用户只需要选择int 屏幕输出PrintToScreen 屏幕输出PrintToScreen模块编程范例1 右边每一个模块的属性在后面的注释里面都有说明首先在变量定义模块 Variables 里面定义了一个变量a 然后拖入一个当循环模块 条件为数字1 然后在当循环里面拖入一个碰撞检测模块 选择变量a 然后拖入一个屏幕输出模块 屏幕输出模块的变量为预先定义的变量a 格式一般为 d 类型为int 输出内容为a 把该程序下载到主控器后 不关闭电源 也不取掉下载线 然后点终端 就可以显示当前碰撞检测到的数据 12 程序注释Comment 对程序做对你修改和查阅有帮助的说明或注释 中文版1 0不能中文注释 英文版1 0和2 0可以中文注释 中文2 0可以中文注释 源码注释被编译器忽略 13 自定义代码UserCode 自定义代码UserCode 可以替代任何模块 比如马达模块的代码是SetMotor 1 255 那么只要在自定义代码UserCode模块里面键入马达的代码 那么它就表示一个马达模块 这个模块为熟悉C语言的用户设计 为了编译器能够正确编译代码 你必须正确使用语法 对于C语言的信息请自行参阅C语言的相关指导书 键入自定义的代码 十一 RCControl遥控通道控制 1 遥控器按键说明 这里插晶体 打开电池盖这里放电池 2 遥控器的基本操作 遥控器的操控杆是有两种模式配置的 请看以下指示来查看或转换 1 把遥控器的开关推到 ON 的位置来启动遥控器 2 同时按下 Mode 及 Select 钮直至液晶屏显示出菜单画面为止 3 按Mode钮直到有 Drive 字出现在液晶屏的左方 是最后的菜单 来进入驱动模式调节菜单 4 目前的设定会显示在液晶屏里 显示内容是 23 或 12 你利用LCD右边的数据输入按钮 或 推上或推下来转换模式 3 遥控接收器接法示意图 这里插晶体 4 遥控最优系统搭配 使用两个遥控器同时控制不同的机器人时 你必须使用两种不同的晶体RF频率 在基本套装里只有一种频率的晶体 在晶体升级套装里可以获得更多的不同频率的晶体 遥控最优系统搭配 5 单杆控制双马达Arcade 2motor 单杆控制双马达指的是遥控器的一个操纵杆控制两个马达同时转或同时停 这样两个马达转动的速度不论快慢 都是一致的 就不会因为手的力量问题而使两个马达转动的速度不一样 1 这里一般选自动 2 选择遥控器控制小车前进后退的控制通道 3 选择遥控器控制小车左右转弯的控制通道 4 选择小车左右马达连接在主控器上的通道 5 选择小车左右马达转动的正反方向 单杆控制双马达Arcade 2motor 单杆控制双马达编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个单杆控制双马达模块 前进后退选择1 旋转选择3 马达通道则选择1和2 那么该程序的功能就是 遥控器控制马达1和2同时转动 遥控器的1通道控制前进后退 遥控器的3通道控制旋转 6 单杆控制四马达Arcade 4motor 单杆控制四马达指的是遥控器的一个操纵杆控制四个马达同时转或同时停 这样四个马达转动的速度不论快慢 都是一致的 就不会因为手的力量问题而使四个马达转动的速度不一样 1 这里一般选自动 2 选择遥控器控制小车前进后退的控制通道 3 选择遥控器控制小车左右转弯的控制通道 4 选择小车左右马达连接在主控器上的通道 5 选择小车左右马达转动的正反方向 单杆控制四马达Arcade 4motor 单杆控制四马达编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个单杆控制四马达模块 前进后退选择1 旋转选择3 马达通道则选择1 2 3 4 那么该程序的功能就是 遥控器控制马达1 2 3 4同时转动 遥控器的1通道控制前进后退遥控器的3通道控制旋转 7 双杆控制双马达Arcade 2motor 双杆控制双马达指的是遥控器的两个操纵杆控制两个马达转或停 这样两个马达转动的速度不论快慢 都有可能不一致 就会因为手的力量问题而使两个马达转动的速度不一样 1 这里一般选自动 2 选择遥控器控制小车左边马达的控制通道 3 选择遥控器控制小车右边马达的控制通道 4 选择小车左右马达连接在主控器上的通道 5 选择小车左右马达转动的正反方向 双杆控制双马达Arcade 2motor 双杆控制双马达编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个双杆控制双马达模块 左马达选择1 右马达选择3 马达通道则选择1和2 那么该程序的功能就是 遥控器控制马达1和2转动 遥控器的1通道控制马达1遥控器的3通道控制马达2 8 双杆控制四马达Arcade 4motor 双杆控制四马达指的是遥控器的两个操纵杆控制四个马达转或停 即一个操纵杆控制两个马达 这样四个马达转动的速度不论快慢 都有可能不一致 就会因为手的力量问题而使四个马达转动的速度不一样 1 这里一般选自动 2 选择遥控器控制小车左边两个马达的控制通道 3 选择遥控器控制小车右边两个马达的控制通道 4 选择小车左右马达连接在主控器上的通道 5 选择小车左右马达转动的正反方向 双杆控制四马达Arcade 4motor 双杆控制四马达编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个双杆控制四马达模块 左马达选择1 右马达选择3 马达通道则选择1 2 3 4 那么该程序的功能就是 遥控器控制马达1 2 3 4转动 遥控器的1通道控制马达1 2 遥控器的3通道控制马达3 4 9 单杆控制单马达MotorModuleRx 单杆控制单马达指的是遥控器的一个操纵杆控制一个马达转或停 1 这里一般选自动 2 选择遥控器控制马达的控制通道 3 选择马达连接在主控器上的通道 4 选择马达转动的正反方向 单杆控制单马达MotorModuleRx 单杆控制单马达编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个单杆控制单马达模块 遥控器控制通道选择1 马达通道则选择1 那么该程序的功能就是 遥控器的1通道控制马达1转动 10 单杆控制伺服器ServoModuleRx 1 这里一般选自动 2 选择遥控器控制伺服器的控制通道 3 选择伺服器连接在主控器上的通道 4 选择伺服器转动的正反方向 单杆控制伺服器指的是遥控器的一个操纵杆控制一个伺服器转或停 单杆控制伺服器ServoModuleRx 单杆控制伺服器编程范例 首先拖入一个当循环模块 条件设置为1 构成一个永远循环 这样使它永远都检测遥控器发射出来的信号 然后在当循环里面拖入一个单杆控制伺服器模块 遥控器控制通道选择1 伺服器通道则选择1 那么该程序的功能就是 遥控器的1通道控制伺服器1转动 11 遥控通道RxInput 使用遥控输入功能模块得到一个Rx1或Rx2通道的反馈值 并将其存储于一个变量 12 脉宽调制PWMControl 在竞赛模型里 使用脉宽调制控制模块控制马达端口的脉宽调制值 你可以使用一组值或预先定义的变量 你能够使用脉宽调制控制 在遥控控制模式如果遥控器没有发送信号的情况下 可以开启一个马达给其一组脉宽调制值 使其运转 混合发送器信号 构造一个程序 像单杆控制模块 在竞赛模式下 控制带有一个行程开关的马达行进 参看Project夹里ARMLIMITSAMPLE ECP工程 13 用户自定义函数UserFunctions 用户自定义函数UserFunctions即通常说的子函数或子程序 其主要作用在于可以简化主程序 简化编程步骤等右图为新建的子函数窗口可以在其开始模块和结束模块之间进行编程操作 如果需要使用传感器 那么可以在其局部变量里面设置局部变量 编程区 C语言代码区 用户自定义函数UserFunctions模块编程操作步骤 1 右键单击模块区最下面的用户自定义函数 2 左键选择新增自定义函数 点这里可以打开已经保存的子函数 3 选择子函数的返回类型 void为不返回任何参数 4 为子函数命名 必须为英文字母 用户自定义函数UserFunctions模块编程操作步骤 5 接着就可以在子程序的编程区里面自行编制程序了 编好程序后直接关闭子程序就行了 它已自动保 6 然后在软件的模块区最下面的用户自定义函数的下面就会显示你当前的子函数 在相应子函数图标上点右键 可以打开子程序的编程窗口 也可以对子程序进行复制 删除等操作 用户自定义函数UserFunctions模块编程操作步骤 7 然后选中子程序 点右键拖动到主程序的开始模块和结束模块之间 放开鼠标会显示如下图窗口 确定即可 9 到这里就成功引用子函数到主程序里面了 主程序里面就会出现子函数的模块图标 那么程序就会依次执行子函数里面的程序了这样主程序看起来也比较简明 14 在线控制模式 中文版2 0为点击菜单栏的生成项 在线控制 英文版为Build Doenload Online为了能使用在线控制 你必须先下载在线控制程序到主控器 1 点这里下载在线控制程序 然后要保证下载线要连接在主控器上和主控器电源必须要打开 拖动滑块可以控制马达的转动方向和转动速度 这里可以显示马达转动速度的数值 这里可以显示模拟口的数值 这里可以显示数字输入口的数值 这里可以显示中断端口的数值 十二 自动程序和遥控程序结合范例 假设一部小车 底座装了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 串口线缆到你的计算机后面 4 连接从编程模块到Vex主控器上标有 串口 的机器人线缆串口 2 连接串口USB 串口线连接器到编程模块 3 连接机器人接口线到编程模块 十四 下载线端口查看方法 1 右键我的电脑 点属性 2 选择硬件 3 选择设备管理器 下载线端口查看方法 4 找到端口 COM和LPT ProlificUSB to SerialCommPort com3 最后这一项的com3就是当前VEX下载线使用的端口 然后再在软件里面选择相应的端口即可下载程序到主控器 如果有时候发现那一项的前面是一个问号 那么就说明你的下载线的驱动程序没有安装上 十五 1 0中文版程序下载步骤 1 点保存 中文版不能保存在C盘 包括桌面 英文版任何地方都可以保存 2 点编译 3 点链接 4 点下载 编译成功或是失败在软件下方的链接编译窗口会有显示 在编译成功的前提下才能链接 链接成功或是失败在软件下方的链接编译窗口会有显示 1 0中文版程序下载步骤 5 点下载以后 在弹出的窗口里面选择和你查看到的设备管理器里面下载线使用的相同的COM口 如果端口不正确 或是下载线没连接好 或是其他原因导致电脑没检测到下载线 则会弹出该窗口 1 0中文版程序下载步骤 6 打开你保存的程序文件 7 最后点下载就可以了 2 0中文版程序下载步骤 1 点菜单栏的配置 下载端口设置 2 在弹出的窗口里面选择和你查看到的设备管理器里面下载线使用的相同的COM口 2 0中文版程序下载步骤 3 在点工具栏的编译下载图标 快捷键为F6 4 接着就开始下载程序了 5 如果电源没打开 下载线没连接好 端口没选择对 那么在下载时就会弹出该提示 十六 英文版下载步骤 1 首先查看下载线当前使用的COM口并且记住 方法前面已介绍 接着点工具栏上的端口设置图标 2 点弹出的窗口的左上角处的portsetting选择和你查看到的设备管理器里面下载线使用的相同的COM口 然后关闭窗口即可 英文版下载步骤 3 接着点工具栏上的下载图标 4 接着弹出该窗口 点Yes 5 接着弹出该窗口 就开始下载当前程序到你的主控器了 英文版下载步骤 如果你当前的计算机用户没有访问权限则会弹出该错误 假如你企图保存一个文件 类似的则会出现以下的位置受限信息 为了解决这些问题 在easyC被安装的位置 你的用户必须拥有改变包含文件写入和访问文件夹的特权 即你必须拥有计算机管理员权限 在大多数的计算机上 它的位置是 C ProgramFiles Intellitek 英文版下载步骤 如果你当前的程序有错误那么在链接编译区会出现这样的现象解决方法是仔细检查程序 假如你没有安装合适的硬件 或者你的软件没有符合你的硬件的配置 当你下载代码到微控制器的时候 你将接收到以下的错误信息 解决方法 1 检查核对硬件设置符合硬件程序 2 确保机器人开启 3 确保安装USB 串口驱动 和合适的COM端口设置 4 在下载的时候保证你的机器人开启 检查电池是否符合要求 5 确保所有的线缆被完全插入 谢谢
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!