NXT-G Leçon n°17 : NXT et PFS

Pour expliquer certains fonctionnements, principes et fondements.
Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Lun Aoû 22, 2011 5:23 pm

NXT-G Leçon n°17: NXT et PFS

Introduction
Pourquoi faire coexister deux dispositifs différents et les faire fonctionner ensemble?
C'est toujours la même question à laquelle doivent répondre les utilisateurs disposant des 2 systèmes, en quête de nouvelles expériences et désireux d'optimiser leur stock de moteurs. Il est en effet frustrant pour un adepte du NXT de ne pouvoir utiliser des moteurs PFS, tout comme regrettable qu'une télécommande PFS ne puisse actionner des servomoteurs NXT. En vérité que cherche-t-on, si ce n'est d'accroître les capacités des deux systèmes.
Ce qui donne vie aux robots NXT ou aux modèles faisant appel au PFS c'est leur motorisation. Sans moteurs, on ne dispose que d'objets inertes, tout au plus capables d'afficher un résultat ou d'être animés manuellement. Et plus le mouvement devient complexe, plus le nombre de moteurs s'accroît. Il devient alors tentant d'utiliser toutes les ressources.
Plusieurs raisons justifient cette démarche. La première est d'augmenter le nombre de moteurs limitée à 3 pour une brique NXT. La seconde est d'employer des moteurs de nature différente dans un soucis d'économie; tous les moteurs n'ont pas besoin d'un tachymètre. La troisième est de nature expérimentale, pour faire cohabiter des organes non conçus à l'origine pour fonctionner ensemble. La conception modulaire des éléments LEGO fait qu'ils peuvent s'assembler dans des montages complexes, alors pourquoi ne pas faire tourner les moteurs ensemble?

Cette leçon a justement pour objet de clarifier le sujet et de préciser le choix selon le problème à résoudre:
Commander des moteurs PFS à partir du NXT.
Commander des servomoteurs NXT à partir de la télécommande PFS.

Petit rappel
Nous savons que le LEGO Mindstorms NXT est une système complet capable de fonctionner d'une manière autonome.
Il en est de même dans la série LEGO® PFS pour le thème TECHNIC. En effet, ce dernier dispose, tout comme le NXT, de sa propre source d'énergie alimentant les moteurs, ainsi que sa télécommande et son récepteur InfraRouge. Ces photos nous rappellent quelques éléments principaux du système.

Fig. 1
Boîtier électrique PFS
Image
Fig. 2
Moteur PFS M
Image
Fig. 3
Télécommande simple PFS
Image
Fig. 4
Récepteur IR PFS
Image

Mais la technologie de chacun d'eux est différente; elle est limitée pour le PFS qui fonctionne selon le principe du tout ou rien (elle ne dispose pas de capteur de rotation), et étendue pour le NXT qui est programmable et équipé de servomoteurs,. Ces particularités sont visibles dans la connectique et la motorisation.

Une brique NXT peut-elle commander directement un moteur PFS?

Combien de fois ai-je entendu cette question?
la réponse est oui, si l'on dispose d'un câble adaptateur NXT qui comporte à une extrémité une prise RJ12 et à l'autre une plaque de connexion à tenons 2x2. Un 2ème câble PFS-9v est également nécessaire pour relier la plaque 2x2 au moteur PFS. On peut alors raccorder le moteur à la plaque de connexion 2x2 du 2ème câble, la prise RJ12 branchée sur un plot de sortie A, B ou C du NXT.
Observez attentivement le câble # 8886. Vous remarquerez que les plaques 2x2 ne sont pas identiques. L'une gris foncé se raccorde a celle du moteur PFS. L'autre gris clair est différente (visible sur la photo). C'est celle qui se raccorde à la plaque 2x2 du câble NXT # 8528.
Ces câbles non fournis dans le set # 8547 peuvent-être acquis sur le site de LEGO .
On reste toutefois dans la capacité limitée de 3 sorties pour les moteurs, un port mobilisé pour la circonstance avec un servomoteur NXT inutilisé. Il est aussi recommandé d'éviter le multiplexage à chaque sortie afin de soulager la batterie du NXT. Nous verrons également plus loin comment utiliser à la fois les 3 servomoteurs NXT ET des moteurs PFS d'une manière optimale.
Fig. 5 & 6
Image Image

