Lego MindStorms NXT sur Ubuntu
Grâce à 2 petits programmes, il est possible de connecter le dernier robot programmable de Lego à un système d'exploitation Ubuntu. Avec l'un vous compilez le programme que vous avez écrit(en langage NXC), avec l'autre, vous le transférez.
Programmes nécessaires
Installation
Téléchargez les deux archives sur le bureau. Ouvrez un terminal et entrez les commandes suivantes:
$ cd Bureau $ ls nbc-1.0.1.b35.tgz t2n-0.2.tgz $ tar zxf nbc-1.0.1.b35.tgz $ tar zxf t2n-0.2.tgz $ ls nbc-1.0.1.b35.tgz nxt t2n-0.2 t2n-0.2.tgz $ sudo cp 'nxt/nbc' '/usr/bin' $ sudo cp 't2n-0.2/t2n' '/usr/bin'
Il se peut que nbc renvoie une erreur lors de sa première exécution. La cause : le programme n'est pas reconnu en tant qu'exécutable. Entrez alors cette commande:
$ sudo chmod a+rx '/usr/bin/nbc'
Un petit test (Optionnel)
Ce test est tout à fait facultatif mais il vous garantira le fonctionnement des 2 programmes et vous apprendra à les utiliser. Veillez à garder votre terminal ouvert pendant toute la durée du test.
Écriture du programme
Ouvrez un éditeur de texte et collez ces lignes de code:
// -*- coding: utf-8 -*- // Exemple NXC: Hello // In the latest versions of nbc this line is implicit #include "NXCDefs.h" task main() { // Write the text on the LCD TextOut(20, LCD_LINE3, "Hello world!"); // Wait 3 seconds Wait(3000); }
Enregistrez ce fichier sur le bureau sous le nom hello.nxc.
Compilation
Toujours dans votre terminal:
$ cd Bureau $ ls hello.nxc $ nbc hello.nxc -O=hello.rxe //c'est un O pas un 0 $ ls hello.nxc hello.rxe
Détection du NXT via l'USB
Dans votre terminal, entrez la commande:
lsusb
Dans le rapport généré, il devrait y avoir une ligne ressemblant à celle-ci:
Bus 002 Device 003: ID 0694:0002 Lego Group
Cette ligne vous indique que le NXT est bien branché, allumé et reconnu par le système.
Transfert du programme
Pour savoir si le robot est bien connecté, tapez la commande qui permet de récupérer les informations à son sujet:
$ t2n -i
Résolution de l'erreur
Copiez en tant que super-utilisateur le fichier 70-lego.rules présent dans le dossier t2n-0.0/udev/ dans /etc/udev/rules.d.
$ sudo cp '/home/votre_login/Bureau/t2n-0.2/udev/70-lego.rules' '/etc/udev/rules.d/'
Après avoir copié ce fichier, tapez la commande suivante ou redémarrez.
$ sudo udevadm trigger
Enfin, retentez la commande t2n -i
et si l'erreur est toujours présente, passez à l'autre solution. Elle est cependant plus contraignante que celle-ci.
Autre solution
Loguez vous en root.
$ sudo -i password: $
Suite
Si tout fonctionne, quand vous avez retapé la commande t2n -i
, les informations du NXT s'affichent et indiquent que tout est opérationnel. Vous pouvez entamer le transfert.
#### NXT INFOS ############### protocol version=1.124 firmware version=1.1 NXT Name: NXT Blutooth address: XX:XX:XX:XX:XX:XX Blutooth signal: 0 Free user flash: 57116
Pour transférer le programme, placez-vous dans le répertoire où vous avez enregistré votre fichier compilé hello.rxe et tapez la commande de transfert.
$ cd Bureau (ou /home/votre_login/Bureau quand vous êtes en root) $ t2n -put hello.rxe
Sur le NXT
Débranchez le robot, laissez-le allumé et situez-vous dans son répertoire My Files/Software Files/ et démarrez votre programme hello. nimp
Remerciements
Zergy pour son aide qui a poussé à la création de cette documentation.
— MiCrOsCo-PuCe Le 05/11/2007, à 19:42