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

Dernière mise à jour : 07/04/2024

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.

chenillard_018_fp_001a

Il est doté d'afficheurs LED sept segments permettant de connaître à tout instant :
- le numéro du programme en cours, de 1 à 8 (de 1 à 64 avec extension mémoire, détails dans le texte);
- le numéro de la figure (étape) dans le programme en cours, de 1 à 31 (ou de 1 à 63 avec extension mémoire).

Le coeur du montage est un PIC de type 16F1827 qui réclame peu de composants annexes 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

   

Logiciel du PIC mis à disposition en l'état, pas testé en profondeur (système simulé avec succès, mais pas de prototype physique).

   

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 2 digits pour assurer l'ensemble des commandes et réglages.
   
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" (affichage "rO" pour "Run One") ou "programmes successifs" (affichage "rA" pour "Run All").
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 autant de fois qu'il le faut et au moins une seconde sur le poussoir Mode jusqu'à ce l'afficheur Programme affiche "Pr" et clignote (le clignotement signale que le système a accepté le changement de mode).
- Choisir le programme à modifier avec les boutons Prog+ et Prog-.
- 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. Ce point est important à retenir, car si vous souhaitez modifier l'état des lampes à une étape située avant la dernière dans le programme en cours, il faudra impérativement se déplacer jusqu'à la dernière avant d'appuyer sur Save.
   
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 pressé pendant que le système est en mode programmation. En mode normal, le bouton Clear désactive toutes les sorties, mais cet état n'est pas sauvegardé en mémoire (le programme est toujours présent dans la mémoire du PIC ou dans la mémoire externe). C'est tant mieux, car le bouton Clear 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" (rO). Dans ce mode, le même programme tourne en boucle (après activation par le bouton Run) et le changement de programme se fait par les poussoirs Prog+ et Prog-.
- appui bref : passage en mode "Normal / programmes successifs" (rA). Dans ce mode, les programmes se succèdent automatiquement les uns au autres.
- appui bref : passage en mode "Manuel / Orgue lumineux" (MA). 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 : passage en mode "Programmation" (Pr). C'est le seul mode où la sauvegarde des modifications apportées est possible.
- appui bref : retour en mode "Normal / programme unique" (rO).
   
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 ou 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 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 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, c'est loin d'être du luxe quand on doit faire vite.

   

Schéma

Le montage d'origine (2010) était basé sur un PIC 16F88. Le montage le plus récent (2024) s'appuie sur un PIC 16F1827. A ce PIC s'ajoutent quelques circuits intégrés CMOS courants et bon marché (registres à décalage CD4094 et octuple darlington ULN2803), et en option une mémoire externe pour augmenter le nombre de programmes que l'utilisateur peut agencer et sauvegarder.

chenillard_018
   
Coeur du montage
L'intelligence du système repose sur un petit microcontrôleur de type PIC 16F1827. 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.
   
Capacité mémoire
Le nombre de programmes et le nombre de pas pour chaque programme dépend de la présence ou non d'une mémoire externe raccordée au PIC. A la mise sous tension, le logiciel du PIC cherche une mémoire externe. Si aucune mémoire externe n'est détectée, c'est la (petite) mémoire interne du PIC qui est utilisée.

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 pas (ou de 64 pas) par programme. 

 
Oscillateur du PIC
Pas de quartz externe (totalement inutile ici), on exploite le mode oscillateur interne.
   
Analyse et reconnaissance du bouton-poussoir pressé

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é A0 sur le schéma. Cette tension, qui est voisine de 0 V au repos, prend une valeur pouvant aller d'un peu plus de +100 mV à un peu moins de +5 V selon le bouton pressé. 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 (convertisseur A/N du PIC de type 10 bits). Cette valeur numérique 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 deux fois de suite la tension présente sur l'entrée analogique avec un temps de 100 ms entre les deux mesures, 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 ce type de câblage ne permet pas d'appuyer simultanément sur plusieurs boutons-poussoir. Pour être plus précis, presser en même temps plusieurs boutons-poussoirs conduirait immanquablement à un comportement aléatoire. Cette contrainte 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). Une économie de 7 fils sur 8, c'est plutôt bien !
   
Vitesse de défilement des figures

Le réglage de la vitesse de défilement se fait via un potentiomètre classique. Celui-ci ne fait pas varier la fréquence de l'oscillateur de base du PIC, qui reste constante à tout instant. Le potentiomètre qui est monté en diviseur de tension fournit une tension comprise entre 0 V et +5 V. Cette tension mesurable au point marqué A1 sur le schéma est appliquée à une seconde entrée analogique 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 tension relevée en A1 est élevée et plus la valeur numérique est élevée et plus le déroulement des séquences lumineuses 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épétée 1000 fois par seconde, ce qui me semble suffisant pour réagir au doigt et à l'oeil du plus excité des opérateurs.
   
Affichage numérique
Il est assuré par 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 8 (programme) ou entre 1 et 31 (étape dans le programme). 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é.

Extension possible ?
Et avec 16 voies de sortie au lieu de 8, c'est possible ?
   
chenillard_018b_fp_001a
Très probablement...

   

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.

   

Logiciel du PIC

Fichier compilé (hex) disponible dans l'archive suivante :
Chenillard 018 - PIC 16F1827 - (06/04/2024)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

    

Circuit imprimé

Non réalisé.

   

Historique

07/04/2024
- Ajout fonction enregistrement programme en mémoire externe.
- Changement du type de la mémoire externe : 24AA128 (en production) en remplacement de la 24C32 (obsolète).

31/03/2024
- Reprise en main du système. Eh oui, 14 ans après !
- Remplacement du PIC 16F88 par un 16F1827.
- Mise à disposition du logiciel du PIC (programme en l'état, pas vérifié à fond).

xx/xx/2010
- Premiers pas... avec un résultat pas convainquant et pour cette raison jamais publié.