原创 用微软机器人软件MSRS给NXT控制器编程

2011-8-27 17:23 5357 19 20 分类: MCU/ 嵌入式

Microsoft Robotics Studio可以使你在PC机上创建程序来远程控制机器人,在这个软件所支持众多公司的机器人控制器中,当然也支持乐高迷手头的NXT控制器。所以赶快去安装免费的微软机器人软件Microsoft Robotics Studio,简称MSRS。2008版的软件才是免费的!

在安装MSRS之前,首先要确保计算机上已经安装了Visual Studio 2008 Express Editions C##,如果安装该软件,让你重启动,你必须重启,因为重启后,这个软件要继续安装后续程序。彻底安装完Visual Studio 2008 Express Editions C##后,再安装Microsoft Robotics Developer Studio 2008 Express Edition。

Visual Studio 2008 Express Editions下载地址:

http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

 

MRDS 2008 R3版下载地址:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17386 

软件入门(中文)

http://wenku.baidu.com/view/7573afd349649b6648d747fc.html

安装成功后,就可以为NXT机器人套件编程了,看来乐高在国际上还蛮吃香,各大软件公司纷纷把NXT机器人作为他们的硬件对象。MSRS软件与NXT控制器的通讯是蓝牙通讯,你就用XP SP2操作系统自带的蓝牙软件来设置两者通讯接口就行。以下是蓝牙连接方法。

不是所有的蓝牙适配器都适合NXT控制器的蓝牙通讯的,NXT的蓝牙芯片必须是CSR的,所以插在PC机USB口上蓝牙适配器的芯片也要是CSR的,我在淘宝找到一个带天线的适配器,可以用。淘宝网址:http://item.tmall.com/item.htm?id=10422807630&prc=1

20110826162308676.jpg

插入蓝牙适配器,在XP操作系统的右下角任务栏中会出现蓝牙图标,点击它,产生设置窗口。如果你安装的是精简版XP操作系统,任务栏中就不会出现蓝牙图标,因为精简版XP操作系统精简掉了蓝牙驱动软件。20110826162248520.jpg

点击“添加”。

20110826162529730.jpg

下一步,

20110826162751891.jpg

PC机蓝牙适配器与NXT控制器,密码配对。密码为1234

20110826163018761.jpg

按下NXT控制器的“橙色”按钮,密码配对成功。

20110826163541349.jpg

看看XP操作系统的自带蓝牙软件窗口“COM端口”选项,蓝牙输入输出端口是多少,记住“传出”端口号。你的PC机生成的端口号不一定与我这次配对成功的端口号一样,我的端口为COM7,这个数值“7”将会出现在下面的MSRS程序的NXT控制器模块设置中。

我这次编程的任务很简单,就是:按下NXT控制器上的“Left”按键,A端口电机正转,按下“Right”按键,电机反转,松开按钮,则电机停转。

20110826163834707.jpg

 看看用Microsoft Robotics Studio 给NXT控制器编程的视频演示:

我在网上找到了一个乐高中国代理西觅亚公司撰写的MSRS for NXT入门,可以下载看看。pdf.gifMSRSHadbookforNXT.PDF

Microsoft Robotics Developer Studio 机器人软件为这个任务的编程如下。

20110826182749159.jpg

程序提供下载。rar.gifMRDS_test.rar

首先从NXT控制器的设置说起。从软件界面左侧的“Services”库找到“Lego NXT Brick”,双击它,它就自动跑到编程页面上去了。

20110826232617399.jpg

再点击NXT控制器模块,在软件界面右侧“Properties”设置栏里,设置参数,PC机软件与NXT控制器的通讯方式为Bluetooth,根据XP操作系统自带的蓝牙软件中显示的串口号设置串口为“7”,波特率设置为“0”,意思是让系统来选择合适的波特率。

我把NXT控制器模块的名字从原来“LegoNXTBrickV2”改为“NXT1”,后面介绍的模块也可以改名字。

注意:SerialPort的参数值必须是:XP自带蓝牙设置软件和NXT控制器配对后,产生的“传出”端口号。20110826232902343.jpg

上图中,参数设置栏中的ShowInBrower的“勾”,可以打,如果有“勾”,当程序运行时,就会出现一个浏览器页面,用来监视任务中用到的NXT各电气部件动作,视频里有演示。

20110827151900832.jpg

上图的浏览器页面,就实时监视是否有NXT控制器上的按键被按下。

NXT控制器参数设置好后,就可以从“Basic Activities”库找出“if”模块,从“Services”找出“Lego NXT Buttons”模块,如下图。

20110827153820886.jpg

用“飘逸”的连线把“NXTButtons”模块的“圆点”输出端口与“if”模块的“三角形”输入端口连接起来。我把模块的名字从“LegoNXTButtonsV2”改为“NXTButtons”。

上图红圈标注的位置值得注意,要按图示方法把“NXTButtons”模块与掌控它的名为“NXT1”的控制器关联起来。

