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!


vendredi 12 décembre 2014

lundi 8 décembre 2014

Jour et nuit... le programme!


Comme demandé, j'ai ajouté une description de ce que j'appelle un "séquenceur". Il permet de créer des animations avec votre Arduino sans consommer trop de ressources... L'exemple utilisé est basé sur l'article jour et nuit... que j'avais rédigé il y a quelques mois. Le programme vous donnera une trame élémentaire à partir de laquelle vous pourrez bâtir vos propres animations...

jeudi 6 novembre 2014

Nouveau signal


J'ai confectionné un nouveau signal pour l'une des voies de garage: le C2 sur la voie 4. Cette fois, il est constitué de quatre feux et un oeilleton: C-S-M-VL. Comme d'habitude, il s'agit d'une ancienne cible avec des pare-soleils de tailles différentes. En fait, c'est le deuxième feu du carré qui est un peu plus court.

Il ne reste que les indications à poser: un chevron pointe en haut, la numérotation et possiblement une indication de vitesse 30 pour le franchissement de l'aiguille en sortie. Mais je n'en suis pas encore sûr...

J'attends encore quelques pièces pour monter mes décodeurs de signaux. Dès qu'un premier décodeur est prêt et fonctionnel, je ferai quelques tests avec les feux...





samedi 25 octobre 2014

Portes ouvertes à Pine Valley - 2ème partie


























Fin.

Portes ouvertes à Pine Valley


J'ai eu le plaisir de faire la visite du réseau HO Pine-Valley, de l'association du même nom, à Montréal (5505 rue Angers). Je dois dire que j'ai été émerveillé par la très grande qualité de la réalisation, comme vous pourrez le constater sur les photos qui suivent. Qualité que l'on doit certainement aux innombrables heures de travail ainsi qu'au savoir-faire de ses membres.

Hélas, ce fut à un bien triste moment puisque ce réseau doit libérer le local dans lequel il se trouvait depuis presque 40 ans... L'avenir de ce réseau est incertain. On ne peut que déplorer la perte possible d'un tel joyau! Espérons qu'il trouvera un nouvel écrin...






















A suivre...

samedi 2 août 2014

samedi 17 mai 2014

Arduino et opto-coupleur


Tout récemment, j'expliquais "approximativement" le fonctionnement d'un opto-coupleur à un ami et son utilisation avec un Arduino. Je saisis l'occasion de revenir sur mon blog et de rédiger un petit descriptif, suivi de deux exemples élémentaires de son utilisation. C'est par ici...


mardi 14 janvier 2014

Pfiuuu... Les registres à décalage...!


Bon, et bien j'ai enfin pu corriger et mettre à jour les derniers paragraphes du chapitre 8 du dossier Arduino.

A la fin du chapitre, je vous conseillais de bien poser sur le papier vos montages à base de registre et le code source qui s'y rapporte car on a vite fait de s'y perdre... Et c'est ce qui m'est arrivé en rédigeant ces paragraphes dernièrement! Je pensais pouvoir le faire de tête, mais il m'a fallu réaliser les montages et programmer l'Arduino pour vérifier mes dires. Je m'étais un peu perdu...

Bref, maintenant tout est rentré dans l'ordre: les montages et les codes sources doivent normalement être cohérents et fonctionnels.

Bonne lecture!

dimanche 12 janvier 2014

Quelques composants intéressants pour jouer avec un Arduino


J'ai pu progresser dans la rédaction du chapitre 8 du dossier Arduino. J'ai y introduit les trois premiers composants (transistor de puissance, démultiplexeur et registre à décalage) permettant d'élargir les possibilités du contrôleur. Vous aurez l'occasion de voir comment ajouter des sorties supplémentaires et interfacer l'Arduino avec d'autres sources de courant...

La suite prochainement mais pour l'instant je vous souhaite une bonne lecture! Comme d'habitude, si vous avez des questions ou découvrez des erreurs, n'hésitez pas à me le faire savoir...