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 
 | 
 
 
 |