准备机械车:

第一步:从Service中选择一个Generic Differential Drive (通用差速驱动:同一轴的左右轮胎可以转动不同速度的车子)放入Diagram中。

第二步:对其进行配置:选中Generic Differential Drive右键选择Set Configuration。跳到其的设定界面,选择Use a manifest,并导入,选择LEGO.NXT.Tribot.Simulation.Manifest.xml。

第三步:保存并运行可以看到这样一个场景:

操控机械车:

第一步:为了能够操控机械车,我们从Service中拖一个Direction Dialog(它会在系统中产生一个上下左右及Stop五个键)到Diagram中。

第二步:(Basic  Activities中的Calculate:除了可以做算式运算,也可以负责拆解讯息。在VPL中,讯息可以通过Join活动组合起来,也可以通过Calculate活动拆开。如果把讯息看成某个class,Calculate就是负责调用该物件的属性,Join就是把多个属性合并成为一个新的class。)

把Calculate拉到Diagram中,再把Direction Dialog的Notification(右下方)拉到Calculate,表示把Direction Dialog的通知交给Calculate。出现Connections对话框,【From】选择ButtonPress,确定。

第三步:接着我们在Calculate中输入,选择Name,表示从ButtonPress这个讯息中拆解出Name这个讯息(被按下的按钮名称),这个被按下的按钮名称将会被输出到Calculate右端。

第四步:从Basic  Activities中拖一个Switch到Diagram中,利用Switch左下方一个“+”添加五个按钮“Stop”,“Forwards”,“Backwards”,“Left”,“Right”,并把Calculate右边讯息交给Switch。

第五步:接下来是VPL的资料设定,从Basic  Activities中拖七个Data到Diagram中,值的设定和连接如下图。

第六步:(Join负责把多个讯息合并成为一个,Merge也是。不同的是,Join是把多个讯息组合成为一个子讯息一起输出,而Merge则是左进右出无改变。)

从Basic  Activities中拖Join、Merge到Diagram中如下图。(“Left”和“Right”中Data的输出采取不同的Join方式)

(左右连接那里并不是很懂,明白的可以告诉我。)

第七步:把Merge交给一开始的Generic Differential Drive,弹出Connections,【To】中选择SetDrivePower(类似油门),确定。然后设定值都为value,确定。这样就完成了前进、后退和停止。

第八步:相似的,把两个Join资料交给又一个Merge,再复制一个Generic Differential Drive(VPL中,只要Name属性相同就是同一物件,这样就相当于连接到一个Generic Differential Drive中),把Merge交给它,弹出Connections,【To】中依旧选择SetDrivePower,确定。然后设定值为left和right,确定。这样就完成了机械车的运行。

第九步:保存运行。

(机械车的改良将在下一学习)

2016-03-26

(资料整理于百度文库的《Microsoft_Robotics_Developer_Studio中文教程》)

MRDS学习二——机械车的更多相关文章

  1. MRDS学习三——机械车的改良(Activity的介绍)

    Activity:VPL中化繁为简的工具,可以使得真个VPL容易让人看懂,也能跟好的控制.它就很像把一堆比较复杂但相关的流程组合成一个自定义的Activity. 完成Activity的定义: 第一步: ...

  2. MRDS学习四——自动型机器车

    由自己的所在开始,探索自己周围的简单机器车,假设车子的行走路径如下: 我们要把L型路径写成一个Activity,然后由外部输入这个L的大小,最后这个Activity要能够在完成行走路径时吐出更大的L大 ...

  3. emberjs学习二(ember-data和localstorage_adapter)

    emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...

  4. ReactJS入门学习二

    ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...

  5. TweenMax动画库学习(二)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  6. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

  7. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  8. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  9. Quartz学习--二 Hello Quartz! 和源码分析

    Quartz学习--二  Hello Quartz! 和源码分析 三.  Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...

随机推荐

  1. java md5

    需求是,上传文件到HDFS,然后生成同名的MD5文件,基本示例如下: public static String getMD5(InputStream inputStream) { byte[] buf ...

  2. Linux字符串截取命令

    一.简单截取 假设有变量 var=http://www.google.com/test.htm 1. # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,#  ...

  3. Ngnix下安装python2.7

    1 mkdir data 创建data目录 2 cd data 切换到data目录下 3 mkdir python27 创建python27目录 4 将下载好的python压缩包放在python27目 ...

  4. NOIP2001统计单词个数[序列DP]

    题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单 ...

  5. AndroidStudio导入Eclipse的代码格式化文件

    对于一个团队来说,使用统一的代码格式是非常重要的,否则在使用版本控制工具时,会出现大量的冲突.在Eclipse里,我们可以通过一些xml来进行代码格式的统一,但是这些文件要应用在AndroidStud ...

  6. 为什么Java不支持多继承?

    没想过面试的时候,会遇到语言设计上的问题.现场答得并不好因为一直没思考过,经过了点搜索,渐渐有点思路. 1. 避免“钻石型”多继承问题:有两个类B和C继承自A.假设B和C都继承了A的方法并且进行了覆盖 ...

  7. ModernUI教程:如何使用你自己的导航框架

         Modern UI for WPF带有一个内置的页面导航框架,易于使用和可扩展的.但这并不是必须的,你也可以自己来自定义一个导航框架.      默认的ModernWindow控件模板包括标 ...

  8. IntelliJ工程导入

    如果build.gradle中的sourceCompatibility=1.5,那么无法使用钻石运算符,如下语句报错. List<String>a=new ArrayList<> ...

  9. QueryRunner类 的應用,以及ResultSetHandler 接口的实现类

    1 .该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式. ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql. ...

  10. ASP.NET Identity 简介

    翻译自:http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity ,略有改动. 背景:A ...