Connexion
de l'interface :
L'interface est conçue pour s'interconnecter
directement à l'un de vos ports de communication USB
présents sur votre ordinateur
au moyen d'un cordon USB A mâle - USB B mâle.
Cordon
USB A mâle - USB B mâle.
Au
moyen d'un adaptateur secteur, alimentez
votre interface sous une tension continue
comprise entre +8V et +20V maximum.
Une tension de +12V sera un bon compromis.
Combinaison
VID et PID :
Dans
le cadre de ce projet, nous utilisons
un driver de type
HID (Human
Interface Device) utilisé dans
tous les périphériques
de type souris
ou clavier
USB du commerce. L'avantage est sa simplicité
de mise en oeuvre car le périphérique
de type HID est
automatiquement reconnu par Windows
et
ne nécessite aucun driver exotique!
Tous
les périphériques USB
sont pourvus d'une combinaison unique
prenant la forme de deux
nombres.
Le premier nombre VID
identifie le
fabricant du produit,
ici Microchip et le second PID
représente l'identificateur
du produit.
Dans le cadre de ce projet nous avons
utilisé le VID
de Microchip librement disponible 1240
et comme PID
nous
avons pris arbitrairement la valeur
10.
N'oubliez pas que le PIC
et
le logiciel
sous Windows doivent
utiliser la même combinaison VID/PID.
Connexion pour la
première fois de l'interface USB au PC :
Dès que vous
connectez pour la première fois
l'interface à votre
PC, ce dernier détecte un nouveau
matériel et affiche son identité
(en bas à droite de votre écran
sous Windows XP) comme ci-dessous :
Patientez
quelques secondes durant l'installation
automatique des pilotes de votre périphérique
de la catégorie HID.
Après
l'installation du pilote, l'interface
est fonctionnelle et vous pouvez désormais
utiliser le logiciel sous Windows pour
piloter votre interface...
Commandes utilisées par
le logiciel :
Gestion
des différentes
sorties de l'interface
USB :
Afin
de piloter sélectivement les
16 sorties de l'interface, nous
envoyons à l'interface une série
de deux
octets.
Le premier
octet est l'instruction
et
le second
est le
paramètre.
Dans
le cadre de ce projet, l'instruction
représente le
niveau logique
(haut, bas, toggle, etc...) et le paramètre
représente
le numéro
de la sortie
compris
entre
1 et 16.
Si
vous vous référez au code
source du programme écrit en
Borland Delphi téléchargeable
un peu plus bas, le
1er octet est
affecté à la case mémoire
FBufferOut[1] et
le second
octet
à la case mémoire
FBufferOut[2]
de la communication USB. Cinq
groupes d'instructions sont disponibles
sont pour cette interface
:
un groupe d'instructions pour mettre à
l'état haut la sortie considérée
: mode ON.
un groupe d'instructions pour mettre à
l'état bas la sortie considérée :
mode OFF. un
groupe d'instructions permettant de basculer
entre deux états : mode TOGGLE. un
groupe d'instructions pour mettre à
l'état haut simultanément
toutes les sorties. un
groupe d'instructions pour mettre à
l'état bas simultanément
toutes les sorties.
Groupe
d'instructions permettant d'affecter un état haut
sur
une sortie déterminée :
1er
octet FBufferOut[1]
|
2eme
octet FBufferOut[2]
|
Sorties
mises à l'état
haut
|
1
|
1
|
S1
|
1
|
2
|
S2
|
1
|
3
|
S3
|
1
|
4
|
S4
|
1
|
5
|
S5
|
1
|
6
|
S6
|
1
|
7
|
S7
|
1
|
8
|
S8
|
1
|
9
|
S9
|
1
|
10
|
S10
|
1
|
11
|
S11
|
1
|
12
|
S12
|
1
|
13
|
S13
|
1
|
14
|
S14
|
1
|
15
|
S15
|
1
|
16
|
S16
|
Groupe
d'instructions
permettant d'affecter un état bas sur une sortie déterminée
:
1er
octet FBufferOut[1]
|
2eme
octet FBufferOut[2]
|
Sorties
mises à l'état
bas
|
2
|
1
|
S1
|
2
|
2
|
S2
|
2
|
3
|
S3
|
2
|
4
|
S4
|
2
|
5
|
S5
|
2
|
6
|
S6
|
2
|
7
|
S7
|
2
|
8
|
S8
|
2
|
9
|
S9
|
2
|
10
|
S10
|
2
|
11
|
S11
|
2
|
12
|
S12
|
2
|
13
|
S13
|
2
|
14
|
S14
|
2
|
15
|
S15
|
2
|
16
|
S16
|
Groupe
d'instructions permettant de basculer entre deux
états logiques en sortie :
1er
octet FBufferOut[1]
|
2eme
octet FBufferOut[2]
|
Sorties
basculées (toggle)
|
3
|
1
|
S1
|
3
|
2
|
S2
|
3
|
3
|
S3
|
3
|
4
|
S4
|
3
|
5
|
S5
|
3
|
6
|
S6
|
3
|
7
|
S7
|
3
|
8
|
S8
|
3
|
9
|
S9
|
3
|
10
|
S10
|
3
|
11
|
S11
|
3
|
12
|
S12
|
3
|
13
|
S13
|
3
|
14
|
S14
|
3
|
15
|
S15
|
3
|
16
|
S16
|
Instructions permettant de mettre à
l'état haut toutes les sorties simultanément
:
Si
vous souhaitez activer toutes les sorties
S1 à S16, il vous suffit d'envoyer
à l'interface PC l'instruction
suivante :
1er
octet FBufferOut[1]
|
Sorties
mises à l'état
haut
|
4
|
S1
à S16
|
Notez
qu'il est inutile d'envoyer ici le second
octet. Seul le premier octet est nécessaire.
Instructions
permettant de mettre à
l'état bas toutes les sorties simultanément
:
Si
vous souhaitez désactiver toutes
les sorties S1 à S16, il vous
suffit d'envoyer à l'interface
PC l'instruction suivante :
1er
octet FBufferOut[1]
|
Sorties
mises à l'état
bas
|
5
|
S1
à S16
|
Notez
qu'il est inutile d'envoyer ici le second
octet. Seul le premier octet est nécessaire.
Gestion
de la sortie PWM de l'interface
USB :
En
vous référant toujours
au code
source du programme écrit en
Borland Delphi téléchargeable
un peu plus bas, la gestion du
réglage du
PWM est
associé à une Trackbar
dont les valeurs extrèmes sont
comprises entre 0
et 100.
La
gestion de la sortie PWM nécessite
d'affecter la valeur 6
à la case mémoire
FBufferOut[1].
La seconde
case mémoire
FBufferOut[2]
contient la valeur représentative
de la position de la Trackbar, c'est
à dire une valeur comprise entre
0
et
100.
1er
octet FBufferOut[1]
|
2eme
octet FBufferOut[2]
|
Sortie
PWM
|
6
|
Entre
0 et 100
|
Rapport
cyclique du signal rectangulaire
variable entre 0% et
100%
|
Gestion
des 8 entrées numériques
:
Les
8
entrées numériques
de l'interface sont scannées
toutes les 5ms.
Le résultat de ce scan est envoyé
vers le PC au même rythme.
Pour
récupérer cette la valeur
présente sur les 8 entrées
depuis le logiciel sous Windows, il
suffit de lire le contenu de la case
mémoire FBufferIn[1].
Cette case mémoire contient la
valeur présente sur les 8
entrées
sous sa forme décimale.
Puisque nous avons 8
entrées alors
cette valeur décimale est comprise
entre
0
et 255.
Octet FBufferIn[1]
|
Valeur
comprise entre 0 et 255
|
Logiciel de gestion de l'interface
PC :
Téléchargement
du logiciel et du code source :
Afin
de piloter simplement l'interface via votre PC,
un petit programme nommé
"Interface
USB 8 entrées - 16 sorties
- 1 sortie PWM"
écrit sous Borland
Delphi est disponible en
téléchargement.
Ce dernier génère automatiquement
les
différentes instructions
présentées
ci-dessus
en fonction du bouton
pressé
avec votre souris.
Les
SE compatibles avec ce programme sont
: 8,
Seven,
Vista,
XP. ll
n'a pas été testé
sous 2000, Me et 98SE.
Téléchargement du
soft compilé EXE : 508ko
L'ensemble
du code source du programme Delphi est
librement téléchargeable
ci-après. Le code source est
commenté et vous n'aurez aucun
mal à l'adapter selon vos besoins.
Téléchargement de
l'ensemble des fichiers sources au format
Borland Delphi : 528ko
Téléchargement du code
source au format TEXTE : 25
ko
Les commandes sont extrêmement
simples à maitriser grâce
à l'usage d'une DLL
(Dynamic
Link Library)
spécifiquement dédiée
à la communication USB (mcHID.dll). N'oubliez
pas de placer cette DLL dans
le même répertoire que
votre programme exécutable.
Utilisation
du logiciel avec l'interface :
Gestion
des différentes
sorties de l'interface
USB :
L'ensemble
des boutons identifiés S1 à
S16 du
logiciel sont représentatifs des
différentes sorties disponibles
sur la platine.
De la sorte, le bouton S1 commande la sortie
S1, le bouton
S2 la sortie S2 et ainsi de suite.
Vous
pouvez à partir de ce logiciel
tester les différentes instructions précédemment
explicitées :
les deux
groupes de commandes ON et OFF :
le
groupe de commandes permettant un basculement entre deux
états logiques (bistables - toggle)
:
les
deux commandes permettant l'activation et désactivation
de toutes les sorties :
Gestion
de la sortie PWM :
La
sortie
PWM
génère en un
signal carré de
rapport cyclique 50%
au
lancement du logiciel. Cette configuration
correspond donc à une valeur
de 127
sur
la trackbar
du
logiciel.
Voici
l'allure
réelle du
signal PWM délivré en
sortie J5
pour un rapport cyclique de 50%.
Cliquez
sur l'image ci-dessus pour l'agrandir
Gestion
des 8 entrées :
Selon
le mot
binaire appliqué
sur les 8
entrées
du connecteur
J4,
le logiciel nous renvoie la valeur corresponde
sous sa forme décimale.
Par
exemple, pour le mot binaire 00100110
(avec E8=MSB et E1=LSB) nous obtenons
sur le logiciel la valeur décimale
38.
Bonne
utilisation de l'interface à
tous...
|