Voici un afficheur à texte défilant, avec programmation à distance du texte à visualiser. Le message peut être envoyé à l’afficheur, par l’intermédiaire du réseau GSM et plus précisément par l’intermédiaire du “service mini messages” de votre opérateur. Hormis pour l’alimentation, aucun câble n’est nécessaire. L’appareil peut donc être installé partout, même dans des lieux difficilement accessibles. L’afficheur est programmable avec n’importe quel type de téléphone GSM.
Note : SMS = Short Message Services
Réaliser une installation pour visualiser un texte défilant n’est certes pas une chose simple, spécialement si l’on veut utiliser des composants traditionnels. Par bonheur, en faisant appel aux ressources des microcontrôleurs et, éventuellement, à un PC, il devient possible de simplifier notablement le circuit, au moins du point de vue matériel.
Nous avons déjà acquis une certaine expérience en réalisant des montages dans lesquels les textes défilants étaient soit directement mémorisé dans une EPROM soit programmés et mémorisés par l’intermédiaire d’un PC et d’une liaison sérielle.
Un affichage défilant Hi-Tech
Toujours désireux de vous offrir le sommet de la technique, nous ne pouvions nous contenter de ces solutions “classiques”.
En utilisant l’expérience acquise ces dernières années dans l’utilisation des systèmes GSM, nous avons voulu mettre au point une version Hi-Tech d’un afficheur à texte défilant.
Ce projet sort des sentiers battus car il reçoit les phrases, non pas d’une EPROM ni même d’un PC mais, comme vous pouvez le voir sur la figure 1, d’un modem GSM!
Mais qu’est ce que cela veut dire?
C’est simple, avant tout, le panneau d’affichage défilant peut-être connecté pratiquement partout, sans avoir d’autres fils à la patte que celui de l’alimentation secteur 220 V.
Pour programmer ou changer le texte, il suffit d’envoyer un message SMS (mini message) au numéro de téléphone du modem GSM relié à l’afficheur (dans ce projet, nous avons utilisé un modem cellulaire WM02-900 de la société Wavecom).
Envoyer, à l’aide d’un téléphone GSM, un message SMS est très facile, très rapide et peu coûteux. Cela montre l’innovation et la notable flexibilité d’utilisation d’un tel système. Ne nécessitant, comme nous l’avons dit, qu’une alimentation 220 V, il peut être installé dans des lieux difficilement accessibles, sans aucun problème.
L’unique limitation réelle réside dans la longueur de la phrase qui, lettre, symboles, nombres et espaces comptés, ne doit pas dépasser 65 caractères.
S’il est vrai que, normalement, les messages SMS transmissibles par les téléphones, peuvent comporter jusqu’à 140 caractères de 8 bits ou 160 de 7 bits, le programme du microcontrôleur utilisé ne permet pas de visualiser des trames dépassant les 65 caractères.
Bien entendu, le message SMS peut être envoyé à l’afficheur par l’intermédiaire de n’importe quel GSM raccordé à n’importe quel réseau. Vous allez nous dire que cela pose un problème de confidentialité ou d’exclusivité de commande. Evidemment, nous avons pensé à ce problème.
La sécurité d’accès est garantie par deux “mesures”. La première coule de source, pour envoyer un message SMS, il faut bien évidemment connaître le numéro du modem! La meilleure sécurité consiste à ne pas le divulguer à tout votre entourage ! La seconde est une sorte de clef qui sera vérifiée par le microcontrôleur.
En substance, afin que le message soit traité et mémorisé, il est nécessaire quecelui qui l’envoie fasse précéder le texte de deux “##” (dièse) sans aucun espace et qu’il le termine par un seul “#”.
Pour donner un exemple, si l’on veut afficher “BIENVENUE AU PALAIS DES SPORTS”, il faut écrire sur le clavier du téléphone le message suivant :
“##BIENVENUE AU PALAIS DES SPORTS#” A présent, vous avez certainement compris de quoi nous parlons et, donc, nous pouvons voir la structure du système.
Nous allons décomposer les différentes parties et nous les analyserons séparément.
L’électronique est constituée par une platine de contrôle et par trois cartes de visualisation identiques reliées en cascade.
Figure 1 : Les messages visualisés par l’afficheur à défilement, sont envoyés à notre circuit, sous forme de mini messages SMS, par l’intermédiaire d’un téléphone portable GSM ordinaire. Cela rend très simple la programmation à distance.
Les cartes de visualisation
L’affichage emploie une matrice de 7 lignes de 36 colonnes, utilisant ainsi trois modules d’affichage à LED de 7 x 12. Le schéma de cette partie ainsi qu’une photo d’un prototype sont donnés en figure 6.
Chaque module dispose ainsi d’un afficheur formé de 7 x 12 LED, organisées en 7 lignes et 12 colonnes.
Si nous considérons que chaque caractère et visualisé sur 6 colonnes et que l’espace entre les caractères et de 1 colonne, nous notons qu’avec notre afficheur, nous pouvons représenter simultanément un maximum de 6 caractères.
Ce système est très simple et sa réalisation n’appelle que peu de commentaires.
Toute la difficulté réside dans l’alignement des diodes LED. Pour réaliser une matrice dont l’aspect aura un air professionnel nous vous suggérons la solution suivante :
Procurez-vous un morceau de contreplaqué rigide (épaisseur 5 mm par exemple) dont les dimensions seront légèrement supérieures à celles du circuit imprimé.
Placez le circuit imprimé sur le morceau de contreplaqué et tracez le contour des 4 trous de fixation.
Procurez-vous 4 entretoises à vis de 10 mm environ. Percez le centre des marquages du contreplaqué au diamètre des vis de fixation de ces entretoises.
Préparez 4 vis dont la longueur devra être suffisante pour dépasser de 3 à 4 millimètres du contreplaqué.
Laissez de côté votre petite préparation.
Insérez et soudez au circuit imprimé les 5 supports qui permettront de monter les 5 circuits intégrés selon le plan d’implantation des composants donné en figure 7.
Montez et vissez les 4 entretoises dans les 4 trous du circuit imprimé, côté composant bien entendu.
Mettez en place toutes les diodes LED.
Fixez, sans serrage excessif, votre plaque de contreplaqué sur les 4 entretoises.
Retournez l’ensemble. Tapotez sur les pattes des LED pour qu’elles descendent bien sur le contreplaqué. Essayez de les garder le plus vertical possible.
Là, la patience et la précision deviennent reines !
Avec un fer à pointe fine, soudez toutes les pattes les plus longues (ou, si vous avez l’esprit de contradiction, toutes les pattes les plus courtes !). Veillez toujours à ce que les pattes restent le plus vertical possible.
Cette opération terminée, retirer la petite plaque de contreplaqué. Les LED n’étant soudées que par une seule patte, il est facile de remettre bien droites celles qui seraient de travers. Passez du temps à l’alignement. L’effet final s’en ressentira. Une fois toutes les LED bien alignées, retournez le circuit imprimé sans remonter le contreplaqué. Soudez les pattes encore non soudées en contrôlant de temps en temps que pas une LED ne sorte du rang !
Lorsque vous aurez fini, votre matrice aura un aspect professionnel et il ne vous restera plus qu’à mettre en place sur leurs supports les 5 circuits intégrés en veillant scrupuleusement à leur orientation (figure 7).
Répétez deux fois encore les opérations ci dessus et vous disposerez de la totalité de la matrice d’affichage. Il ne vous restera plus alors qu’à réaliser la platine de l’unité de contrôle, autrement dit le gros morceau !
L’unité de contrôle
Il faut avant tout préciser que l’unité de contrôle utilise deux microcontrôleurs : un PIC12C672 et un Z86E4012.
Le premier, s’occupe des fonctions d’interface sérielle et de convertisseur du format SMS en caractères ASCII, par contre le Zilog, s’occupe de la décomposition du texte pour chaque lettre, lors de l’envoi séquentiel des données vers les cartes de visualisation.
Il convient donc d’analyser le programme de gestion de chaque microcontrôleur, en partant du premier, le PIC12C672.
Ce microcontrôleur se trouve connecté entre les lignes TX et RX du port série, qui connecte le circuit au modem GSM. Chaque fois qu’un message SMS arrive, il contrôle qu’il soit admissible.
Si c’est le cas, il le “dissèque” en caractères indépendants, produisantà la sortie, vers U1, les trames contenant les valeurs ASCII respectives.
Précisons, qu’un message est considéré comme admissible s’il est précédé de deux symboles dièse “##” et terminé par un seul symbole dièse “#”.
Les fonctions exécutées par ce microcontrôleur sont reportées dans le diagramme de déroulement du programme (figure 4).
Initialement, après la mise en service, se déroule la phase d’auto-reset et d’initialisation des entrées/sorties, de l’oscillateur sélectionné est de l’oscillateur interne.
Le pas suivant et le reset du Z86E4012 et l’envoi à ce dernier du message“MEMORY EMPTY” qui est affiché et sauvegardé dans l’EEPROM externe.
Passé 10 secondes, les éventuels messages SMS présents dans le modem GSM sont effacés et la routine cyclique de lecture des éventuels messages arrivés entre temps est envoyée.
Lorsqu’un nouveau message SMS arrive, le microcontrôleur procède à l’extraction des caractères présents entre ## et #, provoque une remise à zéro du Z86E4012, écrit le nouveau message dans l’EEPROM (déterminant ainsi sa visualisation) et enfin efface le SMS de la mémoire du modem GSM.
Le message SMS affiché, ne change pas jusqu’à l’arrivée d’un nouveau message SMS.
A ce moment, le Z86E4012 effectue toutes ses opérations (que nous verrons brièvement…) Le PIC12C672 demeure en attente de l’arrivé d’un nouveau message.
Les deux dièses du début et celui de la fin, sont des caractères de sécurité.
Leur seul but est de garantir qu’en cas de réception d’un message SMS non destiné au modem WM02, l’affichage ne sera pas modifié. Ce peut être le cas d’une erreur de destinataire par exemple.
En somme, c’est une clef qui devrait garantir l’exclusivité de la commande des données.
L’autre observation concerne la limitation de la longueur des messages à 65 caractères.
Cela provient du fait que le programme du PIC12C672 prévoit le chargement de tout le message SMS à son arrivée, dans la RAM réservée aux données de travail, plutôt que dans une mémoire externe.
La capacité mémoire étant ce qu'elle est, il n’est pas souhaitable de dépasser 65 caractères en plus des deux dièses de début et du dièse de fin.
Ce que nous avons vu jusqu’à présent n’est autre que le fonctionnement del’interface vers le modem. Voyons maintenant comment se passe l’affichage sur l’afficheur à défilement.
Après le dernier reset reçu du PIC12C672, le Z86E4012, initialise ses entrées/sorties, positionnant les bits de son port P3x comme sortie.
Il commande le timer interne de manière à générer une interruption chaque 0,5 millisecondes et un second timer réglé, lui, sur 5 millisecondes.
Cette phase terminée, le microcontrôleur exécute le “main program” (programme principal), qui dans notre cas, coïncide avec l’instruction “loop jp loop”.
En apparence, le microcontrôleur n’exécute aucune instruction valide, toutefois pendant ce temps, le timer (T1) et la sous-routine d’interruption que nous allons analyser, travaillent.
Sans entrer dans les détails, disons que toutes les 0,5 millisecondes, le timer génère une interruption et notre microcontrôleur exécute toutes les instructions appartenant à l’étiquette “SHIFT”.
La base de temps à 0,5 ms, sert pour cadencer l’allumage des LED sur l’afficheur, puisque pour obtenir le défilement et une bonne visualisation, il convient que chaque LED soit mise à jour à cette cadence.
Le SMS est d’abord préparé, puis il est envoyé depuis notre portable au modem WM02. Notre système est étudié pour que le PIC12C672 récupère et traite les données relatives aux lettres et aux symboles du texte que le modem a reçu.
Chacune des lettres parcourt le canal des données sous la forme d’un numéro ASCII et est donc représentée par 8 bits de données, plus 1 bit de start (qui le précède), 1 bit de parité (“0” si les 8 bits correspondent à des numéros pairs, “1” s’ils correspondent à des numéros impairs) et 1 bit de stop.
Chaque caractère du texte à visualiser est envoyé du PIC12C672 (U3) au Z86E4012 (U1), en format binaire, où chaque bloc de 8 bits, représente le numéro du caractère ASCII correspondant.
U1 acquiert les données binaires qui arrivent, chargeant dans l’EEPROM externe (U2) les octets concernant les caractères ASCII, composants le message du texte.
La mémoire est une 24C08, donc un modèle à accès sériel de 1 kiloctet, dans laquelle est écrite la phrase.
Cela est rendu nécessaire, car le PIC12C672 efface le contenu de la mémoire réservée aux messages dans le modem GSM et, une fois la trame transmise au Z86E4012, il laisse le soin à ce dernier de la sauvegarder.
Lorsque U1 doit visualiser le message, il récupère dans l’EEPROM (U2), les données relatives à un caractère à la fois.
Il charge ensuite ces données dans un espace de sa mémoire RAM, que nous pouvons appeler “tampon”, car elles n’y sont maintenues que le temps nécessaire pour êtres traitées, pour être ensuite récupérées et les afficher.
Le fonctionnement pourrait être décrit par un exemple :
Si on envoie un nouveau message SMS durant le défilement d’un message en cours de traitement, le texte qui vient d’arriver ne sera pas affiché à la suite du précédent mais il l’effacera pour s’afficher.
Donc, si sur l’afficheur le texte “SOLDE A TOUS LES RAYONS” est en cours de défilement et si au moment du changement et de l’acquisition du nouveau message SMS dans le tampon, se trouvent encore (en attente d’être visualisés) les caractères de ce message, lenouveau message, n’apparaîtra pas à la suite de l’ancien.
Ainsi, si le nouveau message est “OUVERTURE CONTINUE DE 9H A 19H”, nous ne verrons pas “SOLDE A TOUS LES RAYONS OUVERTURE CONTINUE DE 9H A 19H”, mais seulement “OUVERTURE CONTINUE DE 9H A 19H”.
Ceci est dû au fait que, à chaque message SMS arrivé et reconnu comme valide, le PIC12C672 procède à une mise à zéro immédiate de U1. Partant de là, quel que soit le point de la visualisation où le message est arrivé, il suspend les opérations et repart du début.
Pour notre oeil, l’affichage apparaîtra comme éteint et, peu après, ce sera le nouveau texte qui défilera.
Figure 2: Schéma électrique de la carte de commande.
Figure 3: Vue d’ensemble de notre afficheur lumineux à texte défilant. Au premier plan, vous voyez le modem GSM WM02-900 avec son antenne plate connectée.
Figure 4 : A gauche, organigramme du programme implanté dans le microcontrôleur de gestion des messages défilant. Il s’agit d’un Z86E4012 de Zilog. Il dispose de nombreuses entrées/sorties nécessaires au pilotage de la matrice de LED.
A droite, organigramme du programme assurant l’interfaçage entre le modem GSM et l’entrée des données de la carte de contrôle. Ce programme est implanté dans un PIC12C672 de Microchip.
La photo représente un des prototypes terminé et prêt à être raccordé au modem GSM.
Figure 5 : Schéma d’implantation des composants de la carte de commande.
Liste des composants de la carte principale
R1 = 330 Ω
R2 = 1 kΩ
R3 = 22 Ω
R4 = 270 kΩ
R5 = 39 Ω
R6 à R12 = 1 kΩ
R13 à R18 = 39 Ω
R19 = 4,7 kΩ
R20 = 4,7 kΩ
C1 = 1000 μF 25 V électrolytique
C2 = 22 μF 25 V électrolytique
C3 = 220 μF 25 V électrolytique
C4 = 100 nF multicouche
C5 = 100 nF multicouche
C6 = 470 μF 16 V électrolytique
C7 = 22 pF céramique
C8 = 22 pF céramique
C9 = 1 μF 63 V électrolytique
DZ1 = Diode zener 6,1 V
LD1 = Diode LED verte 5 mm
T1 = Transistor NPN BDX53C
T2 à T7 = Transistor PNP BC557B
T8 = Transistor PNP BC557B
U1 = Intégré Z86E4012PSC (MF107)
U2 = Mémoire 24C08
U3 = μcontrôleur PIC12C672-P (MF322)
Q1 = Quartz 8 MHz
PT1 = Pont de diodes
Divers :
2 Supports 2 x 4 broches
1 Support 2 x 20 broches
3 Borniers 2 pôles
1 Radiateur ML33
1 Circuit imprimé réf. S322
Figure 6 : Les modules d’affichage à LED. Notre afficheur commandé par SMS utilise, outre la carte de contrôle, trois modules d’affichage à LED.
Chacun de ces modules utilise 84 LED à haute luminosité et est en mesure de visualiser deux chiffres ou lettres.
Ci-dessus, photo d’un des prototypes.
A droite, schéma électrique d’un module d’affichage.
Figure 7 : Schéma d’implantation des composants d’une des 3 cartes d’affichage à LED.
Liste des composants des cartes d’affichage
(attention, il faut multiplier les composants par 3)
U1 et U2 = CD74HCT164
U3 à U5 = ULN2068
Divers :
2 Supports 2 x 7 broches
3 Supports 2 x 8 broches
84 LED rouges haute luminosité
1 Circuit imprimé réf. G067
Fonctionnement de la matrice à LED
Avant de commencer ce paragraphe, il nous faut préciser qu’il s’adresse plus particulièrement aux lecteurs qui veulent savoir, par le détail, comment fonctionne notre système d’affichage. Il n’est donc pas indispensable pour mener à bien cette réalisation.
Voyons de quelle manière sont obtenus les caractères sur la matrice à LED et quel est le système qui permet au circuit de nous donner l’impression que le texte défile, alors qu’en réalité, rien ne bouge.
Pour comprendre la chose, partez du fait que pour visualiser chaque symbole, les nombres ASCII sont convertis par U1 en format BCD, donc en octets adaptés pour piloter correctement les lignes de l’afficheur.
Quelle est la méthode pour effectuer l’affichage du message ?
Le programme fait un appel à la sousroutine “Load Message”, laquelle va chercher dans le buffer, le message à visualiser et en convertit chaque caractère dans la valeur BCD correspondante au code ASCII.
Par exemple, la lettre D majuscule correspond au nombre ASCII “68” et en format binaire à “01000100”.
Dans le programme, se trouve un tableau de conversion qui assigne à chaque code ASCII une combinaison précise des LED allumées sur l’afficheur.
Par exemple, considérant que chaque caractère est composé d’un maximum de 7 LED en hauteur – colonne – et de 6 en largeur – ligne – (en réalité une colonne est toujours éteinte pour espacer le caractère du suivant), la lettre “F” minuscule (code ASCII “70”, donc “01000110”), s’obtient en faisant s’allumer toutes les LED de la seconde colonne (la gauche), celles de la 2 à la 6 de la première ligne (ROW1) en haut et celles de la 2 à la 6 de la quatrième ligne (ROW4).
En d’autres termes, le code binaire correspondant à chaque caractère (pour les 6 premiers qui composent la phrase) chargé dans l’espace de la RAM compris entre les adresses 20H et 44H, est traité et les caractères sont convertis de la manière que nous venons d’expliquer.
Etant donné que l’afficheur ne visualise que 6 caractères à la fois, dans l’espace RAM dont nous avons parlé seront chargés, au coup par coup, 6 octets ASCII seulement. Partant de là, lorsqu’un caractère est ajouté, le premier caractère de la file est éliminé.
Ce qui se passe sur l’afficheur, c’est que, le premier caractère ayant disparu, un autre est ajouté à la fin. Lorsque le message a été entièrement visualisé, la routine recommence au début.
Ceci est ce qui concerne l’extraction et la préparation des données.
Mais pour obtenir la visualisation des textes, il faut recourir à une procédure (effectuée par le Z86E4012) de scrutation de la matrice des diodes LED, une sorte de multiplexage.
En fait, les caractères ne sont pas visualisés, simultanément, mais sont composés sur la matrice par l’intermédiaire de l’illumination des diodes LED appropriées, au moment approprié.
Les caractères sont écrits sur l’afficheur, exactement comme cela se passe à la télévision.
Ceux-ci sont formés de points qui s’illuminent rapidement en séquence et pour un instant très bref, créant ainsi l’image.
En utilisant la persistance rétinienne des images dans notre oeil, nous réussissons à obtenir des messages clairement lisibles, exactement comme cela se passe à la télévision.
Pour obtenir une bonne vision, exempte de papillonnement, le microcontrôleur doit construire rapidement l’image, il doit donc effectuer une scrutation extrêmement rapide de la matrice.
Comme l’oeil humain peut voir 50 images partielles différentes en la considérant comme une seule, nous avons fait écrire au circuit les 6 caractères en les composants avec 50 fragments du message à visualiser.
La méthode consiste en une scrutation opportunément contrôlée de la matrice de LED.
On part de la colonne de droite formée de 7 LED (une par ligne) et on rejoint la première de gauche, puis on recommence du début.
Chaque colonne demeure alimentée durant environ 0,5 ms (c’est à ça que sert le timer actif à l’initialisation du microcontrôleur, celui-ci génère la base de temps de 0,5 ms) et éteinte pour les 18 ms suivantes.
Le cycle dure donc 18,5 millisecondes, dans lesquelles 18 servent à allumer les 36 lignes (36 x 0,5 = 18). Suit le pas de blanking (tout éteint) durant lequel la séquence se met à zéro et U1 procède à la remise à zéro de la logique de scrutation que nous verrons brièvement.
Avant tout, pour bien comprendre le système de vision, prenons l’exemple de la lettre “F” minuscule, et imaginons que l’on veuille l’allumer au premier poste (à droite de l’afficheur).
Dans ce cas, le microcontrôleur, après avoir chargé du tampon le code ASCII de cette lettre et l’avoir converti, effectue les pas suivants :
Après la mise à zéro de la logique, il valide les lignes 1 et 4 (en pratique, il positionne au niveau logique bas les broches 26 et 34, validant les transistors T2 et T5, qui alimentent les lignes en question), puis, dans l’ordre, les colonnes (de droite) 1, 2, 3 et 4, puis il active (met à zéro) toutes les sorties concernées, polarisant ainsi les transistors T2, T3, T4, T5, T6, T7 et T8, ceci alimentant toutes les lignes de la matrice et habilite la colonne 5 (toujours de droite) formant la “jambe” du F.
A l’oeil, nous voyons effectivement la lettre illuminée. Par contre la séquence réelle de scrutation des LED se déroule de manière différente et très rapidement.
Chaque colonne reste alimentée durant 0,5 ms, puis le caractère entier est composé en 5 x 0,5 = 2,5 millisecondes.
Cela est très rapide, si bien que la lettre F nous apparaît entièrement et non pas comme la succession des segments lumineux qui la compose.
Comme d’habitude, la séquence de visualisation du caractère se conclut avec la désactivation de toutes les lignes et la validation de la colonne 6 (de droite) qui détermine un espace formé, évidemment, par les LED éteintes.
Notez que pour l’exemple, nous avons numéroté les colonnes en mode symbolique, juste pour rendre la chose plus compréhensible.
En réalité, les colonnes 1, 2, 3, etc.
sont la 12, la 11, la 10, etc. de chaque carte de visualisation et par rapport à l’afficheur entier (formé de trois de ces cartes), sont respectivement la 36, la 35, la 34 et ainsi de suite.
En outre, les colonnes s’allument suivant une séquence fixe et cadencée au pas de 05 ms.
De plus, les lignes sont commandées en conséquence, ainsi, elles s’allument différemment à chaque fois, en fonction du message à visualiser.
La gestion des LED qui forment l’afficheur est organisée d’une façon particulière qui permet de n’utiliser que 10 lignes de commandes (autant de broches du microcontrôleur Z86E4012) pour adresser 7 lignes et 36 colonnes, ce qui, avec la logique traditionnelle, aurait monopolisé au moins 252 lignes différentes !
En pratique, le microcontrôleur commande directement la validation des lignes de l’afficheur, par contre, les colonnes sont pilotées à fréquence fixe par une circuiterie externe qui procède à l’allumage séquentiel avec les colonnes, de la première à la dernière.
La scrutation des colonnes est contrôlée par un signal d’horloge de 2 kHz produit par le microcontrôleur grâce à la sous-routine SHIFT (contrôlée par l’interruption du timer) qui produit une impulsion toutes les 0,5 ms (1: 0,5 ms = 2000 Hz) et est synchronisée avec la validation des lignes de manière à avoir la certitude que pour chaque fraction du caractère à visualiser ce soient toujours les LED convenables qui s’allument.
Le synchronisme entre les deux signaux est établi par le microcontrôleur qui, à chaque fin de séquence (ceci après avoir commandé la ligne 36, passées les 18 ms) génère une impulsion de reset d’une durée de 0,5 ms utilisée pour mettre à zéro la logique des unités de visualisation.
Effectuant un cycle de visualisation toutes les 18,5 ms, notre système travaille à une fréquence d’environ 55 Hz.
En fait, il produit 55 fois par seconde ce que l’on peut appeler “un cadre complet”.
La réalisation
Il est maintenant temps de penser à la manière de construire et de mettre en fonction notre système d’affichage à défilement.
Pour cela, il faut disposer du matériel suivant :
Une carte de base, trois cartes d’affichage, un modem GSM modèle Wavecom WM02, un câble série pour relier le modem à la carte de base, une antenne GSM et un transformateur ayant un secondaire de 10 volts pouvant fournir au moins 2,5 ampères.
Les circuits imprimés sont des double face à trous métallisés. Comme toujours dans ce cas, ils sont disponibles auprès de certains annonceurs de la revue (voir publicités).
Nous avons déjà exposé la façon de réaliser les cartes d’affichage. Il nous reste donc à voir comment réaliser la carte principale.
En premier, seront mises en place les résistances et les diodes (attention à la polarité), puis les supports pour les trois circuits intégrés, en les positionnant comme cela est indiqué sur le dessin du schéma pratique de câblage.
C’est ensuite au tour des condensateurs, par ordre de hauteur (attention au sens des condensateurs électrolytiques) et des transistors pour lesquels il faudra se référer aux dessins et aux photos afin de les implanter dans le bon sens.
Le transistor T1 devant dissiper une chaleur importante est fixé sur un refroidisseur ayant une résistance thermique de 10 °C/W (ML33) ainsi, après en avoir plié les pattes à 90°, il suffit de le souder sur le circuit imprimé.
La LED LD1 doit être enfoncée au maximum près du circuit imprimé, rappelezvous que le côté légèrement tronqué de son boîtier est la cathode.
Attention également au pont redresseur PT1, car si vous ne le mettez pas en place convenablement, le circuit ne fonctionnera pas.
Il n’y a pas de prescription particulière pour le quartz Q1.
Pour réaliser la connexion avec le modem GSM et le transformateur d’alimentation, il est utile de monter des borniers à vis au pas de 5 mm en correspondance des trous se trouvant sur le circuit imprimé.
Toutes les soudures terminées, vous pouvez insérer les trois circuits intégrés dans leur support respectif, en faisant attention à ce qu’ils soient correctement orientés. Pour cela, fiez-vous au schéma d’implantation des composants de la figure 7.
A présent, l’unité de contrôle est prête.
Comme vous avez déjà monté les cartes d’affichage, il vous suffit de réunir les points “+V”, “CLOCK”, “CLEAR”, “DATA” et “MASSE”, d’une part, et les points “ROW1” à “ROW7”, d’autre part, par des ponts réalisés avec des queues de résistances.
Toutes les liaisons étant réalisées points à points (le travail est facile, car chaque point doit être relié à celui qui se trouve en regard). Prenez un transformateur avec un primaire de 220 volts 50 Hz, un secondaire de 10 volts et reliez au primaire un cordon d’alimentation équipé d’une fiche secteur.
Ensuite, avec deux morceaux de fils isolés, reliez les extrémités du secondaire aux points marqués “AC” sur le circuit imprimé de l’unité de contrôle.
Après avoir vérifié les connexions, insérez la fiche dans une prise de secteur.
Seule la LED témoin de mise en service du circuit principal devrait s’allumer et indiquer ainsi l’état de marche.
Coupez le courant et préparez-vous à l’interconnexion avec le modem WM02 que vous devrez déjà avoir doté d’une carte SIM (figure 8).
A ce propos, notez qu’il suffit, pour cela, de se procurer soit une carte prépayée de n’importe quel opérateur qui travaille en GSM 900 (ITINERIS ou SFR), soit une carte normale d’abonné.
En fait, bien que le modem Wavecom soit normalement prévu pour la retransmission de données, dans son utilisation avec les messages SMS, n’importe quel contrat est valable et, par conséquent, la possibilité de connexion à la ligne de transmission de données n’est pas utilisée.
La liaison entre le modem et l’afficheur s’effectue à l’aide d’un câble à trois fils plus le blindage, d’une longueur pouvant atteindre 15 mètres, à connecter comme suit.
Le blindage va au bornier de masse, un des conducteurs internes au + et les deux autres au TX et au RX, qui, nous le rappelons, font référence au DB-15 du téléphone. A l’autre extrémité du câble, installez un connecteur DB-15 haute densité. Ce connecteur à 15 broches haute densité est câblé de la façon suivante :
Au contact 2, doit arriver le fil RX, au 3, le fil TX, le 7 et le 8 sont pontés entres eux, ainsi que 11 et 12, autrement, la liaison sérielle fonctionnera mal.
En pratique, ces broches établissent la liaison entre RTS et CTS (11 et 12) et DSR et DTR (7 et 8).
Ces connexions permettent de se passer de protocole pour la communication, déchargeant ainsi le PIC12C672 d’un devoir qui l’aurait contraint à effectuer des opérations en plus de celles dont il doit déjà s’occuper.
En ce qui concerne le + et la masse, vous devez les insérer dans une fiche qui entre dans celle d’alimentation du WM02, en suivant les instructions fournies avec le produit.
Installez l’ensemble sur un plan de travail, mettez sous tension et après avoir noté le numéro de la carte SIM, envoyez un message d’essai avec un téléphone GSM.
N’oubliez pas, que chaque message, pour être considéré comme valable, doit être précédé par “##” et terminé par “#”, sans aucun espace.
Par exemple, “TEXTE D’ESSAI” doit être écrit ainsi “##TEXTE D’ESSAI#”.
Composez le numéro assigné au modem GSM, envoyez le SMS et attendez quelques instants.
Comme vous le savez, les gestionnaires de la téléphonie mobile, garantissent l’arrivée des messages SMS en quelques secondes.
Une fois le message arrivé, vous vous en rendrez compte, car l’afficheur s’allumera et commencera à visualiser le texte.
Maintenant, essayez d’envoyer un nouveau message, à son arrivée, vous verrez disparaître quelques instants l’ancien message et peu après, l’afficheur se rallumera faisant défiler le nouveau message.
Une dernière précision, si vous voulez une confirmation immédiate de l’aboutissement du message, sachez que les opérateurs prévoient chacun un code particulier, à insérer au début du texte, ainsi, après l’envoi, vous recevrez à votre tour un message SMS, indiquant l’accusé de réception de la part du modem WM02.
Cela peut être utile pour éliminer une ambiguïté et pour savoir exactement si l’éventuelle absence d’affichage est due au fait que le message n’a pas encore abouti ou dû à un défaut de fonctionnement du système.
Figure 8: Représentation schématique des connexions entre le modem WM02-900 et l’entrée de la carte de commande de l’afficheur à texte défilant. La photo d’illustration complète cette représentation. Le tableau donne le brochage de la prise de sortie DB15 du modem.
Note : SMS = Short Message Services
Réaliser une installation pour visualiser un texte défilant n’est certes pas une chose simple, spécialement si l’on veut utiliser des composants traditionnels. Par bonheur, en faisant appel aux ressources des microcontrôleurs et, éventuellement, à un PC, il devient possible de simplifier notablement le circuit, au moins du point de vue matériel.
Nous avons déjà acquis une certaine expérience en réalisant des montages dans lesquels les textes défilants étaient soit directement mémorisé dans une EPROM soit programmés et mémorisés par l’intermédiaire d’un PC et d’une liaison sérielle.
Un affichage défilant Hi-Tech
Toujours désireux de vous offrir le sommet de la technique, nous ne pouvions nous contenter de ces solutions “classiques”.
En utilisant l’expérience acquise ces dernières années dans l’utilisation des systèmes GSM, nous avons voulu mettre au point une version Hi-Tech d’un afficheur à texte défilant.
Ce projet sort des sentiers battus car il reçoit les phrases, non pas d’une EPROM ni même d’un PC mais, comme vous pouvez le voir sur la figure 1, d’un modem GSM!
Mais qu’est ce que cela veut dire?
C’est simple, avant tout, le panneau d’affichage défilant peut-être connecté pratiquement partout, sans avoir d’autres fils à la patte que celui de l’alimentation secteur 220 V.
Pour programmer ou changer le texte, il suffit d’envoyer un message SMS (mini message) au numéro de téléphone du modem GSM relié à l’afficheur (dans ce projet, nous avons utilisé un modem cellulaire WM02-900 de la société Wavecom).
Envoyer, à l’aide d’un téléphone GSM, un message SMS est très facile, très rapide et peu coûteux. Cela montre l’innovation et la notable flexibilité d’utilisation d’un tel système. Ne nécessitant, comme nous l’avons dit, qu’une alimentation 220 V, il peut être installé dans des lieux difficilement accessibles, sans aucun problème.
L’unique limitation réelle réside dans la longueur de la phrase qui, lettre, symboles, nombres et espaces comptés, ne doit pas dépasser 65 caractères.
S’il est vrai que, normalement, les messages SMS transmissibles par les téléphones, peuvent comporter jusqu’à 140 caractères de 8 bits ou 160 de 7 bits, le programme du microcontrôleur utilisé ne permet pas de visualiser des trames dépassant les 65 caractères.
Bien entendu, le message SMS peut être envoyé à l’afficheur par l’intermédiaire de n’importe quel GSM raccordé à n’importe quel réseau. Vous allez nous dire que cela pose un problème de confidentialité ou d’exclusivité de commande. Evidemment, nous avons pensé à ce problème.
La sécurité d’accès est garantie par deux “mesures”. La première coule de source, pour envoyer un message SMS, il faut bien évidemment connaître le numéro du modem! La meilleure sécurité consiste à ne pas le divulguer à tout votre entourage ! La seconde est une sorte de clef qui sera vérifiée par le microcontrôleur.
En substance, afin que le message soit traité et mémorisé, il est nécessaire quecelui qui l’envoie fasse précéder le texte de deux “##” (dièse) sans aucun espace et qu’il le termine par un seul “#”.
Pour donner un exemple, si l’on veut afficher “BIENVENUE AU PALAIS DES SPORTS”, il faut écrire sur le clavier du téléphone le message suivant :
“##BIENVENUE AU PALAIS DES SPORTS#” A présent, vous avez certainement compris de quoi nous parlons et, donc, nous pouvons voir la structure du système.
Nous allons décomposer les différentes parties et nous les analyserons séparément.
L’électronique est constituée par une platine de contrôle et par trois cartes de visualisation identiques reliées en cascade.
Figure 1 : Les messages visualisés par l’afficheur à défilement, sont envoyés à notre circuit, sous forme de mini messages SMS, par l’intermédiaire d’un téléphone portable GSM ordinaire. Cela rend très simple la programmation à distance.
Les cartes de visualisation
L’affichage emploie une matrice de 7 lignes de 36 colonnes, utilisant ainsi trois modules d’affichage à LED de 7 x 12. Le schéma de cette partie ainsi qu’une photo d’un prototype sont donnés en figure 6.
Chaque module dispose ainsi d’un afficheur formé de 7 x 12 LED, organisées en 7 lignes et 12 colonnes.
Si nous considérons que chaque caractère et visualisé sur 6 colonnes et que l’espace entre les caractères et de 1 colonne, nous notons qu’avec notre afficheur, nous pouvons représenter simultanément un maximum de 6 caractères.
Ce système est très simple et sa réalisation n’appelle que peu de commentaires.
Toute la difficulté réside dans l’alignement des diodes LED. Pour réaliser une matrice dont l’aspect aura un air professionnel nous vous suggérons la solution suivante :
Procurez-vous un morceau de contreplaqué rigide (épaisseur 5 mm par exemple) dont les dimensions seront légèrement supérieures à celles du circuit imprimé.
Placez le circuit imprimé sur le morceau de contreplaqué et tracez le contour des 4 trous de fixation.
Procurez-vous 4 entretoises à vis de 10 mm environ. Percez le centre des marquages du contreplaqué au diamètre des vis de fixation de ces entretoises.
Préparez 4 vis dont la longueur devra être suffisante pour dépasser de 3 à 4 millimètres du contreplaqué.
Laissez de côté votre petite préparation.
Insérez et soudez au circuit imprimé les 5 supports qui permettront de monter les 5 circuits intégrés selon le plan d’implantation des composants donné en figure 7.
Montez et vissez les 4 entretoises dans les 4 trous du circuit imprimé, côté composant bien entendu.
Mettez en place toutes les diodes LED.
Fixez, sans serrage excessif, votre plaque de contreplaqué sur les 4 entretoises.
Retournez l’ensemble. Tapotez sur les pattes des LED pour qu’elles descendent bien sur le contreplaqué. Essayez de les garder le plus vertical possible.
Là, la patience et la précision deviennent reines !
Avec un fer à pointe fine, soudez toutes les pattes les plus longues (ou, si vous avez l’esprit de contradiction, toutes les pattes les plus courtes !). Veillez toujours à ce que les pattes restent le plus vertical possible.
Cette opération terminée, retirer la petite plaque de contreplaqué. Les LED n’étant soudées que par une seule patte, il est facile de remettre bien droites celles qui seraient de travers. Passez du temps à l’alignement. L’effet final s’en ressentira. Une fois toutes les LED bien alignées, retournez le circuit imprimé sans remonter le contreplaqué. Soudez les pattes encore non soudées en contrôlant de temps en temps que pas une LED ne sorte du rang !
Lorsque vous aurez fini, votre matrice aura un aspect professionnel et il ne vous restera plus qu’à mettre en place sur leurs supports les 5 circuits intégrés en veillant scrupuleusement à leur orientation (figure 7).
Répétez deux fois encore les opérations ci dessus et vous disposerez de la totalité de la matrice d’affichage. Il ne vous restera plus alors qu’à réaliser la platine de l’unité de contrôle, autrement dit le gros morceau !
L’unité de contrôle
Il faut avant tout préciser que l’unité de contrôle utilise deux microcontrôleurs : un PIC12C672 et un Z86E4012.
Le premier, s’occupe des fonctions d’interface sérielle et de convertisseur du format SMS en caractères ASCII, par contre le Zilog, s’occupe de la décomposition du texte pour chaque lettre, lors de l’envoi séquentiel des données vers les cartes de visualisation.
Il convient donc d’analyser le programme de gestion de chaque microcontrôleur, en partant du premier, le PIC12C672.
Ce microcontrôleur se trouve connecté entre les lignes TX et RX du port série, qui connecte le circuit au modem GSM. Chaque fois qu’un message SMS arrive, il contrôle qu’il soit admissible.
Si c’est le cas, il le “dissèque” en caractères indépendants, produisantà la sortie, vers U1, les trames contenant les valeurs ASCII respectives.
Précisons, qu’un message est considéré comme admissible s’il est précédé de deux symboles dièse “##” et terminé par un seul symbole dièse “#”.
Les fonctions exécutées par ce microcontrôleur sont reportées dans le diagramme de déroulement du programme (figure 4).
Initialement, après la mise en service, se déroule la phase d’auto-reset et d’initialisation des entrées/sorties, de l’oscillateur sélectionné est de l’oscillateur interne.
Le pas suivant et le reset du Z86E4012 et l’envoi à ce dernier du message“MEMORY EMPTY” qui est affiché et sauvegardé dans l’EEPROM externe.
Passé 10 secondes, les éventuels messages SMS présents dans le modem GSM sont effacés et la routine cyclique de lecture des éventuels messages arrivés entre temps est envoyée.
Lorsqu’un nouveau message SMS arrive, le microcontrôleur procède à l’extraction des caractères présents entre ## et #, provoque une remise à zéro du Z86E4012, écrit le nouveau message dans l’EEPROM (déterminant ainsi sa visualisation) et enfin efface le SMS de la mémoire du modem GSM.
Le message SMS affiché, ne change pas jusqu’à l’arrivée d’un nouveau message SMS.
A ce moment, le Z86E4012 effectue toutes ses opérations (que nous verrons brièvement…) Le PIC12C672 demeure en attente de l’arrivé d’un nouveau message.
Les deux dièses du début et celui de la fin, sont des caractères de sécurité.
Leur seul but est de garantir qu’en cas de réception d’un message SMS non destiné au modem WM02, l’affichage ne sera pas modifié. Ce peut être le cas d’une erreur de destinataire par exemple.
En somme, c’est une clef qui devrait garantir l’exclusivité de la commande des données.
L’autre observation concerne la limitation de la longueur des messages à 65 caractères.
Cela provient du fait que le programme du PIC12C672 prévoit le chargement de tout le message SMS à son arrivée, dans la RAM réservée aux données de travail, plutôt que dans une mémoire externe.
La capacité mémoire étant ce qu'elle est, il n’est pas souhaitable de dépasser 65 caractères en plus des deux dièses de début et du dièse de fin.
Ce que nous avons vu jusqu’à présent n’est autre que le fonctionnement del’interface vers le modem. Voyons maintenant comment se passe l’affichage sur l’afficheur à défilement.
Après le dernier reset reçu du PIC12C672, le Z86E4012, initialise ses entrées/sorties, positionnant les bits de son port P3x comme sortie.
Il commande le timer interne de manière à générer une interruption chaque 0,5 millisecondes et un second timer réglé, lui, sur 5 millisecondes.
Cette phase terminée, le microcontrôleur exécute le “main program” (programme principal), qui dans notre cas, coïncide avec l’instruction “loop jp loop”.
En apparence, le microcontrôleur n’exécute aucune instruction valide, toutefois pendant ce temps, le timer (T1) et la sous-routine d’interruption que nous allons analyser, travaillent.
Sans entrer dans les détails, disons que toutes les 0,5 millisecondes, le timer génère une interruption et notre microcontrôleur exécute toutes les instructions appartenant à l’étiquette “SHIFT”.
La base de temps à 0,5 ms, sert pour cadencer l’allumage des LED sur l’afficheur, puisque pour obtenir le défilement et une bonne visualisation, il convient que chaque LED soit mise à jour à cette cadence.
Le SMS est d’abord préparé, puis il est envoyé depuis notre portable au modem WM02. Notre système est étudié pour que le PIC12C672 récupère et traite les données relatives aux lettres et aux symboles du texte que le modem a reçu.
Chacune des lettres parcourt le canal des données sous la forme d’un numéro ASCII et est donc représentée par 8 bits de données, plus 1 bit de start (qui le précède), 1 bit de parité (“0” si les 8 bits correspondent à des numéros pairs, “1” s’ils correspondent à des numéros impairs) et 1 bit de stop.
Chaque caractère du texte à visualiser est envoyé du PIC12C672 (U3) au Z86E4012 (U1), en format binaire, où chaque bloc de 8 bits, représente le numéro du caractère ASCII correspondant.
U1 acquiert les données binaires qui arrivent, chargeant dans l’EEPROM externe (U2) les octets concernant les caractères ASCII, composants le message du texte.
La mémoire est une 24C08, donc un modèle à accès sériel de 1 kiloctet, dans laquelle est écrite la phrase.
Cela est rendu nécessaire, car le PIC12C672 efface le contenu de la mémoire réservée aux messages dans le modem GSM et, une fois la trame transmise au Z86E4012, il laisse le soin à ce dernier de la sauvegarder.
Lorsque U1 doit visualiser le message, il récupère dans l’EEPROM (U2), les données relatives à un caractère à la fois.
Il charge ensuite ces données dans un espace de sa mémoire RAM, que nous pouvons appeler “tampon”, car elles n’y sont maintenues que le temps nécessaire pour êtres traitées, pour être ensuite récupérées et les afficher.
Le fonctionnement pourrait être décrit par un exemple :
Si on envoie un nouveau message SMS durant le défilement d’un message en cours de traitement, le texte qui vient d’arriver ne sera pas affiché à la suite du précédent mais il l’effacera pour s’afficher.
Donc, si sur l’afficheur le texte “SOLDE A TOUS LES RAYONS” est en cours de défilement et si au moment du changement et de l’acquisition du nouveau message SMS dans le tampon, se trouvent encore (en attente d’être visualisés) les caractères de ce message, lenouveau message, n’apparaîtra pas à la suite de l’ancien.
Ainsi, si le nouveau message est “OUVERTURE CONTINUE DE 9H A 19H”, nous ne verrons pas “SOLDE A TOUS LES RAYONS OUVERTURE CONTINUE DE 9H A 19H”, mais seulement “OUVERTURE CONTINUE DE 9H A 19H”.
Ceci est dû au fait que, à chaque message SMS arrivé et reconnu comme valide, le PIC12C672 procède à une mise à zéro immédiate de U1. Partant de là, quel que soit le point de la visualisation où le message est arrivé, il suspend les opérations et repart du début.
Pour notre oeil, l’affichage apparaîtra comme éteint et, peu après, ce sera le nouveau texte qui défilera.
Figure 2: Schéma électrique de la carte de commande.
Figure 3: Vue d’ensemble de notre afficheur lumineux à texte défilant. Au premier plan, vous voyez le modem GSM WM02-900 avec son antenne plate connectée.
Figure 4 : A gauche, organigramme du programme implanté dans le microcontrôleur de gestion des messages défilant. Il s’agit d’un Z86E4012 de Zilog. Il dispose de nombreuses entrées/sorties nécessaires au pilotage de la matrice de LED.
A droite, organigramme du programme assurant l’interfaçage entre le modem GSM et l’entrée des données de la carte de contrôle. Ce programme est implanté dans un PIC12C672 de Microchip.
La photo représente un des prototypes terminé et prêt à être raccordé au modem GSM.
Figure 5 : Schéma d’implantation des composants de la carte de commande.
Liste des composants de la carte principale
R1 = 330 Ω
R2 = 1 kΩ
R3 = 22 Ω
R4 = 270 kΩ
R5 = 39 Ω
R6 à R12 = 1 kΩ
R13 à R18 = 39 Ω
R19 = 4,7 kΩ
R20 = 4,7 kΩ
C1 = 1000 μF 25 V électrolytique
C2 = 22 μF 25 V électrolytique
C3 = 220 μF 25 V électrolytique
C4 = 100 nF multicouche
C5 = 100 nF multicouche
C6 = 470 μF 16 V électrolytique
C7 = 22 pF céramique
C8 = 22 pF céramique
C9 = 1 μF 63 V électrolytique
DZ1 = Diode zener 6,1 V
LD1 = Diode LED verte 5 mm
T1 = Transistor NPN BDX53C
T2 à T7 = Transistor PNP BC557B
T8 = Transistor PNP BC557B
U1 = Intégré Z86E4012PSC (MF107)
U2 = Mémoire 24C08
U3 = μcontrôleur PIC12C672-P (MF322)
Q1 = Quartz 8 MHz
PT1 = Pont de diodes
Divers :
2 Supports 2 x 4 broches
1 Support 2 x 20 broches
3 Borniers 2 pôles
1 Radiateur ML33
1 Circuit imprimé réf. S322
Figure 6 : Les modules d’affichage à LED. Notre afficheur commandé par SMS utilise, outre la carte de contrôle, trois modules d’affichage à LED.
Chacun de ces modules utilise 84 LED à haute luminosité et est en mesure de visualiser deux chiffres ou lettres.
Ci-dessus, photo d’un des prototypes.
A droite, schéma électrique d’un module d’affichage.
Figure 7 : Schéma d’implantation des composants d’une des 3 cartes d’affichage à LED.
Liste des composants des cartes d’affichage
(attention, il faut multiplier les composants par 3)
U1 et U2 = CD74HCT164
U3 à U5 = ULN2068
Divers :
2 Supports 2 x 7 broches
3 Supports 2 x 8 broches
84 LED rouges haute luminosité
1 Circuit imprimé réf. G067
Fonctionnement de la matrice à LED
Avant de commencer ce paragraphe, il nous faut préciser qu’il s’adresse plus particulièrement aux lecteurs qui veulent savoir, par le détail, comment fonctionne notre système d’affichage. Il n’est donc pas indispensable pour mener à bien cette réalisation.
Voyons de quelle manière sont obtenus les caractères sur la matrice à LED et quel est le système qui permet au circuit de nous donner l’impression que le texte défile, alors qu’en réalité, rien ne bouge.
Pour comprendre la chose, partez du fait que pour visualiser chaque symbole, les nombres ASCII sont convertis par U1 en format BCD, donc en octets adaptés pour piloter correctement les lignes de l’afficheur.
Quelle est la méthode pour effectuer l’affichage du message ?
Le programme fait un appel à la sousroutine “Load Message”, laquelle va chercher dans le buffer, le message à visualiser et en convertit chaque caractère dans la valeur BCD correspondante au code ASCII.
Par exemple, la lettre D majuscule correspond au nombre ASCII “68” et en format binaire à “01000100”.
Dans le programme, se trouve un tableau de conversion qui assigne à chaque code ASCII une combinaison précise des LED allumées sur l’afficheur.
Par exemple, considérant que chaque caractère est composé d’un maximum de 7 LED en hauteur – colonne – et de 6 en largeur – ligne – (en réalité une colonne est toujours éteinte pour espacer le caractère du suivant), la lettre “F” minuscule (code ASCII “70”, donc “01000110”), s’obtient en faisant s’allumer toutes les LED de la seconde colonne (la gauche), celles de la 2 à la 6 de la première ligne (ROW1) en haut et celles de la 2 à la 6 de la quatrième ligne (ROW4).
En d’autres termes, le code binaire correspondant à chaque caractère (pour les 6 premiers qui composent la phrase) chargé dans l’espace de la RAM compris entre les adresses 20H et 44H, est traité et les caractères sont convertis de la manière que nous venons d’expliquer.
Etant donné que l’afficheur ne visualise que 6 caractères à la fois, dans l’espace RAM dont nous avons parlé seront chargés, au coup par coup, 6 octets ASCII seulement. Partant de là, lorsqu’un caractère est ajouté, le premier caractère de la file est éliminé.
Ce qui se passe sur l’afficheur, c’est que, le premier caractère ayant disparu, un autre est ajouté à la fin. Lorsque le message a été entièrement visualisé, la routine recommence au début.
Ceci est ce qui concerne l’extraction et la préparation des données.
Mais pour obtenir la visualisation des textes, il faut recourir à une procédure (effectuée par le Z86E4012) de scrutation de la matrice des diodes LED, une sorte de multiplexage.
En fait, les caractères ne sont pas visualisés, simultanément, mais sont composés sur la matrice par l’intermédiaire de l’illumination des diodes LED appropriées, au moment approprié.
Les caractères sont écrits sur l’afficheur, exactement comme cela se passe à la télévision.
Ceux-ci sont formés de points qui s’illuminent rapidement en séquence et pour un instant très bref, créant ainsi l’image.
En utilisant la persistance rétinienne des images dans notre oeil, nous réussissons à obtenir des messages clairement lisibles, exactement comme cela se passe à la télévision.
Pour obtenir une bonne vision, exempte de papillonnement, le microcontrôleur doit construire rapidement l’image, il doit donc effectuer une scrutation extrêmement rapide de la matrice.
Comme l’oeil humain peut voir 50 images partielles différentes en la considérant comme une seule, nous avons fait écrire au circuit les 6 caractères en les composants avec 50 fragments du message à visualiser.
La méthode consiste en une scrutation opportunément contrôlée de la matrice de LED.
On part de la colonne de droite formée de 7 LED (une par ligne) et on rejoint la première de gauche, puis on recommence du début.
Chaque colonne demeure alimentée durant environ 0,5 ms (c’est à ça que sert le timer actif à l’initialisation du microcontrôleur, celui-ci génère la base de temps de 0,5 ms) et éteinte pour les 18 ms suivantes.
Le cycle dure donc 18,5 millisecondes, dans lesquelles 18 servent à allumer les 36 lignes (36 x 0,5 = 18). Suit le pas de blanking (tout éteint) durant lequel la séquence se met à zéro et U1 procède à la remise à zéro de la logique de scrutation que nous verrons brièvement.
Avant tout, pour bien comprendre le système de vision, prenons l’exemple de la lettre “F” minuscule, et imaginons que l’on veuille l’allumer au premier poste (à droite de l’afficheur).
Dans ce cas, le microcontrôleur, après avoir chargé du tampon le code ASCII de cette lettre et l’avoir converti, effectue les pas suivants :
Après la mise à zéro de la logique, il valide les lignes 1 et 4 (en pratique, il positionne au niveau logique bas les broches 26 et 34, validant les transistors T2 et T5, qui alimentent les lignes en question), puis, dans l’ordre, les colonnes (de droite) 1, 2, 3 et 4, puis il active (met à zéro) toutes les sorties concernées, polarisant ainsi les transistors T2, T3, T4, T5, T6, T7 et T8, ceci alimentant toutes les lignes de la matrice et habilite la colonne 5 (toujours de droite) formant la “jambe” du F.
A l’oeil, nous voyons effectivement la lettre illuminée. Par contre la séquence réelle de scrutation des LED se déroule de manière différente et très rapidement.
Chaque colonne reste alimentée durant 0,5 ms, puis le caractère entier est composé en 5 x 0,5 = 2,5 millisecondes.
Cela est très rapide, si bien que la lettre F nous apparaît entièrement et non pas comme la succession des segments lumineux qui la compose.
Comme d’habitude, la séquence de visualisation du caractère se conclut avec la désactivation de toutes les lignes et la validation de la colonne 6 (de droite) qui détermine un espace formé, évidemment, par les LED éteintes.
Notez que pour l’exemple, nous avons numéroté les colonnes en mode symbolique, juste pour rendre la chose plus compréhensible.
En réalité, les colonnes 1, 2, 3, etc.
sont la 12, la 11, la 10, etc. de chaque carte de visualisation et par rapport à l’afficheur entier (formé de trois de ces cartes), sont respectivement la 36, la 35, la 34 et ainsi de suite.
En outre, les colonnes s’allument suivant une séquence fixe et cadencée au pas de 05 ms.
De plus, les lignes sont commandées en conséquence, ainsi, elles s’allument différemment à chaque fois, en fonction du message à visualiser.
La gestion des LED qui forment l’afficheur est organisée d’une façon particulière qui permet de n’utiliser que 10 lignes de commandes (autant de broches du microcontrôleur Z86E4012) pour adresser 7 lignes et 36 colonnes, ce qui, avec la logique traditionnelle, aurait monopolisé au moins 252 lignes différentes !
En pratique, le microcontrôleur commande directement la validation des lignes de l’afficheur, par contre, les colonnes sont pilotées à fréquence fixe par une circuiterie externe qui procède à l’allumage séquentiel avec les colonnes, de la première à la dernière.
La scrutation des colonnes est contrôlée par un signal d’horloge de 2 kHz produit par le microcontrôleur grâce à la sous-routine SHIFT (contrôlée par l’interruption du timer) qui produit une impulsion toutes les 0,5 ms (1: 0,5 ms = 2000 Hz) et est synchronisée avec la validation des lignes de manière à avoir la certitude que pour chaque fraction du caractère à visualiser ce soient toujours les LED convenables qui s’allument.
Le synchronisme entre les deux signaux est établi par le microcontrôleur qui, à chaque fin de séquence (ceci après avoir commandé la ligne 36, passées les 18 ms) génère une impulsion de reset d’une durée de 0,5 ms utilisée pour mettre à zéro la logique des unités de visualisation.
Effectuant un cycle de visualisation toutes les 18,5 ms, notre système travaille à une fréquence d’environ 55 Hz.
En fait, il produit 55 fois par seconde ce que l’on peut appeler “un cadre complet”.
La réalisation
Il est maintenant temps de penser à la manière de construire et de mettre en fonction notre système d’affichage à défilement.
Pour cela, il faut disposer du matériel suivant :
Une carte de base, trois cartes d’affichage, un modem GSM modèle Wavecom WM02, un câble série pour relier le modem à la carte de base, une antenne GSM et un transformateur ayant un secondaire de 10 volts pouvant fournir au moins 2,5 ampères.
Les circuits imprimés sont des double face à trous métallisés. Comme toujours dans ce cas, ils sont disponibles auprès de certains annonceurs de la revue (voir publicités).
Nous avons déjà exposé la façon de réaliser les cartes d’affichage. Il nous reste donc à voir comment réaliser la carte principale.
En premier, seront mises en place les résistances et les diodes (attention à la polarité), puis les supports pour les trois circuits intégrés, en les positionnant comme cela est indiqué sur le dessin du schéma pratique de câblage.
C’est ensuite au tour des condensateurs, par ordre de hauteur (attention au sens des condensateurs électrolytiques) et des transistors pour lesquels il faudra se référer aux dessins et aux photos afin de les implanter dans le bon sens.
Le transistor T1 devant dissiper une chaleur importante est fixé sur un refroidisseur ayant une résistance thermique de 10 °C/W (ML33) ainsi, après en avoir plié les pattes à 90°, il suffit de le souder sur le circuit imprimé.
La LED LD1 doit être enfoncée au maximum près du circuit imprimé, rappelezvous que le côté légèrement tronqué de son boîtier est la cathode.
Attention également au pont redresseur PT1, car si vous ne le mettez pas en place convenablement, le circuit ne fonctionnera pas.
Il n’y a pas de prescription particulière pour le quartz Q1.
Pour réaliser la connexion avec le modem GSM et le transformateur d’alimentation, il est utile de monter des borniers à vis au pas de 5 mm en correspondance des trous se trouvant sur le circuit imprimé.
Toutes les soudures terminées, vous pouvez insérer les trois circuits intégrés dans leur support respectif, en faisant attention à ce qu’ils soient correctement orientés. Pour cela, fiez-vous au schéma d’implantation des composants de la figure 7.
A présent, l’unité de contrôle est prête.
Comme vous avez déjà monté les cartes d’affichage, il vous suffit de réunir les points “+V”, “CLOCK”, “CLEAR”, “DATA” et “MASSE”, d’une part, et les points “ROW1” à “ROW7”, d’autre part, par des ponts réalisés avec des queues de résistances.
Toutes les liaisons étant réalisées points à points (le travail est facile, car chaque point doit être relié à celui qui se trouve en regard). Prenez un transformateur avec un primaire de 220 volts 50 Hz, un secondaire de 10 volts et reliez au primaire un cordon d’alimentation équipé d’une fiche secteur.
Ensuite, avec deux morceaux de fils isolés, reliez les extrémités du secondaire aux points marqués “AC” sur le circuit imprimé de l’unité de contrôle.
Après avoir vérifié les connexions, insérez la fiche dans une prise de secteur.
Seule la LED témoin de mise en service du circuit principal devrait s’allumer et indiquer ainsi l’état de marche.
Coupez le courant et préparez-vous à l’interconnexion avec le modem WM02 que vous devrez déjà avoir doté d’une carte SIM (figure 8).
A ce propos, notez qu’il suffit, pour cela, de se procurer soit une carte prépayée de n’importe quel opérateur qui travaille en GSM 900 (ITINERIS ou SFR), soit une carte normale d’abonné.
En fait, bien que le modem Wavecom soit normalement prévu pour la retransmission de données, dans son utilisation avec les messages SMS, n’importe quel contrat est valable et, par conséquent, la possibilité de connexion à la ligne de transmission de données n’est pas utilisée.
La liaison entre le modem et l’afficheur s’effectue à l’aide d’un câble à trois fils plus le blindage, d’une longueur pouvant atteindre 15 mètres, à connecter comme suit.
Le blindage va au bornier de masse, un des conducteurs internes au + et les deux autres au TX et au RX, qui, nous le rappelons, font référence au DB-15 du téléphone. A l’autre extrémité du câble, installez un connecteur DB-15 haute densité. Ce connecteur à 15 broches haute densité est câblé de la façon suivante :
Au contact 2, doit arriver le fil RX, au 3, le fil TX, le 7 et le 8 sont pontés entres eux, ainsi que 11 et 12, autrement, la liaison sérielle fonctionnera mal.
En pratique, ces broches établissent la liaison entre RTS et CTS (11 et 12) et DSR et DTR (7 et 8).
Ces connexions permettent de se passer de protocole pour la communication, déchargeant ainsi le PIC12C672 d’un devoir qui l’aurait contraint à effectuer des opérations en plus de celles dont il doit déjà s’occuper.
En ce qui concerne le + et la masse, vous devez les insérer dans une fiche qui entre dans celle d’alimentation du WM02, en suivant les instructions fournies avec le produit.
Installez l’ensemble sur un plan de travail, mettez sous tension et après avoir noté le numéro de la carte SIM, envoyez un message d’essai avec un téléphone GSM.
N’oubliez pas, que chaque message, pour être considéré comme valable, doit être précédé par “##” et terminé par “#”, sans aucun espace.
Par exemple, “TEXTE D’ESSAI” doit être écrit ainsi “##TEXTE D’ESSAI#”.
Composez le numéro assigné au modem GSM, envoyez le SMS et attendez quelques instants.
Comme vous le savez, les gestionnaires de la téléphonie mobile, garantissent l’arrivée des messages SMS en quelques secondes.
Une fois le message arrivé, vous vous en rendrez compte, car l’afficheur s’allumera et commencera à visualiser le texte.
Maintenant, essayez d’envoyer un nouveau message, à son arrivée, vous verrez disparaître quelques instants l’ancien message et peu après, l’afficheur se rallumera faisant défiler le nouveau message.
Une dernière précision, si vous voulez une confirmation immédiate de l’aboutissement du message, sachez que les opérateurs prévoient chacun un code particulier, à insérer au début du texte, ainsi, après l’envoi, vous recevrez à votre tour un message SMS, indiquant l’accusé de réception de la part du modem WM02.
Cela peut être utile pour éliminer une ambiguïté et pour savoir exactement si l’éventuelle absence d’affichage est due au fait que le message n’a pas encore abouti ou dû à un défaut de fonctionnement du système.
Figure 8: Représentation schématique des connexions entre le modem WM02-900 et l’entrée de la carte de commande de l’afficheur à texte défilant. La photo d’illustration complète cette représentation. Le tableau donne le brochage de la prise de sortie DB15 du modem.
Aucun commentaire:
Enregistrer un commentaire