Projets

[MP04f] Lego pour les pros

Objectifs :

Contrôler à distance le robot mobile Lego Mindstorm NXT.

Réaliser un programme de détection d'obstacles.

Critères d'évaluation :

C1.2 Détailler le déroulement d'une communication numérique, le rôle des constituants d'un système numérique, ce qu'effectue tout ou partie d'un programme ou de l'algorithme associé,...

C2.3 Développer une interface logicielle ou une interface homme-machine,...

Lectures et travail demandés :

Introduction :

La gamme Mindstorms NXT est la dernière génération de Lego Mindstorms. Equipé d'un processeur 32 bit performant, ce système est très utilisé pour l'enseignement et l'éducation des sciences et techniques. De nombreuses compétitions étudiantes sont basées sur cette technologie (First Lego League). L'autre point fort de ce robot repose sur la technologie Bluetooth qui permet à l'utilisateur de le contrôler à distance (avec un téléphone portable par exemple). Cette vidéo démontre les performences de cette innovation :

Constitution du robot :

La technologie NXT est basée autour d'une brique intéligente sur la quelle vient s'interconnecter des actionneurs (3 maximum) et des capteurs (4 maximum).

Par defaut nous avons le configuration ci-dessous mais il est possible d'acquérir d'autres capteurs (accéléromètre, capteur de couleurs, ....)

Test des capteurs :

L'objectif est de déterminer les limites d’utilisation des capteurs grêce aux programmes de test pré-implantés dans la brique NXT.

Pour information : les fonctionnalités associées aux quatre boutons de la brique NXT sont présentées dans le manuel de l'utilisateur (voir pages 10-13).

Identification des points de connexion sur la brique NXT

La brique est présentée pages 11,12,13 du manuel. Complétez le document réponse DR1 avec les termes suivants : « Moteurs », « Capteurs », « Port A », « Port B », « Port C », « Port 1 », « Port 2 », « Port 3 », « Port 4 ».

Test du capteur tactile

Le capteur tactile est présenté dans le manuel (voir page 26).

[G] Testez-le comme cela est décrit dans le manuel. Pour cela, il est nécessaire de se rendre dans le menu de la brique : View -> Select « Touch » -> Port 1

[G] Relevez les valeurs affichées par le NXT, pour chacun des états (actionné, non actionné) du capteur et complétez le document réponse DR2.

Test du capteur de rotation intégré au servomoteur interactif

Le servomoteur interactif et le capteur de rotation intégré (tachymètre) sont présentés dans le manuel (voir pages 34-35).

[G] Test 1 : Branchez un servomoteur sur le port A. Sélectionnez le Port A dans le menu de la brique : View -> Select « Motor rotations » -> PortA

[G] Faites tourner (doucement) le moteur à la main. L’écran indiquant initialement « 0 », quelle est la valeur affichée après que le moteur ait effectué trois tours dans le sens horaire ? Toujours en partant de la valeur zéro, quelle est celle affichée sur l’écran après que le moteur est effectué trois tours dans le sens antihoraire ? Répondez sur le document réponse DR3.

[G] Test 2 : Réglez l’affichage pour obtenir le déplacement angulaire du capteur par : View -> Select « Motor degrees » -> PortA

[G] Faites tourner (doucement) le moteur à la main. L’écran indiquant initialement 0, quelle est la valeur affichée après que le moteur ait effectué trois tours dans le sens horaire ?Toujours en partant de la valeur zéro, quelle est celle affichée sur l’écran après que le moteur est effectué trois tours dans le sens antihoraire ? L’angle obtenu est-il correct ? Si la réponse est non, quelle valeur devrait-on obtenir ? Répondez sur le document réponse DR3.

Test du capteur à ultrasons

Le capteur à ultrasons est présenté dans le manuel (voir page 32).

[G] Test : Testez-le comme cela est décrit dans le manuel.

[G] Déterminez expérimentalement les distances minimum dmin et maximum dmax de détection du capteur. Présentez le résultat sous la forme d’un intervalle dmin d(cm) dmax. Comparez cet intervalle à celui annoncé par le fabricant dans le manuel. La précision annoncée est-elle respectée ? Répondez sur le document réponse DR4.

Test du capteur photosensible

Le capteur de couleur est présenté dans le manuel (voir pages 30).

[G] Test : Testez-le comme cela est décrit dans le manuel

