Electronique > Réalisations > Interfaces > DMX > Contrôleur DMX 001

Dernière mise à jour : 16/03/2014

Présentation

Ce contrôleur DMX dispose de quatre canaux dont la valeur est assignable par le biais de potentiomètres classiques.

controleur_dmx_001_pcb_3d_a

Le montage fait appel à un microcontrôleur PIC de type 16F88 et a été conçu pour piloter un projecteur à LED de type PAR36 de marque Ibiza qui pour la partie DMX ne nécessite que 4 canaux. C'était surtout l'occasion de me faire un peu la main avec le DMX puisqu'il s'agit de mon premier projet s'appuyant sur ce protocole. Voir aussi le contrôleur DMX 002 qui me sert maintenant pour tester mes récepteurs DMX. Suite à une demande, j'ai ajouté le schéma d'un montage pour utiliser le logiciel actuel en mode "orgue lumineux" :
- schéma 001 : schéma d'origine, usage avec potentiomètres.
- schéma 001b : schéma modifié, usage avec boutons-poussoir pour usage en orgue.
Les deux schémas, tenez-vous bien, peuvent être combinés...
- schéma 001c : mélange des deux fonctions (avec boutons-poussoirs et potentiomètres).

Avertissement

Ce projet a été à l'origine développé pour un projecteur PAR36 LED Ibiza. En aucune manière je ne peux assurer qu'il fonctionne avec d'autres types de jeux de lumière, même si le pourcentage de possibilité n'est pas nul puisque j'ai fait dans le standard. Les canaux DMX ont les fonctions suivantes :
Pour savoir si ce montage est compatible avaec d'autres projecteurs, merci de vous reporter à leur manuel utilisateur, notamment au paragraphe qui mentionne l'implémentation des commandes DMX.

Retour de Jean-Louis (11/03/2014) :
Ce contrôleur DMX 001 fonctionne bien avec mon projecteur DMX Involight mais pas correctement avec mon projecteur Ibiza.
C'est drôle, non ?

Schéma 001 - Avec potentiomètres

Le schéma suivant est presque complet, il ne lui manque que son alimentation 5 V. Simple, n'est-ce pas ?

controleur_dmx_001

Lecture des valeurs DMX
Chacune des cinq valeurs est acquise par le PIC au travers de son CAN (Convertisseur Analogique Numérique) qui transforme une valeur discrète de tension analogique en sa représentation codée en numérique. Le CAN inclus dans le PIC 16F88 possède une résolution de 10 bits, ce qui permet de disposer d'un nombre compris entre 0 et 1023 (valeur maximale égale à 10 puissance 10 auquel on retranche 1 puisque la valeur 0 ne compte pas pour du beurre).
Remarques :
- il aurait été possible de n'utiliser qu'un seul potentiomètre pour les deux premières fonctions, mais je trouvais plus souple (et plus excitant) de les dissocier entièrement. En effet, le projecteur différencie la valeur reçue comme étant attribuée au stroboscope ou au réglage du taux de luminosité globale selon la plage dans laquelle se situe la valeur transmise dans le canal 1. Si la valeur est comprise entre 1 et 127, elle est destinée à la fonction stroboscope. Si elle est comprise entre 129 et 255, elle est destinée à la fonction variateur (les valeurs 0 et 128 sont ignorées). Le cavalier JP1 qui spécifie le mode stroboscope ou variateur peut être remplacé par un inverseur simple (SPDT).
- les potentiomètres que j'ai utilisés pour la mise au point du proto sont de type ajustable, mais on peut bien entendu utiliser des modèles plus faciles à manipuler, de facade (tableau) ou rectilignes (faders).

Sortie DMX
La sortie DMX suit la norme RS485 et pour ce faire j'ai utilisé un driver de ligne de type MAX487.

Isolation galvanique
Il est normalement plus prudent d'isoler d'un point de vue électrique, le circuit de commande de l'interface ligne RS485. Cela peut être fait grâce à un optocoupleur (par exemple un 6N137) et un convertisseur de tension DC/DC. Ici il s'agit d'un montage d'expérimentation et je n'ai pas pris la peine de procéder à cette isolation (et je ne pense pas être le seul).

Alimentation
Une alimentation régulée délivrant une tension de 5 V sous au moins 100 mA est requise. Un régulateur de tension de type LM7805 fera parfaitement l'affaire pour la stabilisation de tension.
Exemple d'alimentation simple.

Schéma 001b - Avec boutons-poussoirs (fonction orgue)

Puisque les entrées analogiques du PIC convertissent des tensions continues en valeurs de canal DMX, pourquoi ne pas profiter du fait qu'un condensateur peut se charger rapidement et se décharger lentement ?

controleur_dmx_001b

Oui, pourquoi pas ? En remplaçant les potentiomètres du premier schéma par un trio poussoir-condensateur-résistance, on peut disposer à moindres frais d'une tension qui grimpe d'un coup quand on presse le poussoir (charge quasi-imédiate du condensateur) et qui chute progressivement quand on le relâche (décharge du condensateur dans une résistance de forte valeur). En tout cas, je vous le dis, c'est un truc rigolo qu'il faut tester. Envie que la descente soit plus rapide ? Il suffit de diminuer la valeur du condensateur ou de la résistance (pour cette dernière, ne pas aller en dessous de 1 kO). Envie que la descente soit plus lente ? Augmenter la valeur du condensateur (22 uF pour deux fois plus lent).