NXT, capteurs et moteurs PFS.

Un robot NXT peut évoluer sans aucune intervention extérieure grâce à ses capteurs, mais si l'opérateur souhaite reprendre le contrôle pour intervenir manuellement, cela ne lui est seulement possible que par l'intermédiaire d'un ordinateur relié au robot par un câble USB ou par Bluetooth.
De plus, et nous l'avons dit plus haut, une brique NXT ne peut faire fonctionner directement un moteur PFS qu'à condition de disposer de câbles additionnels particuliers.

Ce qu'il manque au NXT c'est aussi une télécommande manuelle. Un tel appareillage est réalisable à l'aide d'un 2ème NXT programmé pour servir de télécommande, grâce à une liaison Bluetooth entre les deux briques. Cette solution est onéreuse et peu digne des capacités offertes par le NXT.
Toutefois, pour combler cette lacune, Lego vend sur son site un capteur IR à infrarouge (réf. 2855040) qui se connecte comme les autres capteurs sur l'un des 4 ports d'entrée.

Fig. 7 & 8
Image
Image
Ce capteur est un récepteur à infrarouge fabriqué par HiTechnic et certifié, qui décode les commandes émises par une télécommande PFS. Le programme NXT-G est, quant à lui, capable d’utiliser ces commandes PFS pour contrôler directement les servomoteurs NXT ou d’autres fonctions du programme.
Cette société fabrique des capteurs qui sont compatibles à 100% avec le Mindstorms NXT et sont certifiés par LEGO (standard de qualité et de sécurité des personnes(sans plomb)). Ils sont également vendus sur le site LEGO.

Il fut un temps où LEGO vendait également sur son site un autre capteur IRLink toujours fabriqué par HiTechnic et certifié (article NIL1046).
Ce capteur utilise les signaux IR pour faire communiquer un NXT avec les moteurs PFS et le Mindstorms RCX. Les programmes NXT-G peuvent alors lire les valeurs émises par les capteurs RCX ainsi que les moteurs qui lui sont associés. Ce capteur est toujours en vente sur le site HiTechnic.

Fig. 9
Image
D'autre part, le dispositif PFS équipé de sa télécommande n'est pas compatible directement avec la brique NXT. Elle commande des moteurs dont on ne peut faire varier que la vitesse (sauf à utiliser la télécommande variable à 7 paliers conçue spécialement pour les trains. Elle ne figure pas ici).
Les servomoteurs du Mindstorms ne sont pas, quant à eux, conçus pour recevoir directement les signaux de la télécommande PFS.

L'emploi de ces deux capteurs d'une ressemblance parfaite conduit souvent à confusion dès qu'il s'agit de choisir l'un ou l'autre. La différence est visible sur la boîte et la mention gravée sur le dessous du capteur.
Le premier est un RECEPTEUR et le second un EMETTEUR.
Nous verrons comment, grâce à ces deux capteurs, nous pouvons augmenter les capacités du NXT.

Enfin, s'agissant de moteurs, seuls ces deux capteurs seront retenus pour résoudre ces cas de télécommande. Les autres produits (voir les fabricants en fin de leçon) qui offrent une riche panoplie de possibilités ne seront pas traités.

La Programmation

1 - Branchement direct de moteurs PFS sur le NXT.

Pour la programmation en NXT-G on utilisera le bloc MOTEUR en prenant le soin de cocher la case "Puissance Moteur" dans le panneau de configuration.
Voici, par exemple un programme très simple qui permet au NXT de contrôler un moteur PFS. La programmation permet aussi de contrôler le sens de rotation ou l'arrêt, mais pas la durée.

Fig. 10
Image

Dans ce cas, le moteur PFS est alimenté par le NXT. Si vous disposez d'une batterie rechargeable raccordée au secteur, vous pouvez faire tourner ce moteur sans vous soucier de la charge. C'est un élément important pour la mise au point d'un processus mécanique.

Autres exemples qui font tourner le moteur dans un sens, puis dans l'autre;

Fig. 11
Image

Fig. 12
Image

Enfin si l'on désire contrôler la durée, la chose est possible par l'intermédiaire du bloc MINUTEUR.
Comme vous le constatez, NXT et PFS sont directement compatibles, mais le nombre de moteurs reste limité à 3. C'est en somme une version NXT avec 3 moteurs simples. Cela n'empêche pas, bien entendu, de combiner les types et d'affecter un port à un servomoteur et un autre à un moteur PFS. Ils fonctionneront séparément ou simultanément en fonction du programme.

2 - Télécommande PFS directe sur les servomoteurs en passant par le NXT.

Cette commande se fait à l'aide de la télécommande PFS et du capteur NXT Infrared Receiver sensor de HiTechnic, qui est un RECEPTEUR. Le PFS est maître et transmet au NXT(notamment par le capteur présent) les ordres d'exécution. Ces ordres sont manuels et transmis au programme du NXT qui les interprète.

Programmation en NXT-G:
Ce capteur peut être programmé en NXT-G après importation du Bloc de programmation dans la palette complète du logiciel (voir le guide de programmation NXT-G vers. 2.0 màj 1, page 16).

A télécharger sur le site de HiTechnic > HiTechnic IR Receiver Sensor Block for Mindstorms NXT Software.

Fig. 13
Image

Examinez ce bloc. Il est représenté par une manette de commande. Aucune représentation graphique de moteur. En entrées, on ne trouve que 2 plots: l'indication du port et du canal. les sorties des plots concernent la couleur (bleu ou rouge) pour préciser quelle manette est activée, la puissance du bloc moteur correspondant, la direction (sens de rotation) ou frein. Ces couleurs sont celles qu'on retrouve sur le récepteur PFS. Il en est de même pour les canaux (1 à 4). C'est une sorte de drône de la télécommande PFS transposé en langage NXT-G.
Un exemple de programme fournit par HiTechnic donne ceci:

Fig. 14
Image

On remarque que chaque couleur est affectée à un bloc moteur distinct et que le sens de rotation dépend de la position de la manette de la télécommande (haut ou bas). Ce simple programme permet donc à la télécommande PFS de contrôler les servomoteurs A et B.

Règle:
Avec un capteur NXT Infrared Receiver sensor la télécommande PFS contrôle manuellement les 3 servomoteurs du NXT par l'intermédiaire d'un programme.

3 - Commande des moteurs PFS par le NXT en complément des servomoteurs.

Ce cas est le plus intéressant car il contrôle les 3 servomoteurs ET un certain nombre de moteurs PFS grâce au capteur NXT IR Link sensor de HiTechnic, qui est un EMETTEUR.
Le NXT est maître et transmet au système PFS (notamment par le récepteur PFS présent) les ordres d'exécution des instructions. Ces ordres sont programmés sur le NXT.
Les capacités de contrôle des moteurs par le NXT sont largement augmentées à condition de prendre quelques précautions. Tout dépend de la capacité des batteries de la brique NXT. Il est recommandé de se limiter à ces 3 plots et de ne pas utiliser un multiplexeur pour augmenter le nombre de moteurs contrôlés. Si malgré tout, le multiplexage est envisagé, il faudra alors prévoir une alimentation électrique directe des moteurs PFS par une batterie indépendante afin de soulager celle du NXT.

Programmation en NXT-G:
Ce capteur peut être programmé en NXT-G après importation des Blocs de programmation dans la palette complète du logiciel (voir le guide de programmation NXT-G vers. 2.0 màj 1, page 16).
Il existe 4 blocs distincts pour ce capteur; 2 pour le contrôle des moteurs PFS, un pour le contrôle des trains et un pour la transmission des commandes vers un Mindstorms RCX et réception des informations provenant des capteurs RCX.
Nous nous intéresserons qu'à un seul d'entre eux: IRLink - Power Functions (Extended). A télécharger sur le site de HiTechnic.

Fig. 15
Image

