dimanche 18 janvier 2015

Projet de décodeur


Voilà maintenant quelques temps que je travaille sur un petit projet qui me tient à coeur: un décodeur de signalisation complexe SNCF. Et je suis enfin arrivé à un montage satisfaisant (joie!). Quelques mots sur la démarche...

L'objectif initial est d'obtenir une simulation réaliste des feux comme s'il s'agit de lampes à incandescence (projet décrit à quelques reprises dans des articles précédents...). Pour cela il me faut plusieurs sorties PWM. Un Arduino classique (Uno, Mini, Nano...) ne comportant qu'un nombre limité de ces sorties, il est nécessaire d'en augmenter le nombre suffisamment pour commander plusieurs signaux, sans avoir à utiliser plusieurs Arduino. Sachant qu'un signal complexe peut comporter jusqu'à 8 sorties différentes, je pourrais utiliser un Mega... mais cela reste un peu cher pour un seul signal. Je choisis donc de rester avec un modèle simple et répandu et je lui ajoute quelques composants pour arriver à mes fins (16 sorties PWM). C'est la contrainte numéro 1.

Ensuite, s'agissant d'un décodeur, je dois pouvoir lire les informations DCC et les convertir afin d'afficher les signaux sur les différentes cibles. C'est la contrainte numéro 2.

De fil en aiguille, je repense à tous les petits exemples et montages que j'ai réalisés depuis plusieurs mois, pour finalement intégrer d'autres fonctionnalités à mon design. C'est ainsi que j'ajoute deux autres sorties PWM, mais cette fois de "haute puissance" (tout étant relatif...). Par haute puissance, j'entends, par exemple, être capable de contrôler des bandeaux de leds pour l'animation de l'éclairage sur mon réseau (comme le projet déjà décrit dans d'autres articles). C'est la contrainte numéro 3.

Ensuite, comme l'animation "jour et nuit" nécessite de pouvoir réinjecter des commandes DCC sur le réseau, j'opte pour faire évoluer la contrainte 2 vers la gestion du bus Loconet (puisque je suis équipé en Digitrax) plutôt que simplement la lecture des signaux DCC. A partir de là, je peux commander n'importe quel autre décodeur sur mon réseau à partir d'évènements captés par un décodeur donné. Vous me voyez venir à grand pas... Il s'agit de la possibilité de créer des automates de commande!

Enfin, je veux avoir la possibilité de configurer un décodeur sans avoir à le reprogrammer. Pourquoi? C'est tout simple: une fois le programme principal écrit, je n'ai pas nécessairement envie de retourner devant mon clavier pour changer les options d'un décodeur en fonction de son utilisation. Si j'en arrive à fabriquer plusieurs dizaines de ces décodeurs, je veux pouvoir les monter à la chaine, les installer et les configurer en quelques coups de bouton poussoir... C'est la contrainte numéro 4.

Et ainsi, j'en arrive à ce montage:


Certes, il est incomplet puisque quelques composants restent encore à souder, mais toutes les fonctionnalités sont là!

Vous pourrez remarquer:
  • l'Arduino Nano
  • l'empreinte d'un Arduino Mini juste en dessous du Nano, qui me permettra de simplifier le montage lorsqu'il n'y aura plus besoin du port USB
  • les 16 sorties PWM à droite (à monter)
  • les deux transistors de puissance au centre (à monter) en dessous du régulateur de tension
  • les leds de contrôle, les switchs, le bouton poussoir et le potentiomètre utilisés pour la configuration
Jusqu'à maintenant, j'ai pu:
  • commander un signal SNCF avec des messages DCC à partir de ma station de commande
  • réaliser plusieurs animations: poste de soudure, feu de camps, phare côtier, clignotements divers, feux de passage à niveaux, etc... (tous les petits montages que j'ai déjà pu expliquer sur ce blog)
  • reconfigurer le décodeur par la série de DIP-switch et du mini potentiomètre sans avoir à reprogrammer l'Arduino. Prochainement, je supporterai aussi la configuration par messages DCC...
Il me reste encore quelques composants à souder ou à recevoir, et je pourrai:
  • commander un autre décodeur (réinjecter des messages sur le bus Loconet) automatiquement à partir de ce décodeur
  • commander mes bandeaux de leds
  • ...
Bref, ce petit montage va combler quasiment tous mes besoins. J'ai hâte de compléter le premier de ces décodeurs et de contrôler, entre autres, mes signaux SNCF de façon réaliste...

En ce moment, je planche sur différentes options comme une simple entrée DCC (sans Loconet), des sorties pour moteur pas-à-pas, des sorties sur opto-coupleurs, etc... Ce n'est pas les idées qui manquent!

Allez, je retourne à mon fer à souder!