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

Dernière mise à jour : 15/09/2013

Présentation

Ce contrôleur DMX 1 à 512 canaux a été conçu pour faciliter des vérifications ou recherche de pannes sur une installation lumière pilotée par DMX. Pour être franc avec vous, je l'ai développé pour vérifier le fonctionnement de tous les canaux de mon interface DMX 003. Il permet d'envoyer des commandes DMX avec une valeur fixe ajustable, sur une plage d'adresses plus ou moins étendue. On peut ainsi, par exemple, demander l'envoi de données sur les seuls canaux 1 à 22, avec les autres canaux fixés à la valeur 0 ou tout simplement non envoyés.
Avertissement : ce montage est un appareil de test et ne peut pas servir pour une gestion lumières scénique.

Schéma

Il ne faut pas grand chose pour arriver au résultat souhaité. Un PIC 16F88 et un MAX487 auxquels on associe quelques interrupteurs et autres composants passifs.

controleur_dmx_002

Fonctionnement général
Ce montage délivre une trame DMX qui se répète à l'infini tant qu'il est alimenté. La valeur envoyée dans les différents canaux est ajustable entre 0 et 255 via un potentiomètre qui produit une tension comprise entre 0 V et +5 V et qui est numérisée par le CAN interne au PIC. Le nombre de canaux traités (envoyés dans chaque trame) dépend de l'adresse de fin (et non de départ) spécifiée par 9 interrupteurs (codage binaire de l'adresse entre 0 et 511). Si par exemple l'adresse de fin est spécifiée à la valeur 12, alors la trame envoie la même valeur dans les canaux #0 à #12. Il n'est pas possible de modifier l'adresse de départ qui est toujours l'adresse #0. Le sort réservé aux canaux situés après l'adresse de fin dépend de la position d'un interrupteur appelé Mode.

Modes de fonctionnement
Deux modes de fonctionnement sont possibles, selon l'état de l'interrupteur DSW1-10/Mode (entre les broches 10 et 11 du bloc DSW1), qui déterminent le nombre de canaux transmis (pour rappel, une trame DMX peut comporter un nombre de canaux compris entre 1 et 512) :
Le bouton de reset doit être pressé si une modification de la valeur de l'adresse de fin à lieu pendant que le montage est sous tension.

Valeur transmise dans les canaux DMX
La tension récupérée sur le curseur du potentiomètre RV1 est numérisée par le CAN du 16F88 via la broche RA0/AN0. La numérisation se fait avec une résolution de 10 bits et le résultat donne donc un nombre compris entre 0 et 1023 (2 puissance 10 valeurs possibles). Après division par quatre de la valeur numérisée, on obtient une valeur comprise entre 0 et 255 qui tient dans huit bits (un octet) et qu'on peut donc inclure dans la trame DMX. C'est cette même valeur qui est transmise dans tous les canaux sélectionnés par les interrupteurs qui définissent l'adresse de fin. Le condensateur C3 permet de filtrer un peu la tension continue délivrée par RV1, on pourra le cas échéant augmenter sa valeur jusqu'à quelques uF (si le potentiomètre crachotte un peu, ce condensateur limite les crachats).

Horloge / cadencement des trames
Les trames DMX sont transmises à une vitesse de 250 kbauds, ce qui est un poil supérieur à 9600 bauds. On pourrait se dire qu'il serait dangeureux d'utiliser une horloge à 32,768 kHz (quartz horloger) eh bien je confirme, ça ne marche pas. Pour une transmission à 250000 bauds, il faut une horloge qui turbine à un minimum de 1 MHz, et comme on pourrait aussi s'en douter un peu, ce minimum n'est pas suffisant. Non, il faut au moins 4 MHz, et pour ma part je n'ai pas cherché plus loin et j'ai choisi de mettre un quartz de 20 MHz.

Interface électrique DMX
Réalisé avec un MAX487, identique à celui utilisé pour mon interface DMX 001.

controleur_dmx_002_proto_002f interface_dmx_001_proto_001c
Les deux MAX487, un en émetteur et l'autre en récepteur

Comme je souhaitais utiliser ce contrôleur DMX pour tester mes récepteurs DMX, il me fallait mettre sur pied un second circuit imprimé "interface électrique DMX/RS485". C'est à ce moment-là que j'ai décidé, dans un éclair de je ne sais pas trop quoi au juste, de regrouper cette seconde interface électrique RS485 avec le reste du montage. J'aurais volontier qualifié cette idée de lumineuse si par le suite je ne m'étais pas demandé s'il n'aurait pas été plus judicieux de faire deux circuits séparés, un pour le contrôleur et l'autre pour l'interface électrique. Comme ça j'aurais eu deux interfaces électriques autonomes sous la main. Et puis zut, c'est fait.

Logiciel du PIC

Le fichier binaire compilé *.hex à flasher dans le PIC est disponible dans l'archive zip ci-après. MikroPascal V5.30 utilisé pour le développement et la compilation.
Contrôleur DMX 002 - 16F88 - (15/09/2013)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Prototype

Montage testé dans un premier temps avec ma platine EasyPic7 et mon interface DMX à base de MAX487, envoi des trames DMX à mon petit projecteur LED DMX.

controleur_dmx_002_proto_001a controleur_dmx_002_proto_001bcontroleur_dmx_002_proto_001c controleur_dmx_002_proto_001d

Ensuite, réalisation d'un petit circuit dédié sur plaquette prépercée, pour redonner sa liberté à mon petit bout d'interface MAX487. Bah oui, pour tester un émetteur fait maison avec un récepteur fait maison, il me fallait bien deux MAX487.

controleur_dmx_002_proto_002a controleur_dmx_002_proto_002b

Pour les adresses, je ne me suis pas embêté et me suis contenté d'un bloc de 8 interrupteurs miniatures, la ligne D8 restant à l'état bas par défaut (possibilité toutefois de la mettre à l'état haut avec un pont sur le support de circuit intégré qui possède tout de même 20 broches). Les résistances de rappel à la masse (câblées sur les entrées du PIC) sont montées verticalement et raccordées par le haut pour une unique liaison vers le 0 V.

controleur_dmx_002_proto_002c controleur_dmx_002_proto_002dcontroleur_dmx_002_proto_002e

Fonctionnement validé avec les deux prototypes. Lors de mes premiers tests, j'ai cru que le montage ne fonctionnait pas bien car dans la première partie de réglage du potentiomètre, mon projo se comportait en stroboscope et dans la seconde moitiée de la plage il se comportait comme un gradateur. J'avais tout bonnement oublié que c'était son comportement normal (fonction strobo si valeur canal 1 comprise entr 0 et 127, fonction gradateur si valeur comprise entre 128 et 255). Donc OK pour moi.

Remarques

Circuit imprimé

Non réalisé.

Historique

15/09/2013
- Première mise à disposition