现在开始书写if模块里的逻辑,有趣的是光标位置出现了快捷菜单,提供我选择将要书写的命令,我选择了“PressedLeft”,接着输入了“==”关系符,快捷菜单依然跟着帮助我书写命令,我再选择“true”,于是“if PressedLeft == true”的逻辑就这样“快捷”地生成了。

20110827154259847.jpg

 

点击上图“红圈”标注的“+”,产生新的逻辑行,按照上面介绍的方法,“快捷”书写“PressedRight == true”,后面跟着的是“Else”逻辑行,这三个逻辑行的含义是:如果NXT控制器上的“Left”按键按下,则NXT电机正转,如果“Right”按键按下,则电机反转,否则,电机停止。

继续,把“Data”常数模块和“NXTMotor”模块纷纷提取出来,放在编程页面中。

20110827155126195.jpg

 

当我连接“Data”模块和“NXTMotor”模块时,那个快捷菜单又出来帮忙了!,太好了,点击选择“SetMotorPower”,意思是“Data”模块里的数值以功率值的形式赋值给“NXTMotor”。

“Data”模块里的数值“1”是满量程功率值,与我们常用的NXT-G软件的功率值不同,NXT-G软件的满量程功率值是“100”。那么用MSRS软件为NXT机器人编程,想把电机功率降低一半,功率值为多少?答案是“0.5”。当有小数点数值时,要把数据格式从上图显示的“int”切换为“double”,否则虽然可以编译通过,但电机不会转,它把“0.5”当成“0”了。

这次任务,我只用了一个电机,把它连接在控制器A马达端口上,在程序中的“NXTMotor”模块也要体现这种连接设置,看下图。

20110827160138626.jpg

程序全景图中,有三个名字一样的“NXTMotor”模块,它们都指向同一个电机,而且设置也是一样的,我设置好一个“NXTMotor”模块,其它两个,复制粘贴就OK,如果不用这种方法,另两个“NXTMotor”模块无法设置成同名模块。

程序编写完毕,下一步咋办,自然是点击软件界面顶部菜单栏中的“>”运行按钮,当然前提是MSRS软件与NXT控制器蓝牙连接要正确,然后出现了“编译与运行窗口”。

20110827161138976.jpg

窗口中出现“Your project is now running.”,说明编译正确,MSRS软件不断发出蓝牙命令,控制着NXT控制器的运行。注意:程序在PC机的MSRS软件中,不在NXT控制器里,NXT控制器只是执行者。

NXT控制器发出一声“嘟”的声音,NXT控制器已被MSRS程序控制,立即会出现一个浏览器页面,在这个页面中,你可以监视NXT机器人的电气部件动作。

微软机器人软件支持NXT套件,NI公司的Labview软件也支持NXT套件,说明国际上,NXT机器人的影响是很大的,看来我玩乐高NXT机器人还是有道理的,它可能是目前唯一的较低成本、方便快捷和丰富国际资讯的机器人学习和研究工具。

 

文章评论1条评论)

登录后参与讨论

用户377235 2013-1-6 14:00

非常好,有用呀!!
相关推荐阅读
用户374501 2011-10-22 21:38
用LabVIEW前面板遥控乐高NXT机械手车
乐高NXT套件自带的软件是NXT-G软件,它是以国家仪器公司的LabVIEW软件为核心架构的,NXT-G软件界面简单易懂,但要进行复杂功能的程序开发,还需采用更高阶的开发平台,如NI公司的LabVI...
用户374501 2011-10-18 17:20
键盘遥控NXT机器人的LabVIEW编程详解
键盘遥控乐高NXT机器人:图1 基于LabVIEW的键盘遥控NXT机器人示意图视频请观看:  程序下载:键盘遥控labview程序.rar      要用键盘遥控乐高NXT机器人,首先需把键盘的按键...
用户374501 2011-10-09 11:39
乐高Technic伐木车8049驾驶部分电控改造
    最近我购买了乐高Technic伐木车8049套件,大多数买乐高科技套件的LEGO爱好者,到不是为了照着搭建手册体验下套件的魅力,主要还是为了套件里的零件,“零件”圈里人的说法是“肉”,也就是说...
用户374501 2011-09-25 18:42
用Matlab软件为乐高NXT机器人编程
要在matlab环境下给NXT机器人编程,你必须拥有Matlab R2008以上版本,还必须安装德国亚琛大学开发的NXT Toolbox组件。我的版本Matlab 2009a,32位的版本,64位版...
用户374501 2011-08-29 20:40
开博周年,用微软机器人软件MSRS编程实例来纪念
去年,大概这个时间段,我开始在EDN写博客,其实在这以前我也在其他论坛和博客网写些东西,后来我想还是找个技术博客大站来长期保留我的文章,同时也可以分享些东西给其他同仁,于是选择了EDN,哈哈,我的选择...
我要评论
1
19
关闭 站长推荐上一条 /2 下一条