Informatique

Port USB


1. Description du port USB

Le bus USB basé sur une architecture série peut aussi être utilisé pour le pilotage d'un réseau de trains.
La vitesse de transmission des données est beaucoup plus rapide qu'avec les ports série standards. Le standard USB 1.1 permet d'obtenir des débits de 1,5 Mbit/s et 12 Mbit/s.
Aujourd'hui, la plupart des périphériques pour PC (tels que les souris, les claviers, les scanners ou les imprimantes) sont disponibles en version "USB". De part sa fulgurante progression tous les nouveaux PC intègrent désormais au moins une interface USB. Dans le futur les interfaces traditionnelles (série, imprimante, clavier...) seront amenées à disparaître au profit de l'USB qui petit à petit prendra leur place.
On trouvera une description de ce bus sur le site web de Comment ça marche.net

2.Carte d'interface avec le port USB

2.1 Présentation

On trouve maintenant dans le commerce des cartes d'interface USB qui délivrent des signaux compatibles avec la commande d'un réseau de trains.

Ainsi, la société belge VELLEMAN a réalisé la carte interface USB VM110 qui est pourvue de 5 canaux d'entrée numériques et 8 canaux de sortie numériques. En outre, vous avez à votre disposition deux entrées analogiques et deux sorties analogiques avec une résolution 8 bit.
Cette carte fournit aussi en sortie une modulation par largeur d'impulsions (PWM) utilisable pour la commande des locos.



Le nombre d'entrées / de sorties peut être augmenté pour permettre la connexion d'un max. de 4 cartes aux connecteurs USB de votre PC.
Toutes les routines de communication sont mémorisées dans une Dynamic Link Library (DLL). Le fichier en question s'appelle 'K8055D.DLL'.
Il est possible d'écrire des applications Windows (98SE, 2000, Me, XP) sur mesure avec Visual Basic.

Cette carte est commercialisée en France par GOTRONIC. (voir rubrique "interfaces PC")
Vous trouverez une description de cette carte sur le site de VELLEMAN.
J'ai commençé à l'utiliser avec un programme écrit en Visual Basic et les résultats sont intéressants.

2.2 Utilisation pour le pilotage d'un réseau de trains

2.2.1 Interfaces entre le réseau et la carte

Pour les sorties numériques qui sont à collecteur ouvert, on peut directement connecter un relais entre chaque sortie de la carte et une alim fixe (par exemple 12 volts).

Voici deux montages possibles, l'un pour la commande d'alimentation d'un canton et l'autre pour la commande d'un moteur d'aiguille (moteur lent):



Pour les entrées numériques, il suffit de mettre à la masse l'entrée sélectionnée (1 = entrée ouverte, 0 = entrée en court circuit)

Voici un montage possible pour la détection de passage par barrière infra-rouge:



Chaque carte possède deux sorties analogiques qui délivrent un signal avec modulation d'impulsions. Pour obtenir une alimentation pour les locomotives, il faut utiliser un "booster" qui peut être réalisé à l'aide de 3 transistors comme indiqué sur le schéma ci-dessous:



2.2.2 Commandes logicielles

Les commandes logicielles en Visual Basic sont très simples.

- ouverture et fermeture du lien de communication avec une carte d'adresse 0:
OpenDevice (0)
CloseDevice

- procédures des sorties numériques

L'instruction "SetDigitalChannel (6)" met le canal de sortie 6 à l'état 1 (+5 Volts)
L'instruction "ClearDigitalChannel (6)" met le canal de sortie 6 à l'état "0" (0 volt)

- procédures des entrées numériques

On utilise l'instruction "ReadDigitalChannel(n)" qui lit l'état de l'entrée numérique (0 ou 1) de l'entrée n.

Dans un programme séquentiel, cette instruction est souvent placée dans une boucle. Dans l'exemple ci-dessous, le programme boucle tant que l'entrée 2 est à 0 et quitte la boucle lorsque l'entrée 2 est à 1.

10
If ReadDigitalChannel(2) = 0 Then
GoTo 10
else
goto 20
End If
20

- commande de vitesse d'une loco avec l'alim PWM

On utilise l'instruction "OutputAnalogChannel x, n" dans laquelle x est le numéro de la sortie choisie (x=1 ou 2) et n définit la vitesse de la loco. n est compris entre 0 et 255. Avec le montage utilisé plus haut, n=0 correspond à la vitesse nulle et n=255 correspond à la vitesse max.

A titre d'exemple, le programme ci-dessous correspond au démarrage progressif d'une loco en 5 secondes entre la vitesse Vmin=0 et la vitesse Vmax=100 avec 50 paliers de vitesse d'une durée de 0,1 seconde.

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



Vers la page suivante


Retour vers la page d'accueil