Carte VM 110


1 Présentation

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 sur mesure avec Visual Basic ou Python.

Malheureusement, cette carte n'est plus commercialisée. On peut en trouver en occasion sur eBay.

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

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 Commandes logicielles en Visual Basic

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

2.3 Commandes logicielles en Python

Sur Windows, avec un PC 32 bits, la carte communique via la DLL officielle de Velleman (K8055D.dll). Vous pouvez télécharger un dossier comprenant un script complet pour prendre en main la carte : initialiser la connexion, allumer/éteindre des sorties numériques, lire une entrée analogique et fermer proprement la connexion en cliquant ici.
Le dossier contient aussi la DLL.

Avec un PC 64 bits, vous pouvez aussi télécharger un dossier contenant un script Python en cliquant ici.
Ce dossier contient la DLL 64 bits.



Retour vers la page d'accueil