Signal-based programming for Mindstorms

Copyright © 2024 J. M. Spivey
Jump to navigation Jump to search

SAM labs (https://www.samlabs.com) have a nice graphical programming environment for reactive toy robots, but their hardware and building kits are based on poncey slightly underwhelming toy cars with individually-powered wireless components. Cool but useless and expensive, compared (for example) to Lego Mindstorms. On the other hand, the Mindstorms programming environment is flowchart-based and seems old and clunky.

It's possible, even with Mindstorms 2.0, to replace the entire firmware on the controller brick with your own C program, while Mindstorms 3.0 (according to my understanding) has a full Linux device in the brick. Alternative runtimes exist for the 2.0 brick, including a completely open-source implementation of the JVM. So it should be possible to make an environment where Mindstorms robots could be programmed in the same way as the SAM labs cars.

The project would be to implement this idea, either using Bluetooth communication to a host computer as the program runs or (preferably) using the Bluetooth only to download running configurations into the brick. As an extension, we might look at programs distrubuted (seamlessly!) across several bricks with Bluetooth communication between them.

I have a couple of Mindstorms 2.0 sets to experiment with, and we may be able to obtain a 3.0 set if needed for the project.

  • Home page of LeJOS, a JVM implementation that runs on the NXT brick.