![]() |
La gare de Lormedy |
H0 |
Le module MAM
Ceci est le fruit d'une rencontre entre Xavier et Philippe d'où ont germés les idées pour développer ensemble ce module inédit.
Le projet est divisé en deux modules :
Ces messages sont transmis en utilisant le bus I2C qui permet d'adresser individuellement chaque module avec un minimum de fils sur plusieurs mètres. Le module MAM-RFID Ce module lit les étiquettes RFID au moyen d'un capteur RFID dissimulé sous la voie. Ce capteur est relié au module qui lui est proche avec un bus SPI sur 8 fils qui est beaucoup plus efficace qu'un bus I2C dans ce cas. Le module est relié avec MAM-Gare en utilisant un bus I2C sur 4 fils (SCL, SDA, GND, +5V) qui alimente aussi ce module. La distance qui sépare ces deux modules peut atteindre 5m. Un Arduino Nano gère toutes les fonctions et fournit aussi un bit "Présence" actif bas et destiné à un bus de retro-signalisation. Il contient un décodeur DCC pour lire les messages DCC qui circulent sur les rails et qui entrent par le connecteur J10. Quand une étiquette RFID passe sur le capteur RFID, celui-ci lit les données contenu dans la mémoire de l'étiquette RFID. La sortie "Présence" sur J17-3 passe à zéro dès que l'étiquette RFID se trouve sur le lecteur RFID et pendant 2 secondes après qu'elle soit retirée. L'analyse de la position des aiguillages conjointement avec la lecture du contenu de l'étiquette RFID sont utilisés pour élaborer un message destiné à MAM-Gare qu'il transmettra sur le bus I2C qui les relie. Le bus USB de l'Arduino Nano permet de le programmer facilement avec l'IDE Arduino. En connectant son Moniteur sur le port USB correspondant (115200 baud) on peut surveiller le fonctionnement du module. Le capteur RFID mini RC522 Le capteur RFID mesure 37x25mm avec une épaisseur de 4mm. Le coté de l'antenne située au dos du circuit imprimé se place directement sous la voie à une distance de 4m de la gare en H0. Un train à l'échelle H0 qui roule en moyenne à 63km/h parcourt 20cm/s. Une annonce peut durer 20s ce qui représente 4m parcouru par ce train. Un retard pour diffuser l'annonce est inscrit dans l'étiquette RFID pour s'adapter à chaque annonce. Sa petite taille lui permet d'être utilisé à l'échelle N en débordant de 4mm de chaque coté de la voie. La distance entre le capteur RFID et la gare sera réduit en fonction de l'échelle. Il est facile de dissimuler ce capteur dans la bande de liège de 5mm d'épaisseur qui supporte la voie, large de 30mm en H0. Les 8 fils du bus SPI sont soudés sur le capteur pour ne pas créer de surépaisseur. Ils traversent par un trou pour rejoindre MAM-RFID situé sous le réseau et se terminent dans un connecteur au pas de 2.54mm. Un film plastique sera placé entre le capteur RFID et la voie pour pouvoir coller du ballast à cet endroit sans inconvénient pour le capteur, le rendant invisible.
Chaque étiquette RFID se programme avec le logiciel MAM_config (70Mo),
écrit en Processing 3.5.4, qui utilise ce capteur et MAM-RFID pour lire et écrire nos données.
Autocollante, elle mesure 10x20mm sans épaisseur.
Elle peut contenir 144 octets ce qui est plus que suffisant pour stocker les informations du train.
Ce module surveille les modules MAM-RFID en communiquant avec le bus I2C par lequel il télé-alimente aussi les modules.
Dès qu'un module MAM-RFID envoie un message, il est lu et analysé pour être diffusé dans la gare avant l'arrivée du train.
La provenance dépend de la position des aiguillages aux entrées de la gare.
MAM-Gare contient un Arduino Nano qui est un décodeur DCC ce qui lui permet de connaitre la position des aiguillages.
De cette analyse, il en déduit la provenance du train et sa destination. Il contient aussi un DFPlayer connecté à un haut-parleur externe.
Ainsi il peut diffuser une annonce d'arrivée précisant quelle est le numéro du train, sa provenance ou destination et vers quelle voie ou quai il se dirige.
De plus les commandes DCC permettent de diffuser 8 annonces différentes de départ des trains.
En option, un potentiomètre de 10K pour ajuster le volume sonore connecte son curseur sur l'entrée J17-4 avec retour GND en J17-5.
Le volume se règle aussi par CV ou avec une commande USB.
Ce module de 86,5 x 100 mm intègre un microprocesseur Arduino Nano associé avec un générateur de son DFPlayer.
Les annonces en gare sont constitués d'une suite de 10 fichiers MP3 maximum diffusés l'un après l'autre sans interruption.
Les morceaux d'annonces vocales sont enregistrés en fichiers MP3 sur une SD-card intégrée avec le générateur vocal.
De nombreux connecteurs permettent plusieurs configurations en fonction du câblage des composants et du logiciel spécifique qui sera téléchargé dans l'Arduino Nano.
Suivant le câblage choisit, des fonctions seront exploitées ou ignorées. Les entrées et les sorties du module MAM2 Ce module comporte une multitude de connecteurs décrit ci-dessous :
Circuit imprimé et schéma de MAM2
Voici le plan dessiné avec le logiciel gratuit KiCad (avec lequel est réalisé le circuit imprimé ci-dessus)
- U6 contient 8 transistors Darlington qui agissent comme des interrupteurs en commutant les sorties vers la masse avec un maximum de 500 mA chacune.
Les sorties de U6 sont connectées aux connecteurs J1 à J8.
Elles sont protégées par une diode en inverse permettant de commander des relais sous une tension externe qui peut atteindre 24V. Evidement l'utilisation simultanée de toutes les sorties au maximum
de leur intensité conduirait le circuit U6 vers une surchauffe destructrice, à condition d'avoir une alimentation suffisamment puissante !
Cependant les appareils qui seront commandés par ce module ont des consommations électriques très raisonnables inférieure à 100 mA. Caractéristiques techniques de l'Arduino Nano :
Une attention particulière doit être utilisée pour interfacer les accessoires alimentés en +3.3V car le module fonctionne avec +5V. Logiciels
Les projets sont compilés en utilisant l'IDE Arduino. Une sélection de bibliothèques a permis de réduire la taille du code contenu dans la mémoire de l'Arduino Nano.
Certaines bibliothèques créent des dysfonctionnements qui conduisent jusqu'à la non détection de commandes DCC parce qu'elles bloquent inutilement les interruptions qui proviennent du DCC.
Mises à jour récemment, elles ont aussi la mauvaise tendance à consommer inutilement la mémoire pour des fonctions qui ne nous servent pas.
Les bibliothèques utilisées dans cette réalisation sont fournies sous forment de ZIP dans le répertoire "libraries". Elles ont été modifiées pour corriger leurs défauts.
Pour vous éviter tous ces tracas, une version compilée pour chaque module se trouve dans le répertoire "upload" accompagnée de la méthode pour téléverser le code directement dans le Nano sans compilation.
|