NXT各种编程软件的比较和简单介绍
NXT各种编程软件的比较和简单介绍
特征
|
NXT-G零售版
|
NXT-G教育版
|
RoboLab 2.9
|
NBC
|
NXC
|
RobotC
|
NI LabVIEW Toolkit
|
leJOS NXJ
|
pbLua
|
语言类型
|
图形
|
图形
|
图形
|
汇编
|
类C
|
C
|
图形
|
Java
|
Lua
|
固件(Firmware)
|
标准
|
标准
|
标准(#1)
|
标准
|
标准
|
标准(#1)
|
标准
|
定制
|
定制
|
IDE(是否包括?)
|
是
|
是
|
是
|
是
|
是
|
是
|
否(#6)
|
否(即将发布Eclipse插件)
|
否(#7)
|
Windows
|
是
|
是
|
是
|
是
|
是
|
是
|
是
|
是
|
是(#7)
|
Mac OSX
|
是
|
是
|
是
|
是
|
是
|
现在还不支持
|
是
|
现在还不支持
|
是(#7)
|
Linux
|
否
|
否
|
否
|
是
|
是
|
否
|
否
|
是
|
是(#7)
|
事件
|
否
|
否
|
是
|
否
|
否
|
是
|
否
|
标准Java事件
|
|
多线程
|
是
|
是
|
是
|
是
|
是
|
是
|
是
|
是
|
|
机器人到PC的蓝牙(Bluetooth)通讯
|
是
|
是
|
否
|
是
|
是
|
是
|
是
|
现在还不支持
|
现在还不支持
|
机器人到机器人的蓝牙(Bluetooth)通讯
|
是
|
是
|
否
|
是
|
是
|
现在还不支持
|
是
|
现在还不支持
|
现在还不支持
|
I2C支持
|
(#5)
|
(#5)
|
是
|
是
|
是
|
是
|
是
|
现在还不支持
|
现在还不支持
|
文件系统
|
是
|
是
|
是
|
是
|
是
|
是
|
是
|
现在还不支持
|
现在还不支持
|
浮点数
|
否
|
否
|
是
|
否
|
否
|
是
|
否?
|
是
|
(#8)
|
数据日志(Datalog)
|
否
|
否
|
是
|
否
|
否
|
是
|
否
|
否
|
否
|
获得的方式
|
包括在NXT零售版中
|
包括在NXT教育版中
|
包括在NXT教育版中
|
BricxCC网站
|
BricxCC网站
|
CMU网站或 LEGO 教育网站
|
LabVIEW toolkit 网站 (#6)
|
从lejos网站免费下载
|
pbLua网站
|
你想做什么… (#2)
|
使机器人移动而不想学习编程
|
是
|
是
|
是
|
|
|
|
|
|
|
使用NXT学习编程
|
|
|
|
否
|
|
|
|
|
|
编写“快速”的程序
|
|
|
|
是
|
是
|
是
|
|
也许?
|
是
|
“快速”编写程序
|
是
|
是
|
是
|
|
|
|
|
|
|
学习高级编程概念
|
|
|
|
?
|
是
|
是
|
是
|
是
|
是
|
适用于(#3)
|
NXT初学者——或者完成简单任务
|
刚开始接触NXT的学校
|
从RCX升级到NXT的学校
|
高级程序员
|
C程序员
|
需要最高速度的应用程序
|
LabVIEW用户,或者希望改进NXT-G的人
|
Java 程序员
|
教育领域的用户
|
|
NXT-G零售版
|
NXT-G教育版
|
RoboLab 2.9
|
NBC
|
NXC
|
RobotC
|
NI LabVIEW Toolkit
|
leJOS NXJ
|
pbLua
|
测试程序(#4)
|
速度(循环/分钟)
|
720
|
73k
|
|
4285
|
93.9k
|
750/5350 (#9)
|
|
|
占用内存(字节)
|
10704
|
559
|
|
1428
|
561
|
8084/1890
|
|
|
编写时间
|
10分钟
|
~20分钟
|
|
30 分钟
|
30分钟
|
15分钟/80分钟
|
|
|
程序
|
代码,图形
|
代码,图形
|
|
代码
|
代码1,代码2,作者的注释
|
代码,图形/代码1 + 代码2,图形
|
|
|
其它注释
|
该软件是为孩子设计的,但是成年人同样可以使用
|
和零售版相同,除了包括一些“校园”机器人
|
LEGO说这是RoboLab的最后一个版本
|
|
|
|
可以创建能在NXT-G程序中工作的编程块,或者它可以编写直接下载到NXT中的程序,或者它可以编写能控制NXT的PC程序(参照下表)
|
|
还处于开发初期
|
注意
(1) RoboLab和RobotC使用的都是LEGO标准固件。
(2) 以上都不是关于编程的“最终答案”,但是可能会帮助你选择最合适的软件。
(3) 以上大部分是软件用户的意见。
(4) 我编写了一个“测试软件”,运行在所有平台上,以比较不同语言的速度、内存使用情况(程序大小),以及编写程序的大致时间。
(5) 标准固件确实提供了I2C功能,并且NXT-G确实使用在超声传感器上,但是NXT-G没有提供直接访问I2C功能的方法。
(6) NXT的LabVIEW Toolkit是LabVIEW的插件。用户必须拥有LabVIEW的一个拷贝才能使用它。
(7) 程序在LEGO NXT积木上编译。
(8) Lua支持类似浮点数的功能,访问其主页查找详细信息。
(9) 这两个NI程序使用Labview Toolkit和高级调用,以及该Toolkit和低级元素。
软件建议
如果你想寻找一个“最好”的软件,这并不容易。哪个软件最好依赖于你想学什么、你已经了解了什么,以及你想做什么。这些问题并不总是能搞清楚的.
NXT 远程控制
NXT有多种不同的“远程”控制系统。大部分不需要在NXT上进行编程。通常这使我们能在PC上编写和执行程序,PC会向NXT发送命令。某些情况下,可以在PC上显示传感器的值。
软件
|
语言类型
|
控制类型
|
NXT上需要的固件
|
连接类型
|
连接源
|
Windows
|
Mac OSX
|
Linux
|
读传感器
|
网址
|
LEGO NXT移动应用程序
|
简单远程控制
|
远程控制
|
标准(#2)
|
蓝牙
|
手机或PDA
|
-
|
-
|
-
|
否
|
LEGO
|
BT RC
|
NXT-G
|
NXT到NXT的远程控制
|
在NXT上运行的程序
|
蓝牙
|
另外一个NXT
|
-
|
-
|
-
|
用户可编程
|
BTRC
|
简单BT远程控制
|
简单远程控制
|
远程控制
|
标准
|
蓝牙
|
台式PC
|
是
|
否
|
否
|
是
|
Simple Windows RC
|
RobotC
|
简单远程控制
|
远程控制
|
标准(#1)
|
USB/蓝牙
|
台式PC
|
是
|
还不支持
|
否
|
是
|
CMU Web Site
|
BricxCC
|
简单远程控制
|
远程控制
|
标准
|
USB/蓝牙
|
台式PC
|
是
|
|
否
|
是
|
BricxCC Web Site
|
OnBrick PDA
|
图形
|
可编程远程控制
|
标准
|
蓝牙
|
PDA
|
-
|
-
|
-
|
是
|
OnBrick
|
OnBrick PC
|
图形
|
可编程远程控制
|
标准
|
蓝牙
|
台式PC
|
是
|
否
|
否
|
是
|
OnBrick
|
NXT Director
|
Simple RC
|
Customizable Remote Control
|
标准
|
蓝牙
|
Palm PDA
|
-
|
-
|
-
|
否?
|
Director
|
RoboDNA
|
Simple RC
|
Remote Control
|
标准
|
蓝牙
|
台式PC
|
是
|
|
|
是
|
RoboDNA
|
微软机器人工作室
|
.NET
|
在PC上运行用户程序
|
标准
|
蓝牙
|
台式PC
|
是
|
|
|
是
|
(non-commercial version is free) Download site orMicrosoft Site
|
NI LabVIEW Toolkit
|
Graphic (LabVIEW G)
|
User Program running on PC
|
标准
|
USB/蓝牙
|
台式PC
|
是
|
是
|
|
是
|
LabVIEW toolkit Site
|
RoboLab
|
Graphic
|
User Program running on PC
|
标准
|
USB
|
台式PC
|
是
|
是
|
|
是
|
Robolab
|
iCommand
|
Java
|
User Program running on PC
|
标准
|
蓝牙
|
台式PC或PDA
|
是
|
|
是
|
是
|
iCommand
|
LEGO::NXT
|
Perl
|
User Program running on PC
|
标准
|
USB/蓝牙
|
台式PC
|
是
|
是
|
是
|
是
|
Perl
|
nxt-Ruby
|
Ruby
|
User Program running on PC
|
标准
|
蓝牙
|
台式PC
|
是
|
是
|
是
|
是
|
Ruby
|
NXT#
|
C#
|
User Program running on PC
|
标准
|
蓝牙
|
台式PC
|
是
|
|
|
是?
|
NXT#
|
Mindsqualls
|
C#
|
用户程序运行在PC上
|
标准
|
蓝牙
|
台式PC
|
Yes
|
|
|
是
|
Mindsqualls
|
NXT Python
|
Python
|
用户程序运行在PC上
|
标准
|
USB/蓝牙
|
台式PC
|
是
|
|
|
是?
|
Python
|
My Robot Me
/ |3 P, _* l! y/ e& r
|
图形?
|
用户程序运行在PC上
|
标准
|
USB/蓝牙
|
台式PC
|
是
|
否
|
否
|
是
|
Robot Me
|
|