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.

  • NBC Beta Releases(1.0.1 b35): disponible ici
  • Talk 2 NXT: disponible ici

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'

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
Cette commande induit une erreur au niveau de la configuration USB. Passez les 2 étapes suivantes si ce n'est pas le cas.

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.

Zergy pour son aide qui a poussé à la création de cette documentation. =)


MiCrOsCo-PuCe Le 05/11/2007, à 19:42

  • lego_mindstorms_nxt_sur_ubuntu.txt
  • Dernière modification: Le 05/11/2022, 12:35
  • par ToTo_remi