• 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




  • Commande d'un réseau en DCC avec un module ARDUINO

    Réalisation d'une centrale DCC pilotée par ordinateur ou par un régulateur filaire ou radio


    Menu

    1.Généralités

    2. Schéma de la centrale

    3. Régulateur

    4. Unité centrale

    5. Alimentation

    6.. Description du mode manuel sans ordinateur avec commande par régulateur

    7. Description du mode manuel sans ordinateur avec commande d'une loco par radio.

    8 Description du mode automatique sans ordinateur .

    9 Description du mode de commande du réseau avec ordinateur .

    10 Description du mode de commande du réseau avec ordinateur

    11. Commande du réseau par la voix

    1 Généralités



    Cette centrale utilise un ARDUINO MEGA 2560 qui dispose d'une mémoire Flash de 256K et qui offre 54 entrées/sorties numériques et 16 entrées analogiques, ce qui est suffisant pour un réseau de taille moyenne.

    La centrale réalisée offre 6 modes de fonctionnement:
    - mode manuel sans ordinateur avec commande d'une loco par un boitier régulateur connecté par un cable à la centrale. Le boitier commande également les accessoires en utilisant l'adresse 1.
    - mode manuel sans ordinateur avec commande d'une loco par radio avec un E/R à 41 MHz Le récepteur radio à 41 MHz est connecté à un ARDUINO UNO qui traite les 2 canaux et envoie les signaux à l'ARDUINO MEGA .
    - mode manuel sans ordinateur avec commande vocale d'une loco Il est possible de commander une loco par la voix en utilisant un module de reconnaissance vocale EasyVR et un micro HF. Le module EasyVR assure aussi la sonorisation du réseau (annonces en gare, sonnerie du passage à nivau, etc...) La portée dépend du micro HF utilisé et peut dépasser 50 mètres..
    - mode automatique sans ordinateur. Dans ce mode de fonctionnement, les détecteurs de passage sont connectés à l'ARDUINO qui permet de gérer jusqu'à 4 locos en automatique et une autre en manuel avec la commande radio.
    - mode manuel avec ordinateur. L'intérêt de ce mode est de pouvoir utiliser le logiciel JMRI et la commande par smartphone ou tablette que j'utilisais déjà avec le SPROG.
    - mode automatique avec ordinateur. Dans ce mode, c'est le programme Excel et Visual Basic de l'ordinateur qui gére les trajets et l'ARDUINO se contente de générer le signal DCC et d'envoyer au PC les signaux de rétrosignalisation. Il est possible d'avoir 4 locos en fonctionnement simultané.

    Actuellement, j'ai testé ces 6 modes de fonctionnement et tout semble marcher. L'ARDUINO est vraiment intéressant, vu son prix

    2 Schéma de la centrale



    La centrale DCC est constituée des éléments suivants:
    - un boîtier de commande (régulateur)
    - une unité centrale
    - une radiocommande
    - un booster réalisé avec un module LMD18200
    .

    Le schéma de la centrale est donné sur la figure ci-dessous.



    3 Régulateur



    3.1 Régulateur manuel

    Le boitier de commande (appelé généralement régulateur) est relié par un cable en nappe à l'ARDUINO. Ses fonctions sont les suivantes:
    :
    - choix de l'adresse
    - choix du mode de pilotage du réseau
    - commande de la vitesse et du sens de marche
    - commande des fonctions des décodeurs de locomotives (F0 à F4)
    - commande des accessoires

    Le régulateur actuellement réalisé est constitué des composants suivants:

    - un potentiomètre pour le choix de l'adresse (entre 1 et 9).connecté à une entrée analogique de l'ARDUINO MEGA
    - un potentiomètre pour la commande de la vitesse et du sens de marche connecté à une entrée analogique de l'ARDUINO MEGA
    - un module rotacteur DFRobot SEN0156 à 12 positions pour le choix du mode de fonctionnement. La sortie analogique, proportionnelle à la position choisie, est.connectée à une entrée analogique de l'ARDUINO MEGA
    - un clavier à 5 touches de DFRobot (commande des fonctions F0 à F4) relié à une entrée analogique de l'ARDUINO MEGA

    Vous pouvez voir ci-dessous une photo du régulateur réalisé.


    3.2 Régulateur sans fil

    Actuellement, j'utilise une radiocommande deux canaux à 41 MHz que je possédais déjà. Ce système marche bien mais est très limité en fonctionnalités (vitesse, sens de marche, 2 fonctions). Il faudra trouver autre chose dans le futur

    Vous pouvez voir ci-dessous une photo de l'émetteur



    4 Unité centrale



    L'unité centrale installée dans un vieux boîtier de magnétoscope, est constituée des composants suivants:
    - un module ARDUINO MEGA 2560
    - un afficheur 4 lignes de 20 caractères
    - un récepteur de radiocommande
    - un module de reconnaissance vocale EasyVR connecté à un ARDUINO UNO
    - un booster

    4.1 Module ARDUINO MEGA 2560

    Le module ARDUINO MEGA réalise les actions suivantes:
    - génération des trames DCC
    - gestion de l'interface avec le régulateur
    - gestion de l'interface avec le PC (en USB)
    - gestion de l'interface avec les modules de rétrosignalisation
    - commande des accessoires
    - gestion de l'interface avec l'afficheur
    - gestion de l'interface avec l'ARDUINO UNO pour la radiocommande
    - gestion de l'interface avec le deuxième ARDUINO UNO pour la reconnaissance vocale

    L'affectation des ports est la suivante:


    Voici une photo de l'ARDUINO MEGA dans l'unité centrale.


    Et voici une photo de la station de commande.


    4.2 Afficheur

    L'afficheur est un module SainSmart à LED rétroéclairé de 4 lignes de 20 caractères acheté ici.
    Il est connecté sur les broches SDA et SCL de l'ARDUINO MEGA.
    Vous pouvez télécharger la librairie pour ce module en cliquant ici.

    Voici une photo de l'afficheur installé sur la face avant de l'unité centrale.


    Les instructions à placer en début du programme ARDUINO sont les suivantes:
    #include
    //Addr: 0x3F, 20 chars & 4 lines
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

    Dans void setup(), placer les instructions:
    lcd.begin(20,4);
    lcd.backlight(); // allume l'éclairage

    Les instructions pour écrire sur l'écran sont:
    lcd.setCursor(9, 0); // place le curseur au caractère 9 de la ligne 0
    lcd.print("manuel"); // écrit sur l'écran "manuel" à partir du caractère 10

    4.3 Récepteur de radiocommande à 41 MHz

    Le canal 2 commande la vitesse et le sens de marche et le canal 1 commande les fonctions F1 (mise en marche de la sonorisation) et F2 (activation du sifflet ou du klaxon).
    Le récepteur est connecté à un module ARDUINO UNO qui décode les signaux des deux canaux et transmet les informations de vitesse, sens de marche et fonctions au module ARDUINO MEGA qui génère le signal DCC. La liaison entre les deux ARDUINO utilise l'interface série (broche TX sur l'UNO et RX sur le MEGA.
    Vous pouvez télécharger le programme de l'ARDUINO UNO intitulé " radio_commande_v2" en cliquant ici.

    La photo ci-dessous montre le récepteur radio et l'ARDUINO UNO dans l'unité centrale.



    4.4 Booster DCC

    Le booster est un cirtcuit LMD18200
    L'entrée GND est reliée à la masse de l'ARDUINO MEGA
    L'entrée PWM est reliée au +5V
    L'entrée DIR est reliée à la sortie DCC de l'ARDUINO ( pin 13)
    L'entrée BRAKE est reliée à la masse.

    Le signal DCC amplifié est disponible sur les sorties OUT1 et OUT2
    L'amplitude du signal DCC dépend de la tension d'alimentation continue appliqué sur l'entrée V+ du module. Avec une alim de 16 Volts, on obtient un signal DCC de 16 Volts efficaces environ. qui est suffisant pour faire fonctionner un réseau DCC. .

    5 Alimentation



    J'utilise une alimentation secteur qui délivre une tension de 15 Volts continu et qui est connectée à l'ARDUINO et au booster. Un régulateur 7806 fournit également une tension de 6 volts pour les servos. Le courant consommé à vide sans loco est de 170 mA sans servo et de 250 mA avec un servo en marche.

    6 Description du mode manuel sans ordinateur avec commande par régulateur



    Ce mode permet de piloter une loco en manuel avec le régulateur
    La loco doit avoir une adresse comprise entre 3 et 9.
    L'adresse 1 est affectée à la commande des accessoires avec l'allocation suivante des touches de fonction:
    - touche F0: commande du servo qui actionne les barrières du passage à niveau
    - touche F1: commande de l'aiguille N° 1
    - touche F2: commande de l'aiguille N° 2
    - touche F3: commande de l'aiguille N° 3
    - touche F4: commande de l'aiguille N° 4

    Si l'ARDUINO MEGA est connecté à l'ordinateur, ce mode permet aussi d'enregistrer le trajet dans un tableau EXCEL. Ce tableau pourra ensuite être transféré dans le programme de l'ARDUINO pour être exécuté en mode automatique.

    7 Description du mode manuel sans ordinateur avec commande d'une loco par radio.



    L'adresse est sélectionnée par le potentiomètre du régulateur manuel.
    La radiocommande à 41 MHz permet les commandes suivantes:
    - le canal 2 commande la vitesse et le sens de marche
    - le canal 1 commande les fonctions F1 (mise en marche de la sonorisation) et F2 (activation du sifflet ou du klaxon).

    8 Description du mode automatique sans ordinateur



    Dans ce mode de fonctionnement, les détecteurs de passage sont connectés à l'ARDUINO qui permet de gérer une ou deux locos en automatique et une autre en manuel avec la commande radio.
    En mode automatique, l'ARDUINO commande l'exécution d'un trajet constitué par une suite de lignes de commandes qui sont exécutées séquentiellement.
    Une ligne de commande est constituée par les paramètres suivants:
    - le numéro de la ligne de commande
    - l'adresse de la loco
    - le sens de marche
    - la vitesse
    - les fonctions à exécuter (F0 à F8)
    - les accessoires à commander (aiguillages, feux de signalisation, ...)
    - la durée de la ligne de commande entre 1 et 99 secondes.
    La ligne de commande sera exécutée pendant la durée indiquée puis le programme exécutera la ligne de commande suivante jusqu'à la fin du programme.
    La ligne de commande peut aussi se terminer par la réception d'un signal venant d'un détecteur de passage. Lorsque le signal est reçu, le programme passe à la ligne de commande suivante. Par exemple, la détection de passage à l'entrée en gare provoque l'arrêt du train (vitesse 0). Les durées de valeur supérieures à 100 sont utilisées pour la rétrosignalisation suivant la règle suivante: durée = 100 + N° du détecteur de passage (ou du canton).
    Par exemple, une ligne de commande de durée 102 signifie que la ligne de commande sera exécutée jusqu'à ce que la loco passe devant le détecteur N°2. Lorsque le détecteur 2 est activé, le programme exécute la ligne de commande suivante.
    Pour les adresses supérieures à 1, l'affectation des fonctions est la suivante:
    - F0: commande de l'allumage des phares
    - F1: mise en marche de la sonorisation
    - F2: commande du sifflet ou klaxon
    - F3: mise en marche du fumigène
    - F4: commande du dételeur automatique
    La commande des accessoires est effectuée par l'adresse 1 avec l'allocation suivante:
    - F8: commande du servomoteur qui actionne les barrière du passage à niveau
    - F4: commande de l'aiguille N° 1
    - F5: commande de l'aiguille N° 2
    - F6: commande de l'aiguille N° 3

    9 Description du mode de commande du réseau avec ordinateur



    Dans ce mode de fonctionnement, l'ARDUINO est utilisé pour générer les trames DCC et gérer la rétrosignalisation. C'est le logiciel installé sur le PC qui génère les commandes. La liaison entre le PC et l'ARDUINO s'effectue par le cable USB L'ARDUINO utilise la communication série (Software Serial Library) pour communiquer avec le PC.

    9.1 Mode manuel

    9.1.1 Fonctionnalités

    L'intérêt de ce mode est de pouvoir utiliser le logiciel JMRI DecoderPro.
    . En effet, JMRI DecoderPro est un logiciel libre qui permet de modifier les CV des décodeurs DCC et de piloter une loco avec un régulateur affiché sur l'écran du PC ou encore en WiFi avec un smartphone ou une tablette avec l'application "Engine Driver".

    DecoderPro est compatible avec la plupart des centrales du commerce et en particulier avec le SPROG.
    J'ai décidé d'utiliser les commandes du module SPROG pour piloter mon ARDUINO.
    Il faut noter que je n'utilise DecoderPro avec l'ARDUINO que pour piloter une loco et pas pour programmer les CV. Je continue à utiliser le SPROG pour la programmation des CV.

    Ainsi, dans DecoderPro, il suffit de sélectionner le SPROG dans la liste des centrales et de choisir comme port COM celui de l'ARDUINO pour pouvoir piloter une loco avec l'ARDUINO..

    9.1.2 Commandes envoyées par DecoderPro sur le port série (port COM virtuel de l'ARDUINO)

    Les commandes sont les suivantes:
    - Adresse: lettre A + espace + adresse en décimal +point
    Exemple de commande envoyée pour l'adresse 8: "A 8."
    - Vitesse et sens de marche
    commande envoyée pour la marche avant: ">vitesse."
    commande envoyée pour la marche arrière: " Exemple vitesse 8 et marche avant: ">8."

    - Commande des fonctions
    C'est un peu plus compliqué
    DecoderPro envoie la lettre O suivie de 3 octets codés en hexadécimal:
    - l'octet d'adresse
    - l'octet de commande des fonctions
    - l'octet de controle
    Par exemple pour tranmettre la fonction F1 à l'adresse 8, la séquence suivante est envoyée: "O 08 81 89"

    9.1.3 Réception et traitement des commandes par l'ARDUINO

    L'ARDUINO reçoit les commandes envoyées par DecoderPro sur l'interface série et transmet le signal DCC sur la sortie 13.

    L'ARDUINO traite les octets reçus en ASCII . Par exemple, la valeur de l'octet reçu correspondant à l'envoi du caractère A a pour valeur 65. Pour les valeurs décimales, si la valeur envoyée est N (entre 0 et 9), la valeur de l'octet reçu par l'ARDUINO a pour valeur N + 48.

    Pour la commande des accessoires, l'ARDUINO peut gérer jusqu'à 63 décodeurs d'accessoires
    .La règle utilisée est la suivante:
    - les accessoires reliés directement à l'ARDUINO sont commandés par l'adresse 1 avec les numéros 1 à 4 avec l'allocation suivante: les numéros 1 à 3 commandent les aiguilles 1 à 3 et le servo est commandé par le numéro 4.
    - les accessoires commandés par un décodeur d'accessoires DCC doivent utiliser des numéros supérieurs à 4.

    9.1.4 Paramétrage de JMRI DecoderPro

    Lancer DecoderPro et choisir le SPROG comme centrale et indiquer comme port COM celui de l'ARDUINO.
    Pour utiliser le régulateur, cliquer sur Actions puis sur NewThrottle.
    Après avoir indiqué l'adresse de la locomotive, vous pouvez la piloter et utiliser les fonctions F0 à F8.
    Pour commander les accessoires, cliquer sur Actions puis sur Turnout Control et indiquer le numéro de l'accessoire à commander.
    Pour utiliser la commande par smartphone, cliquer sur Actions puis sur Start WiThrottle Server. Sur le smartphone, ouvrir l'application "Engine Driver".

    9.1.5 Enregistrement d'un trajet

    Il est possible d'enregistrer avec DecoderPro un trajet qui sera ensuite stocké sur l'ordinateur sous forme d'une feuille d'un classeur Excel. La procédure est décrite dans la rubrique logiciels. Le trajet peut ensuite être exécuté en automatique par le logiciel CARTO-DCC installé sur l'ordinateur.

    9.2 Mode automatique

    Dans ce mode, c'est le programme CARTO-DCC installé sur le PC qui gère les trajets. Les commandes envoyées par CARTO-DCC sur le port série vers l'ARDUINO sont constituées d'une suite d'octets.

    Pour la commande des locos, les octets envoyés sont:
    caractère "C" (octet de valeur 67)
    adresse dizaines
    adresse unités
    caractère ">" si MAV ou "<" si MAR
    vitesse dizaines
    vitesse unités
    fonctions du groupe 1 dizaines
    fonctions du groupe 1 unités
    fonctions du groupe 2 dizaines
    fonctions du groupe 2 unités

    Pour la commande des accessoires, les octets envoyés sont:
    caractère "O"
    octet d'adresse de l'accessoire en hexa
    octet de commande de l'accessoire en hexa
    octet de controle en hexa

    Pour la rétrosignalisation, dans le sens ARDUINO vers PC, l'ARDUINO envoie au PC un nombre appelé retroc constitué de deux octets indiquant l'état des détecteurs d'occupation.
    Ce nombre est calculé comme suit:
    retroc = retro[1] + 2^ retro[2] +4^retro[3]+8^retro[4]
    avec retro[i]=1 si le canton est occupé ou 0 si le canton est libre.

    10. Description et téléchargement des logiciels



    10.1 Logiciel pour l'ARDUINO MEGA

    Ce logiciel gère les modes de fonctionnement décrits ci-dessus avec les restrictions suivantes
    - mode manuel sans PC : commande d'une seule loco d'adresse comprise entre 3 et 99 avec les fonctions F0 à F4.
    L'adresse 1 est réservée à la commande des accessoires (3 aiguilles et un servo)
    - mode automatique sans PC: commande simultanée de deux locomotives en automatique et d'une loco en manuel avec les restrictions ci-dessus.Il est possible de céer jusqu'à 8 trajets différents.L'adresse 1 est réservée à la commande des accessoires (3 aiguilles et un servo)
    - mode manuel avec PC : commande d'une seule loco d'adresse comprise entre 3 et 99 avec les fonctions F0 à F8 et commande des accessoires ( 4 accessoires connectés à l'ARDUINO et jusqu'à 200 accessoires reliés à des décodeurs d'accessoires DCC)
    - mode automatique avec PC: commande simultanée de 4 locos et des accessoires avec le logiciel CARTO-DCC décrit ci-après.

    Vous pouvez télécharger ce logiciel intitulé ARDUINO_MEGA_DCC_V1 en cliquant ici.

    10.2 Logiciels installés sur le PC

    Ces logiciels sont constitués de classeurs EXCEL incluant des macros écrites avec le language VBA (Visual Basic for Applications). VBA est fourni avec Excel. Pour gérer l'accès au port COM virtuel de l'ARDUINO, les macros VBA utilisent le composant NETComm.

    Il existe deux versions de ce composant: NetCommOCX pour Windows XP et NetcommW7 pour Windows Vista et 7.

    J'ai développé deux logiciels pour la commande du réseau avec un ARDUINO:
    - un logiciel intitulé ETA_DCC (Enregistrement d'un Trajet ARDUINO en DCC) qui permet d'enregistrer un trajet en mode manuel et aussi de créer le programme pour l'ARDUINO en mode automatique sans PC.En effet, la modification d'un programme ARDUINO pour piloter une loco en automatique est une opération fastidieuse car il faut écrire de nombreuses lignes de code pour créer un nouveau trajet.Il vaut mieux laisser Excel s'en charger.
    - un logiciel intitulé CARTO-DCC (Commande Automatique d'un Réseau de Trains par Ordinateur) qui permet de commander en automatique jusqu'à 4 trains simultanément.

    10.2.1 ETA-DCC

    Pour créer un trajet, l'ordinateur doit être connecté à l'ARDUINO. Il suffit de piloter un train avec le régulateur ou la radiocommande et l'ordinateur enregistre automatiquement dans une feuille Excel les mouvements du train et crée le trajet.
    Les tableaux Excel sont créés automatiquement par l'ordinateur en mode "enregistrement" mais il est tout à fait possible de les modifier par la suite.
    Ensuite, une macro Excel écrite en VBA crée le programme qui sera téléchargé dans l'ARDUINO.
    Il est possible de créer un itinéraire avec deux trajets, c'est à dire d'avoir deux trains en pilotage automatique sans l'ordinateur, plus un trosième en pilotage manuel par la radiocommande. La figure ci-dessous montre les donneées d'un tableau Excel correspondant à un trajet.


    Chaque ligne du tableau correspond à une commande qui sera exécutée pendant un temps indiqué dans la colonne intitulée durée.La liste des colonnes est la suivante::
    colonne A: adresse loco (l'adresse 1 est affectée à la commande des accessoires)
    colonne B: sens de marche. ma=1 correspond à la marche avant et ma=0 correspond à la marche arrière
    colonne C: vitesse entre 0 et 99
    colonnes D à H: fonctions F0 à F4
    colonne I: durée de la séquence entre 1 et 99 secondes. Les valeurs supérieures à 100 correspondent à l'attente du signal d'un détecteur de passage ou d'occupation de canton

    La macro VBA lit les données du tableau Excel et génère le programme pour l'ARDUINO

    Vous pouvez télécharger ce programme ETA-DCC .inclant les composants Netcomm.en cliquant ici.

    Le dossier comprend
    - le classeur Excel intitulé "enregistrement.xls" avec la macro VBA.
    - les composants Netcomm à installer pour accéder au port COM de l'ARDUINO
    - le programme pour l'ARDUINO MEGA intitulé "arduino_dcc.ino"
    - Un mode d'emploi succint dans le dossier "mode d'emploi"

    10.2.2 CARTO-DCC

    Ce programme écrit en Visual Basic permet de piloter un réseau de trains miniatures par ordinateur en DCC. Il est décrit ici.
    J'ai créé une version pour l'ARDUINO basée sur un classeur Excel avec une macro écrite en VBA. Ce logiciel s'utilise conjointement avec JMRI DecoderPro.

    Ce logiciel se distingue des autres logiciels de pilotage de réseau en ce sens qu'il n'y a pas d'interface graphique avec création d'un dessin de réseau.
    Pour créer un trajet, il suffit d'utiliser DecoderPro et de piloter un train avec un smartphone ou une tablette. L'ordinateur enregistre automatiquement les mouvements du train et crée un trajet qui peut ensuite être reproduit automatiquement par l'ordinateur avec CARTO-DCC. La prise en main du logiciel est ainsi très rapide. Il suffit de s'habituer à l'utilisation du smartphone et de Engine Driver.
    Il est possible de se passer du smartphone en utilisant le régulateur de DecoderPro mais cette solution ne permet pas de suivre les trains sur le réseau, ce qui n'est pas pratique.

    Les trajets créés automatiquement par l'ordinateur sont associés à des itinéraires. Un trajet correspond à la circulation d'un ou deux trains. Un itinéraire peut contenir jusqu'à 4 trajets. Il est donc possible de faire circuler simultanément jusqu'à 8 trains sur le réseau.

    Les itinéraires sont décrits dans des tableaux Excel.
    La figure ci-dessous montre les donneées d'un tableau Excel correspondant à un trajet.


    Chaque ligne du tableau correspond à une commande qui sera exécutée pendant un temps indiqué dans la colonne intitulée durée.La liste des colonnes est la suivante::
    colonne A: adresse loco
    colonne B: sens de marche. ma=1 correspond à la marche avant et ma=0 correspond à la marche arrière
    colonne C: vitesse entre 0 et 27
    colonnes D à L: fonctions F0 à F8
    colonne M: durée de la séquence entre 1 et 99 secondes. Les valeurs supérieures à 100 correspondent à l'attente du signal d'un détecteur de passage ou d'occupation de canton
    colonne N: numéro de l'aiguillage à commander
    colonne O: commande la position de l'aiguille (0 pour direct et 1 pour dévié)
    Le numéro zéro de la colonne N est réservé pour la sonorisation du réseau

    La macro VBA lit les données des feuilles Excel sélectionnées pour un itinéraire et exécute les commandes correspondantes.

    Vous pouvez télécharger le progamme CARTO-DCC en cliquant ici.

    Un mode d'emploi est fourni.

    11. Commande du réseau par la voix



    11.1 Description du module Easy VR

    Il est possible de commander un train par la voix en utilisant le module de reconnaissance vocale Easy VR.
    Ce module peut reconnaître 32 mots ou expressions de commande que l'utilisateur enregistre au préalable, dans n'importe quelle langue. Ces commandes enregistrées sont de type mono-locuteur (le module ne réagit qu'à l'ordre de la personne qui a enregistré la commande).
    EasyVR peut être connecté à toute carte disposant d'une interface UART et en particulier à un module ARDUINO.
    Voici une photo du module.


    Le module EasyVR dispose également de 26 commandes pré-enregistrées pour chaque langage supporté. Ces expressions sont reconnues quelle que soit la personne qui les prononce. Ces expressions sont: robot, action, bouge, tourne, cours, regarde, attaque, arrête, salut, à gauche, à droite, vers le haut, vers le bas, en avant, en arrière, zéro, un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix)

    Vous trouverez une description de ce module en cliquant ici.
    Sur ce site, on peut télécharger les logiciels et le mode d'emploi (en Anglais).

    On peut aussi trouver un excellent mode d'emploi en Français sur le site de Le Dan-TECH

    J'ai connecté le module Easy VR à une carte ARDUINO UNO qui communique avec le module ARDUINO MEGA par une liaison série ( TX et RX sur l'ARDUINO UNO et RX2 et TX2 sur l'ARDUINO MEGA).

    J'utilise aussi ce module pour la sonorisation du réseau. En effet, il est possible d'enregistrer des sons et le module dispose d'une sortie haut-parleur. J'ai plaçé un haut-parleur dans la gare pour générer les annonces de départ de trains et un haut-parleur près du passage à niveau pour générer la sonnerie qui précède l'arrivée d'un train.

    11.2 Programmes ARDUINO

    Les mots utilisés pour la commande d'une loco sont divisés en trois groupes Voici les deux premiers groupes:


    Lorsqu'un mot est reconnu, le programme de l'ARDUINO UNO envoie deux octets. Le premier octet est le numéro du groupe et le deuxième octet est l'index du mot dans le groupe.
    A partir de ces deux octets, le programme de l'ARDUINO MEGA génère la commande à envoyer à la loco.
    L'ARDUINO MEGA envoie à l'ARDUINO UNO (TX2 vers RX) un octet qui a pour valeur le numéro du groupe.
    Les valeurs 5 à 7 sont utilisés pour générer les sons stockés sur le module Easy VR.

    11.2.1 programme installé sur l'ARDUINO UNO

    Le programme installé sur l'ARDUINO UNO est donné ci-dessous.

    #if defined(ARDUINO) && ARDUINO >= 100
    #include "Arduino.h"
    #include "SoftwareSerial.h"
    SoftwareSerial port(12,13);
    #else // Arduino 0022 - use modified NewSoftSerial
    #include "WProgram.h"
    #include "NewSoftSerial.h"
    NewSoftSerial port(12,13);
    #endif

    #include "EasyVR.h"
    EasyVR easyvr(port);

    EasyVRBridge bridge;//group et idx seront utilisés pour communiquer avec le module
    int8_t group, idx; // group = valeur passée au module et idx = valeur de retour du moduleint erreur = 7; //LED ROUGE d'erreur
    byte octet;

    void setup()
    {
    // bridge mode?
    if (bridge.check())
    {
    cli(); //Désactivation des interruptions sur Arduino
    bridge.loop(0, 1, 12, 13); //Configuration du mode bridge - liaison série logicielle port 12 et 13
    }
    // configuration liaison série
    Serial.begin(9600);
    port.begin(9600);

    if (!easyvr.detect())
    {
    Serial.println("EasyVR non détecté!");
    for (;;);
    }
    easyvr.setPinOutput(EasyVR::IO1, LOW);
    Serial.println("EasyVR detecté!");
    easyvr.setTimeout(5); //Conf. du module timeout = 5s
    easyvr.setLanguage(5); // langue francaise
    group = 1; // Référence au groupe prédéfini
    }

    void loop()
    {
    easyvr.setPinOutput(EasyVR::IO1, HIGH); // Led sur module allumée
    easyvr.recognizeCommand(group); //Procédure de reconnaissance lancée, le module reçoit la trame de définition du groupe de mot
    do
    {
    // Réception de l'octet en provenance de l'ARDUINO MEGA
    while (Serial.available() > 0)
    {
    octet = Serial.read();
    }
    group = octet - 48 ;
    }
    while (!easyvr.hasFinished()); // true dès réception d'une trame réponse du module
    easyvr.setPinOutput(EasyVR::IO1, LOW); // LED sur Module éteinte
    idx = easyvr.getCommand(); //Récupération de l'index fournit par le module quand il y a détection
    if (idx >= 0)
    {
    // transmission des octets à l'ARDUINO MEGA
    Serial.print(group);
    Serial.print(idx);
    }
    // lecture des sons stockés sur le module Easy VR
    if (group==5) easyvr.playSound(1, EasyVR::VOL_FULL);;
    if (group==6) easyvr.playSound(2, EasyVR::VOL_FULL);;
    if (group==7) easyvr.playSound(3, EasyVR::VOL_FULL);;
    }


    11.2.2 Programme installé sur l'ARDUINO MEGA

    Vous pouvez voir le traitement des commandes reçues de l'ARDUINO UNO dans le mode 10 du programme ARDUINO_DCC_V1 décrit ci-dessus.et que vous pouvez télécharger en cliquant ici.



    Page suivante


    Page précédente


    Retour page d'accueil