mercredi 14 novembre 2012

Ligne électrique et décor


Hier soir, j'ai pu raccorder la gare au réseau électrique. En effet, il manquait une portion de ligne BT entre la ligne HTA et la gare. Rien de bien compliqué ici, un peu de fil à coudre et le tour est joué. Le raccord se fait au niveau du disjoncteur.


Du côté de la gare, la petite potence sur le mur était déjà présente et n'attendait plus que la réception du câble...


Aussi, j'ai pu remettre en place la barrière clôturant la cour marchandise, même si elle est très rouillée...


Enfin, un peu de travail de salissure sur la route en mauvais état devant l'entrée et aux abords de la gare, sur le trottoir ainsi que sur les quais....



Voilà pour les derniers travaux de la veille...


mardi 13 novembre 2012

Interface Arduino et Leds


Attention: l'auteur de ce blog dégage toute responsabilité quant à l'utilisation des montages électriques et électroniques décrits dans ces pages. Il incombe au lecteur d'agir avec prudence lorsqu'il s'agit d'utiliser tout dispositif électrique.


Suite à l'animation présentée plus tôt, voici le montage qui me sert à coupler l'alimentation 12V des leds avec les sorties de l'Arduino. Celui-ci est nécessaire puisque seulement 5V sont disponibles au niveau des sorties. Dans le cas présent, le montage regroupe deux lignes de commande indépendantes. Il est facile de n'en construire qu'une seule ou de répliquer ce montage autant de fois que nécessaire...

Le principe s'organise autour d'un transistor TIP122 et est très simple: il suffit de commander la base du transistor par l'une des sorties PWM de l'Arduino, alors que la liaison collecteur-émetteur sert de "potentiomètre" si l'on veut... Ainsi, un signal variant de 0 à 5V sur la base, libère le passage à un signal proportionnel de 0 à 12V entre l'émetteur et le collecteur. Bien évidemment, la tension maximale dépend de la source d'alimentation externe...


La base est protégée par une résistance 1kOhm. Quant aux résistances utilisées pour protéger les leds, elles ne sont pas représentées puisqu'elles sont normalement incluses dans les bandeaux. Dans le cas contraire, il ne faut pas oublier de les insérer ;-)

