Sélectionnez votre langue

Présentation

La réalisation qui suit a été développée à la demande du centre de la bande dessinée de Bruxelle, dans le cadre d'une exposition.

interface_commandes_002_pcb_3d_a

Le circuit permet de saisir un nombre quelconque sur un clavier géant pour déclancher la lecture d'un fichier multimédia stocké sur une carte SD elle-même placée dans un lecteur multimédia de marque iDAL.

Cahier des charges

Le circuit devait répondre aux besoins suivants :

  • Transformation d'un nombre saisi sur un clavier à touche (entre 1 et 255) en une représentation binaire sur 8 bits (un octet).
  • Possibilité de spécifier un nombre maximal permis (limite supérieure de valeur inférieure à 255)
  • Présence d'une touche RANDOM (octet de sortie présentant une valeur aléatoire)
  • Possibilité de choisir entre modes auto-validation (timer) et validation manuelle (via touche ENTREE)
  • Octet de sortie délivré sous forme maintenue ou impulsionnelle
  • Possibilité de commander des optocoupleurs (interface de sortie à transistors)

Le tout dans un format compact et alimenté sous une tension unique de 5 V ou 12 V.

Schéma

Le circuit s'appuie sur un PIC 18F45K22, l'interface de sortie à transistors se résume à un ULN2803.

interface_commandes_002
(image volontairement floutée)

Principe général

L'utilisateur saisi un nombre quelconque sur un clavier à touches câblé en matrice (4 rangées et 4 colonnes), ce nombre peut être composé de 1, 2 ou 3 chiffres. Lors de l'appui sur un chiffre, le système agit différement selon qu'il se trouve en mode de validation manuelle ou en mode de validation automatique.

  • Dans le mode de validation manuelle, l'utilisateur doit valider le nombre saisi (1 à 3 chiffre) en appuyant sur la touche ENTER.
  • Dans le mode de validation automatique, une temporisation est démarrée dès l'appui sur une touche. Cette temporisation est remise à zéro lors de l'appui sur n'importe quel chiffre. Au terme de la temporisation, le système valide automatiquement la saisie, sans que l'utilisateur ait besoin de presser le bouton ENTER. La durée de la temporisation (temps dont l'utilisateur dispose pour saisir le nombre) peut être ajustée. Ce mode de fonctionnement est comparable à celui utilisé pour les touches de télécommande des récepteurs TV.

Le choix du mode "validation manuelle" ou "validation automatique" s'effectue grâce à un cavalier (inaccessible à l'utilisateur final).

Mode validation (automatique ou manuelle)

Le mode de validation manuel ou automatique dépend de l'état de la ligne RC0 du PIC et donc de la présence ou absence du cavalier JP1.

  • JP1/Auto-Enter retiré = (RC0 = 0) : mode manuel, l'utilisateur doit presser le bouton ENTER après saisie du ou des chiffres du nombre.
  • JP1/Auto-Enter en place (RC0 = 1) : mode automatique, validation après une temporisation (ajustable) qui démarre ou redémarre à chaque pression d'un chiffre.

La durée de la temporisation est de 1,0 seconde par défaut. Pour la modifier, il faut presser le bouton # (la LED Timer s'allume), puis saisir le nombre de [paquet de 10 ms] désiré. Par exemple pour une durée de 3 secondes, il faut saisir le nombre 300 (300 * 0,010 sec = 3 secondes). Le nombre maximal pouvant être saisi est 999 (10 secondes environ), il est stocké en EEPROM et rappelé à la mise sous tension suivante.

Mode de sortie (maintenu ou impulsionnel)

Le mode maintenu ou impulsionnel des sorties dépend de l'état de la ligne RC1 du PIC et donc de la présence ou absence du cavalier JP2.

  • JP2/Out-Pulse retiré (RC1 = 0) : les sorties S0 à S7 (port D du PIC) prennent la valeur qui correspond au nombre saisi par l'utilisateur, et restent dans le même état jusqu'à nouvelle saisie.
  • JP2/Out-Pulse en place (RC1 = 1) : les sorties S0 à S7 (port D du PIC) prennent la valeur qui correspond au nombre saisi par l'utilisateur pendant 100 ms, puis repassent toutes à zéro.

