![]() |
La gare de Lormedy |
H0 |
Firmware : Genèse d'une bibliothèque DCCpp
En DCC l'énergie électrique pour faire avancer nos locos est modulée par un signal numérique au travers duquel les commandes sont envoyées vers les décodeurs.
En modélisme ferroviaire, nous avons besoin d'une centrale DCC pour piloter nos trains avec une commande numérique.
Un projet de commande DCC a été concrétisé par Gregg E. Berman qui a écrit le projet DCC++ pour Arduino.
Il a ensuite été repris et étendu par Thierry Paris qui en a fait une bibliothèque DCCpp. (Voir www.locoduino.org).
Finalement j'ai ajouté la lecture de 2 ports de rétro-signalisation S88 dans cette bibliothèque qui s'appelle désormais : DCCppS88. DCC++ BASE STATION est un programme C++ pour l’Arduino Uno/Nano et l’Arduino Mega utilisant l’Arduino IDE 1.6.6 ==> 1.8.9 Il permet à un Arduino Uno/Nano ou Mega standard équipé d’un Arduino Motor Shield (ou d’un autre) d’être utilisé comme une centrale DCC complète, conforme aux standards DCC du NMRA, pour un réseau de modélisme ferroviaire numérique.
Cette version de DCC++ BASE STATION supporte :
DCC++ BASE STATION est contrôlé par des commandes textes reçues par l’interface série de l’Arduino. Elles peuvent être envoyées par la console série de l’IDE Arduino, ou par des interfaces ou des programmes extérieurs. Sur un Arduino Mega, un shield Ethernet peut être utilisé pour recevoir des ordres via un réseau informatique plutôt que par la liaison série. Shield : Carte d’extension munie de connecteurs mâles et qui s’enfichent dans les connecteurs des cartes Arduino Uno, Duemilanove et Mega. Un shield peut également présenter des connecteurs gigognes qui permettent d’empiler plusieurs shields. Hardware : Arduino Mes projets utilisent une seule carte Arduino Mega 2560 mais il est possible d'utiliser une carte Arduino Uno ou même Arduino Nano avec cependant certaines limitations dues à la petite taille mémoire de ces deux dernières. A la sortie PWM de l'Arduino je connecte un circuit AM26C31 pour générer deux signaux symétriques qui commandent des modules Booster L298. Les circuits compatibles RS422/RS485 conviennent à condition de savoir les brancher. J'ajoute des modules MAX471 pour la mesure du courant et une alimentation 19VDC protégée contre les court-circuits. Pour interconnecter ces éléments entre eux, je recommande d'utiliser des fils groupés dans un seul connecteur Dupont pour une meilleure stabilité mécanique des connexions. Enfin je cable 2 prises RJ45 sur les 2 ports S88-N que j'ai crée sur l'Arduino. Mes projets sont décrits dans les onglets suivants du menu "Alimentation DCC". Firmware sur Arduino : DCCppS88 DCCpp est une bibliothèque C++ pour l'Arduino Uno/Nano et l'Arduino Mega compatible avec l'Arduino IDE 1.8.4.
Les trains sont pilotés à partir de commandes texte ou par des entrées/sorties cablées avec des boutons que vous déclarez dans votre projet software. Software sur PC :
Vous pouvez utiliser un programme compatible avec DCC++ pour commander automatiquement tout votre réseau. Personnellement je me suis
inspiré de logiciels créés par d'autres modélistes pour me lancer dans l'écriture de logiciels de commande manuelle de mon réseau.
J'ai créé le logiciel CDT31 (Conducteur De Train) pour utilisateur confirmé.
Enfin j'utilise le moteur d'exécution software Node.js pour interconnecter efficacement mon logiciel avec Arduino.
Mes logiciels de commande sont décrits dans les onglets correspondants que vous retrouverez dans le menu "Logiciel".
De plus, il est possible de piloter individuellement des trains en mode manuel dans un dépôt ou un triage avec CDT31 pendant que JMRI contrôle le réseau principal.
Il suffit que le serveur accepte des requêtes venant d'un autre port ce qui est possible avec le moteur logiciel Node.js. |