Thursday, July 02, 2009

Two Exciting Projects Go Live

Yesterday, two exciting Squeak projects have been made available to the public—one of them has been mentioned here and there and now and then already. But enough of allusions and vague announcements!

NXTalk is there, finally. It brings Smalltalk programming to the Lego Mindstorms NXT. The NXTalk system consists of a full-fledged Smalltalk VM that runs on the NXT brick, an image, and a programming environment that is essentially just a bunch of classes in a Squeak image. The Squeak development tools can be used to program in NXTalk, and the resulting applications can even be simulated to a certain degree in the Squeak image.

The NXTalk VM is embedded in the NXOS operating system for the NXT. NXTalk has a deployment model for applications, which can be deployed as units onto an already existing NXTalk image. Entire images can be uploaded to an NXT as well. All of this is done via USB.

NXTalk was developed by Martin Beck as part of his Master thesis research, which I was happy to supervise with Prof. Robert Hirschfeld of the Software Architecture Group at HPI. The VM is open source (MIT license), and so are the NXTalk classes. At this time, the NXTalk web page is rudimentary; more documentation will appear there.

The second project is PhidgetLab, which makes Phidgets—USB-connected sensors and actuators—available in Squeak. There is a low-level API (in the form of a Squeak VM plugin) that connects the Phidgets library to Squeak and makes the functionality available in the Squeak image by means of a collection of dedicated classes.

Moreover, Phidgets have been added an Etoys representation, allowing for easily building tile scripting applications employing interaction with real-world objects.

PhidgetLab was built by a group of five students—namely Lysann Kessler, Stephanie Platz,
Thomas Klingbeil, Philipp Tessenow, and Frank Schlegel—in fulfilment of a coursework assignment in the Software Engineering 1 course I am teaching this current semester.

The PhidgetLab source code is also available under the terms and conditions of the MIT license.

Comments, suggestions, and contributions to these projects are most welcome!