Trouvez l'erreur...
Si vous avez compris ce que j'ai dit en filigrane dans les lignes qui précèdent à propos des potentiomètres RV1 et RV2, vous pouvez raisonnablement vous demander pourquoi j'ai remplacé RV1 et RV2 par les poussoirs SW1 et SW2. Bien sûr vous pouvez laisser ces deux potentiomètres RV1 et RV2 en place et ne mettre des poussoirs que pour les voies DMX #2 à #4.

Schéma 001c - Car on a le droit d'hésiter...

Vous vous sentez hésitant, ou alors vous avez envie de garder les deux fonctions. Dans ce cas rien de plus simple, il suffit de remètre les potentiomètres que vous aviez retirés, et d'ajouter un inverseur sur les voies que vous avez prises en affection.

controleur_dmx_001c

Si la broche centrale des inverseurs est collée sur le curseur des potentiomètres, on retrouve notre schéma d'origine et les boutons-poussoirs n'ont plus aucune action. Et si à l'inverse la broche centrale des inverseurs est collée sur les boutons-poussoirs... vous avez tout compris, bravo !

Prototypes

Au moins deux...

Mon prototype
Réalisé avec ma platine EasyPic et son petit satellite d'interface électrique RS485 à base de MAX487 que j'appelle pompeusement interface DMX 001, pffff...

controleur_dmx_001_proto_001a controleur_dmx_001_proto_001b interface_dmx_001_proto_001b

Essais effectués avec un projecteur PAR36 LED Ibiza avec microswitches configurés en DMX On (switch 10 sur On) et adresse de base 0 (switches 1 à 9 sur Off).

proj_par36_led_dmx_ibiza_001a proj_par36_led_dmx_ibiza_001b proj_par36_led_dmx_ibiza_001c proj_par36_led_dmx_ibiza_001d

Vidéo de démonstration YouTube
C'est plus vivant quand ça bouge, ça c'est sûr.

video_electronique_controleur_dmx_001_proto_001

Remarque : les effets visibles de "barres noires" sur la vidéo lors des réglages de luminosité (fonction gradateur) sont normaux et sont liés à la relation entre fréquence ligne / image vidéo et fréquence signal PWM des LED du projecteur.

Alors, je raconte ou pas ?
Comme vous le savez, j'adore partager ce qui ne va pas. Parce que ça défoule, que ça peut servir aux autres, bref, j'aime m'épancher sur mes petits malheurs. Il y avait pour cette réalisation deux nouveautés pour moi. Une matérielle (liaison RS485) et une logicielle (protocole DMX). Quoique je me rend compte que je vous mens un peu, car j'avais déjà un peu touché au RS485 il y a quelques années, pour des équipements de diffusion TV (modulateur numérique). La mémoire... Vous savez ce que c'est. Me restait donc principalement à me faire la main sur des signaux DMX auxquels je n'avais jamais goûté. Et comme je sais très bien que la réception de données DMX est plus ardue que l'émission de données DMX, j'ai commencé par le plus simple. D'où ce petit contrôleur DMX de quelques voies. Vous savez comme moi qu'on trouve des tonnes de réalisations semblables à la mienne sur le net (et qui fonctionnent), donc pas grand chose de nouveau, si ce n'est... le code source mis à disposition en "langage clair". Mais je m'égare. Bien entendu, ça n'a pas fonctionné du premier coup. Je m'en serais voulu. Alors voici les points sur lesquels j'ai buté, pour ne pas vous faire attendre plus longtemps.
Ca fonctionne donc. Oh, je sais, il n'y a pas de quoi être fier pour un "si petit projet". Et bien détrompez-vous, je suis fier de moi. Parce qu'après plusieurs heures à avoir tourné en rond, j'étais sur le point de laisser tomber et de reprendre seulement la semaine prochaine. Et comme ça marche, je peux finalement vous en causer dès maintenant, en ce beau milieu de janvier 2012 bien givré mais pas autant que moi.

Prototype de Jean-Louis D.
Version 001 avec potentiomètres.

controleur_dmx_001_proto_jld_001a

Montage qui je le crois sera bientôt doté de boutons-poussoirs...

Logiciel du PIC

Le fichier binaire compilé *.hex à flasher dans le PIC ainsi que les fichiers de code source sont disponibles dans l'archive zip ci-après. MikroPascal V5.30 utilisé pour le développement et la compilation. Programme pour schémas 001 et 001b.
Contrôleur DMX 001 - 16F88 - (15/01/2012)
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é, vue 3D pour faire joli.

Historique

16/03/2014
- Ajout schémas 001b et 001c avec fonction "orgue", en gardant le logiciel d'origine.
- Ajout photo prototype de Jean-Louis D., que je remercie pour ses retours.
15/01/2012
- Première mise à disposition