LEGO Announces GNU/LInux-Powered Mindstorms EV3 Platform
First time accepted submitter Barryke writes "Today LEGO announces the new mohawk (NASA's turf) sporting MINDSTORMS EV3 platform (press release). And with details on its features and innards (in Dutch) which in short comes down to: 'Its intelligent brick sports an ARM9-soc running Linux on 64MB RAM and 16MB storage memory, and supports SD cards. There are also four ports, which allow four other 'Bricks' can be connected. The intelligent brick can be reached by WiFi, USB and Bluetooth, and supports control via Android and iOS devices. It comes with 3 servo's, two touch sensors and an IR sensor to track other robots at upto six meters. It also includes 17 build plans, shown in 3D using Adobe Inventor Publisher.'"
Man, I bet Autodesk will be pissed to learn that Adobe released a product with the same name as their Inventor Publisher.
Plastic generally isn't, no. Plastic made to LEGO's tolerances? Yes. Their tolerance is as little as 0.002 millimeters!
There's a longer article on CNET about this that says that the new system will be backwards compatible with existing NXT robots.
You've got that right. Lego molds are extremely precise -- the jewelry of the machinists' art, and hand cleaned and polished periodically. And they use only top quality resins -- there is ABS, and then there is ABS -- better resins cost more. That is why Lego is expensive.
What would be nice is if you control more than just the 7 devices that you can plug into the brick without having to add another programmable brick to the system... say, by separating things like device power supply from device control, and using a separate battery box (or boxes) to supply power to as many devices as you want, and the cpu simply addresses them in a not entirely dissimilar way to how many USB devices are addressed on a single bus.
The functionality you want is already available on existing NXT bricks.
The sensor ports on NXT bricks use I2C for communication, allowing "sensors" to be daisy chained and referred to by address. Since the communication across the bus can be bi-directional (though half duplex), you can easily add I2C controlled motor controllers with external power supplies. There is also the RS485 port, for higher speed bi-directional communication.
Want more sensors? Simply daisy chain them on an I2C port. (I usually custom make cables for specific purposes, but there are also multiplexers available which could potentially allow for over 128 i2c addressed devices on a single port). An example of a commercially available daisy chain splitter - http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=79. Multiplexer? http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NSX2020.
Want to control more motors? Simply add a I2C controlled motor controller - a simple circuit to make yourself, or buy one of the commercially available options. In most cases you would use these with an external power supply (i.e. battery box).
Separating "things like device power supply from device control" is as simple as making your own cables... or use some of the commercially available motor controllers. For example this motor controller (a simple i2c based DC motor controller, with lego RCX plugs in the PCB) requires an external 9v power supply - http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=58.
Using USB for these purposes rather than I2C would be far more complex. I2C is very simple to use, and is fast enough for most motor and sensor IO.
Two different tolerances:
- 0.002 millimeters for the molds and tooling
- 0.01 millimeters for the finished bricks
The variance on the product is always larger than that for the tooling, w/ each step of the process slightly magnifying any inaccuracy before it.
Sphinx of black quartz, judge my vow.