sjeffroy - journal simple (description).pdf

5

Click here to load reader

Upload: alberto55

Post on 08-Aug-2015

29 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: sjeffroy - journal simple (description).pdf

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

Page 2: sjeffroy - journal simple (description).pdf

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

Page 3: sjeffroy - journal simple (description).pdf

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

Page 4: sjeffroy - journal simple (description).pdf

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

Page 5: sjeffroy - journal simple (description).pdf

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