LEGO机器人控制语言 NXT-G

从去年进入到 TIOBE 的top50到现在的top20,NXT-G 给人一阵惊喜!


1  NXT-G ? 

这是从 http://www.cnbeta.com/articles/155103.htm 摘来的介绍:(百度百科差不多也是这样的)

NXT-G是一种可视化的编程语言,它集成在乐高(LEGO)公司的机器人玩具产品中,NXT程序的设计者可以在计算机上通过NXT-G对机器人的 行为进行可视化的程序设计,并通过蓝牙等方式将这些指令下载到机器人身上,一旦NXT机器人程序化后,它就“开始有了自己的生命,不再需要经由计算机控制 ”。

NXT-G编程语言的特殊之处在于其并非是提供给专业程序开发者的编程语言,而是由丹麦著名玩具制造商 乐高(LEGO)公司为NXT机器人玩具设计的可视化编程语言,简称G语言。NXT-G编程方法简单易学但不可小视,只要c语言、Java语言编出的程 序,NXT-G都可以编出。乐高公司为这种编程语言开发的软件称为“LEGO MINDSTROMS NXT 编程(programming)”,下文简称编程软件。

 编程中的编程软件

 

其他:

NXT-G是由LabVIEW为乐高机器人开发的图形化编程软件,同时也是一种编程语言,简称G语言。因为其编程方法简单易学,又可以编出极其复杂的程序(乐高公司称c语言、Java语言编出的程序,NXT-G都可以编出),又因为LEGO MINDSTROMS NXT机器人在美国越发普及,NXT-G语言已成为“TIOBE世界编程语言排行榜2011年榜单”的第15名。乐高公司为这种编程语言开发的软件称为“LEGO MINDSTROMS NXT 编程(programming)”

 

详细:

编程软件分两种版本:玩具版本(8547 NXT零售版本附带)和教育版本(左图)(须在网上下载,只有9797 NXT 教育版本用户可使用),它们的主要区别是玩具版只有英语,而教育版本可选择语言。

编程软件教育版本起始页

编程模块与线程

NXT-G语言最主要的编程方法则是用这些模块。每一个模块代表着文本编程语言的一个或多个语句。图中的模块从左自右依次是:“前进(bc马达)” “检测位于三端口的光电传感器”“转动A马达”。而压在模块下面的乐高横梁则代表线程,所以图中的程序是一个简单的单线程程序。模块可以任意从模块面板或 编程区中的任意地方拉到横梁上并成为程序的一部分。当然,模块也可以从外部导入(工具-》模块导入导出向导...),就像c中的外部头文件,还可以利用编 辑-》新建“我的模块”来新建自己的模块,就像c里的自己编写函数。而要分支出一个线程时,则需要用连接工具(shift+鼠标点击)把要连接的模块和主 线程连接起来。

编程模块的设置与数据中心、数据线

NXT-G语言的每个模块除了需要摆放,还需要进行相关的设置,在编程软件中表现为“参数设置面板”。选中一?个模块(图为选中右上图中的第二个模 块),在下面的参数设置面板即显示出该模块的相关设置选项。当这个设置选项需要用前面的模块来决定,则需要数据中心与数据线。点击模块的左下方(像一个凹 槽),数据中心就会弹出(如上图),再点击一下即弹回。数据中心分为很多排,每排中间都以一个图标,鼠标停留在其上时,即弹出此排数据接口的名称。数据接 口即为图标两旁的金属接头,向左的为输入接口,向右的为输出接口,点击一个输入接口(输出接口),再点击一个输出接口(输入接口),即可连接数据线(如上 图绿线)。输出端口可以分为很多个数据线分别连接输入端口,但输入端口只能接一条数据线。其中黄线为数字数据线,绿线为逻辑数据线,橙色为文本数据线,灰 色虚线为故障数据线。点击数据线的输出接口即可删除数据线,关闭数据中心时连有数据线的数据接口不会隐藏。

NXT-G编程环境

NXT-G的交互式编程环境基于国家仪器(National Instruments)的LabVIEW软件提供,LabVIEW最大的特色就是以图形化编程G语言来组织程序,编写程序的展现形式为具备特定逻辑结构 的框图。各模块功能实现则由LabVIEW中能完成各项编程任务的庞大函数库提供,包括数据采集、数据显示、数据存储、GPIB通用接口总线、串口控制、 数据分析、蓝牙通讯等。此外,LabVIEW可视化编程环境提供了与传统IDE环境相同的程序调试工具,如断点设置、以动画方式显示数据及其子程序的结 果、单步执行等功能。

NXT-G编程环境对Windows和Mac OS X都提供了良好支持。除了NI LabVIEW软件外,还有不少支持NXT-G编程的软件程序。包含NXT-G零售版和NXT-G教育版、LEGO基于LabVIEW简化定制的 RoboLab工具,乐高机器人专用的汇编指令NBC,以及基于NBC编译器实现且语法与C语言相似的高级语言NXC等。

如果你是喜欢自己动手又对自动控制感兴趣的程序开发者,不妨尝试一下乐高NXT积木和NXT-G编程环境,LEGO一定会为你带来丰富的体验和乐趣。

 

2 链接

http://mindstorms.lego.com/   wiki介绍

http://en.wikipedia.org/wiki/Lego_Mindstorms_NXT 官方网站 

 http://www.ortop.org/NXT_Tutorial/  nxt教程

 

http://bbs.cmnxt.com/ 中文乐高 - 中文的乐高机器人社区!

http://legocn.net/  乐高中文爱好者

 

3 上哪里玩去?

国内的一些团队和空间都有这个方面的项目,上海就有好几个组织,周末一般都有现场活动,有个团队还负责教授的!深圳的 柴火创客空间也有类似的项目和达人! 

你可能感兴趣的:(机器人,LEGO,乐高,LabVIEW,NXT-G)