TUTORIEL LEGO® MINDSTORMS® NXT 2.0 Apprenez la robotique tout en concevant vos propres robots Pour donner suite au dossier du numéro précédent consacré à la découverte du coffret robots Lego Mindstorms NXT 2.0, nous allons aujourd'hui approfondir notre mise en pratique par la réalisation d'un robot original. Sans schéma de montage pré-existant, nous définirons nous-mêmes ses éléments ainsi que son programme de mise en mouvement. Le coffret est suffisamment complet pour laisser cours à l'ingéniosité et à la créativité. Mais pour un apprentissage progressif, notre premier montage "fait maison" s'est porté sur la conception d'un bras robotisé traditionnel mettant en oeuvre l'essentiel des concepts de base. Définition du cahier des charges Côté mécanique, notre bras robotisé sera constitué d'une pince pouvant saisir des objets sur laquelle sera monté un capteur de couleurs pour la détection des éléments. L'avant-bras pourra s'articuler sur un plan de 180 degrés (90 degrés à gauche et 90 degrés à droite). Le reste du bras sera fixé à un support stable - à larges pattes - sur lequel reposera la brique intelligente NXT, le cerveau de notre robot. Côté programmation, l'objectif souhaité est de pouvoir présenter un objet de couleur à la pince ouverte. Une fois l'objet détecté, la pince se refermera sur celui-ci uniquement s'il est rouge ou vert. Les autres cas de couleurs (bleu et jaune) ne seront donc pas saisis. Si l'objet est de couleur verte, le bras pivotera alors de 90 degrés sur la gauche puis lâchera l'objet en rouvrant sa pince. Si l'objet est de couleur rouge, le bras pivotera de 90 degrés sur la droite et lâchera également l'objet une fois arrivé. Dans les deux cas, la pince se refermera et le bras reviendra à sa position initiale afin de se présenter devant un nouvel objet, pince ouverte. Pour agrémenter notre programme, le robot prononcera le nom des couleurs détectées, de sa jolie voix métallique. Montage du bras robotisé La conception d'un tel montage ne présente pas de difficultés majeures. Le coffret Lego Mindstorms NXT 2.0 contient suffisamment de pièces riches et variées pour arriver à ses fins. L'essentiel est d'avancer progressivement, élément par élément, de l'assemblage de la pince à la fixation de l'ensemble sur le large support, brique intelligente NXT comprise. L'unique précaution est de renforcer les parties soumises à des forces particulières comme les supports moteurs (avec lourdeur), la fixation du bras à la base ou encore la longueur des pattes (attention aux contrepoids !). Dans le présent tutoriel, nous n'allons pas fournir toutes les étapes du montage comme sur les schémas traditionnels proposés par Lego, mais uniquement les étapes clés. 1. La pince La partie essentielle de la pince est un premier servomoteur sur lequel doit être fixé le capteur de couleurs mais également les doigts destinés à saisir les objets (trois au total). Le plus simple est de directement rattacher deux des doigts sur l'axe du servomoteur tout en conservant le troisième immobile. En s'y prenant bien, une telle pince peut largement s'ouvrir et se refermer. 2. Le bras La première partie du bras est l'avant-bras mobile sur lequel doit être fixée la pince. La deuxième partie est celle rattachée au support de base à larges pattes. Pour des raisons de stabilité et de force, deux servomoteurs sont utilisés pour cette partie mobile faisant office de coude. A ce niveau, l'idéal est que le bras contienne un maximum de pièces destinées à le renforcer. Dans tous les cas, la partie mobile doit pouvoir s'articuler sur un plan de 180 degrés (90 degrés à gauche et 90 degrés à droite). 3. La base La problématique de la base est d'être suffisamment stable pour supporter le poids et les mouvements du bras sur 180 degrés. La meilleure solution est de directement arrimer le bras contre la brique intelligente NXT alourdie de ses 6 piles 1.5V LR6. Reste à surélever légèrement l'ensemble et de le reposer sur un certain nombre de pattes - biens - allongées (surtout dans le sens des mouvements). Ainsi assemblés, les câbles de raccordement du capteur de couleurs et des trois servomoteurs à la brique NXT devraient avoir l'amplitude nécessaire : Port 1 = capteur de couleurs Port A = servomoteur de la pince Ports B et C = servomoteurs du coude Programmation du robot Dans notre dossier de découverte du coffret robots Lego Mindstorms NXT 2.0, nous avions souligné l'ergonomie et tout le potentiel du logiciel de développement graphique NXT-G (proposé pour compatible PC et Apple Macintosh). A travers ce tutoriel, nous allons maintenant voir la facilité et la rapidité de mise en ouvre pour un cas aussi concret que notre bras robotisé. Une fois le logiciel MINDSTORMS NXT lancé, choisissez l'option "Créer un nouveau programme" au centre du panneau en précisant, par exemple, le nom "arm-01". La conception du programme peut alors démarrer en suivant le cahier des charges. Notre programme se constitue de deux branches essentielles : la saisie et le déplacement d'un objet de couleur verte sur la gauche (à 90 degrés), ainsi que la saisie et le déplacement d'un objet de couleur rouge sur la droite (à 90 degrés). Les autres couleurs, bleu et jaune, n'étant pas traitées (branches secondaires). 1. Première branche : saisie et déplacement des objets verts Le programme commence donc par un objet "commutateur" (choix ou test) sélectionné à l'aide des icônes colorées dans la barre verticale de gauche du logiciel. Cet objet doit être conditionné par un "capteur de couleurs" (port 1), lui-même réglé pour la plage verte, qui déclenchera la première branche. La suite se définit de façon séquentielle : un objet "son" (fichier audio "Green") ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (ports B et C, alimentation 20, 90 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le haut) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (ports B et C, alimentation 20, 90 degrés vers le haut) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le haut). Enfin, la deuxième branche doit s'exécuter si la première n'est pas déclenchée. 2. Deuxième branche : saisie et déplacement des objets rouges La deuxième branche commence également par un objet "commutateur" conditionné par un "capteur de couleurs" (port 1) lui-même réglé pour la plage rouge. La suite se définit de façon séquentielle : un objet "son" (fichier audio "Red") ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (ports B et C, alimentation 20, 90 degrés vers le haut) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le haut) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (ports B et C, alimentation 20, 90 degrés vers le bas) ; un objet "attendre" (2 secondes) ; un objet "déplacer" (port A, alimentation 20, 75 degrés vers le haut). Enfin, la troisième branche doit s'exécuter si la deuxième n'est pas déclenchée. 3. Branches secondaires : couleurs non traitées (bleu et jaune) La troisième branche commence par un objet "commutateur" conditionné par un "capteur de couleurs" (port 1) lui-même réglé pour la plage bleue. Dans ce cas, seul un objet "son" (fichier audio "Blue") est défini. La quatrième branche doit s'exécuter si la troisième n'est pas déclenchée. La quatrième branche commence également par un objet "commutateur" conditionné par un "capteur de couleurs" (port 1) lui-même réglé pour la plage jaune. Dans ce cas, seul un objet "son" (fichier audio "Yellow") est défini. La cinquième branche doit s'exécuter si la quatrième n'est pas déclenchée. Dans cette dernière branche, aucun objet n'est défini (aucune action). Notre programme s'achève par un objet "boucle" qui englobe l'ensemble des branches et objets définis, afin que tout le processus se répète tant que l'exécution n'est pas interrompue. Test et bilan Une fois le programme enregistré, le téléchargement vers la brique NXT peut s'effectuer via le câble USB. Au niveau de la brique, déroulez alors les menus "My Files / Software files / arm-01" et cliquez sur "Run". Le tour est joué ! Lorsqu'un objet est détecté, la pince se referme sur celui-ci s'il est rouge ou vert (uniquement). Si l'objet est de couleur verte, le bras pivote de 90 degrés sur la gauche puis lâche l'objet en rouvrant sa pince. Si l'objet est de couleur rouge, le bras pivote de 90 degrés sur la droite et lâche également l'objet une fois arrivé. Dans les deux cas, la pince se referme et le bras revient à sa position initiale pour un nouveau cycle. A travers ce tutoriel, nous avons approfondi - sans difficulté majeure - les bases de la robotique selon Lego. Toute la force du coffret Mindstorms NXT 2.0 a été mise en pratique : la richesse des 619 pièces, la simplicité de la brique intelligente NXT et la puissance du logiciel graphique NXT-G. Dès à présent, chacun peut mettre en oeuvre son propre robot et le programmer en suivant ce modèle. Remerciements à LEGO France SA. Sébastien Jeudy.