Quand les sortie S0 à S7 sont à l'état logique bas (0 V), les transistors correspondants inclus dans le ULN2803 ne sont pas passants et les optocoupleurs qui font suite (dans le lecteur iDal) ne sont pas activés. Quand les sortie S0 à S7 sont à l'état logique haut (+5 V), les transistors correspondants inclus dans le ULN2803 sont passants et les optocoupleurs qui font suite sont activés.

Limite (nombre max)

Pour spécifier le nombre au-delà duquel on ne peut aller, presser le bouton LIMIT puis saisir les chiffres correspondant à ce nombre. La valeur est stockée en EEPROM et rappelée à la mise sous tension suivante. Si après cela l'utilisateur saisit un nombre supérieur à la limite spécifiée, alors la sortie s'active avec la valeur 255 pour lecture d'un fichier "Erreur".

Section de "puissance"

Elle se limite à l'utilisation d'un ULN2803 qui comporte huit transistors darlington. Ce circuit peut être remplacé par huit transistors NPN "discrets" (par exemple 2N2222, BC107 ou BC517), chacun devant être équipé d'une résistance de limitation du courant de base (2,2 kO).

Alimentation

L'alimentation de l'interface doit se faire en +5 V et ne réclame que quelques dizaines de mA. Un régulateur de tension de type LM7805 (ou même un 78L05 qui est la version 100 mA) peut donc être mis en oeuvre. Comme le lecteur iDal piloté par cette interface met à disposition un +12 V (500 mA), point besoin de bloc alim externe. Cependant, le cavalier JP3/PS permet de choisir la source d'alimentation :

  • JP3/PS en position A : appliquer une tension continue comprise entre +8 V et +15 V sur le bornier J3/Alim.
  • JP3/PS en position B : appliquer une tension continue de +5 V sur le bornier J3/Alim.

Attention, ne pas appliquer une tension supérieure à +5,5 V sur le bornier J3/Alim quand JP3 est en position B, sous peine de détruire le microcontrôleur !

Programmation du PIC

Si besoin, le PIC peut être reprogrammé in situ via le connecteur J2/ICSP. Comme les broches dédiées à la programmation ICSP ne servent à rien d'autre, aucune manoeuvre spécifique n'est à prévoir, si ce n'est de brancher le programmateur sur ledit connecteur.

Remarques diverses
  • La LED LED3 connectée sur la ligne RC4 s'allume brièvement à chaque pression d'un chiffre, ainsi qu'après modification du délai Timer ou du nombre Limit, ceci dans le but de confirmer la bonne prise en compte des actions de l'utilisateur. En pratique, cette LED ne servira que pour tester le bon fonctionnement de l'ensemble au moment de la première installation.
  • Dans le mode de saisie automatique, il est possible d'appuyer sur la touche ENTER avant la fin de la temporisation. Dans ce cas, la validation est immédiate.
  • Dans le mode de sortie impulsionnelle, la durée d'activation des sorties est de 100 ms. Cette durée peut être raccourcie ou allongée si besoin, mais nécessite dans ce cas une reprogrammation du PIC.

 

Logiciel du PIC

Demande pro, logiciel non disponible sur ce site.

Prototype

Réalisé avec ma platine EasyPic7 et un clavier matricé avec protection par diodes.

interface_commandes_002_proto_001a interface_commandes_002_proto_001b interface_commandes_002_proto_001c

On retrouve bien la protection contre les surtensions éventuellement véhiculées par les grands câbles qui assurent la liaison entre le clavier et le circuit principal (résistances, diodes zeners et condensateurs).

Réalisation pro

Circuit finalisé (en double face) en action avec le lecteur iDAL...

interface_commandes_002_proto_mfv_001a interface_commandes_002_proto_mfv_001b