乐高头脑风暴的信息
RCX分为三个版本:1.0(第一代1998),1.5(小改版1999),2.0(最后一次改版从2001到现在)。1.0和1.5的区别在于,1.0版本可以外接电源,通过变压器实现供电,而1.5版本只能用电池供电。2.0和2.0的区别是连接电脑的红外设备改成了USB,以前用的是串口。最重要的区别是2.0版本中的固件和程序开发工具提供了一些新的功能。RCX固件的主要目的是将字节码程序转换成处理器可以理解的机器代码。幸运的是,RCX的固件就像电脑的BIOS一样,可以替换,所以不同版本之间没有太大的区别。RCX的固件存储在SRAM(静态可访问存储器)中,所以实际上,在RCX断电几秒钟后,固件就消失了。当计算机发送程序时,它也将固件发送到RCX。
如果用传统的方法学做机器人,首先要学会计算机的基本入门,然后了解电子电路、数字逻辑和微处理器,才能做出基本的微机控制电路。然后还要学习汇编语言或者C语言,写微处理器的程序...对了,可能最麻烦的就是机械结构了。我们必须决定是使用步进电机还是普通DC电机。不同的驱动形式有不同的信号驱动和反馈处理方式。而且即使是最简单的轮胎或者履带作为行走方式,也可能需要匹配各种档位来调节扭矩和速度。想到学习和DIY这么多东西,很多向往自制机器人的业余玩家都热血沸腾,浑身发冷。
乐高mindstorms组合包含RCX、两个电机、两个触摸传感器和一个红外传感器、各种尺寸的轮胎和轨道、几种规格的齿轮和滑轮,当然还有各种积木,帮助我们解决电子电路和机械结构的问题。对于其余的“编程”部分,乐高(或麻省理工学院的研究人员)还为它开发了一个名为RCX代码的可视化编程工具。就像堆积树木一样,RCX代码的用户可以通过在屏幕上堆积代表不同程序逻辑的各种“积木”来完成RCX程序。程序编写完成后,可以通过套件提供的红外装置将程序传送到RCX。真的很酷!
但是每个人对“酷”的定义都不一样。乐高提供的可视化编程工具非常适合初学者或者不熟悉程序的玩家。有人认为用这个接口写程序其实是一种阻碍。例如,由RCX代码“编写”的复杂程序可能效率不高,“可视化”程序代码可能不容易阅读和维护。因此,许多乐高mindstorms爱好者和编程专家为它开发了各种“常规”编程语言。
在这些玩家中,最著名的(也许是最大的贡献)是Kekoa Proudfoot教授,他仔细分析了RCX的内部结构和I/O协议,并在其RCX内部网站上发表了许多文档。另一个知名玩家是大卫·鲍姆(David Baum),他开发了一个类似于C语言的程序,叫做NQC(不完全是C),将程序员从可视化开发工具的束缚中解放出来。尽管NQC不是RCX第一种“非官方”编程语言,但它可能是使用最广泛的一种。NQC本身是通过文本界面操作的。如果想使用图形界面的集成开发环境(IDE),可以安装brixcc(Windows版)或者MacNQC(Mac版),甚至可以安装NQC for WinCE(pocket PC PDA)。
另外,乐高的RCX代码可视化工具程序只有Windows版本,在Mac和Linux系统上只能使用非官方的程序工具。并不是所有的玩家都只是喜欢或者熟悉C语言。何塞·索洛萨诺开发了一款名为leJOS Java操作系统的Java虚拟机(JVM),可以让RCX执行Java程序。拉尔夫·亨佩尔开发的Pb Forth(简称pbForth(programmablebrick Forth)也深受一些玩家的喜爱。Forth语言的第一个实现项目是控制天文台的大望远镜(请参考本网页的介绍)。它的语法和其他常见的计算机语言最大的区别是,它采用了所谓的“反向Polishnotation (RPN)”。例如,表达式3 * (4+7)应该写为:3 4 7+*,另一个表达式是由Markus Noga开发的。LegOS允许程序员充分发挥RCX硬件的性能,但不像NQC,用户必须熟悉C语言,其开发工具不易安装,所以用户较少。
除了乐高MINDSTORMS,乐高还为教育机构出售一款名为ROBOLAB的套件,该套件包含更多传感器(如压力、体积和温度检测),链接摄像机(不限于乐高自己的视觉命令产品),并提供视觉识别。更具体地说,其软件还具有数据分析、比较和图表绘制功能。RoboLab软件还可以通过互联网连接到ROBOLAB服务器(包含在本产品的软件中),并将收集到的数据呈现在网页上。ROBOLAB的内置软件有Windows和Mac两个版本。
乐高公司推出了新一代的乐高mindstorms,名为LEGO MINDSTORMS NXT。这款新的乐高mindstorms采用32位微处理器,内置USB和蓝牙(这种设计大大提高了程序传输的速度和稳定性),允许用户制作由蓝牙设备(如PDA或手机)控制的机器人。NXT中包含的程序编辑工具支持PC和Mac。为了吸引更多玩家参与到NXT的拓展改造中来,乐高公司特意发布了开源固件和开发工具。就连微软老大哥也忍不住加入了机器人开发软件的行列,推出了MicrosoftRobotics Studio软件。除了主机功能大大增强之外,NXT的电机也改为伺服控制,可以让程序精确调节速度,而且这次附加了三个电机;传感器也变得多样化,功能更加强大:超声波传感器(多用于感应障碍物),可以区分颜色和亮度的光传感器……等等。不知道乐高玩家会用NXT带来什么惊喜?