Accueil > La conception > Le TCO > Quelques réflexions

Le TCO

Quelques réflexions

samedi 5 octobre 2013, par Jean-Luc

Le TCO, pour Tableau de Contrôle Optique, est en modélisme ferroviaire détourné de l’usage de son grand frère. En effet les TCO des postes d’aiguillage ou des postes de commande centralisés ne servent qu’à l’affichage de l’état du réseau alors qu’en modélisme, ils servent aussi à la commande des aiguilles, des dételeurs, etc.

Il y a quelques temps, le TCO n’était pas dans mes priorités, j’avais d’autres chats à fouetter. Les choses ont changé avec la réalisation de la carte de pilotage des servo-moteurs mais aussi avec la décision de progresser sur tous les fronts en me concentrant sur un seul lieu du réseau : la gare terminus et principale de Messingrohrstadt. Le but est de mettre en œuvre les systèmes (commande des aiguilles, alimentation traction, déconnexion des voies de garage, commande des dételeurs...) au fur et à mesure qu’ils seront disponibles afin de valider le tout avant de passer à l’installation sur le reste du réseau.

La totalité du réseau ne sera pas représentée. Seules les parties visibles le seront. Les parties cachées seront gérées automatiquement. Peu m’importe qu’elle voie est disponible dans la gare cachées ou si la rame doit être retournée ou non, c’est l’informatique qui doit se charger de gérer ces détails.

Philippe avait pris plusieurs longueurs d’avance dans ses réflexions sur le TCO. Il voulait notamment un TCO tactile. Les technologies envisagées étaient les systèmes résistifs ou capacitifs. Dans le premier la résistance du doigt est détectée, dans le second c’est le courant induit dans notre corps du fait que nous baignons dans le 50Hz du secteur qui est détecté via un condensateur (voir Touches sensitives).

Ces technologies ne sont pas très faciles à mettre en œuvre. La technologie capacitive est plus séduisante car mono-point mais demande une mise en œuvre électronique plus complexe. Elle consomme aussi une E/S du micro-contrôleur par bouton ce qui, étant donné le nombre d’aiguille visibles, nécessitait plusieurs microcontrôleurs. Je m’étais donc orienté vers des boutons poussoirs soudés sur des circuits imprimés ad-hoc et lus en matrice. Tant pis pour le tactile.

Et puis Philippe a trouvé LA techno qu’il fallait. Peu chère, et très souple à mettre en œuvre : un tableau tactile doté d’un cadre comportant à gauche et en bas des photodiodes infra-rouge et en vis-à-vis, à droite et en haut (par exemple), des phototransistors infra-rouge également. Un doigt posé à une intersection interrompt un faisceau en X et un faisceau en Y et permet de connaître la position du doigt.

J’avoue avoir été sceptique au début mais Philippe a effectué les premiers essais de détection à une distance de 60cm avec succès ce qui a levé mes doutes. J’ai aussitôt entrepris de redessiner mon TCO selon une grille de pas 3cm en X et 2cm en Y. Cet espacement est calqué sur celui choisi par Philippe et permet de garantir [1] que le doigt n’interrompe pas deux faisceaux horizontaux ou verticaux simultanément. Un espacement plus important en X qu’en Y conduit à un dessin plus harmonieux du TCO avec des angles de bretelles d’environ 30°.

Voici donc le dessin auquel j’ai abouti. Le TCO ferait 62cm de largeur sur 22cm de hauteur. Le dessin est en contraste inverse de ce que sera la réalisation. En effet, il est prévu de rétro-éclairer le TCO pour une exploitation en nocturne et les voies seront par conséquent illuminées tandis que les surfaces libres seront noires et opaques. La grille représente le maillage des couples photodiode / phototransistor et permet la mise en œuvre de 231 zones tactiles. 30 d’entre-elles sont occupées par les boutons de commande des aiguilles et du pont tournant. Le reste est libre pour les autres fonctions qui sont encore à définir.

Dessin du TCO sur une grille 3cm x 2cm

Le cadre tactile

La réalisation du cadre nécessite 32 couples photodiode / phototransistor. J’envisage de piloter les photodiodes via 4 registres à décalage 8 bits [2] chaînés entre eux. Ces circuits permettent de charger une information binaire en série et de la placer sur les sorties en parallèle. De même les phototransistors seront lus via 4 registres à décalage 8 bits implémentant la fonction inverse des précédents et qui permettront de récupérer les entrées en parallèle et de les extraire en série.

