Electronique > Réalisations > Jeux de lumière > Chenillard 018

Dernière mise à jour : 01/01/2012

Article non terminé, volontairement non référencé dans les sommaires du site


Présentation

Ce chenillard est de type programmable, vous pouvez spécifier les figures lumineuses que vous voulez voir défiler les unes après les autres. Il est doté d'afficheurs LED sept segments permettant de connaître à tout instant :
- le numéro du programme en cours, de 1 à 64;
- le numéro de la figure (étape) dans le programme en cours, de 1 à 63 (ou de 1 à 31, voir texte).
Le coeur du montage est un PIC de type 16F88 qui ne réclame pas beaucoup d'autres composants autour de lui. Les sorties se font sous 230 Vac au travers d'une interface de puissance pourvue d'optocoupleurs, assurant ainsi une excellente isolation entre la partie puissance et la partie commande. Cette interface de puissance peut être troquée contre une interface plus simple à transistors si les lampes à commander sont de type basse tension et basse puissance.

Avertissements

Pour le moment, ce chenillard ne possède qu'une taille mémoire limitée de 256 octets (mémoire interne du 16F88), divisée en 8 programmes de 31 pas chacun (un octet est réservé pour chaque programme pour stocker sa longueur réelle, ce qui explique que l'on ne dispose pas de 32 octets). Je prévois à terme d'ajouter une mémoire EEProm externe d'au moins 4 KO (style 24C32) afin d'augmenter les capacités du circuit. En l'absence de mémoire additionnelle, tout numéro de programme supérieur à 8 et tout numéro de pas (étape) supérieur à 31 ne sont pas permis. Avec la mémoire externe, on aura droit à 64 programmes de 64 pas chacun. En résumé :
Sans mémoire externe : 8 programmes de 31 pas chacun (mémoire interne 256 octets)
Avec mémoire externe 4 KO : 64 programmes de 63 pas chacun (mémoire externe 4096 octets)
Quand les fonctions de lecture / écriture dans la mémoire externe seront opérationnelles, on pourra aussi bien utiliser les espaces mémoire interne que externe. Je ne sais pas encore si l'organisation des figures en mémoire interne restera de [8 x 31] ou si elle évoluera en [4 x 63] en présence de mémoire externe. Une patte libre du PIC pourrait fort bien être mise à profit pour effectuer la sélection entre les deux possibilités. Je verrai ça le moment venu.

Mode de fonctionnement

Avant d'entrer dans le vif de la partie technique, voici les fonctions principales de la machine, qui est dotée de 16 boutons poussoirs et de deux afficheurs numériques pour assurer l'ensemble des commandes et réglages. 

chenillard_018_fp_001a

Déroulement des programmes
Lors de la mise sous tension, le chenillard charge le programme N° 1 et se place en son début (étape N° 1). Puis il se place en mode "prêt à jouer". L'appui sur le poussoir Run active le défilement des spots selon les figures programmées et sauvées en mémoire par l'utilisateur. Si lors d'une séquence en cours on appuie sur le bouton Mode, les programmes se succèdent les uns aux autres après que chacun ait déroulé son cycle complet (programmes successifs). Dans le cas contraire, le même programme tourne en boucle (programme unique). L'appui sur les boutons Prog+ ou Prog- incrémente ou décrémente le numéro de programme en cours de déroulement, que le système soit en mode "programme unique" ou "programmes successifs".
Un nouvel appui sur le poussoir Run arrête le déroulement du programme en cours. Run pour arrêter... ça me rappelle quelque chose...

Programmation des figures lumineuses
La programmation des figures se fait selon la procédure suivante. Le chenillard doit être en mode arrêt.
- Appuyer au moins une seconde sur le poussoir Mode jusqu'à ce que le numéro de programme clignote (le clignotement signale que le système est entré en mode programmation).
- Se déplacer dans les étapes du programme en cours avec les boutons Step+ et Step-.
- Pour chaque étape (step) du programme, définir les lampes à allumer ou à éteindre, avec les boutons L1 à L8. Les poussoirs L1 à L8 agissent en bascule, un appui allume la lampe correspondante et un nouvel appui l'éteint.
- Lorsque la dernière étape du programme en cours est atteinte, appuyer sur le bouton Save. Cette action a deux rôles. Premièrement le programme complet est sauvé en mémoire EEProm et reste ainsi conservé même après coupure complète d'alimentation, et d'autre part il indique au logiciel de séquencement combien d'étapes (de figures) le programme comporte.

