• accueil
  • réseaux à l'échelle 0
    • réseau jouet ancien
      • présentation
      • catalogue LR
      • photos du matériel roulant
    • réseau jouet moderne
      • présentation
      • quelques videos
      • matériel roulant
      • 131T ETS et fumigènes
      • portique intermodal
    • réseau modulaire
      • présentation
      • photos
      • vidéos
      • exploitation du réseau
      • matériel roulant
      • le parc d'attractions
      • le pont tournant
  • réseaux de monorails
    • introduction
    • histoire des monorails
    • maquettes de monorails gyroscopiques
    • principes de la levitation magnétique
    • monorail jouet à sustentation magnétique
    • maquette de lévitation électromagnétique
  • train de jardin
    • présentation
    • Matériel roulant
    • 030T CDN
    • autorail de Dion
    • autorail Billard
    • Mallet LGB
    • BB400 des CP
    • Vapeur vive Emma
    • Vapeur vive Millie
    • Vapeur vive MIKADO
    • Loco vapeur 031T ACO
    • Exploitation du réseau
    • Rétrosignalisation
    • Wagon dételeur
    • Liens
  • techniques
    • électronique
      • présentation
      • alimentation pwm
      • Détecteur de passage infra rouge
      • Commande d'une plaque tournante
      • Comment réaliser un oscillo pas cher
      • Utilisation d'un servomoteur
      • Commande d'aiguille par décharge capacitive
      • Commande d'un fumigène pulsé par un décodeur ESU Loksound
    • informatique
      • généralités
      • port parallèle
      • port série
      • port USB
      • Qbasic et Freebasic
      • Visual Basic
      • Exploitation d'un réseau en Visual Basic
      • Commande d'un réseau par manette de jeu
      • Commande vocale d'un réseau
    • ARDUINO
      • introduction
      • Sonorisation d'une locomotive
      • Radiocommande et sonorisation d'une loco sans DCC
      • Module de sonorisation d'un réseau
      • Applications du BLUETOOTH au modélisme ferrovaire
    • Fumigènes
    • dcc
      • Introduction
      • Structure des paquets DCC
      • ARDUINO et DCC
      • Utilisation d'un ampli audio comme booster
      • Création d'un signal DCC avec un PC
      • Contrôle d'un signal DCC
      • Rétrosignalisation
      • Détecteurs d'occupation
      • Utilisation du LokProgrammer
      • SPROG II
      • DCC transmis par radio
      • Présentation du programme CARTO-DCC
      • Commande d'un réseau DCC en WiFi
      • programmation des locos MTH
      • Régulateur DCC à commande vocale en Français
      • Commande des aiguilles en DCC
      • Les décodeurs sonores
  • Contact




  • Création d'un signal DCC avec un PC


    1. Généralités

    Il est possible de concevoir à partir d'un PC et pour un prix modique, un système permettant de générer un signal DCC et de piloter un réseau en gérant la rétrosignalisation.

    Cette approche consiste à générer le signal DCC directement sur l'interface parallèle du PC. Cette solution est très économique et fonctionne bien. Malheureusement, l'interface parallèle a disparu des PC récents (en particulier les portables) et cette approche est donc obsolète

    On peut éviter ainsi l'achat d'une onéreuse station de commande. Comme le système DCC est normalisé, il suffit d'acheter les décodeurs de locomotive chez n'importe quel fabricant et c'est le PC qui génère le signal DCC et controle le réseau.

    Le système réalisé est constitué d'un logiciel écrit en Visual Basic et d'une interface matérielle (booster) entre le connecteur parallèle du PC et les rails .On peut utiliser un ampli audio comme booster.

    Pour la rétrosignalisation, on peut utiliser les entrées numériques disponibles sur l'interface parallèle du PC ou bien un module du commerce qui dispose d'entrées numériques et/ou analogiques et qui se connecte en USB au PC.

    2. Création d'un signal DCC sur l'interface parallèle d'un PC avec Visual Basic

    Le programme que j'ai écrit, appelé "TCM", permet de générer les paquets nécessaires à la commande simultanée de plusieurs décodeurs de locomotives et pour chaque loco effectue les opérations suivantes:
    - réglage de la vitesse et du sens de marche des motrices
    - mise en route et arrêt des accessoires de la loco (phares, fumigène, sons), fonctions F0 à F4

    Le progamme TCM permet également de programmer l'adresse du décodeur. (habituellement, l'adresse programmée en usine pour un décodeur de locomotive est l'adresse 3).

    Les premiers tests ont été réalisés avec 2 décodeurs: un décodeur LENZ "Digital Plus" ref LE 1025A et un décodeur ZIMO ref MX64

    Puis une série de tests a été effectuée avec les décodeurs suivants:
    - un décodeur DCX80 3A destiné aux grandes échelles (O ou G) de la société CT Elektronik
    - un décodeur sonore GE70 DI qui permet de sonoriser une loco diesel (société CT Elektronik)
    - plusieurs décodeurs sonores Loksound V3.5 de la société ESU
    - plusieurs décodeurs sonores Loksound XL de la société ESU
    - un décodeur Quantum destiné aux grandes échelles (O ou G) de la société QSI
    - un décodeur sonore MX640 de la société ZIMO
    - un décodeur non sonorisé LGB

    Tous les décodeurs fonctionnent parfaitement à l'exception du décodeur MX640 de ZIMO qui présente un fonctionnement erratique non expliqué.

    Il faut noter que le système marche d'autant mieux que le processeur du PC est rapide.

    Le tableau ci-dessous donne les résultats obtenus avec trois PC de différentes générations.

    Processeur

    Système d'exploitation

    Résultats

    Intel Pentium 233 MHz
    Windows 98
    Fonctionnement correct, peu de paquets perdus
    Intel Celeron 633 MHz
    Windows 98
    Fonctionnement correct, peu de paquets perdus
    Intel Celeron 633 MHz
    Windows 2000
    Fonctionnement correct, peu de paquets perdus
    AMD Athlon xp2500 (2 GHz)
    Windows 2000, XP
    Fonctionnement impeccable
    Sempron 2800+ 1,6 GHz
    Windows XP
    Fonctionnement impeccable


    L'un des grands avantages du DCC est la possibilté de sonoriser les locomotives et j'ai maintenant installé des décodeurs sonores dans la plupart de mes locomotives.

    Les résultats obtenus sont très bons.

    Les haut-parleurs plaçés sous le réseau sont utilisés en complément pour les annonces en gare et pour actionner le klaxon de la loco diesel lorsqu'elle passe devant un détecteur.

    J'ai également réalisé un programme appelé CARTO-DCC (Commande Automatique de Trains par Ordinateur en DCC) qui permet d'automatiser la commande d'un réseau en DCC. Actuellement le programme permet de faire circuler ensemble quatre trains sur le réseau.

    3. Choix du logiciel: Freebasic et Visual Basic.

    Il n'est pas possible d'utiliser QBasic pour générer un signal DCC car le logiciel est trop lent et de plus QBasic ne marche qu'avec les anciennes versions de Windows (95 et 98).

    Mais il existe maintenant un compilateur rapide pour QBasic appelé FreeBasic qui est gratuit, rapide et compatible avec toutes les versions de Windows (95, 98, 2000 et XP).
    Le compilateur est vraiment très rapide. Il va plus vite que celui de Visual Basic et j'ai pu ainsi générer un signal DCC correct avec mon vieux PC à 233 MHz et Windows 98. En mode automatique où les itinéraires sont préprogrammés, celà marche très bien. Cependant, j'ai de grosses difficultés avec la commande par clavier: parfois les commandes ne sont pas prises en compte ou sont prises en compte avec retard. Je n'ai pas pu résoudre le problème. Par contre, la commande par la souris marche très bien.
    Il est donc difficilement envisageable d'utiliser Freebasic pour faire un TCO.
    Si vous voulez utiliser FreeBasic, je vous conseille une version avec éditeur qui permet d'éditer le programme dans une fenêtre Windows puis de le compiler avec FreeBasic.
    Vous pouvez utiliser FBIde qui est gratuit et que vous pouvez télécharger en cliquant ici.

    La meilleure solution est d'utiliser Visual Basic qui est très puissant et largement répandu.
    La plupart de mes programmes sont écrits en Visual Basic version 6 (VB6) qui était payant à l'époque et n'est plus commercialisé mais encote très utilisé
    Depuis la version 2005 de Visual Studio, Microsoft propose les Express Editions, des versions limitées mais gratuites de leurs produits, destinées essentiellement aux étudiants et qui suffisent largement à nos applications ferroviaires. La firme de Redmond ne déroge pas à la règle avec la version 2010 de la suite et propose ainsi un Visual Basic Express Edition 2010 que vous pouvez télécharger en cliquant ici.
    Vous trouverez un mode d'mploi de Visual Basic Express 2010 en cliquant ici.
    Pour certains programmes, je fournis le code source en Visual Basic 2010 pour que vous puissiez les modifier et les adapter à vos besoins.

    4. Génération des bits à "1" et "0" par le PC



    Dans un bit à "1", les deux alternances ont une durée de 58 us chacune. Ainsi, la durée d'un bit à "1" est de 116 us.

    Dans un bit à "0", les deux alternances doivent avoir une durée supérieure à 100 us.

    Les sous programmes écrits en Visual Basic pour générer les bit à "1" et "0" sont les suivants:

    1 'emission d'un 1'
    OUT 888, 2
    FOR j = 1 TO p1
    NEXT j
    OUT 888, 3
    FOR j = 1 TO p1
    NEXT j
    RETURN

    0 'emission d'un zero'
    OUT 888, 2
    FOR j = 1 TO p2
    NEXT j
    OUT 888, 3
    FOR j = 1 TO p2
    NEXT j
    RETURN

    Les paramètres p1 et p2 qui permettent d'ajuster la durée du bit dépendent de la fréquence du processeur du PC utilisé. Le programme TCM permet de les ajuster automatiquement en fonction du PC utilisé.

    Le principe utilisé est le suivant:

    Le programme compte le nombre n de bits à "1" émis pendant une durée dt de quelques secondes. On obtient ainsi la fréquence f=n/dt (la durée du bit est l'inverse de la fréquence). La fréquence f doit être proche de 8600 Hz.

    t = TIMER
    n = 0
    DO
    GOSUB 1
    n = n + 1
    LOOP UNTIL INKEY$ = CHR$(27)
    dt = TIMER - t
    PRINT "durée="; dt; "secondes"
    f = n / dt
    PRINT "fréquence="; f; "Hz"
    GOTO 10
    1 'emission d'un 1'
    OUT 888, 0
    FOR j = 1 TO p1
    NEXT j
    OUT 888, 1
    FOR j = 1 TO p1
    NEXT j
    RETURN
    10 END

    Le programme réalise des itérations successives jusqu'à ce que la fréquence obtenue soit voisine de 8600 Hz.

    A titre d'exemple, voici la séquence 00100001 visualisée à l'oscilloscope (avec WinOscillo) en sortie du booster:



    5. Réalisation d'un "booster"

    L'interface entre le PC et les rails (booster) a pour fonction de convertir le signal 0-5V en sortie du PC en un signal d'amplitude +/- 12V à +/-20V conformément à la norme DCC. De plus le booster doit pouvoir délivrer un courant de plusieurs ampères. On peut en réaliser un soi-même mais on peut aussi utiliser un ampli audio.

    5.1 Utilisation d'un ampli audio comme booster

    Suite à une question d'un modéliste, Dominique DURRENBERGER, qui demandait s'il était possible d'utiliser un ampli audio comme booster, j'ai ressorti un vieil ampli SONY (ref TA-AX2) de puissance 2x30W et ça marche très bien. L'ampli permet de sortir un courant de plus de 4 Ampères sous une tension de 16 Volts et en plus, il est protégé contre les court-circuits.
    Il faut insérer un atténuateur entre la sortie du signal sur le connecteur parallèle du PC et l'entrée de l'ampli audio.
    La figure ci-dessous montre le petit circuit à insérer.


    Le bouton de volume de l'ampli permet d'ajuster la tension du signal DCC.
    Par sécurité, pour éviter d'envoyer par erreur une tension trop élevée sur les rails, il faut procéder comme suit:
    - mettre le potentiomètre P à zéro
    - mettre le bouton de volume de l'ampli à fond
    - tourner le potentiomètre P jusqu'à obtenir la tension maximale désirée en sortie de l'ampli (par exemple 20V). La mesure de tension se fait avec un voltmètre réglé pour l'alternatif.

    La photo ci-dessous montre la station de commande DCC avec le PC, l'atténuateur et l'ampli audio SONY utilisé comme booster DCC.



    On peut trouver sans problème sur eBay ou dans les brocantes des vieux amplis qui peuvent convenir et on obtient alors un excellent booster à faible coût.

    5.2 Réalisation personnelle d'un booster

    Le schéma de base d'un booster simplifié est le suivant:



    Le signal 0-5V obtenu entre la sortie D0 et la masse du connecteur parallèle du PC est appliqué à l'entrée + d'un comparateur rapide LM 311.
    L'entrée 3 est à la tension de 1,6 Volt obtenue par le pont diviseur 10K/1,5K.
    Le signal +/- 12 volts obtenu en sortie du comparateur est appliqué à un montage push-pull constitué des transistors de puissance BD 243 et BD 244 qui doivent être montés sur des radiateurs.
    Sur la sortie qui alimente les rails, on obtient ainsi des impulsions symétriques d'amplitude 24 Vcc.

    Ce booster simplifié peut fournir un courant de 0,5 A environ en utilisant deux petites alimentations classiques du commerce de 0,8 A. C'est suffisant pour faire circuler une petite loco et pour faire la programmation des CV.

    Le deuxième schéma représenté ci-dessous peut fournir un courant de 3 A et inclut des protections pour éviter de détériorer le booster et les décodeurs.

    Un relais commandé par le transistor BC 337 se ferme lorsque D1 = 5V. Ceci permet de n'envoyer un signal sur les rails que lorsqu'un signal DCC est présent sur la sortie D0 ce qui évite la présence d'une tension continue sur les rails en absence de signal DCC.

    De plus, un fusible automatique de 3A protège le booster contre les court-circuits sur les rails.



    L'alimentation qui fournit les tensions +/- 17 Volts peut être réalisée à partir d'un transformateur qui doit délivrer une tension alternative de 12 Volts environ et un courant d'au moins 4 ampères, ce qui permet après redressement et filtrage d'obtenir des tensions continues de + 17 V et - 17 V.
    Le schéma réalisé est donné ci-dessous.



    J'utilise un transfo 220V-12V acheté 10 Euros chez Brico Dépôt dont les références sont données sur la photo ci-dessous.



    6. Description des programmes TCM en Visual Basic

    6.1 Programme TCM v1.1

    Le programme TCM V1.1 permet de commander un seul décodeur (une seule loco). IL effectue les opérations suivantes:
    - ajustement automatique de la fréquence des paquets DCC
    - commande des différentes fonctions d'un décodeur de locomotive: marche avant/arrière, réglage de la vitesse (28 crans), allumage et extinction des fonctions F0 (allumage des feux avant en marche avant et des feux arrière en marche arrière), F1 et F2
    - programmation de l'adresse du décodeur (entre 1 et 15)

    L'interface graphique est présentée ci-dessous.



    En mode exploitation, le clavier et la souris du PC sont utilisés pour envoyer les commandes au décodeur, ce qui permet d'ajuster la vitesse en marche avant et arrière et de commander la mise en marche et l'arrêt des fonctions F0, F1 et F2.

    Les commandes disponibles sont les suivantes:

    marche avant : touche A
    marche arrière : touche R
    accélération: click gauche de la souris
    décélération: click droit de la souris
    marche/arrêt fonction F0 : touche 0
    marche/arrêt fonction F1 : touche F1
    marche/arrêt fonction F2 : touche F2
    quitter le programme: touche Echap

    Remarque sur la compatibilité des décodeurs avec le programme.

    La fréquence du signal généré par le PC n'est pas très stable. Celà est du à la nature même de Windows qui est multitâches et génère des interruptions lorsque plusieurs tâches sont traitées simultanément.
    Il est donc préférable que les décodeurs soient assez tolérants aux erreurs de fréquence. Le décodeur ZIMO accepte une erreur de +/- 30 Hz par rapport à la fréquence nominale alors que les décodeurs LENZ et CT Elektronik acceptent une erreur de +/- 1000 Hz. Cependant, une fois la fréquence bien réglée, le décodeur ZIMO a toujours fonctionné corectement avec mon PC.

    6.2 Programme TCM v1.2

    Le programme TCM V1.2 permet de commander simultanément 4 locos sur le même circuit. IL effectue les opérations suivantes:
    - ajustement automatique de la fréquence des paquets DCC
    - commande des différentes fonctions de chaque décodeur de locomotive: marche avant/arrière, réglage de la vitesse, allumage et extinction des fonctions F0, F1 et F2
    - programmation de l'adresse des décodeurs

    L'interface graphique est présentée ci-dessous.



    En mode exploitation, le clavier et la souris du PC sont utilisés pour envoyer les commandes aux décodeurs, ce qui permet d'ajuster la vitesse en marche avant et arrière et de commander la mise en marche et l'arrêt des fonctions F0, F1 et F2.

    Les commandes disponibles sont les suivantes:

    Loco 1: touche B
    Loco 2: touche C
    Loco 3: touche D
    Loco 4: touche E
    marche avant : touche A
    marche arrière : touche R
    accélération: click gauche de la souris
    décélération: click droit de la souris
    marche/arrêt fonction F0 : touche 0
    marche/arrêt fonction F1 : touche F1
    marche/arrêt fonction F2 : touche F2
    quitter le programme: touche Echap

    6.3. Programme TCM en mode service

    Pour l'instant, le mode service permet seulement de programmer l'adresse des locos.

    Pour programmer la nouvelle adresse d'une loco, il faut cliquer sur le bouton "Entrée en mode service. Programmation de l'adresse loco." Vous devez entrer l'adresse actuelle de la loco ainsi que la nouvelle adresse puis cliquer sur "Programmation".

    Le programme TCM réalise les opérations suivantes:
    - envoi de paquets "F1 on" avec l'ancienne adresse (la fonction F1 est activée)
    - envoi de paquets "F1 off" avec l'ancienne adresse (la fonction F1 est désactivée)
    - envoi de paquets vides
    - envoi des paquets de service permettant de modifier l'adresse
    - coupure brève du signal
    - envoi de paquets "F1 on" avec la nouvelle adresse (la fonction F1 est activée ce qui permet de controler la prise en compte de la nouvelle adresse)
    - envoi de paquets "F1 off" avec la nouvelle adresse (la fonction F1 est désactivée)
    - coupure du signal et envoi du message "Programmation terminée"

    6.4 Téléchargement du programme TCM v1.1

    Vous pouvez télécharger ci-dessous le programme TCM v1.1.

    Le logiciel étant écrit en vb6, vous devez posséder une série de DLL et autres TLB, OCX qui sont nécessaires au bon fonctionnement du programme TCM. En voici la liste :

    MSVBVM60.DLL
    OLEAUT32.DLL
    OLEPRO32.DLL
    ASYCFILT.DLL
    STDOLE2.TLB
    COMCAT.DLL
    VB6FR.DLL
    nslock15vb6.ocx
    inpout32.dll
    LevelM.ocx

    Si vous ne possédez l'ensemble de ces fichiers sur votre PC, vous devez télécharger le dossier "VBDLL.exe" (1,36 Mo). Ce dossier zippé auto-extractible installera les logiciels ci-dessus dans le dossier Windows\system de votre PC.

    Télécharger "VBDLL.exe"

    Vous pouvez maintenant télécharger le dossier "tcm.zip" qui contient le programme TCMV1.1.exe ainsi qu'un mode d'emploi et des fichiers .txt qui sont nécessaires pour l'exécution du programme.

    Télécharger "tcm.zip"

    Après avoir dézippé tous les fichiers du dossier "tcm.zip" dans un même dossier appelé par exemple TCM, cliquez sur TCMexe pour lancer le programme. Je vous conseille cependant de lire le mode d'emploi avant de lancer le programme

    Page suivante


    Page précédente