DMX - découverte de la technologie DMX512

DMX512 est une norme de transmissions (basée sur RS-485) utilisée essentiellement dans le contrôle d'éclairages et scènes de spectacles.

J'ai eu, à plusieurs reprises, l'occasion d'approcher cette norme mais jamais de m'y intéresser de plus prêt.
J'ai donc procédé à deux trois achats chez MonoPrice (Canada) pour découvrir les fonctionnalités de DMX avant d'envisager d'autres investigations.

Principe DMX512

En principe, DMX512 permet d'utiliser des consoles DMX (dit "contrôleur") pour contrôler des périphériques (dit "fixture/device") d'éclairage, boules, ventilateur, rampe de LED, effet lumineux, etc.


Setup DMX

DMX utilise un connecteur 3 Pôles (XLR) transportant les signaux GND, A, B. Ce signal passe de périphérique en périphérique (dit "Daisy-Chain" en anglais).

Par ailleurs, et sauf erreur, la communication se fait exclusivement dans un seul sens: du contrôleur --> les périphériques.

Bien que le XLR 3 poles soit très répandu, c'est le XLR 5 poles qui est recommandé aujourd'hui.

Connecteur XLR

L'interface présente un impédance de 100 Ohms et des signaux en -2.5V / +2.5V.
Basé sur la norme RS485, les interface DMX mettent en oeuvre un transceiver MAX485 ou SN75176.

Il est par ailleurs recommandé d'utiliser un terminateur (résistance de 120 Ohms) après le dernier appareil pour éviter la déformation/corruption des messages.
Ceci dit, cela ne pose pas vraiment de problème sur une toute petite installation.

Canaux DMX et périphériques

DMX permet de contrôler 512 canaux individuels. 

Chaque canal pouvant recevoir une valeur numérique entre 0 et 255 (ce qui correspond à 8 bits).

Dans l'abstrait, il est donc possible de contrôler 512 périphériques distincts.
L'adresse d'un périphérique correspond à une valeur entre 1 et 512.

Dans les faits, un périphérique utilise souvent  plusieurs canaux pour sa configuration (ex: 1 canal pour le rouge, 1 canal pour le vert, 1 canal pour le bleu, etc). Il est donc commode de regrouper les canaux par 16 pour chaque périphérique.

En regroupant les canaux par 16, l'adresse du premier périphérique est 1, l'adresse du second périphérique est 17, le 3ieme périphérique est à l'adresse 33 et ainsi de suite!
Mais rien n'empêche d'accéder directement à n'importe quel canal entre 1 et 512.

Résolution d'un canal

La valeur attribuable à un canal est entre 0 et 255, soit une résolution de 8 bits.
Cette résolution est parfois insuffisante.

Il est possible de passer en résolution 16 bits en réquisitionnant deux canaux contigus. Le premier canal prend la valeur "grossière" entre 0 et 255 (ex: 163).

Ensuite, le second canal reçoit la valeur "fine" entre 0 et 255 (ex: 87). Cette valeur "fine" correspond physiquement à un positionnement en 1/255, positionnement qui sépare la valeur grossière (ex:163) du canal précédent de la valeur grossière suivante (donc 164 dans l'exemple).

Le résultat final en 16 bits sera: 163+(87/255) =  163.3411

Du matériel de test

Avant de se lancer dans des projets à base de microcontrôleurs autour de DMX, j'ai préféré faire joujou avec la technologie... histoire d'en apprendre plus par l'expérience.

J'ai fais quelques achats chez MonoPrice (au Canada) pour me faire la main 

Contrôleur DMX-512 à 192 canaux


Le MonoPrice 612120, tout à fait abordable, ce contrôleur à ~80Eur hors TVA permettra d'explorer les possibilités offertes à peu d'investissement.

Son appellation complète est "contrôleur 192 canaux". Avec 16 canaux par périphériques et 12 périphériques, ce contrôleur peut commander 12*16=192 canaux DMX au total.


A noter: 

  • les 8 curseurs permettent de commander les 16 canaux en utilisant un bouton pour passer des canaux 1 à 8 --> canaux 9 à 16.
  • Un petit afficheur LCD mentionne la valeur envoyée sur le canal (0 à 255). Bien pratique pour l'expérimentation.
  • J'ai aussi noté les deux bouton rotatif (tilt & pan) disposant aussi d'un réglage fin (donc 16 bits sur deux canaux).

Spot RGB avec contrôle d'effet

Le sport MonoPrice 612970 dispose de plusieurs effet qu'il est possible d'activer.

J'ai mis un certain temps à comprendre la configuration de l'appareil qui propose:

  • des modes autonomes (assez sympa d'ailleurs),
  • un mode DMX dont il est possible de fixer l'adresse (de 1 à 512).
    j'ai laissé 1 pour l'adresse DMX --> donc le périphérique 1 sur la console

En mode DMX, il est possible de configurer le nombre de canaux utilisés (4, 8, 11, 23).
Plus le nombres de canaux utilisés est important et plus les fonctionnalités sont riches.
A titre d'exemple, voici le détails du mode 4 & 8 canaux.

Dans le mode 4 canaux, il est possible d'utiliser les 4 premiers curseurs permettent de contrôler respectivement:

  • La luminosité générale
  • La quantité de rouge
  • La quantité de vert
  • La quantité de bleu

Configurer l'adressage avec intelligence

Il est forcement possible d'utiliser plusieurs spot avec la console.
Si l'on s'arrête à deux spots, la premier peut assigné au périphérique 1 (canal DMX 1) et le deuxième spot assigné sur le périphérique 2 (canal DMX 17).

Mais il est aussi possible de configurer les deux spots en mode 4 canaux pour n'utiliser qu'un seul périphérique sur la console.
Lle premier spot est configuré sur le canal DMX 1 et le 2ieme spot sur le canal DMX 5.
Du coup, les deux spots peuvent être commandés avec la console depuis le périphérique 1... les 4 premiers curseurs (canaux DMX 1 à 4) commandent le 1ier spot et les 4 curseurs suivants (canaux DMX 5 à 8) commandent le 2ieme spot. 

Relais commandé par DMX

J'ai aussi eu l'occasion de dénicher un relais contrôlable par via DMX.

Le canal est configuré à l'aide d'un DIP switch (les 9 permiers bit).

Le relais s'active si la valeur communiquée est >= 140.
Le relais se désactive si la valeur communiquée est <= 120.

Module breakout

Et bien entendu, dès que j'aurais passé l'étape des premiers tests, je pourrais me pencher sur le protocole DMX pour réagir à la console... ou pour contrôler un périphérique DMX.

Mais cela sera pour plus tard.
Il manque par ailleurs une broche permettant de passer de réception en émission (voir cette documentation de Sonelec-musique.com). Tout me laisse a penser qu'il sera uniquement possible de créer des périphériques DMX avec ce breakout.
 

Montage de test

Les premiers essais DMX se font avec la console et le spot... pas trop difficile à maîtriser une fois que l'on a compris le principe des canaux DMX.


Et ensuite?

Après le montage du module relais DMX (et oui, il est en kit!), je vais m'atteler à interfacer le bus DMX avec une carte MicroPython.

Ressources

1 commentaire:

  1. Hello MCHobby,
    Il y a fort longtemps, je me suis penché sur le DMX, et je suis tombé sur cet article (https://diyprojects.tech/2013/05/diy-usb-dmx-dongle-interface-for-under-10/), qui utilise l'équivalent du module breakout.
    Et pour l'avoir expérimenté (sur un spot dmx équivalent à celui de l'article), je peux confirmer que ça fonctionne.

    RépondreSupprimer