Effacement complet d'un programme
Il est parfois plus simple d'effacer complètement un programme et de le redéfinir à partir de zéro. Ceci est possible grâce au bouton Clear, qui doit être appuyé au moins pendant deux secondes et ce pendant que le système est en mode programmation. En mode normal, le bouton Clear est totalement inopérant et c'est tant mieux vu qu'il se trouve juste à côté du bouton Run...

Modes de fonctionnement
Le bouton Mode permet de passer d'un mode de fonctionnement à un autre, selon le plan suivant :
- au démarrage, mode "Normal / programme unique". Dans ce mode le même programme tourne en boucle, et le changement de programme se fait par les poussoirs Prog+ et Prog-.
- appui bref : passage en mode "Normal / programmes successifs". Dans ce mode, les programmes se succèdent automatiquement les uns au autres.
- appui bref : passage en mode "Orgue lumineux". Dans ce mode, les sorties ne sont plus activées par les programmes enregistrés, mais le sont manuellement par appui direct sur les poussoirs L1 à L8.
- appui bref : retour en mode "Normal / programme unique".
Un appui long (d'au moins deux secondes) sur le poussoir Mode permet d'entrer en mode programmation. Un appui bref permet de sortir du mode programmation.

Boutons lumineux ou normaux ?
Si le panneau de contrôle du chenillard risque d'être placé à un endroit peu éclairé, je conseille l'emploi de boutons lumineux pour les fonctions Mode, Prog+, Prog-, Run et pour les huit boutons L1 à L8. Pour les autre boutons, uniquement utilisés en mode programmation, cela me semblerait du luxe. Vous pouvez aussi ajouter au boitier un petit flexible (col de cygne) avec une petite lampe d'éclairage au bout (une LED haute luminosité peut suffire), comme cela se fait pour certaines platines disque et sur certaines consoles de mixage.

Pourquoi tant de boutons poussoirs et pourquoi des afficheurs LEDs ?

La programmation des figures et l'accès aux diverses fonctions pourraient se faire avec seulement quatre voire même seulement deux boutons poussoirs. Mais pour ce genre d'application, je préfère nettement disposer d'accès directs pour une souplesse d'emploi accrue. Pour ce qui est de la section affichage, j'aurais pû utiliser un afficheur LCD au lieu de quatre afficheurs LED sept segments. Mais je trouve cela trop limite pour un usage dans un milieu pas toujours très bien éclairé, et où de surcroit il faut pouvoir lire vite et de loin. C'est un peu comme les lecteurs CD pour discothèque ou pour radios : les boutons de commande sont d'une taille imposante, mais c'est loin d'être du luxe quand on doit faire vite.

Schéma

Le montage est basé sur un PIC de type 16F88 et de quelques circuits intégrés CMOS courants et bon marché.

chenillard_018

Coeur du montage
L'intelligence du système repose sur un petit microcontrôleur de type PIC 16F88. C'est lui qui se charge :
- des commandes et modifications utilisateur (programmation des figures lumineuses),
- de l'affichage des numéros de programme et figure en cours,
- de la commande des sorties.

Oscillateur du PIC
Le schéma montre l'utilisation d'un quartz, et c'est tant mieux car il est requis. On exploite en effet le mode d'oscillateur externe.

Analyse des poussoirs enfoncés
Les seizes boutons poussoir peuvent sembler curieusement agencés pour ceux qui ne connaissent pas la technique employée. Ils sont en effet reliés sur un diviseur résistif de tension multiple qui fournit plusieurs tensions continues fixes, chaque poussoir faisant le lien vers un point donné du diviseur. Selon le poussoir enfoncé, on retrouve donc une tension différente au point marqué A1 sur le schéma. Cette tension, qui est voisine de 0 V au repos, prend une valeur pouvant aller d'un peu plus de +50 mV à un peu moins de +5 V selon le bouton poussoir enfoncé. Appliquée à l'entrée analogique AN0 du PIC, cette tension continue est échantillonnée et convertie par le convertisseur A/N intégré en une valeur numérique comprise entre 0 et 1023 car le convertisseur A/N du PIC est de type 10 bits. Valeur numérique qui est ensuite interprétée par le logiciel du PIC, qui sait quoi faire en fonction de la valeur lue. Pour plus de sécurité, le logiciel lit une nouvelle fois la tension présente sur l'entrée analogique après un délais de 100 ms, quand la valeur lue est non nulle. La seconde valeur lue est comparée à la première et n'est acceptée que si elle ne diffère que de quelques mV, ce qui permet de s'affranchir de parasites de toutes sortes. Remarquez que cette façon de faire ne permet pas d'appuyer simultanément sur plusieurs boutons poussoir ou pour être plus précis si on le fait le résultat peut être aléatoire. Mais cela ne constitue pas un défaut dans notre cas et présente même l'avantage indéniable de n'utiliser qu'une seule ligne d'entrée du PIC. En mode matricé, il aurait fallu huit lignes d'entrée / sortie pour les 16 poussoirs (quatre rangées et quatre colonnes).
Vitesse de défilement des figures
Le réglage de la vitesse de défilement se fait via un potentiomètre classique. Cependant, ce dernier ne fait pas varier la fréquence de l'oscillateur de base du PIC, qui reste constante à tout instant. Le potentiomètre est monté en diviseur de tension et fournit une tension continue comprise entre 0 V et +5 V (à très peu de chose près). Cette tension mesurable au point marqué A2 sur le schéma est appliquée à une des entrées analogiques du PIC (AN1) pour être convertie en numérique (N). La valeur numérique obtenue après conversion est comprise entre 0 et 1023 et est utilisée pour définir la vitesse de défilement des séquences. Plus la valeur numérique est élevée et plus le déroulement se fait de façon rapide (on aurait pû faire l'inverse). La mesure de la position du potentiomètre (ou plus précisement de la tension continue appliquée sur l'entrée AN1 du PIC) est réitérée toutes les 100 ms, ce qui me semble bien suffisant pour réagir assez vite aux mouvements de l'opérateur. Si cela s'avérait insuffisant, on pourrait tout à fait doubler ou tripler la cadence des échantillonnages.

Affichage numérique
Il se fait au moyen de quatre afficheurs LED sept segments groupés deux par deux. Chaque groupe de deux permettent d'afficher un nombre compris entre 0 et 99 mais qu'on limite ici à une plage comprise entre 1 et 63. Au démarrage du système, le programme n°1 est chargé et est placé en première position (étape N°1). L'ensemble des données à afficher et l'état des sorties à commander tiennent sur cinq octets (5 x 8 soit 40 bits en tout) : deux octets pour l'affichage du numéro de programme, deux octets pour l'affichage du numéro de pas (étape) et un octet pour l'état des huit sorties. Ces cinq octets sont transmis de façon sérielle depuis le PIC vers les cinq registres à décalage CD4094. Un registre par octet, ça tombe très bien tout ça. Les registres se chargent de faire la conversion série / parallèle des données transmises en série, et le tour est joué.

Interface de puissance

Le schéma qui suit correspond au sous-ensemble marqué INT. PUISSANCE sur le schéma général. Il met en oeuvre ce qu'il faut pour commander des ampoules fonctionnant en 230 V alternatif, selon le classique couple optotriac / triac.

chenillard_018z - Interface puissance

L'étage de sortie est assez classique pour celui qui connait déjà les optocoupleurs ou phototriacs et les triacs, le nombre de composants est limité au strict minimum. Une LED est montée en série avec chaque optotriac, les huit LED qu'on trouve au final sont celles qui sont déportées sur la face avant et qui permettent à tout instant de visualiser les sorties qui sont actives.

Extensions prévues ?

Je prévois d'utiliser les entrée/sortie RB2/RX et RB5/TX pour permettre le raccord à un logiciel tournant sur PC. Pourquoi pas ProgSeq... Mais chaque chose en son temps, rendons déjà opérationnelles les fonctions de base et après on verra.

Logiciel du PIC

Sera disponible une fois le projet terminé.

Circuit imprimé

Non réalisé.