Ces opérations d’illumination des photodiodes et de lecture des phototransistors seront effectuées au moyen d’un micro-contrôleur PIC. Comme les informations sont émises et récupérées en série, peu de broches d’entrées / sortie sont nécessaires et un PIC 18F26K80 dédié à cette fonction suffira. Le balayage des couples photodiode / phototransistor sera effectué à fréquence moyenne, probablement supérieure à 100Hz. À chaque changement de l’état du TCO, le micro-contrôleur enverra, sur le bus CAN des accessoires et à destination du contrôleur central, un message donnant l’intersection qui a changé d’état. Nous ne sommes pas en analogique classique et le TCO sera simplement relié au reste du système via le bus CAN, un câble en entrée et un en sortie, une alimentation 9 ou 12V, c’est tout.

Les composants sont arrivés dernièrement et il reste à faire une preuve de concept avec quelques photo-diodes et photo-transistors et une paire de registres à décalage avant de passer à la réalisation du cadre et à l’écriture du logiciel. La gravure d’une carte suivra pour finaliser le cadre tactile.

L’affichage : témoins et matérialisation des boutons

L’affichage emploiera des LED de diverses couleurs voire bicolores en 5mm de Ø pour les zones tactiles et en 3mm de Ø pour les témoins. Ici aussi je pense employer des registres à décalage et un PIC 18F26K80 pour piloter les LED. Structurés en 4 séries de 5 à 6 registres, ces modules permettront de piloter de 160 à 192 LED en n’employant que 16 broches du micro-contrôleur.

L’affichage sera rafraîchi à fréquence élevée [3] afin de permettre le réglage de l’intensité lumineuse en laissant les diodes éteintes une partie du temps sans que l’oeil ne puisse voir de fluctuation. J’envisage ainsi de régler le rétro-éclairage et l’intensité des voyants avec un réglage manuel tactile mais aussi automatiquement en fonction de l’éclairage de la pièce comme c’est le cas pour les claviers rétro-éclairés des MacBook Apple.


[1Pourvu que l’on garde le doigt suffisamment vertical

[2Je remercie SavignyExpress pour m’avoir révélé l’existence de ces circuits intégrés qu’il utilise dans une application de commande de relais

[3Difficile d’être définitif à ce sujet à l’heure actuelle mais une étude rapide sur le coin de l’évier montre qu’il est possible de charger 1 bit en 5 instructions PIC qui chacune met, en se basant sur une horloge à 16MHz et en arrondissant, 100ns à s’exécuter. Par conséquent, le chargement de 1000 bits (on maximise largement encore une fois en multipliant par 5) demandera 500µs. On peut raisonnablement penser qu’un rafraîchissement toutes les 1ms est faisable. La fréquence maximum de fonctionnement du micro-contrôleur étant de 64MHz, il reste une marge de manœuvre.

Messages

  • Bonjour Jean-Luc,

    L’idée de l’écran tactile réalisé à l’aide de diodes IR et phototransistors est très bonne. Ce principe avait mis en oeuvre par HP au milieu des années 80 pour réaliser l’un des premiers écrans tactiles pour micro-ordinateur !

    Les leds IR ayant un courant plus élevé que les leds standard, de l’ordre de 100 mA pour certaines et 150 mA pour les plus gourmandes, je préconiserais plutôt des registres à décalage TPIC595 dotés de transistors MOS de puissance en sortie, capables de délivrer 150 mA. Le comportement et le pinout du TPIC595 sont en tous points semblables à ceux du HC595 qui ne dispose pas de sorties de puissance. Cela peut éviter les transistors de puissance externes avec des diodes à 100 mA.

    Pour limiter la consommation de courant, il faudrait que le logiciel balaie lignes et colonnes en n’allumant que les diodes correspondantes, comme on le fait pour lire un clavier matriciel.

    Bonne réalisation et meilleures salutations.

    Voir en ligne : Type de registre à décalage

    • Bonjour Savigny,

      Merci de ton intérêt. Je pensais effectivement au TPIC595 pour piloter les LED. Le modèle de LED est la TSHF5210. Elle supporte 200mA par impulsion de 100µs. De même le TPIC595 peut monter à 500mA par impulsion. Je comptais donc envoyer des impulsions de 200mA.

      Meilleures salutations

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)