Concernant les points de connections, tous les grounds doivent être connectés ensembles (gnd et "-" sur le schéma). Les "+" et "-" correspondent aux alimentations de chaque bandeau (il est possible d'utiliser une seule alimentation si vous en disposez d'une assez puissante. Pour info, des bandeaux de leds comme ceux que j'ai utilisés consomment environ 1A par mètre...). Enfin, les points de connections PWM1 et PWM2 sont reliés à deux des sorties de l'Arduino. Bien entendu, il s'agit de sorties analogiques, sinon le transistor agirait comme un interrupteur à la réception d'un signal 0 ou 5V...

Remarque: suites aux tests que j'ai pu faire, il semble qu'il y ait un bug dans le bootloader de mon Arduino car je ne peux pas obtenir de signal analogique sur les sorties PWM 9, 10 et 11. J'ai trouvé une confirmation de ce problème sur quelques pages web. Il faudrait charger une nouvelle séquence de boot dans le micro-contrôleur pour fixer le problème. Pour l'instant, cela ne me dérange pas puisque d'autres sorties PWM sont disponibles et fonctionnelles...  Si vous possédez un Arduino récent, il est possible que vous rencontriez aussi ce problème.

Remarque 2: comme précisé dans un de mes commentaires, j'ai pu expérimenter quelques problèmes avec l'un des transistors. En effet, dans l'état 0V, il semble laisser passer un signal, ce qui fait clignoter les leds qui y sont raccordées... Mes connaissances limitées en électronique ne me permettent pas d'en déduire la source du problème. Au départ,  j'avais tendance à penser que cela puisse venir d'une surchauffe du transistor. Mais malgré la présence de radiateur, le problème persiste... Si vous avez des idées sur les causes possibles du problème, n'hésitez pas à communiquer avec moi. D'avance, merci!

Mise-à-jour: je viens de refaire les calculs concernant les intensités supportées par le transistor (au niveau des tensions, il n'y a pas de problème puisque le TIP122 supporte 100V sur les liaisons collecteur-base et collecteur-émetteur). Il est vrai que je m'approche des 5A (intensité maximale au collecteur en utilisation continue) pour le bandeau blanc pur et environ 2A pour le bandeau blanc chaud. De plus, j'ai inversé les bandeaux de leds, et le problème survient dans les deux cas, donc l'intensité ne semble pas être en cause... Mauvaise qualité des transistors?

dimanche 11 novembre 2012

Jour et nuit...


Je vous propose aujourd'hui un autre exemple des possibilités offertes par l'Arduino. Cette fois-ci, je combine l'éclairage du réseau et le bus LocoNet. D'une part, l'éclairage du réseau est interfacé avec un module de puissance très simple qui permet de moduler l'intensité des rubans de leds. Deux canaux indépendant permettent de contrôler les leds "blanc pur" et les leds "blanc chaud". D'autre part, l'interface LocoNet me permet d'envoyer des commandes aux décodeurs statiques qui gèrent les leds du décor...

Ensuite, un petit automate de gestion du temps contrôle le tout en distinguant différents évènements:
  • "0h - nuit": pas d'éclairage réseau, éclairage urbain et éclairage cour
  • "6h à 8h - lever du jour": éclairage blanc pur progressif, extinction de l'éclairage urbain et de la cour
  • "8h à 10h - matinée": rien de spécial...
  • "10h à 12h - intensification de la chaleur": ajout de l'éclairage blanc chaud
  • "12h à 18h - milieu de journée": rien de spécial...
  • "18h à 19h - fin de journée: diminution de l'éclairage blanc pur
  • "19 à 20h - tombé de la nuit": diminution de l'éclairage blanc chaud et allumage de l'éclairage urbain et de la cour
  • "20h à 0h - nuit": seul l'éclairage urbain et de la cour persiste...
  • etc...
Sur un petit schéma, cela peut se représenter ainsi:


Voici une petite vidéo dans laquelle les étapes ont été raccourcies afin de décrire rapidement la suite des évènements. Dans la réalité, un cycle complet pourrait durer 10 minutes par exemple...

Vous remarquerez que le rendu varie au cours de la vidéo. Cela est dû au recalage de l'appareil photo qui ajuste la balance des blancs... Normalement le seul effet visuel voulu est l'intensification de la chaleur en milieu de journée ainsi que le ton chaud unique en fin de journée... Hélas, cette vidéo montre plus "d'effets" que ceux réellement désirés... Mais cela donne une bonne idée quand même...



jeudi 8 novembre 2012

Encore un automate...


Cette fois, pour varier les plaisirs, j'ai ajouté deux commandes d'aiguillages. Les mouvements sont un peu plus complexes maintenant...

Démarrage au niveau du terminus, franchissement de la TJD, retour sur la voie principale et départ en ligne... Puis retour au point de départ...


Encore une fois, la taille de la vidéo est deux fois plus grande que la taille originale... Je n'ai pas compris ce qui a pu se passer au moment du transfert de la vidéo sur YouTube... Désolé...


Automate DCC


Je vous présente un premier exemple d'automatisme que l'on peut réaliser avec un Arduino. Dans cette configuration, le micro-programme contenu dans l'Arduino effectue les étapes suivantes:
  • lorsqu'un évènement de présence est détecté dans une des deux zones d'extrémité du trajet, une commande de vitesse 0 est envoyée
  • attente de 5s
  • inversion du sens de marche et envoi d'une commande de vitesse 20.
Voici la vidéo du résultat (attention le son est un peu fort). Remarque: la longueur de la vidéo a été doublée au moment de l'envoi sur YouTube. Je ne comprends pas ce qui a pu se passer...


La programmation de ce genre d'automate est triviale (quelques minutes) et est basée sur les principes d'une machine à état. La combinaison de l'état courant et d'un évènement force le passage à un autre état en effectuant une action.

Ici, il y a deux états: "à l'arrêt" ou "en marche", deux évènements "détection zone 1" ou "détection zone 2", et enfin deux actions: "stop" ou "démarrage en sens inverse".

Ainsi: si l'état est "en marche" et qu'un évènement "détection" est capturé par l'Adruino, celui-ci envoi l'action "stop" et passe à l'état "à l'arrêt". Après une temporisation de 5s, l'action "démarrage en sens inverse" est effectuée et l'état devient "en marche"...

On peut facilement entrevoir la multitude d'automates qu'il est possible de réaliser: va-et-vient, manoeuvre, positionnement des aiguillages, signalisation, etc... Le plus important dans ce genre de montage est de pouvoir capturer des évènements sur le réseau et cela est rendu possible grâce aux détecteurs de courant.

Pour l'instant, cet exemple est très simple. Toutes les variables sont inscrites en dur dans le micro-programme. Cela signifie que l'adresse du décodeur, les identifications de zones et les vitesses ne peuvent être modifiées par des CV comme avec un décodeur... Au besoin, il faut reprogrammer l'Arduino. Dans mon cas, ce n'est pas un problème puisque l'ordinateur n'est pas loin, mais afin de rendre cet automate totalement autonome, il suffit d'ajouter quelques lignes de code pour prendre en considération une éventuelle configuration à l'aide de CV et sans ordinateur...

Pour conclure, la beauté de ce genre d'installation est qu'aucun autre câblage que celui du bus LocoNet/DCC est nécessaire... Il suffit de modifier le micro-programme au besoin et le tour est joué!

Si vous avez des questions, n'hésitez pas communiquer avec moi!!!