RCX is divided into three versions: 1.0 (first generation 1998), 1.5 (minor revision 1999) and 2.0 (last revision from 200 1 till now). The difference between 1.0 and 1.5 is that 1.0 can be powered by an external power supply through a transformer, while 1.5 can only be powered by batteries. The difference between 2.0 and 2.0 is that the infrared device connected to the computer is changed to USB, and the serial port was used before. The most important difference is that the firmware and program development tools in version 2.0 provide some new functions. The main purpose of RCX firmware is to convert bytecode programs into machine code that the processor can understand. Fortunately, the firmware of RCX is replaceable just like the BIOS of a computer, so there is not much difference between different versions. The firmware of RCX is stored in SRAM (Static Accessible Memory), so in fact, the firmware disappears after RCX is powered off for a few seconds. When a computer sends a program, it also sends firmware to RCX.
If you learn to be a robot by traditional methods, you must first learn the basics of computers, and then understand electronic circuits, digital logic and microprocessors before you can make basic microcomputer control circuits. Then I have to learn assembly language or C language and write microprocessor programs ... Oh, perhaps the most troublesome thing is mechanical structure. We must decide whether to use stepping motor or ordinary DC motor. Different driving forms have different signal driving and feedback processing methods. Moreover, even the simplest tires or crawler belts may need to match various gears to adjust the torque and speed. Thinking of learning and DIY, many amateur players who yearn for homemade robots are full of blood and chills.
Lego mindstorms combination includes RCX, two motors, two touch sensors and an infrared sensor, tires and tracks of various sizes, gears and pulleys of several specifications, and of course, various building blocks to help us solve the problems of electronic circuits and mechanical structures. For the rest of the "programming" part, Lego (or MIT researchers) also developed a visual programming tool called RCX code for it. Just like piling up trees, users of RCX code can complete RCX programs by piling up various "building blocks" representing different program logics on the screen. After the program is written, the program can be transmitted to RCX through the infrared device provided by the kit. It's really cool!
But everyone has a different definition of "cool". The visual programming tools provided by Lego are very suitable for beginners or players who are not familiar with the program. Some people think that writing programs with this interface is actually an obstacle. For example, a complex program "written" by RCX code may be inefficient, and "visual" program code may not be easy to read and maintain. Therefore, many Lego mindstorms enthusiasts and programming experts have developed various "conventional" programming languages for it.
Among these players, the most famous (perhaps the greatest contribution) is Professor Kekoa Proudfoot, who has carefully analyzed the internal structure and I/O protocol of RCX and published many documents on its internal website. Another well-known player is David Baum, who developed a program similar to C language, called NQC (not completely C), which freed programmers from the shackles of visual development tools. Although NQC is not the first "unofficial" programming language of RCX, it is probably the most widely used one. NQC itself is operated through a text interface. If you want to use the integrated development environment (IDE) with graphical interface, you can install brixcc(Windows version) or MacNQC(Mac version), or even NQC for WinCE(pocket PC PDA).
In addition, Lego's RCX code visualization tool program is only in Windows version, and only unofficial program tools can be used on Mac and Linux systems. Not all players just like or are familiar with C language. Jose solorzano has developed a Java Virtual Machine (JVM) called leJOS Java Operating System, which allows RCX to execute Java programs. Pb Forth (abbreviated as PB Forth) developed by Ralph hempel is also deeply loved by some players. The first realization project of Forth language is to control the large telescope of the Observatory (please refer to the introduction of this webpage). The biggest difference between its grammar and other common computer languages is that it adopts the so-called "reverse Polishnotation (RPN)". For example, the expression 3 * (4+7) should be written as: 3 4 7+*, and the other expression was developed by Markus Noga. LegOS allows programmers to give full play to the performance of RCX hardware, but unlike NQC, users must be familiar with C language, and its development tools are not easy to install, so there are fewer users.
In addition to Lego MINDSTORMS, Lego also sells a kit called ROBOLAB for educational institutions, which contains more sensors (such as pressure, volume and temperature detection), linked cameras (not limited to Lego's own visual command products) and provides visual recognition. More specifically, its software also has the functions of data analysis, comparison and chart drawing. ROBOLAB software can also connect to the RoboLab server (included in the software of this product) through the Internet, and present the collected data on the webpage. ROBOLAB's built-in software has two versions: Windows and Mac.
Lego Company has launched a new generation of Lego mindstorms, named LEGO MINDSTORMS NXT. This new Lego mindstorms uses a 32-bit microprocessor with built-in USB and Bluetooth (this design greatly improves the speed and stability of program transmission), allowing users to make robots controlled by Bluetooth devices (such as PDA or mobile phone). The program editing tools included in NXT support PC and Mac. In order to attract more players to participate in the expansion and transformation of NXT, Lego has specially released open source firmware and development tools. Even Microsoft Big Brother can't help but join the ranks of robot development software and launch MicrosoftRobotics Studio software. In addition to the greatly enhanced host function, NXT's motor is also changed to servo control, which allows the program to accurately adjust the speed, and this time three motors are added; Sensors have also become diversified and more powerful: ultrasonic sensors (mostly used to sense obstacles), optical sensors that can distinguish color from brightness, and so on. I wonder what surprises Lego players will bring with NXT?