以下是编写能在LEGO 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 or Microsoft 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 | 图形? | 用户程序运行在PC上 | 标准 | USB/蓝牙 | 台式PC | 是 | 否 | 否 | 是 | Robot Me |
Notes
(1) RobotC使用的是LEGO标准固件。
(2) LEGO移动应用程序能发送消息给运行在NXT上的程序。
更多推荐
NXT编程软件比较
发布评论