Friday, October 25, 2013

ARM + Linux + LabView = Mindstorms

Lego released EV3, third generation of Mindstorms programmable robotic kits on September 2013, which is referred as the most hackable Lego ever. Core technologies of the concept include ARM CPU, Linux operating system and LabView based programming environment. What a cool toy!

My first Mindstorms robot design.
Programmable Brick, the central unit of EV3 is actually pretty advanced embedded system. The heard of the Brick is Texas Instrument's Sitara AM1808 SoC CPU w/ARM9 core, running at 300 MHz. The device has 64 MB RAM and 16 MB of integrated Flash, expandable up to 32GB with SD memory card. Connectivity is provided via USB device interface for programming, Bluetooth for mobile apps (Android, iOS), and USB host port for Wifi dongles.

The programming environment of Mindstroms is based on LabView, with nice graphical frontend. Programming is intuitive and easy. There are some program flow elements like loop and switch, but many advanced techniques are missing including synchronization of parallel execution flows, event handling, and message passing. Well, after all it's a toy intended for youngster.

EV3 runs stripped down version of Ångström distribution. Source code of the Linux is of course published as open source. There are instructions in Github how to build the firmware of the Brick by yourself.

The previous generation NXT version of Mindstorms is well supported by many programming languages, list of languages is available in Wikipedia. As the EV3 was released just recently, there are only few language ports available yet. One of the few is Java, with help of leJOS project (Java for Lego Minsdstorms). C# based Monobrick provides also communication interface to PC. Support in official LabView is expected during first half of 2014.

I just purchased an EV3 and constructed my first Mindstorms robot. My intention is to include EV3 robot as a part of my web technology demonstration at Embedded Conference Scandinavia, November 5-6 2013, in Stockholm. The robot will wave couple of Freescale Freedom evaluation boards, in order to generate non-static accelerometer data to be transmitted to cloud and further to mobile user interface. (In the picture above, there are Arduino boards, as I didn't had FRDMs in hand at the time).

Why Mindstorms? Well, in fact the EV3 utilizes all the same core technologies which are de-facto key technology choices of my company: ARM, Linux and LabView. Well, LabView is not used for application programming a top of Linux, but in implementation of production test systems.

1 comment: