SuperMEC
Super Module Électronique de Commande

 

 

Cette page reproduit le manuel d'utilisation du SuperMEC. Il comporte un sommaire qui doit permettre de trouver l'information que l'on recherche.

Sinon, ce même manuel est disponible au format PDF.


Manuel d'utilisation du SuperMEC

Ce projet a reçu le soutien de l'ANVAR (Agence Nationale de Valorisation de la Recherche).

  1. Avertissement
  2. Ce document accompagne la fourniture de SuperMEC. Elle s'adresse aux débutants avec des descriptions simples des possibilités et des utilisations, ainsi qu'aux connaisseurs, qui trouveront les informations de référence indispensables à la bonne utilisation des modules.

    Les annexes recouvrent des informations supplémentaires qui pourront intéresser ponctuellement les utilisateurs, terminant par un glossaire expliquant les termes spécifiques utilisés dans cette documentation.

    SOMMAIRE

    1. Avertissement

    2. Matériel

    2.1 Caractéristiques générales et comparaison avec le MEC

    2.2 Fonctionnement général

    2.3 Branchements et voyants

    2.4 Carte d'interface PC

    2.5 Et sur un autre ordinateur ?

    2.6 Carte alimentation

    2.7 Détecteurs possibles

    2.8 Actionneurs possibles

    3. Logiciel

    3.1 Liaison I²C (programmation)

    3.2 LOGO

    3.3 Pascal, BASIC, Assembleur

    4. Annexe 1 : l'I²C

    5. Annexe 2 : Possibilités ouvertes en animation

    6. Annexe 3 : Problèmes d'utilisation (adressage carte 8584, vitesse...)

    7. Annexe 4 : schéma de principe du SuperMEC et composants


  3. Matériel
    1. Caractéristiques générales et comparaison avec le MEC
    2. Commande d'un système électrique (moteur par exemple) dans deux polarités ou bien de deux systèmes électriques dans une seule polarité.

      En logique interne : deux fins de courses coupant l'alimentation dans le sens correspondant ; arrêt intermédiaire coupant toute alimentation.

      En communication, au total, trois sorties et cinq entrées.

      Comparaison avec le Module Electronique de Commande

      Ils ont en commun : les fins de courses et les arrêts intermédiaires.

      Les commandes ne se font plus par des photorésistances mais par une liaison sérielle I²C (nécessitant une carte de pilotage I²C). Ceci permet à un logiciel de prendre en compte des informations extérieures.


    3. Fonctionnement général
      1. Les sorties
      2. Le SuperMEC comporte deux sorties directes de commande de système électrique.

        Les connexions vers le système mécanique (sorties), un seul moteur, deux sens de rotation

        Ce montage permet à un moteur d'être commandé dans les deux sens de rotations par inversion de polarité.

        Les connections vers le système mécanique (sorties), deux moteurs, un seul sens de rotation.

        Si l'on désire connecter deux moteurs sur un sur module, les deux moteurs pourront être commandés séparément, mais chaque moteur ne pourra tourner que dans un seul sens de rotation. Il n'y a pas de possibilité d'inversion de polarité.

      3. Les entrées
      4. Les connexions vers le système mécanique (entrées) sont les suivantes :

        Toutes les connexions se font en ramenant une entrée vers le 'commun'.

      5. Logique interne
      6. Voici le tableau du fonctionnement logique du SuperMEC. En effet, certaines 'entrées' agissent directement sur les 'sorties' sans passer par l'informatique.

        Le graphique se lit de gauche à droite.

        Une ' porte ET ' signifie que pour que la sortie (branchement droit) soit ' vrai ', il faut que chacune des deux entrées (branchements gauche) soient ' vrai '.

        Une ' porte NON ' signifie que pour que la sortie (branchement droit) soit ' vrai ', il faut que l'entrée (branchement gauche) soit ' faux '.

      7. Communication avec l'ordinateur

      La communication avec l'ordinateur se fait selon le protocole de communication I²C. La connexion I²C fonctionne sur le principe de réseau : il suffit qu'un seul SuperMEC soit relié à un ordinateur pour que tous les SuperMEC connectés à celui-ci soient également connectés à l'ordinateur.

    4. Branchements et voyants
      1. bornier alimentation
      2. Le bornier double 'ALIM 24V' et 'ALIM MASSE' sont destinés à recevoir la source d'alimentation des moteurs (ou systèmes électriques commandés). Les limites sont caractérisées par une tension maximum de 30V DC (mais nous conseillons de ne pas dépasser 24V DC pour des raisons évidentes de sécurité) entre les deux bornes et par une intensité maximale de 2A.

        Remarque : il est parfois nécessaire de brancher en parallèle de l'alimentation moteurs un condensateur polarisé (de 10m F environ) en respectant la polarité.

      3. Bornier actionneurs

Lorsque le SuperMEC est utilisé avec un seul moteur branché sur 'MOTEUR ROUGE' et 'MOTEUR VERT', on peut commander séparément la tension de chacune des bornes. La tension à une borne est égale soit à la tension appliquée sur 'ALIM 24V' soit à celle appliquée sur 'ALIM MASSE'.

SENS ROUGE

SENS VERT

Tension sur MOTEUR ROUGE

Tension sur MOTEUR VERT

Rotation du moteur

Non demandé

Non demandé

ALIM MASSE

ALIM MASSE

Nulle

Demandé

Non demandé

ALIM 24V

ALIM MASSE

Sens normal

Non demandé

Demandé

ALIM MASSE

ALIM 24V

Sens inverse

Demandé

Demandé

ALIM 24V

ALIM 24V

Nulle

Lorsqu'on utilise deux moteurs (ou systèmes électriques commandés), chacun des deux moteurs peut être activé indépendamment. Dans le tableau suivant est indiqué le fonctionnement des moteurs suivant les commandes SENS ROUGE et SENS VERT. On suppose que un fil de chacun des deux moteurs est branché sur MOTEUR MASSE, borne qui reproduit la tension appliquée sur ALIM MASSE.

SENS ROUGE

SENS VERT

Tension sur MOTEUR ROUGE

Tension sur MOTEUR VERT

Rotation moteur 1

Rotation moteur 2

Non demandé

Non demandé

ALIM MASSE

ALIM MASSE

Arrêt

Arrêt

Demandé

Non demandé

ALIM 24V

ALIM MASSE

Marche

Arrêt

Non demandé

Demandé

ALIM MASSE

ALIM 24V

Arrêt

Marche

Demandé

Demandé

ALIM 24V

ALIM 24V

Marche

Marche

      1. bornier détecteurs
        1. Les fins de courses
        2. Les fins de courses sont utilisées pour limiter le mouvement d'un actionneur. Il y a une fin de course pour chaque sens de rotation du moteur.

          Voici un exemple d'utilisation des fins de courses avec un système de vis-sans-fin.

           

        3. La halte autorisée
        4. Une possibilité nous est offerte de n'autoriser des haltes qu'à certains endroits d'un montage.

          Lorsque la halte est autorisée (par la configuration du montage) et qu'elle est demandée (par l'utilisateur via l'ordinateur), quelques soient les SENS ROUGE et SENS VERT, la tension sur MOTEUR ROUGE et MOTEUR VERT est égale à ALIM MASSE.

          Pour qu'une halte soit autorisée, il faut qu'il y ait un contact électrique entre HALTE AUTORISÉE et COMMUN.

          Pour repartir depuis un arrêt intermédiaire, il suffit de ne plus positionner la HALTE DEMANDÉE depuis l'ordinateur, de ce fait, le SuperMEC ignorera les différents contacts de HALTE AUTORISÉE.

           

          1. Lorsque c'est inutile.
          2. Lorsqu'il n'est pas nécessaire, dans un montage, d'utiliser les autorisations de haltes, il est préférable d'autoriser constamment les haltes en court-circuitant HALTE AUTORISÉE et COMMUN par un fil électrique.

             

          3. Utilisation simple (une seule halte autorisée).
          4. Le montage typique nécessitant des restrictions sur les arrêts intermédiaires est l'ascenseur. Comme dans les vrais, on préférerait que l'ascenseur ne s'arrête pas entre deux étages. En disposant un contact de HALTE AUTORISÉE, l'utilisateur (via l'ordinateur) demandera une halte en ne l'obtenant qu'en face d'un étage.

             

          5. Arrêts intermédiaires multiples

          Il est bien entendu tout à fait possible de disposer plusieurs contacts permettant des arrêts intermédiaires multiples. Par exemple, la grande aiguille d'une pendule qui s'alignerait exactement sur les heures, ou bien un ascenseur avec plus de trois niveaux.

          Dans ce cas, il suffit de relier tous les contacts avec la HALTE AUTORISÉE.

           

        5. L'autre entrée

        Jusque-là, les contacts électriques servent pour contrôler le montage (il agissent sur la marche du moteur, comme les fins de courses ou les autorisations de halte).

        L'AUTRE ENTRÉE est une information qui n'agit pas du tout sur le fonctionnement du moteur. Elle pourra être consultée par l'utilisateur via son ordinateur. Ce peut être un interrupteur, un bouton poussoir ou tout autre détecteur.

        Pour que AUTRE ENTRÉE soit positionné, il faut qu'il y ait un contact entre AUTRE ENTRÉE et COMMUN.

      2. connecteur I²C
      3. Deux prises ' type téléphone ' ou prises 4C6P ou RJ11 assurent la connexion I²C. Les deux prises sont identique (i.e. les deux prises sont interchangeables).

        Les quatre fils intégrés au connecteur sont utilisés de la manière suivante :

      4. Micro-interrupteurs (adressage)

Afin de pouvoir connecter plus d'un SuperMEC sur une même ligne I²C, il a été prévu de différencier les modules en leur attribuant des adresses. Chaque module ne répondra qu'à l'appel de son adresse, en donnant des adresses différentes, on pourra commander indépendamment chaque SuperMEC. Le choix de l'adresse est réalisé gr'ce des micro-interrupteurs placés sur le coté du SuperMEC, ils sont intitulés ADRESSE.

Voici une table des correspondance entre le numéro du SuperMEC et la position des micro-interrupteurs.

Remarque : La position du micro-interrupteur n4 est indifférente.

Position des micro-interrupteurs

Numéro du SuperMEC

Adresse I²C du SuperMEC

(décimal ou hexadécimal)

1

64 ou 40h

2

66 ou 42h

3

68 ou 44h

4

70 ou 46h

5

72 ou 48h

6

74 ou 4Ah

7

76 ou 4Ch

8

78 ou 4Eh

Au total, on peut donc disposer de huit SuperMEC sur une même ligne I²C pilotée par un ordinateur.

Remarque : la ligne I²C des SuperMEC est conforme aux normes I²C classiques, aussi il est tout à fait possible d'ajouter d'autres modules I²C sur cette même ligne en étant vigilant quant aux adresses (ne pas utiliser deux fois une même adresse pour deux modules I²C).

    1. Carte d'interface PC
    2. Afin de commander les SuperMEC, il faut les connecter à un pilote I²C depuis un ordinateur. Il existe plusieurs solutions de pilotes pour PC.

      Remarque : l'alimentation des composants du SuperMEC est directement prise sur les fils de la liaison I²C, aussi, il faudra prévoir une alimentation externe à l'ordinateur que l'on branchera sur la ligne I²C.

      1. Interface encartable
      2. Dans le commerce, il est possible de trouver des interfaces encartables (sur bus AT). Une des moins onéreuses est celle distribuée par Sélectronic sous la désignation :

        Module d'interface I²C pour PC (décrit dans Elektor n163) au alentour de 275FTTC.

        Nous ne détaillerons pas ici les caractéristique matérielles de ce type de carte. Il faudra adapter avec précaution la liaison filaire, en effet, la connexion est assurée par une prise mini-din.

        En règle générale, ces cartes d'interface utilisent un composant référence PCF8584.

        Remarque importante : il ne faut surtout pas relier l'alimentation sortant de l'ordinateur avec le +5V de la ligne I²C, même si elle est prévue en sortie d'interface PC.

      3. Interface I²C sur port imprimante

      D'autres interfaces sont proposées, souvent dans des magazines traitant d'électronique, réalisant une liaison I²C. La plupart d'entre elles ne comporte pas le composant PCF8584. La communication I²C est prise entièrement en charge par le logiciel sur le PC.

      Une telle interface a été développée par le secteur robotique de l'ANSTJ comportant également une alimentation externe régulée. Elle s'appelle MOEBus.

       

       

       

       

    3. Et sur un autre ordinateur ?
    4. Aucune interface n'est à notre connaissance développée spécifiquement pour d'autres ordinateurs que ceux de la famille PC et compatibles. Il est toujours possible d'utiliser les interfaces utilisant des connexions standard telles que la liaison imprimante parallèle (centronics) ou la liaison sérielle RS-232.

      Les logiciels sont de nouveau à développer sur chaque nouvelle machine.

      Pour les plus au courant, de nombreuses cartes à microcontrôleur sont développées qui utilisent la liaison I²C. Il n'y a plus qu'à adapter les connexions pour piloter les SuperMEC comme des modules traditionnels I²C.

    5. Carte alimentation
    6. L'alimentation des composants des SuperMEC provient directement des fils de la liaison I²C, aussi, il faut prévoir une alimentation externe à l'ordinateur que l'on branchera sur la ligne I²C.

      Lorsqu'on n'utilise pas une carte telle que l'Interface I²C sur port imprimante développée par l'ANSTJ, il faut prévoir un autre système d'alimentation.

      Remarque importante : il ne faut surtout pas se servir de l'alimentation délivrée par l'ordinateur pour alimenter les SuperMEC via le +5V de la ligne I²C, même si elle est prévue en sortie d'interface PC.

      La source extérieure peut éventuellement être remplacée par un pile plate 4,5V ou une pile 6V du commerce correctement branchée sur les fils de la liaison I²C.

    7. Détecteurs possibles
    8. Pour mettre en contact COMMUN avec l'une des entrées (fins de course, haltes et autre entrée), nous avons plusieurs possibilités.

      Le plus simple consiste à disposer de micro-interrupteurs :

      ou d'interrupteurs ' maison ' avec des trombones, des attaches parisiennes ou du papier aluminium mis en contact.

      Tout autre système électrique ou électronique mettant en contact l'une des entrées avec le COMMUN est possible. Pour information, l'état non positionné est équivalent à un état haut ou égal à +5V et l'état positionné à l'état bas ou égal à 0V.

    9. Actionneurs possibles

Tout système électrique utilisant un courant continu dont la tension ne dépasse pas 30V et la consommation 2A est utilisable avec un SuperMEC.

Voici quelques propositions :

Attention, il est parfois nécessaire de disposer un condesateur non polarisé aux bornes des moteurs électriques pour éviter de voire 'disjoncter' le SuperMEC lors de l'arrêt ou de changement de sens du moteur.

  1. Logiciel
  2. Maintenant traitée la partie matérielle et connectique du SuperMEC, nous allons aborder la partie logicielle ou comment faire pour 'dialoguer' avec un SuperMEC.

    1. Liaison I²C (programmation)

Remarque : Nous ne traiterons pas ici de la manière dont on pilote une ligne I²C, point qui doit être abordé dans la documentation de votre interface I²C pour PC.

Chacune des informations du SuperMEC correspondent à un bit de l'octet de donnée écrit ou lu sur la ligne I²C.

Autrement dit, la donnée se compose ainsi :

bit

b6

b5

b4

b3

b2

b1

b0

information

AUTRE ENTRÉE

FIN VERTE

FIN ROUGE

HALTE AUTORISÉE

HALTE DEMANDÉE

SENS VERT

SENS ROUGE

équivalent numérique

64

32

16

8

4

2

1

Remarque : le bit 7 (b7) est non significatif.

Une combinaison des bits de l'octet de donnée va donner une configuration du SuperMEC. Les SENS ROUGE, SENS VERT et HALTE DEMANDÉE sont des informations décidées par l'utilisateur. Ce sont les seuls bits qui seront affectés.

Les autres informations proviennent de l'état des détecteurs du SuperMEC et ne nous importerons qu'en lecture d'information.

Quelques règles de base :

Dans la pratique, si on veut positionner le sens rouge et ne pas positionner le sens vert et la halte demandée, il faut envoyer l'information 1111 1110 (seul le bit b0 est à 0).

Dans le tableau suivant est présenté une correspondance entre la donnée à envoyer les informations demandées :

<donnée>

SENSROUGE

SENSVERT

HALTEDEMANDEE

248

VRAI

VRAI

VRAI

249

FAUX

VRAI

VRAI

250

VRAI

FAUX

VRAI

251

FAUX

FAUX

VRAI

252

VRAI

VRAI

FAUX

253

FAUX

VRAI

FAUX

254

VRAI

FAUX

FAUX

255

FAUX

FAUX

FAUX

    1. LOGO
    2. Pour faciliter l'utilisation des SuperMEC, des procédures en P_LOGO ont été écrites.

      En utilisant une interface encartable telle que décrite en 2.5.1, il faut charger le fichier SMECARTE.LOG.

      En utilisant une interface I²C sur port imprimante décrite en 2.5.2, il faut charger le fichier SMECPARA.LOG.

       

      1. Les commandes de base
      2. INITI2C (uniquement avec une interface encartable)

        Initialise la carte I²C logée dans le PC.

        Exemple d'utilisation :

        ? INITI2C

        LSMEC <numéro du SuperMEC> <information>

        Pour connaître une information provenant d'un module.

        <numéro du SuperMEC> est compris entre 1 et 8.

        <information> doit être égal à :

        SENSROUGE ou 1
        SENSVERT ou 2
        HALTEDEMANDEE ou 4
        HALTEAUTORISEE ou 8
        FINROUGE ou 16
        FINVERTE ou 32
        AUTREENTREE ou 64

        LSMEC est une procédure-opération, elle retourne VRAI ou FAUX, on peut par exemple l'utiliser dans un SI ou un EC, mais pas seule, sinon, on a le message suivant : <NE SAIS QUE FAIRE DE...>

        Remarque : on peut savoir l'état d'une entrée d'un module, comme l'état d'une sortie précédemment transmise.

        Exemple d'utilisation :

        ? EC LSMEC 1 FINVERTE

        VRAI

        ESMEC <numéro du SuperMEC> <information> VRAI/FAUX

        Pour imposer un état à un module.

        <numéro du SuperMEC> est compris entre 1 et 8.

        <information> doit être égal à :

        SENSROUGE ou 1
        SENSVERT ou 2
        HALTEDEMANDEE ou 4

        ESMEC est une procédure, elle ne retourne rien.

        Exemple d'utilisation :

        ? ESMEC 1 SENSROUGE VRAI

        INSPECTE <numéro du SuperMEC>

        Pour afficher (uniquement afficher) toutes les informations concernant un module.

        <numéro du SuperMEC> est compris entre 1 et 8.

        L'affichage pour les sept informations est de la forme :

        <information> VRAI/FAUX

        INSPECTE est une procédure, elle ne retourne rien.

        Exemple d'utilisation :

        ? INSPECTE 1

        SENSROUGE VRAI
        SENSVERT FAUX
        HALTEDEMANDÉE FAUX
        HALTEAUTORISÉE FAUX
        FINROUGE VRAI
        FINVERTE FAUX
        AUTREENTRÉE VRAI

        Dans le cas de passage de mauvaises valeurs, un message d'erreur est affiché.

        Dans la cas d'une mauvaise connexion d'un SMEC, un message du type <Le SMEC untel ne répond pas...>. Ou bien il n'est pas bien brancher, ou bien il n'existe pas (pas à ce numéro du moins).

        Pour l'interface encartable, si dès le début de l'initialisation automatique (ou manuelle avec INITI2C) l'ordinateur plante, c'est que la carte I²C pour PC est mal branchée dans le connecteur, ou les micro-interrupteurs ne sont pas à 'ON' ou la carte est grillée. Pour plus d'informations, se reporter à la documentation de votre carte d'interface I²C.

         

      3. Quelques commandes complémentaire plus globales

      LIRE ADRESSESMEC <numéro du SuperMEC>

      Pour connaître tous les états d'un module.

      <numéro du SuperMEC> est compris entre 1 et 8.

      C'est l'équivalent d'une fonction, elle retourne un nombre entre 0 et 255.

      Il faut décoder le nombre retourné en binaire pour connaître un état particulier.

      Les informations vraies sont égales à zéro, les fausses égales à un.

      ECRIRE <donnée> ADRESSESMEC <numéro du SuperMEC>

      Pour imposer l'ensemble des états à un module.

      <numéro du SuperMEC> est compris entre 1 et 8.

      <donnée> est un nombre entre 0 et 255, mais pour une utilisation normale des SuperMEC, <donnée> doit être comprise entre 248 et 255.

       

    3. Pascal, BASIC, Assembleur
    4. A vous de faire les routines qui assureront le dialogue avec la ligne I²C.

      Ensuite, il suffit de respecter les quelques recommandations suivantes :

      Lors d'une lecture, bien spécifier l'adresse du SuperMEC (cf. tableau en 2.5.4), envoyer une donnée supérieure ou égale à 248 (cf. second tableau en 3.1).

      Lors d'une lecture d'information, il faut commencer par faire une écriture, puis une lecture.

       

      1. Quelques outils en Pascal

      Deux unités ont été écrites pour faciliter les contrôles de la ligne I²C.

      Avec une interface encartable, il faut utiliser CARTEI2C.PAS.

      Avec une interface sur port imprimante, il faut utiliser PARALI2C.PAS.

      Voici une application de l'utilisation de l'unité I²C en Turbo Pascal avec une interface encartable :

      Program Essai ;
      Uses Crt, Dos, CarteI2C ;
      Begin
      Base :=$300 ;
      Init ;
      Writeln('Demande de sens rouge au SuperMEC 1) ;
      Ecriture(254, 64) ;
      Delay(100) ;
      Writeln('Demande de sens vert sans sens rouge au SuperMEC 1}
      Ecriture(253, 64) ;
      Writeln('Attente d'une fin verte') ;
      Repeat
      Until (Lecture(64) and 32)=0 ;
      Writeln('Ça y est, on est en fin de course verte, on arrête tout !') ;
      Ecriture(255, 64) ;
      End ;


  1. Annexe 1 : l'I²C
      1. Petit tour d'horizon de l'I²C
      2. Le bus I²C est une norme de communication permettant à des circuits intégrés numériques de communiquer entre eux avec un nombre de fils restreint (3 fils) et à des vitesses pouvant aller jusqu'à 400 kHz. Depuis longtemps, nous sommes particulièrement gênés par la quantité impressionnante de fils reliant les ordinateurs aux robots. Fils dessoudés ou coupés, mauvais emplacement des fils etc., nous prenaient un temps fou à dépanner et rendaient nos systèmes peu fiables. Ainsi, nous fallait-il absolument nous tourner vers d'autres horizons. Sous les conseils de quelques personnes éclairées, nous nous sommes penchés sur ce fameux bus I²C. Son coût raisonnable, sa simplicité de mise en oeuvre électronique nous avaient a priori séduit. Restait à voir l'aspect logiciel de l'affaire qui semblait beaucoup plus ardu.

        1. Le principe de l'I²C
        2. La norme I²C permet à un certain nombre de circuits intégrés spécifiques (prévus pour) de s'échanger des informations numériques sur 8 bits, sans pour autant avoir une ribambelle de fils et de connexions entre eux. Jusque là, rien de nouveau par rapport à des choses plus connues comme la liaison série RS232. Tout cela devient très intéressant quand on apprend que ces circuits spécifiques assurent la plus grande partie de la gestion de ces échanges de données. De plus, il existe une très grande variété de composants I2C. Citons notamment des RAM, des ROM, des circuits pilotant des écrans LCD, des gestionnaires de clavier, des ports d'entrées/sorties 8 bits, des microcontrôleurs, des convertisseurs analogiques/numériques etc...

          Cette communication entre divers circuits sera orchestrée par un circuit (appelé le circuit maître). Tous les autres circuits lui obéiront (circuits esclaves). Les circuits maîtres I²C vont généralement de paire avec des unités assez complexes programmables (microprocesseurs ou microcontrôleurs). De plus, quand un événement se produit sur un circuit esclave, ce dernier peut envoyer des signaux (dits d'interruption) au circuit maître. Le circuit maître, suivant la manière dont il est programmé peut prendre alors l'initiative d'interrompre son travail pour savoir de quoi il en retourne.

        3. Qui est qui ?
        4. Chaque circuit I2C possède un nom de famille, un prénom ainsi qu'un adjectif. Le nom de famille est codé sur 4 bits (A7, A6, A5, A4). Il caractérise le circuit : je suis un convertisseur, je suis un port d'entrées/sorties, je suis un gestionnaire de clavier etc...

          Le prénom de chaque bébête tient sur les 3 bits suivants (A3, A2, A1) et est donné par l'utilisateur (c'est-à-dire vous...)

          L'adjectif, quant à lui, tient sur le dernier bit (A0) et indiquera au circuit s'il fonctionne en entrée (on lui envoie quelque chose) ou en sortie (il reçoit quelque chose).

          Cela fait 8 bits en tout, le compte est bon...

        5. 3 p'tits fils et puis s'en vont
        6. Le premier fil est celui que l'on oublie souvent (on est aussi tombé dans l'panneau, c'est pour cela que j'insiste). C'est la masse. Sans lui, pas de référentiel de tension, donc pas d'état logique 0 ou 1 reconnu par les circuits I²C.

          Le second fil est le fil d'horloge. Il porte le doux nom de SCL qui doit très probablement signifier : signal d'horloge (Clock). Il permet à tous les circuits de se synchroniser correctement. Ainsi, quant il y a échange de données, chacun sait où il en est.

          Le troisième fil a, quant à lui, été baptisé SDA. C'est par lui que passeront toutes les données, les adresses et les signaux nécessaires au protocole I²C.

        7. Ben justement...

        Comme je le disais juste au dessus, un certain protocole est à respecter. Examinons en vitesse ce qu'il est nécessaire de faire pour utiliser le bus I²C pour des applications courantes. On part du principe que l'on commence par mettre sous tension tous les circuits, les connexions sont bonnes, tout est OK pour commencer.

        Il faut tout d'abord configurer le circuit maître : lui indiquer (logiciellement) sa fréquence d'horloge (signal SCL), son adresse I²C et le faire fonctionner en mode maître en lui précisant s'il va transmettre une donnée ou la recevoir. Une fois cela fait, il faut tester (toujours logiciellement) si la ligne I²C est disponible. Elle est disponible !!! alors on peut continuer... On communique ensuite l'adresse du composant esclave au maître. On demande ensuite au circuit maître de générer la condition de transmission (Start condition). Il ne reste plus qu'à attendre que le circuit esclave réponde un signal d'acquittement. On peut alors lire ou écrire une donnée sur le circuit précédemment sélectionné. Si on lit une donnée sur un circuit, un certain nombre d'acquittements doivent être donnés au circuit esclave. Une fois que toutes les opérations de lecture/écriture sont effectuées, il faut ensuite libérer la ligne en demandant au circuit de générer les signaux d'arrêt (Stop Conditions). Et voilà.... Ce n'est pas trop compliqué.

      3. Protocole I²C
      4. Pour connaître en détail le protocole I²C, nous vous reportons auprès de votre documentation de l'interface que vous utilisés et de deux ouvrages de référence :

        Le bus I²C de la théorie à la pratique par Dominique Paret, ed. Dunod Tech.

        Le manuel du bus I²C théorie et pratique avec des applications d'Elektor par J.P. Brodier, ed. Publitronic.

      5. Perspectives I²C
      6. Comme nous l'avons vu précédemment, la liaison filaire entre les SuperMEC est classique I²C. Elle respecte toutes les normes des composants I²C. Aussi, il est très facile d'interfacer d'autres modules I²C sur une même ligne I²C.

        1. Capteurs analogique
        2. Parmi ces modules (dont le nombre est très important), il en existe un, le PCF8591, qui permet des conversions analogiques-numériques et inversement. Cela permet par exemple d'utiliser des capteurs (quantité de lumière, de pression, d'humidité...) et non plus seulement des détecteurs (interrupteurs tout ou rien).

          Un module analogique est un excellent complément aux SuperMEC pour des robots complets et intéressants.

        3. Microcontrôleurs
        4. Certaines cartes à microcontrôleurs (remplaçant un ordinateur en très peu de place) disposent de ligne I²C en standard. C'est le cas de la carte Foxacogith développé par l'ANSTJ et de bien d'autres. Après une adaptation de la connectique à celle des SuperMEC, voilà votre robot qui peut se passer de liaison par fil avec un ordinateur. Les robots réalisés peuvent alors être complètement autonomes.

        5. Réseau multi-maîtres

        Il est également possible de disposer de plusieurs ordinateurs ou microcontrôleurs sur une seule ligne I²C. Dans ce cas, chacun à leur tour, les ordinateurs pourront contrôler les modules I²C branchés, où même dialoguer entre eux. C'est ce qu'on appelle un réseau multi-maîtres.

  2. Annexe 2 : Possibilités ouvertes en animation
  3. L'ANSTJ a pris le parti, en 1988, d'utiliser la robotique comme moyen d'aborder l'informatique en animation avec un public d'enfants et d'adolescents. Pour ce faire, elle a développé des outils qui se sont avérés être très performants.

    Le premier a été baptisé MEC (Module Electronique de Commande). Il permet de piloter un moteur de robot par l'intermédiaire de l'écran de l'ordinateur. Cela peut se faire gr'ce à des photorésistances. Celles-ci sont illuminées ou non en dessinant des petits carrés noirs ou blancs. Ces carrés sont programmés dans un langage informatique adapté à l''ge du public : le Logo (pour les 8-15 ans) et le Turbo Pascal (pour les 15-18 ans).

    Le second est une carte d'entrées-sorties appelée la CADENS Cette carte fonctionne uniquement avec des ordinateurs de type compatibles PC et permet une réelle communication entre l'ordinateur et le monde extérieur. Elle permet non seulement de piloter des moteurs de robots, mais en plus, de donner à l'ordinateur des informations concernant l'état d'interrupteurs, de capteurs etc... Cette carte seule est inutilisable et il faut y ajouter beaucoup d'électronique pour qu'elle soit exploitable en robotique. C'est un outil idéal pour l'animation avec des adolescents de 15 à 18 ans.

  1. Annexe 4 : schéma de principe du SuperMEC et composants

Liste des composants du Super MEC :

Reference Valeur Caracteristiques
R1 390 Resistance 1/4 Watts
R2 390 Resistance 1/4 Watts
R3 330 Resistance 1/4 Watts
R4 390 Resistance 1/4 Watts
R5 330 Resistance 1/4 Watts
R6 390 Resistance 1/4 Watts
R7 390 Resistance 1/4 Watts
R8 390 Resistance 1/4 Watts
R9 100 Resistance 1/4 Watts
R10 100 Resistance 1/4 Watts
R11 10K Resistance 1/4 Watts
R12 1K Resistance 1/4 Watts
R13 1K Resistance 1/4 Watts
R14 10K Resistance 1/4 Watts
R15 10K Resistance 1/4 Watts
R16 10K Resistance 1/4 Watts
R17 10K Resistance 1/4 Watts
R18 10K Resistance 1/4 Watts
R19 1K Resistance 1/4 Watts
R20 1K Resistance 1/4 Watts
R21 1K Resistance 1/4 Watts
R22 33K Resistance 1/4 Watts
R23 33K Resistance 1/4 Watts
R24 100K Resistance 1/4 Watts
L1 Jaune LED-5MM
L2 Orange LED-5MM
L3 Orange LED-5MM
L4 Rouge LED-5MM
L5 Rouge LED-5MM
L6 Verte LED-5MM
L7 Verte LED-5MM
L8 Jaune LED-5MM
D1 1N4148 DIODE-04
D2 1N4148 DIODE-04
D4 1N4007 DIODE-04
D5 1N4007 DIODE-04
T1 BC327 TO-092VR
T2 BC327 TO-092VR
T3 2N1711 TO-039
T4 2N1711 TO-039
C1 100?F 25V Condensateur chimique radial
CI1 PCF8574 DIL-16 + support tulipe 16
CI2 4081 DIL-14 + support tulipe 14
RE1 RELAIS Relais 1R1T, 2A 30V, Commutation en 5V.
RE2 RELAIS Relais 1R1T, 2A 30V, Commutation en 5V.
P1 BORNIER Bornier 2 poles, droit pour CI.
P2 BORNIER Bornier 8 poles, droit pour CI.
P3 CI2C Embase double 6P4C (ou modular jack RJ12), sortie horizontale, pour CI
SW DIP Quadruple dip-switch ind?pendants, deux positions (ON-OFF).