sjeffroy - journal simple (description).pdf
TRANSCRIPT
Rechercher...AccueilNous contacterLiensCV
Journal simple (description)23-03-2007
Ce panneau lumineux est constitué de LED ce qui est plus fastidieux à monter mais qui a le gros avantage d'être beaucoup plus économique et vous pourrez ainsi
choisir la couleur de votre choix et l'intensité lumineuse des LED suivant votre budget.
Vous avez dit programmable ? Le cœur du journal est basé sur un PIC16F876 de l'écurie Microchip cadencé à 24MHz. Les messages programmables sont
stockés dans une EEPROM i2c de type 24LC256 ce qui nous donne une durée de stockage de 10 ans sans batterie.
La matrice de 96 colonnes permet d'afficher simultanément 16 caractères avec la police
5x7 (96 caractères standards) et 12 caractères avec la police 8x8 (256 caractères avec symboles). Cette dernière police vous permettra aussi d'afficher un
logo de 8 pixels de haut en modifiant la table de caractères.
Ce journal peut être piloté par un PC via le port RS232 à l'aide de l'utilitaire HyperTerminal mais il y a aussi un logiciel développé en C++ qui permet de tester,
d'éditer, de sauver et de transférer des listes d'animations. Vous pourrez ainsi modifier vos listes de messages à votre convenance et les transférer rapidement
en moins d'une minute pour les 32Ko de l'EEPROM 24LC256.
Carte vidéo :
(5 KB)
Le programme du PIC est écrit entièrement en C. Le contenu de la matrice de LED est stocké virtuellement en RAM sous la forme d'un tableau de 96 octets
nommé Image[] qui correspond à l'affichage (figure 1) des 768 LED (96*8=768).
On remplit les registres à décalage (74HC164) avec le contenu de la première ligne (Image[0] à Image[11]) et on excite le darlington de commande de la
première ligne. Ensuite on fait la même chose pour les lignes 1, 2, ..., jusqu'à 7. Cette opération est répétée indéfiniment, à grande vitesse, ce qui donne l'illusion
d'une image fixe grâce à la persistance rétinienne de l'œil humain. Par contre on est obligé en contrepartie d'augmenter le courant traversant les LED car on ne
les allume que pendant 1/8 du temps. Cette solution de multiplexage permet d'économiser beaucoup de composants et de réduire la consommation totale du
montage.
Programme principal :
Le programme utilise les interruptions pour le clignotement de la LED power et pour la réception des données séries RS232 qui sont stockées dans un tampon de
réception de 80 octets (bufferRX[]). Le programme principal (figure 3) initialise les périphériques internes du PIC (module i2c, uart, timer, ports d'entrées /
sorties, analogique) puis tourne dans la boucle principale. Cette boucle vérifie que le dernier caractère reçu n'est pas le retour chariot ('\n' ou <CR>) ; si c'est le
cas, on a reçu une commande et il faut l'interpréter (cf. paragraphe suivant). L'image est recalculée si nécessaire et affichée par la fonction lcd_display(). On peut
aussi présenter un iButton ce qui aura pour effet d'afficher son numéro de série sur la console d'HyperTerminal si le CRC est correct.
Accueil Journal simple Description
Electronique
Afficheurs LCD
Horloges
Instrumentation
Audio
Automobile
Journallumineux
Journal simple
Description
Montage
Téléchargements
Logiciel
PIC
Programmateurs
SDCC
Divers
Eagle
Pointeuse électronique
LED IlluminationSystems
Ideal for Signage,Channel Letters,
Interior Design, andArchitecture.
www.ledinc.biz
sjeffroy - Journal simple (description) http://sjeffroy.free.fr/new/index.php?option=com_content&task=v...
1 sur 5 11/12/2011 18:54
Le temps d'affichage de chaque ligne est temporisé par la fonction TEMPO() ; vous pouvez donc faire des essais avec des durées différentes pour obtenir le
meilleur résultat. L'affichage de la matrice complète prend environ 5 ms auxquelles il faut ajouter le temps de calcul de l'image, l'acquisition RS232…
Ce qui donne en théorie 200Hz pour une image fixe, mais tombe à 120Hz environ pendant le défilement horizontal du message.
Les modes d'affichage disponibles sont : défilement de droite vers gauche, fixe et clignotant. Les 2 polices disponibles sont stockées sous forme de tableaux
constants dans la ROM du PIC et prennent respectivement 485 mots pour la police 5x7 et 2048 mots pour la police 8x8. Il reste donc les 2/3 de ROM pour le
programme. Vous trouverez 2 utilitaires écrits en Visual Basic qui permettent de générer facilement les données des tables de caractères si vous avez des
caractères spéciaux à créer par exemple.
EEPROM :
L'EEprom i2c permet de stocker de 63 à 254 messages de 84 caractères chacun avec leurs options d'affichage. Vous pouvez donc choisir entre les 3 types
d'EEprom possibles :
EEPROM Nombre de messages
24LC64 63
24LC128 127
24LC256 254
Le stockage des messages en EEPROM est assez simple. La mémoire est coupée en blocs de 128 octets dans lesquels on trouve tous d'abord les options
d'affichage puis les messages comme décrit dans le tableau ci-dessous.
Adresse Description
Base Adresse message (inutilisé)
Base + 1 N° message (inutilisé)
Base + 2 Mode d'affichage ('D' défilant, 'F' fixe, 'C' clignotant
Base + 3 Vitesse de défilement du message
Base + 4 Nombre de passages du message défilant (mode défilant)
Base + 5 Durée d'affichage (mode fixe / clignotant)
Base + 6 Police (0 = 5x7, 1 = 8x8, 2 = 16x8)
Base + 7 Message de 84 caractères terminé par le caractère nul '\0'
Base = n°message * 128
Le premier message se trouve à l'adresse 128 car les 128 premières données servent à définir les options du script (nom du script, nombre de messages …)
La programmation de l'EEprom se fait directement à partir du logiciel JourQt développé en C++ via le PIC16F876. L'accès à la mémoire se fait en mode rafale ;
sjeffroy - Journal simple (description) http://sjeffroy.free.fr/new/index.php?option=com_content&task=v...
2 sur 5 11/12/2011 18:54
c'est-à-dire que le PIC adresse l'EEprom puis lit ou écrit, en flot continu, un paquet d'octets. Pour l'écriture, cette série de mémoire limite l'accès à 64 octets
consécutif dans un même bloc.
Interpréteur de commandes :
Pour simplifier l'utilisation du journal, il y a un interpréteur de commande avec un prompt ('>') qui permet à l'utilisateur de communiquer facilement avec le PIC.
Il suffit d'ouvrir HyperTerminal et de le configurer avec les paramètres de la figure 4 sur le bon port de communication COM1 à COM4.
Le fonctionnement de l'interpréteur est le suivant : le 1er caractère correspond à la commande suivie d'options et du caractère de retour chariot ('\n' ou <CR>).
On peut effacer un caractère à tout moment en tapant sur la touche backspace ( ) et annuler la commande en cours avec la touche échap. La commande n'est
prise en compte qu'à la réception du retour chariot ! Il ne faut pas dépasser 80 octets pour la commande sinon elle ne sera pas valide et le message " Buffer
overflow " apparaîtra.
Commande Options N°
T Votre message ici 1
M F 2
F 0 3
La commande n°1 : " TVotre message ici" affiche le texte "Votre message ici" sur la matrice. La commande 'M' permet de choisir le mode d'affichage : 'M' suivi
de 'F' pour le mode fixe (" MD " : mode défilant ; " MC " : clignotant). 'F' suivi de '0' ou '1' pour choisir la police 5x7 ou 8x8. La liste complète des commandes
se trouve dans le tableau 4.
A chaque retour chariot ('\n' ou <CR>), le PIC émet un nombre hexadécimal suivi du prompt ('>'). Ce nombre est le checksum (somme de vérification) de la
commande reçue et permet au logiciel de contrôle du journal JourQt de sécuriser les échanges.
Il faut commencer par tapez 'D' pour afficher l'écho des caractères tapés. Ensuite tapez " MF " pour passer en mode fixe et arrêter le script en cours. Tapez " F0
" et vous aurez l'équivalent de la première image ; si vous tapez ensuite " F1 " vous aurez le même message mais avec la police 8x8. Si vous voulez redémarrer
le script il faut taper " C00 ".
L'électronique :
Le montage est composé de 2 parties : la partie commande avec le microcontrôleur et la matrice de leds. La 1ère carte utilise un PIC16F876 avec 368 octets
de Ram et 8192 mots de mémoire programme. L'alimentation est confiée à un régulateur à découpage, de chez National Semiconducteur, le LM2576T-ADJ
capable de délivrer un courant nominal de 3A avec un très bon rendement de près de 80%. La partie logique est régulée par un régulateur linéaire 7805. Vous
devez monter le pont de diode complet si vous avez un transformateur délivrant une tension alternative. Il est aussi possible d'utiliser une veille alimentation
d'ordinateur capable de délivrer quelques ampères sous 5V moyennant quelques modifications sur le circuit. L'EEprom 24LC256 est connectée directement au
sjeffroy - Journal simple (description) http://sjeffroy.free.fr/new/index.php?option=com_content&task=v...
3 sur 5 11/12/2011 18:54
module i2c du PIC. La communication avec le PC se fait via un MAX232 pour adapter les niveaux. L'entrée analogique RA0 mesure la tension délivrée aux LED.
On peut ainsi contrôler cette tension sur le PC grâce à la commande 'u'. La connexion avec la matrice de LED se fait par un connecteur à 11 plots sur lequel on a
les 4 signaux LA, LB, LC et LEN qui contrôlent la sélection de ligne du 74HC138. Les signaux DATA_IN, CLOCK et RESET servent à transmettre les données séries
aux 24 registres à décalages 74HC164.
Registre à décalage :
Le pilotage des lignes est confié à des transistors PNP TIP42. Les 74HC164 n'étant pas suffisant pour fournir les 70mA pilotant chaque LED, ils sont bufferisés par
des transistors NPN classiques de type BC547. On retrouve aussi des condensateurs de découplage à proximité de chaque circuit intégré afin de limiter les
perturbations électromagnétiques.
Le circuit de la matrice de LED est composé de 4 panneaux simple face. Il faut donc utiliser la cathode de chaque LED pour former un strap sous le circuit. La
photo de la figure 7 vous montre comment monter les LED.
Montage des leds :
Les panneaux sont connectés par des straps réalisés à l'aide de câble monobrin de 1.5mm² pour assurer la connexion des masses et la rigidité mécanique. Il faut
aussi souder une dizaine de straps pour la connexion des signaux. Le montage pourra être monté sur un panneau de plastique et recouvert par un plexiglas
fumé.
Câble RS232 :
La confection d'un câble série de type rallonge RS232 permettra au PC de communiquer avec le journal lumineux. Il faut éviter de dépasser 15m et utiliser du
câble blindé de préférence.
Logiciel PC :
sjeffroy - Journal simple (description) http://sjeffroy.free.fr/new/index.php?option=com_content&task=v...
4 sur 5 11/12/2011 18:54
Le logiciel est téléchargeable dans la section téléchargement. Il faut tout d'abord extraire l'archive zip sur votre disque dur. Le programme fonctionne sur toutes
les versions de Windows à partir de 95. Le programme est écrit en C++ et utilise la librairie Qt 2.30 nc de chez Trolltech pour l'interface homme machine. Ce
logiciel utilise le protocole de communication décrit dans le paragraphe "interpréteur de commandes". Le contrôle du checksum est systématique et permet au
logiciel de savoir si le PIC a bien reçu la dernière commande. En cas d'échec le logiciel réessaye 7 fois de rang et si vraiment vous n'avez pas de chance vous
aurez alors un message d'erreur qui vous inviteras à vérifier votre câble et / ou la connectique. Pour commencer, vous pouvez paramétrer le numéro du port
COM auquel vous avez connecté le journal. Si tout va bien vous devez lire le numéro de version du firmware (1.52) et la tension des LED. Vous devez aussi
choisir le modèle d'EEprom que vous avez monté. Ces 2 paramètres sont sauvegardés dans le fichier jourqt.ini pour les restaurer au prochain lancement.
Un fichier exemple dénommé "demo.bin " est installé avec l'application.
Commencez par taper le texte "Journal Lumineux" puis choisissez le mode défilement, la vitesse 3 et la police 5x7. Il faut ensuite cliquer sur "Ajouter" pour le
mettre dans la liste. Vous pouvez éditer un message en le sélectionnant dans la liste puis en cliquant sur "OK / Update". La fonction "Test Item" permet de tester
le message en cours d'édition sur le journal lumineux (s'il est connecté au PC). Les messages peuvent être déplacés vers le haut ou vers le bas à l'aide des
boutons "Monter" et "Descendre".
Le transfert de la liste d'animation vers le PIC se fait en cliquant sur le bouton "Transférer EE". Le transfert dure environ 40 secondes pour une 24LC256 et 10
secondes pour une 24LC64. Il est aussi possible de lire la liste contenue dans le journal lumineux en cliquant sur "Charger EE". Les listes d'animations peuvent
être enregistrées et chargées à partir du disque dur.
Si vous avez utilisé HyperTerminal avant de lancer JourQt, assurez-vous de passer dans le mode normal en tapant 'd' suivi d'entrée pour sortir du mode de
débuggage avec echo des caractères reçu sinon le logiciel n'arrivera pas à communiquer. Pensez aussi à quitter HyperTerminal ou fermer le port COM. Vous
pouvez aussi tout simplement arrêter puis redémarrer le journal pour repasser dans ce mode.
Liste des composants :
IC1 : PIC16F876_20I/P ou PIC16F876A programmé
IC2 : MAX232
IC3 : 24LC256 (32Ko) ou 24LC128 (16Ko) ou 24LC64 (8Ko) (voir texte)
IC4 : LM2576T-ADJ
IC5 : 7805
IC6 : 74HC138
IC7 - IC18 : 12 * 74HC164
Q1 : 20MHz
CON1 : connecteur DB9 femelle coudé pour circuit
T1-T8 : 8 TIP42C (ou TIP31 ou TIP29)
Résistances 1/4W
R ??-R ?? : 104 résistances 4K7 1/4W
R ?? - R ?? : 96 résistances 33 ohms 1/4W
Matrice : 768 leds 5mm HL
2 Led rouge 3mm
Divers : 2 radiateurs pour IC4 et IC5
1 bornier 2 plot
Dernière mise à jour : ( 26-03-2007 )
[ Retour ]© 2011 sjeffroy
sjeffroy - Journal simple (description) http://sjeffroy.free.fr/new/index.php?option=com_content&task=v...
5 sur 5 11/12/2011 18:54