Observez bien ce bloc et sa représentation. C'est l'équivalent d'un bloc MOTEUR mais il ne fonctionne qu'avec des moteurs PFS. Il est branché sur un port d'entrée (1 à 4) donc il ne fait pas tourner un moteur, mais cela signifie qu'il joue le rôle de lien avec les moteurs et qu'il peut les commander ensemble ou séparément. Si les moteurs doivent fonctionner à tour de rôle, il faut 2 blocs IRLink Extra PF Sensor , un pour le A et un autre pour le B. Pour chaque moteur on peut choisir la marche avant, arrière ou l'arrêt et pour chacun des modes A-R la vitesse variable par réglage du curseur (1 à 7).
On peut choisir le canal (1 à 4), donc il faut la présence d'un récepteur IR PFS réglé sur le canal.
Qui dit récepteur, dit branchement au moteur PFS et alimentation individuelle. Le(s) moteur(s) PFS seront donc alimentés par un boitier électrique indépendant.
A ce boîtier on peut raccorder 2 récepteurs IR PFS sur 2 canaux distincts.
Il est donc possible à l'aide de ce capteur IRLink Sensor de contrôler jusqu'à 4 moteurs PFS. En vérité on peut aller encore plus loin si la capacité du boîtier le permet.
Et le NXT dans tout cela? Et bien, c'est lui qui commandera ce bloc. Il pourra faire tourner un, deux , trois ou quatre moteurs PFS selon un processus programmé. Le NXT gardant par ailleurs la possibilité de faire tourner les 3 servomoteurs en même temps.

Exemple d'un montage servant de banc d'essai.
Fig. 16
Image

Le capteur IR-Link est raccordé au port 2 du NXT et orienté vers le récepteur PFS réglé, lui, sur le canal 1. Le capteur IR_Link envoie des impulsions au récepteur PFS qui agit sur le moteur. Tous les éléments PFS sont raccordés au boîtier électrique. Les 3 ports de sortie du NXT sont libres donc utilisables.

Premier exemple simple
Fig. 17
Image

Deuxième exemple
Fig. 18
Image

Ce programme permet de contrôler la rotation du moteur PFS en appuyant sur les touches "Flèche" du NXT, dans un sens ou dans l'autre. La touche validation permet de sortir du programme.
Le bloc est configuré pour une vitesse réduite à 5 (variable de 0 à 7, 0 étant l'arrêt) dans le sens de rotation positif.

Fig. 19
Image


Règle:
Avec un capteur NXT IRLink Sensor le NXT contrôle grâce à son programme et outre ses 3 servomoteurs, jusqu'à 4 moteurs PFS (voire plus) alimentés par un boîtier distinct.

Remarque: la portée du capteur est relativement faible (quelques dizaines de cm). Au moment de la construction du robot pensez à rapprocher le plus possible le capteur du récepteur IR PFS en évitant les obstacles.

Les fabricants de produits adaptés.
Des constructeurs indépendants ont réfléchi à toutes ces questions, et parfois avec l'appui de LEGO Group construisent des modules permettant de répondre à cette demande de compatibilité.

Il existe principalement 3 sociétes qui développent des produits adaptés, que sont les capteurs, les liaisons, les kits de montage divers. Ils complètent également leurs produits par un suivi d'utilisation et de programmation. Leur principal objectif étant la facilité d'emploi, le divertissement, la formation et l'application dans la vie réelle (principalement destinés aux scientifiques et ingénieurs). Ils exploitent en quelque sorte un créneau qui comble les utilisateurs avides d'expérimentation et disposant à la fois du set LEGO Mindstorms NXT et de sets LEGO PFS.

HiTechnic (déjà mentionné)
http://www.hitechnic.com

Mindsensor
http://www.mindsensors.com

Dexter Industries
http://www.dexterindustries.com
----------------------------------------

Je prépare en complément, une série de montages pour vérifier le nombre maximum de moteurs (NXT & PFS) pouvant fonctionner avec une seule brique NXT…
Et puis, vos questions et observations seront les bienvenues. Ainsi que vos expériences qui ne manqueront pas, j'en suis persuadé. ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
Rayenryuu
Level 6
Level 6
 
Messages: 238
Localisation: Les Ulis (91)
Âge: 22 ans

Messagepar Rayenryuu » Dim Mar 23, 2014 3:49 pm

Merci pour ces explications mais je ne sais pas installer des bloc Hitechnic sur le logiciel NXT

EDIT : j'ai reussi ! mais j'ai pas de piles pour essayer mon programme :cry:


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 15 invités