Connexion de l'interface :
L'interface est conçue pour
s'interconnecter directement à l'un des ports 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. L'alimentation électrique
de l'interface USB s'effectue au moyen d'un
adaptateur secteur du commerce placé
par exemple sur la position +12V. Attention, le port USB
n'alimente pas cette interface.
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 11. N'oubliez pas que le PIC
et le logiciel
sous Windows doivent utiliser la même
combinaison VID/PID.
Mise
sous tension de l'interface :
Dès
la mise sous tension, le rétroéclairage du LCD est activé par défaut.
Si celui-ci semble ne pas fonctionner,
modifiez la valeur de la résistance
R1 limitant le courant dans les leds
du dispositif de rétro-éclairage
du LCD. Attention toutefois à ne pas dépasser
le courant maximal admissible par le
transistor Mosfet Q1 (voir [
Datasheets
]
du
composant).
A
la mise sous tension, trois écrans successifs vous
permettent de régler le contraste du LCD en agissant sur
l'ajustable référencé P1. L'affichage successif des trois écrans demande
environ 9 secondes à partir de la
mise sous tension. Passé ce délai,
l'écran est effacé et l'interface
active la liaison USB.
Patientez quelques secondes durant l'installation
automatique des pilotes de votre interface graphique de 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...
Utilisation sous Windows de
l'interface LCD :
Comme
nous l'avons annoncé à
la page [
Présentation
],
l'interface
graphique est capable d'afficher des
points,
des droites,
des cercles,
etc... ou bien encore du texte
sur 8
lignes. Bien
entendu, il est possible de combiner
texte et graphique simultanément.
Les
coordonnées d'affichage graphique évoluent
entre 0
et 127 sur
l'axe des X
et de 0
à 63
pour l'axe des Y
comme sur le croquis ci-dessous :
L'origine
se situe dans le coin supérieur
gauche de l'afficheur
LCD.
Le
repère utilisé pour l'affichage
alphanumérique
à lui aussi la même origine
avec la possibilité d'écrire
jusqu'à 8 lignes. Ainsi,
l'axe des X
évoluent entre 0
et 127 et l'axe
des Y
entre 0
et 7 correspondant
au numéro
de la ligne considérée
(appelée
page
dans la documentation du LCD) .
Nous
allons décrire
la liste des commandes et
des paramètres
nécessaires au bon fonctionnement
de l'interface. Afin de gérer les différentes
lignes du LCD, nous envoyons à l'interface LCD USB une série
d'octets. Le premier est la commande
et les autres octets correspondent aux paramètres. Si vous
vous référez au code source du programme écrit sous Borland Delphi 7 téléchargeable un
peu plus bas, le 1er octet correspondant à
la commande est toujours affecté à
la case mémoire FBufferOut[1] et les octets
suivants aux cases mémoires FBufferOut[n]
avec n dépendant du
nombre de paramètres à
transmettre.
Commande permettant d'afficher
un point sur l'écran :
Si
vous souhaitez afficher un point, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=1 |
FBufferOut[2]
= x : abscisse comprise entre
0 et 127 FBufferOut[3] =
y
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
n°1 :
Affiche
un point avec les coordonnées
x = 7 en abscisse, y = 11 en ordonnée. Active
l'affichage avec c = 1.
FBufferOut[1]
= 1 FBufferOut[2] = 7 FBufferOut[3] =
11 FBufferOut[4]
= 1
Exemple
n°2 :
On
souhaite effacer
le précédent point. Les
coordonnées restent inchangées
avec x = 7 en abscisse et y = 11 en ordonnée. En revanche,
on efface
le point avec c = 0.
FBufferOut[1]
= 1 FBufferOut[2] = 7 FBufferOut[3] =
11 FBufferOut[4]
= 0
Commande permettant d'afficher
une droite sur l'écran :
Si
vous souhaitez afficher une droite, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=2 |
FBufferOut[2]
= x1 : abscisse comprise entre
0 et 127 FBufferOut[3] =
y1
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= x2: abscisse comprise entre
0 et 127 FBufferOut[5] =
y2
: ordonnée comprise
entre 0 et 63 FBufferOut[6]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
:
Affiche
une droite avec les coordonnées
de départ x1 = 6 et y1=52. Les coordonnées
d'arrivée sont x2 = 60, y2 = 10. Active l'affichage avec
c = 1.
FBufferOut[1]
= 2 FBufferOut[2] = 6 FBufferOut[3] =
52 FBufferOut[4]
= 60 FBufferOut[5] = 10 FBufferOut[6]
= 1
Commande permettant d'afficher
un rectangle sur l'écran :
Si
vous souhaitez afficher un rectangle, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=3 |
FBufferOut[2]
= x1 : abscisse comprise entre
0 et 127 FBufferOut[3] =
y1
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= x2: abscisse comprise entre
0 et 127 FBufferOut[5] =
y2
: ordonnée comprise
entre 0 et 63 FBufferOut[6]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
:
Affiche
un rectangle avec les coordonnées
de départ x1 = 33 et y1 = 41. Les coordonnées
d'arrivée sont x2 = 69, y2 = 54. Active l'affichage avec
c = 1.
FBufferOut[1]
= 3 FBufferOut[2] = 33 FBufferOut[3] =
41 FBufferOut[4]
= 69 FBufferOut[5] = 54 FBufferOut[6]
= 1
Commande permettant d'afficher
un rectangle plein sur l'écran :
Si
vous souhaitez afficher un rectangle plein, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=4 |
FBufferOut[2]
= x1 : abscisse comprise entre
0 et 127 FBufferOut[3] =
y1
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= x2: abscisse comprise entre
0 et 127 FBufferOut[5] =
y2
: ordonnée comprise
entre 0 et 63 FBufferOut[6]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
:
Affiche
un rectangle plein avec les coordonnées
de départ x1 = 91 et y1 = 9. Les coordonnées
d'arrivée sont x2 = 116, y2 = 20. Active l'affichage avec
c = 1.
FBufferOut[1]
= 4 FBufferOut[2] = 91 FBufferOut[3] =
9 FBufferOut[4]
= 116 FBufferOut[5] = 20 FBufferOut[6]
= 1
Note
: cette commande demande un certain
temps d'exécution selon la taille
du rectangle à dessiner sur l'écran.
Pour un rectangle plein prenant tout
l'espace de l'écran, patientez
environ 3 secondes pour terminer le
processus d'affichage.
Commande permettant d'afficher
un cercle sur l'écran :
Si
vous souhaitez afficher un cercle, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=5 |
FBufferOut[2]
= x0 : abscisse comprise entre
0 et 127 FBufferOut[3] =
y0
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= r : rayon du cercle compris
entre 1 et 1277 FBufferOut[5]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
:
Affiche
un cercle avec les coordonnées
du centre x0 = 71 et y0 = 35. Le rayon r = 12. Active
l'affichage avec c = 1.
FBufferOut[1]
= 5 FBufferOut[2] = 71 FBufferOut[3] =
35 FBufferOut[4]
= 12 FBufferOut[5] = 1
Commande permettant d'afficher
un cercle plein sur l'écran :
Si
vous souhaitez afficher un cercle plein, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=6 |
FBufferOut[2]
= x0 : abscisse comprise entre
0 et 127 FBufferOut[3] =
y0
: ordonnée comprise
entre 0 et 63 FBufferOut[4]
= r : rayon du cercle compris
entre 1 et 1277 FBufferOut[5]
= c
: 0 = effacement,
1= affichage, 2 =
inverse vidéo |
Exemple
:
Affiche
un cercle plein avec les coordonnées
du centre x0 = 107 et y0 = 36. Le rayon r = 17. Active
l'affichage avec c = 1.
FBufferOut[1]
= 6 FBufferOut[2] = 107 FBufferOut[3] =
36 FBufferOut[4]
= 17 FBufferOut[5] = 1
Note
: cette commande demande un certain
temps d'exécution selon la taille
du cercle à dessiner sur l'écran.
Pour un cercle plein sur la quasi-totalité
de l'écran, patientez environ
3 secondes pour terminer le processus
d'affichage.
Commande permettant d'effacer
l'écran LCD :
Si
vous souhaitez effacer l'écran LCD, vous
devez utiliser la commande suivante
:
Commande
|
Paramètres
|
FBufferOut[1]
=7 |
Pas
de paramètres.
|
Commande permettant d'allumer
ou d'éteindre le rétro-éclairage
du LCD :
Si
vous souhaitez allumer ou éteindre le rétro-éclairage
du LCD, vous
devez utiliser la commande suivante
:
Commande
|
Paramètres
|
FBufferOut[1]
=8 |
Pas
de paramètres.
|
Commandes permettant de
positionner puis d'afficher une ligne
de caractères :
Si
vous souhaitez positionner sur le LCD
une ligne de caractères, vous
devez utiliser la commande et paramètres
suivants :
Commande
|
Paramètres
|
FBufferOut[1]
=9 |
FBufferOut[2]
= x : position du premier caractère
en abscisse compris entre
0 et 127 FBufferOut[3] =
n :
numéro de la ligne
compris entre 0 et 7 FBufferOut[4] =
c
: 0 = fond noir, 1=
fond blanc, 2 = inverse
vidéo |
Pour
afficher une ligne de caractères,
vous
devez respecter la syntaxe suivante
:
Commande
|
Paramètre
|
FBufferOut[1]
=10 |
FBufferOut[2] = nombre de caractères
de la chaîne FBufferOut[3...n]
= vos caractères
au format ASCII |
Exemple
n°1 :
On
positionne notre texte en commençant
depuis le pixel 0 à la troisième ligne du LCD.
Ainsi,
x = 0, n =2 pour la troisième
ligne et active
l'affichage sur fond blanc avec c = 1.
FBufferOut[1]
= 9 FBufferOut[2] = 0 FBufferOut[3] =
2 FBufferOut[4]
= 1
Les
données précédentes
sont transmises au LCD par liaison USB.
On
envoie ensuite la chaine de caractères
à afficher "Bonjour" qui contient 7 caractères :
FBufferOut[1]
= 10 FBufferOut[2] = 7 FBufferOut[3] =
"B" FBufferOut[4] =
"o" FBufferOut[5] =
"n" FBufferOut[6] =
"j" FBufferOut[7] =
"o" FBufferOut[8] =
"u" FBufferOut[8] =
"r"
Les
données précédentes
sont transmises au LCD par liaison USB.
On obtient le résultat
ci-dessous :
Exemple
n° 2:
Afin
de mieux cerner le fonctionnement des
3 modes d'affichage : fond noir,
fond blanc et inverse vidéo,
nous avons affiché un rectangle plein
sur une portion du LCD. On a
superposé
ensuite trois phrases les unes en dessous
des autres avec les 3 modes d'affichage
différents
:
-
La première ligne correspond
à un affichage sur fond noir : c = 0,
-
La seconde ligne correspond
à un affichage sur fond blanc : c = 1, -
La troisième ligne correspond
à un affichage en inverse vidéo :
c = 2.
Téléchargement du logiciel et du
code source
:
Afin de piloter
simplement l'interface via votre PC, un petit programme nommé "Gestion LCD Graphique 128 x 64 USB"
écrit sous Borland Delphi 7
est disponible en libre téléchargement.
Ce dernier génère automatiquement les différentes instructions présentées plus
haut.
Les logiciel
est compatible avec 8,
Seven, Vista et XP.
ll n'a pas été testé sous 2000, Me et 98SE.
L'ensemble code
source du programme Delphi et le
fichier exécutable
sont librement
téléchargeables ci-après. Le code source est commenté et vous n'aurez aucun mal à
l'adapter selon vos besoins.
Téléchargement des fichiers sources
Borland
Delphi et du fichier éxecutable : 528ko
Téléchargement du code source au format TEXTE : 7
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. Vous trouverez
la DLL dans l'ensemble des fichiers sources téléchargeables précédemment.
Bonne utilisation de
l'interface graphique LCD USB... |