Lego Mindstorms

There are several new competitors for Lego, like K’Nex or MegaBlock. Lego has developed a new kind of product, to keep his leadership : It’s call Lego Mindstorms, in the Robotics Invention System set.

General description

The RCX is a little computer, with three inputs and three outputs. On each input, you can connect different kinds of sensors :
– touch sensor
– light sensor
– rotation sensor
– temperature sensor
And for the outputs :
– different kinds of motors
– light
– integrated speaker
– integrated LCD screen.

You have to use a personal computer to program the RCX : an infrared tower is connected to the PC, and allow the RCX to discuss with it. The program, write on the PC is send to the RCX.
The RCX capacities are interesting : 5 programs, message exchange between several RCX, upgradable firmware.

Base Programmation

Lego provide a Graphical User Interface to program the RCX, very user-friendly, even for teenagers. It use functional blocks

Lego fournit avec le RCX un environnement de programmation complètement graphique, pour rendre accessible le RCX aux adolescents. On utilise des blocs fonctionnels, qui s’enchaîne et qui permettent d’agir sur les actionneurs, en fonction d'événements, de temporisations… Il est évidemment possible de sauvegarder sur PC les programmes ainsi écrits. Une fois réalisé, le programme est transféré dans le RCX, et on peut l’exécuter complètement en autonome.

L’environnement Robotics Invention System est assez stimulant et réalise une bonne synthèse entre la construction de modèles en Lego, grâce à un manuel très soigné en français, et des challenges de programmation sous forme de mission, pour que les robots construits parviennent à réaliser des actions prédéfinies. La progression se fait en douceur et donne de bonnes bases de réflexion sur des robots.

Programmations alternatives

VisualBasic

L’environnement Lego permet de réaliser la majorité des programmes que l’on veut faire. Mais Lego évoque la possibilité de programmer autrement : en utilisant VisualBasic, on peut utiliser toutes les fonctions du RCX (certaines ne sont pas disponibles avec l’interface graphique RIS de base). Pour autant, il faut déjà être bien familier avec ce type d’environnement de programmation (tout le monde n’a pas VisualBasic sur son PC…)
La rédaction de programme n’est pas facile car on a l’impression que deux programmes se superposent : le programme Basic qui pilote l’émetteur infrarouge et les dialogues RCX, et le programme de la brique RCX.

Internet

Il est évident, qu’avec de telles caractéristiques, un bon nombre d’adultes dans mon genre on perçu les possibilités intéressantes de ce système. D’après ce que je sais, le RCX a connu pas mal de succès au Etats-Unis, surtout auprès des trentenaires, nostalgiques des Lego de leur enfance. Et parmi ces derniers, quelques uns se sont pris de passion pour le RCX.
Plusieurs outils ont été développés, par des programmeurs indépendants, sans aucun liens avec la maison Lego. A ma connaissance toujours sous le régime de licence GPL : les codes sources sont publics, réutilisables et modifiables, sous réserve qu’ils restent publics et modifiables.

J’ai été très impressionné par la qualité et la stabilité des outils mis à la disposition de tous : L’internet est un outil réellement exceptionnel pour ce mode de fonctionnement basé sur la compétence de quelques-uns et la bonne volonté de tous pour tester les applications.

Cette collaboration est possible parce que les passionnés se retrouvent tous dans les newsgroups de lugnet.com ou chacun annonce ses réalisations.

Note Quite C : NQC

Dave Baum a développé un compilateur proche du C, NQC pour Not Quite C, et adapté à la programmation du RCX. Toutes les fonctions de communication avec le RCX sont transparente, et on ne développe que le code qui doit être transféré.
La syntaxe est tout à fait accessible à celui qui a déjà développé avec un langage évolué. Par contre, l’interface est rustique puisque le logiciel tourne sous DOS.
Dave Baum est également l’auteur de plusieurs ouvrages sur la programmation du RCX (2 en anglais, dont 1 traduit en français).

RcxCC

Mais le top, c'est RcxCC, qui ajoute aux fonctions simples de NQC une interface très conviviale, plus des fonctions de pilotage direct des sorties du RCX, l'analyse des variables du RCX... Un bon tutoriel existe pour apprendre à programmer avec NQC : Tutoriel en anglais, au format PDF (il a été réalisé par Mark Overmars, qui a également programmé RcxCC).

Reverse engineering

A l’origine, l’idée du développement du RCX vient d’un ingénieur du MIT, qui a réalisé un automate du même type, basé sur des Lego. Le fabricant a complètement reconçu son propre modèle, basé sur un composant du marché.
Du coup, plusieurs utilisateurs chevronnés ont cherché à comprendre comment le RCX est conçu, comment il fonctionne, s’il est possible de le modifier ou de lui ajouter des nouveaux capteurs ou actionneurs.

Les capteurs maison

De base, les capteurs proposés par Lego sont assez différents quand à leur mode de fonctionnement : il existe au moins 4 type de capteurs reconnus par le RCX. Un italien, M. Gasperi a créé un très bon site pour la création de capteurs maison.

Mindstorms : les autres boites

Lego a créé un certain nombre d’autres sets dans la gamme Mindstorms. Deux autres automates plus simples : le scout et le microscout. Des missions supplémentaires pour le RIS : Mars Explorer, Robosports (uniquement aux Etats-Unis). Et des extensions : VisionCommand, une WebCam améliorée et l’Ultimate accessory kit, avec un capteur de rotation.

Home