乐高NXT软件是指NXT-G软件。
声明:以下内容摘自远帆翻译的《使用lego mindsotrms NXT搭建机器人》的翻译稿,并且在此转载已经征得了远帆本人的同意。
NXT-G (NXT Graphical) 是针对NXT的图形化集成开发环境(IDE)。NXT-G针对的是没有编程经验的儿童和成年人,因此使用简单。
你可以通过简单的拖放和连接代码块形成指令序列的方式来编写程序,这些代码块图形或多或少有点像LEGO零件。不同类型的代码块对应不同的功能:可以控制电机,监控传感器,设置延时,播放声音,直接根据传感器生成代码,定时等。NXT还提供了一些简单的方法来组成MyBlocks,也就自定义代码模块,你可以在主程序中调用它们,就象调用一个已有的代码块一样。
当你认为代码已经准备好可以开始测试时,NXT-G IDE 将把代码编译(翻译)成字节码并通过USB或蓝牙将编译好的文件下载到NXT上。
NXT-G直观的编程方式使其成为没有编程经验者的理想选择,但当你变成一个“老手”时,你就会发现它的一些缺点:
■ NXT-G图形化编程界面不适合大程序。对于小程序来讲图形化编程是相当不错的,但当程序块多时(例如,超过20个程序块时),它就难以在一个屏幕时完整显示了。
■ 用户自定义变量这一概念在编程中是非常常见和有用的。尽管NXT-G也支持变量,但使用起来非常别扭。
■ NXT-G可以访问NXT操作系统的绝大多数功能。但是,仍有一些有用的功能无法通过NXT-G进行访问。例如:
数组——一组相关变量列表——是一个非常有用的编程数据结构,但无法在标准的NXT-G程序中使用。(一些NXT的高级使用者提供了NXT-G扩展程序块来支持基本的数组功能,但数组的使用仍然即别扭又困难。)
你可以使用NXT-G把一个变量值显示在NXT控制器的屏幕上,但只能显示整数。其他的IDE却能提供更强的数据模式,如“显示具有两位小数的数字”,或者“将一行文字居中显示”而不是总使用左对齐,或许你想要一纵列对齐的数字。其他的IDE允许你“显示时用精确到五个字符的空格来填充空白 ”。
NXT只支持“整数”或整数型变量,不支持“浮点数”或小数。有很多时候你需要使用小数,例如,你可能想让机器人以英寸为单位移动,以英寸为单位来计算行驶距离也很容易,只要用车轮的周长(例如,2.67英寸)乘以 编码器计数值/360,因为每转一圈计数值是360。或者你也可能想使用正弦函数,其值为0.0到1.0。
■ 其他的IDE拥有更强大的错误调试功能,因为所有的程序除了最简单的程序之外都有可能有错误。
■ 三角函数(正弦、余弦、反正切函数等)在计算机器人位置时是非常有用的。
■ NXT-G的界面非常直观,但当你成为专家时你可能就会觉得它乏味了,也时候你也想了解机器人详细的工作过程。使用图形化的编程环境往往要比使用基于文本的编程语言需要更多的键盘和鼠标操作。
反正早晚你会觉得NXT-G过于简单而希望学习功能更强大的编程语言。幸运的是,作为NXT-G替代器的RobotC编程环境也是非常容易使用的,但又能提供更多的功能与灵活性。