• 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




  • Quelques exemples de pilotage d'un réseau avec une carte VM 110 et Visual Basic.


    Ces exemples ont pour but de montrer comment on peut concevoir avec Visual Basic un programme de pilotage d'un réseau en utilisant les cartes d'interface USB VM 110 de Velleman.
    L'objectif principal de la commande par PC est d'automatiser la commande du réseau et deux exemples sont donnés mais il est aussi indispensable de pouvoir piloter le réseau manuellement avec un TCO, ce qui peut être fait par le PC avec une interface graphique qui représente le réseau et qui comporte des boutons de commande. Un exemple de conception d'un TCO logiciel est aussi donné.

    1. Commande automatique du réseau

    1.1 Premier exemple

    1.1.1 Présentation du réseau

    Il s'agit de commander deux trains circulant sur le même circuit avec arrêt en gare. Le réseau utilise 2 alims PWM et 2 détecteurs de passage à barrière infra-rouge comme indiqué sur le schéma ci-dessous:



    Le principe de fonctionnement est le suivant.

    On suppose que les conditions initiales soient celles représentées sur le schéma. Le train A est en gare et le train B est positionné entre le train A et le détecteur D2. Les trains circulent dans le sens des aiguilles d'une montre.
    On va d'abord envoyer l'alim 2 (tension=Vmax). Le train B démarre. Le passage de B devant le détecteur D2 provoque le démarrage progressif du train A (envoi de l'alim 1 de 0 volt à Vmax). Le passage du train B devant le détecteur D1 provoque son arrêt en gare (coupure progressive de l'alim 1 entre Vmax et 0). Le passage du train A devant le détecteur D2 va provoquer le départ du train B et ainsi de suite...

    Les entrées/sorties utilisées de la carte sont les suivantes:
    sortie analogique PWM1 qui commande l'alim 1
    sortie analogique PWM2 qui commande l'alim 2
    entrée numérique I1 qui reçoit le signal du détecteur 1
    entrée numérique I2 qui reçoit le signal du détecteur 2

    1.1.2 Programme Visual Basic

    Le programme écrit en Visual Basic est le suivant:

    'ouverture du lien de communication avec la carte d'adresse 0'
    OpenDevice (0)

    'envoi alim 2'
    Vmax = 100
    OutputAnalogChannel 2, Vmax

    1
    'interruption du programme par la touche Echap'
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If

    'détection de passage devant le détecteur 2'
    10
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If
    If ReadDigitalChannel(2) = 0 Then
    GoTo 10
    End If

    'départ progressif du train en gare,envoi de l'alim 1 '
    Vmin = 0
    Vmax = 100
    For n = Vmin To Vmax Step 2
    OutputAnalogChannel 1, n
    Limit = Timer + 0.1
    Do Until Timer >= Limit: Loop
    Next n

    'détection de passage devant le détecteur 1'
    20
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If
    If ReadDigitalChannel(1) = 0 Then
    GoTo 20
    End If

    'arrêt progressif du train en gare,coupure de l'alim 1 '
    Vmin = 0
    Vmax = 100
    For n = Vmax To Vmin Step -2
    OutputAnalogChannel 1, n
    Limit = Timer + 0.1
    Do Until Timer >= Limit: Loop
    Next n

    GoTo 1

    2
    'arrêt du programme,fermeture du lien de communication avec la carte d'adresse 0'
    ClearAllDigital
    ClearAllAnalog
    CloseDevice

    1.2. Deuxième exemple

    1.2.1 Présentation du réseau

    Le schéma du réseau est le suivant:



    Ce programme permet de commander trois trains circulant sur le même circuit avec arrêt en gare (il y a toujours un train à l'arrêt et deux qui circulent) . Le réseau utilise 2 alims PWM , 2 aiguilles et 2 détecteurs de passage à barrière infra-rouge. Les 2 voies de la gare sont alimentées par l'alim 1 par l'intermédiaire d'un relais.
    Le choix de la voie alimentée est effectué par la commande digitale O1.
    O1 = 0 ==> voie 1 alimentée et aiguilles en position directe
    O1 = 1 ==> voie 2 alimentée et aiguilles en position déviée

    Les entrées/sorties utilisées de la carte sont les suivantes:
    sortie analogique PWM1 qui commande l'alim 1
    sortie analogique PWM2 qui commande l'alim 2
    sortie numérique O1 qui commande le choix de la voie alimentée
    entrée numérique I1 qui reçoit le signal du détecteur 1
    entrée numérique I2 qui reçoit le signal du détecteur 2

    Les conditions initiales sont les suivantes:
    train A en gare voie 1
    train B en gare voie 2
    train C entre la gare et le détecteur D2

    Au lancement du programme, l'alim 2 fournit une tension sur la voie et le train C démarre.
    Puis le déroulement de la séquence est le suivant:
    passage du train C devant D2 ==> tension alim 1 sur voie 1 ==> départ du train A en gare voie 1
    passage du train C devant D1 ==> coupure alim 1 sur voie 1 ==> arrêt du train C en gare voie 1
    passage du train A devant D2 ==> tension alim 1 sur voie 2 ==> départ du train B en gare voie 2
    passage du train A devant D1 ==> coupure alim 1 sur voie 2 ==> arrêt du train B en gare voie 2
    passage du train B devant D2 ==> tension alim 1 sur voie 1 ==> départ du train C en gare voie 1
    passage du train A devant D1 ==> coupure alim 1 sur voie 1 ==> arrêt du train A en gare voie 1

    1.2.2 Programme Visual Basic

    Le programme écrit en Visual Basic est le suivant:

    c=-1 'variable utilisée pour le choix de la voie en gare'

    'ouverture du lien de communication avec la carte d'adresse 0'
    OpenDevice (0)

    'envoi alim 2'
    Vmax = 100
    OutputAnalogChannel 2, Vmax

    1
    'interruption du programme par la touche Echap'
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If

    'détection de passage devant le détecteur 2'
    10
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If
    If ReadDigitalChannel(2) = 0 Then
    GoTo 10
    End If

    'choix de la voie de départ'
    If c = -1 Then
    ClearDigitalChannel (1)
    End If
    If c = 1 Then
    SetDigitalChannel (1)
    End If

    'départ progressif du train en gare,envoi de l'alim 1 '
    Vmin = 0
    Vmax = 100
    For n = Vmin To Vmax Step 2
    OutputAnalogChannel 1, n
    Limit = Timer + 0.1
    Do Until Timer >= Limit: Loop
    Next n

    'détection de passage devant le détecteur 1'
    20
    If (GetAsyncKeyState(27) <> 0) Then
    GoTo 2
    End If
    If ReadDigitalChannel(1) = 0 Then
    GoTo 20
    End If

    'arrêt progressif du train en gare,coupure de l'alim 1 '
    Vmin = 0
    Vmax = 100
    For n = Vmax To Vmin Step -2
    OutputAnalogChannel 1, n
    Limit = Timer + 0.1
    Do Until Timer >= Limit: Loop
    Next n

    c = -c

    GoTo 1

    2
    'arrêt du programme,fermeture du lien de communication avec la carte d'adresse 0'
    ClearAllDigital
    ClearAllAnalog
    CloseDevice

    1.3 Téléchargements

    Vous pouvez télécharger les deux exemples ci-dessus en cliquant ici.
    Ces programmes ne fonctionneront que si vous possédez la carte USB Velleman VM 110 et avez installé sur votre PC le logiciel Visual Basic ainsi que la DLL qui pilote la carte USB (K8055D.dll).

    2. Commande manuelle. Conception d'un TCO logiciel

    A titre d'exemple, on va piloter le réseau minimal ci-dessous:



    Les commandes à envoyer par le TCO au réseau, via la carte USB, sont les suivantes:
    - marche avant et arrière (commande carte: sortie numérique 3)
    - commande d'accélération et décélération (commande carte: sortie analogique PWM 1)
    - commande d'arrêt d'urgence
    - commande d'alimentation des voies 1 et 2 (commandes carte: sorties numériques 1 et 2)
    - commande simultanée des deux aiguilles (position directe ou déviée) (commande carte: sortie numérique 4)

    L'interface graphique utilise 4 types d'objets:
    - une "picture box" qui affiche une image du plan du réseau
    - des boutons de commande pour chaque fonction (alimentation des cantons, commande des aiguilles)
    - des étiquettes (labels) qui affichent des informations à l'écran ainsi que le résultat de certaines commandes
    - une barre de défilement horizontale (HScrollBar) qui commande la tension envoyéee au réseau.

    Voici une capture d'écran de l'interface graphique du TCO:



    Un clic gauche de la souris sur l'un des boutons de l'interface va envoyer la commande affichée sur le bouton.

    Le tableau ci-dessous donne la liste des boutons, les fonctions associées ainsi que le code Visual Basic transmis à la carte USB.

    Intitulé du bouton Commande associée code Visual Basic
    Voie 1 on alim voie 1 on SetDigitalChannel (1)
    Voie 1 off alim voie 1 off ClearDigitalChannel (1)
    Voie 2 on alim voie 2 on SetDigitalChannel (2)
    Voie 2 off alim voie 2 off ClearDigitalChannel (2)
    MAV marche avant ClearDigitalChannel (3)
    MAR marche arrière SetDigitalChannel (3)
    A1 direct aiguilles en position directe ClearDigitalChannel (4)
    A1 dévié aiguilles en position déviée SetDigitalChannel (4)
    STOP arrêt d'urgence OutputAnalogChannel 1, 0


    2.3 Téléchargements

    Vous pouvez télécharger l'exemple de TCO ci-dessus en cliquant ici.
    Ce programme ne fonctionnera que si vous possédez la carte USB Velleman VM 110 et avez installé sur votre PC le logiciel Visual Basic ainsi que la DLL qui pilote la carte USB (K8055D.dll).



    Vers la page suivante


    Retour vers la page d'accueil