Electronique > Réalisations > Interfaces > DMX > Interface commandes 004d - Pro 

Dernière mise à jour : 25/12/2022

Présentation

Ce montage permet de régler l'adresse de base d'un appareil DMX avec des roues codeuses, de façon claire et parfaitement lisible, en décimal. Il  a été conçu pour remplacer les 9 micro-interrupteurs utilisés sur des appareils DMX pour la configuration de leur adresse de base.

interface_commandes_004d_pcb_3d_front

La valeur de l'adresse DMX affichée en clair (en décimal) sur les roues codeuses est convertie en valeur binaire codée sur 9 bits. Le système peut en outre recevoir la valeur de l'adresse DMX par le biais d'un port série RS232 (avec ou sans adaptateur USB/RS232).

   

Préambule

La configuration habituelle d'une adresse DMX s'effectue au moyen de 9 micro-interrupteurs, soit un total de 9 fils de liaisons (sans compter le point commun). Une configuration effectuée avec des roues codeuses réclame quant à elle 11 fils de liaison, soit "juste" 2 fils de plus. 

Alors pourquoi imposer aux utilisateurs de matériels lumière de jongler avec un code binaire (000000000 à 111111111), quand on peut leur proposer un affichage en décimal (000 à 512), façon de faire bien plus confortable pour notre cerveau ? La raison principale ne tient qu'à un "détail" : le coût de fabrication. Neufs interrupteurs "DIL" joliment alignés coûtent toujours moins cher que trois roues codeuses, quelle que soit la forme de ces dernières (pour circuit imprimé ou pour panneau/face avant).

Il est certain que ce projet n'est pas une révolution en soi. Mais je pense qu'il est intéressant d'en parler.

Remarque : je passe volontairement sous silence la méthode de lecture de l'adresse DMX qui utilise le multiplexage pour réduire le nombre de fils requis : 6 fils avec des micro-interrupteurs ou 7 fils avec des roues codeuses. Cette méthode avec multiplexage réclame moins de lignes d'entrée/sortie, mais en revanche elle nécessite un poil de code logiciel supplémentaire (qui reste simple à implémenter).

   

Schéma

Le circuit fonctionne localement (manuellement) avec des roues codeuses ou par commandes informatiques (RS232).

interface_commandes_004d
128 (D7) + 8 (D3) = 136. Quel curieux hasard !

   

Fonctionnement avec les roues codeuses

Les trois roues codeuses SW1 à SW3 (centaines, dizaines et unités) sont lues à intervales réguliers (100 fois par seconde). Si un changement de la valeur affichée en décimal est détecté, l'état logique des lignes de sortie D0 à D8 (9 bits) est mis à jour en conséquence. Le principe de fonctionnement est très simple : les trois valeurs binaires sont lues et traduites en valeurs décimales (centaines, dizaines et unités) avant d'être additionnées.

Exemple avec affichage canal DMX "001" : centaines = 0000 (0) ; dizaines = 0000 (0) ; unités = 0001 (1)  
Exemple avec affichage canal DMX "113" : centaines = 0001 (1) ; dizaines = 0001 (1) ; unités = 0011 (3)  
Exemple avec affichage canal DMX "384" : centaines = 0011 (3) ; dizaines = 1000 (8) ; unités = 0100 (4)  
Exemple avec affichage canal DMX "512" : centaines = 0101 (5) ; dizaines = 0001 (1) ; unités = 0010 (2)  

A noter que le quatrième bit de la roue codeuse des centaines (SW1) n'est pas utilisé, puisque ses trois bits de poids faible suffisent pour atteindre la valeur 7 (et donc 700). Bien entendu, le logiciel refuse toute valeur d'adresse supérieure à 512. Si une valeur supérieure à 512 est affichée par les roues codeuses, alors la valeur d'adresse retenue est "512".

   
Fonctionnement avec les commandes RS232

L'état logique des lignes de sortie D0 à D8 (9 bits) peut également être mis à jour lors de la réception d'une trame de commande spécifique. Pour être reconnue (acceptée), la trame doit être composée de 2 octets construits selon le modèle binaire suivant (2 x 8 bits) :

0101010[d8] [d7][d6][d5][d4][d3][d2][d1][d0]

Les 7 bits de poids fort [d15] à [d9] marqués 0 ou 1 doivent obligatoirement porter la valeur "0101010".
Les 9 bits suivants [d8] à [d0] portent la valeur du canal DMX

Exemple pour canal DMX "001" : octets à envoyer = 0x54 0x01 (%01010100-00000001)
Exemple pour canal DMX "113" : octets à envoyer = 0x54 0x71 (%01010100-01110001)
Exemple pour canal DMX "384" : octets à envoyer = 0x55 0x80 (%01010101-10000000
Exemple pour canal DMX "512" : octets à envoyer = 0x55 0xFF (%01010101-11111111

Toute valeur reçues supérieure à 0x55 0xFF est systématiquement rejetée. Un silence de 10 ms doit être observé avant l'envoi d'une nouvelle trame de 2 octets.

   

Logiciel du PIC

Pro - Logiciel non disponible en libre service.

   

Circuit imprimé

Réalisé en double face.
   
interface_commandes_004d_pcb_components_top

   

Historique

25/12/2022
- Première mise à disposition.