[G] Déterminez expérimentalement les distances minimum hmin et maximum hmax de détection du capteur. Présentez le résultat sous la forme d’un intervalle hmin h hmax. Répondez sur le document réponse DR5.

Programmation du robot :

Il existe de nombreuses possibilités pour programmer le Mindstorms NXT : Programmation textuelle (lignes de codes) ou graphique (blocs fonctionnels interconnectés).

Programmation textuelle :

  • NXC : IDE utilisant un langage proche du C. Il est gratuit et open-source.
  • RobotC : IDE développé par l'université Carnegie Mellon aux États-Unis. Il utilise le langage C et propose un environnement 3D afin de simuler vos programme en réalité virtuelle.
  • Lejos est une API open-source basée sur le langage Java

Programmation graphique :

  • NXT-G, la version Lego de LabVIEW qui permet une prise en main aisée
  • Microsoft Robotics Studio

Processing pour Lego NXT :

Processing offre la possibilté de développer des applications destinées à contrôler la brique NXT de Lego grâce à une bibliothèque d’extension appelée NXTComm développée par Jorge Cardoso. Cependant, il ne s’agit pas d’écrire un programme dans Processing et de le charger dans le Mindstorms; il s’agit de piloter à distance la brique via buetooth à l'aide d'un programme Processing tournant sur votre ordinateur. Les usages sont de ce fait limité. Mais c'est une fois de plus l'occasion d'utiliser Processing de manière ludique et d'aborder les principes de base de la robotique.

Installation

Téléchargez la librairie et installez la dans le répertoire de Processing comme d'écrit sur le site. Il faut par ailleur récupérer le jar RXTX et les DLL associées à votre station de travail et les installer en suivant les explications. Le s différentes instructions (méthodes) proposées par cette librairies sont décries dans la javadoc fournie.

Configuration

Avant de commencer la programmation sous processing, il faut d'abord associer la brique NXT avec votre PC via bluetooth (avec un adapteur USB si la technologie bluetooth n'est pas déjà intégrée à votre station de travail).

Attention : selon votre configuration, vous pouvez rencontrer des problèmes en utilisant le Bluetooth. Le plus grave étant la non-reconnaissance de la brique NXT, mais un autre problème important est le driver Bluetooth. Il faut en effet avoir un matériel Bluetooth utilisant le driver Windows de base, et ne pas avoir à passer par le driver Widcomm.

Tableau des compatibilités Bluetooth et MINDSTORMS NXT :

Abe UB22S ***
Belkin F8T003 ver. 2 (short range) ***
BlueFRITZ! AVM BT adapter, BlueFRITZ! USB v2.0 ***
Cables Unlimited USB-1520 ***
Dell TrueMobile Bluetooth Module *
Dell Wireless 350 Bluetooth Internal Card ***
Dlink DBT-120 ***
MSI Btoes ***
MSI StartKey 3X-faster ***
TDK GoBlue ***
Qtrek, Bluetooth USB Adapter v2.0 ***

Une fois votre matériel bluetooth configuré sur votre PC, il faut associer votre PC à la brique NXT. Pour cela, allumez la brique et vérifiez que l'option bluetooth est activée au niveau de la brique (voir page 40 du manuel). Ensuite, associez la brique NXT à votre PC (voir doc ressource en lien).

Programme de test

  • Eteindre la brique NXT.
  • Installer la libraire processing SpringGUI (librairie destinée à créer des interfaces utilisateur avec des boutons, des puces, ...)
  • Ouvrir le programme de test NXTSVV.
  • Adapter le programme à votre configuration (c'est à dire modifier le numéro du portCOM du programme en fonction de votre configuration matérielle)
  • Lancer le programme, celui-ci cherche alors à se connecter à la brique. Mettre la brique sous tension.
  • Un bip de connexion est émis par la brique et l'interface utilisateur créée par le programme se lance.
  • Tester les actionneurs en cliquant avec als ouris sur les boutons ON/OFF.
  • Visualiser le comportement des capteurs sur l'IHM (Interface homme machine) en manipulant le robot.

[P] Modifier le programme afin de réaliser l'alogorithme suivant dont l'objectif est de permettre au robot de se déplacer dans la classe en évitant les obstacles grâce à son capteur à ultrason :

Début
 tant que toujours
  Lire (la distance
  Afficher (la distance en cm
  Si(distance >30)alors Robot_avance
   Sinon Robot_tourne
   FinSi
 FinTantque
Fin

Ressources :