Lyre pilotée par un arduino avec le protocole ArtNet

L’équipe ayant participé au projet :

  • LITZLER Nathan(GEII)
  • HAEGELIN Francois (GEII)
  • BAUMANN Jeffrey (GMP)
  • SCHIEBER Louis (GMP)

Sommaire

  1.  Présentation du projet
  2.  Analyse fonctionnelle
  3.  Réalisation électrique
  4.  Réalisation mécanique
  5. Conclusion

1. Présentation du projet

Créée en 1986, la norme DMX est toujours d’actualité chez les professionnels de l’éclairage et de l’événementiel. La raison ? Elle est économe en câbles : un cordon XLR DMX peut gérer 512 canaux au total. Sachant qu’un projecteur moyen peut être piloté par 1 à 15 canaux environ, une seule ligne DMX permet de couvrir la plupart des besoins en éclairage.
De plus, le DMX est un langage standardisé, qui fonctionne avec n’importe quel matériel d’éclairage au sens large, quelle que soit la marque : projecteur PAR, blocs de leds, strombes, machines à effet, lyres, etc.…
A chaque canal est affectée une valeur allant de 0 à 255, permettant de contrôler chaque paramètre avec précision. Depuis le logiciel ou la console, vous pourrez programmer des animations, les sauvegarder, les rappeler, les modifier…

Ayant un membre du groupe travaillant dans le milieu de l’événementiel et s’intéressant aux nouvelles technologies scéniques nous avons eu la curiosité de décrypter le DMX et ses trames. C’est pour cette raison qu’ayant l’opportunité de réaliser un projet entre GMP (Génie mécanique et productique) et GEII (Génie électrique et informatique industrielle) nous avons décidé de nous lancer dans la conception d’une lyre DMX afin de d’allier nos spécialités. Cette lyre low cost est donc la reproduction d’une lyre commercialisée créée de toutes pièces par nos soins et à moindres coûts. Vous découvrirez donc, ci-dessous, les étapes ainsi que la répartition de notre projet.

 

2.Analyse fonctionnelle

Cahier des charges

Réalisation d’une lyre commandée par un arduino comprenant :

  • L’envoi de trames DMX via le logiciel node managment utility
  • L’acquisition de trames DMX via un réseau Ethernet grâce à un boitier ENTTEC
  • La commande de 2 moteurs pas à pas
  • La commande de leds de différentes couleurs

 

Bête à corne :

FAST :

Estimation coût du projet :

MATERIEL QUANTITE A COMMANDER PRIX
Arduino mega 1 35€
Moteur pas à pas 2 30€
Ensemble de leds 1 20€
Shield de puissance 1 10€
Shield DMX 1 10€
Materiels éléctroniques fils, résistance, MOSFET 10€
TOTAL 105€

Les prix d’une lyre DMX variant de 160€  à 1500€ nous n’avons finalement pas économisé énormément au vu des heures passées sur le projet.

Répartition des tâches :

 


RÉALISATION ELECTRIQUE

1. Prise en main du DMX

Afin de bien commencer le projet nous avons du comprendre de quelle manière les trames DMX sont envoyés et découpés afin de les réceptionner de la meilleure façon.

Le protocole DMX512 est donc un protocole qui permet de contrôler 512 canaux en affectant à chacun d’entre eux une valeur entre 0 et 255.

La transmission se fait de façon sérialisée, ainsi tous les appareils esclaves recevront les 512 valeurs en même temps. Dans notre cas nous avons uniquement la lyre qui reçoit les trames donc les problèmes des 32 appareils maximum sur une même ligne DMX ne nous dérange pas.

Le principe de fonctionnement est relativement complexe cependant nous pouvons en retenir que la transmission se fait par un cable d’une paire blindée raccordé à des connecteur XLR de type 5 broches (seuls les 3 premières sont utilisés). La trame est envoyé 44 fois par seconde soit une fréquence de rafraîchissement de 44Hz.

La commande du protocole DMX se fait généralement via un pupitre plus ou moins complexes selon la taille de la scène et son utilités.  Pour nos essais nous utiliserons le logiciel Node Management Utility, qui est plus facile à prendre en main, afin d’envoyer les différentes valeurs sur les différents canaux.

Pour finir nous avons appris qu’une norme permettait d’éviter le câblage fastidieux. La norme nommée Art-Net est donc celle que nous utiliserons tout au long de notre projet, elle intègre les trames DMX dans des paquets Ethernet et simplifie le câblage.

2. Choix du matériel électrique

Le choix du matériel fut la partie la plus longue du projet puisque nous surmontions les problèmes de matériel au fur et à mesure que nous les rencontrions. Nous avons donc commencer la programmation avec un arduino UNO avant de nous rendre compte que celui-ci ne fonctionnait pas du fait qu’il n’a qu’un seul port série. Nous avons donc, par la suite, du faire évoluer notre Arduino UNO en Arduino MEGA.

Le membre de notre groupe travaillant dans l’événementiel ayant un spot lumineux a sa disposition nous n’avons donc pas eu besoin de choisir les leds, nous les avons simplement récupérées.

3. Connexion à l’arduino

Nous avons ensuite dû nous connecter à l’arduino avec le DMX afin d’acquérir les trames. Nous passerons donc par un boitier ENTTEC permettant la traduction des trames ART-Net en DMX512.

Une fois la trame acquise nous avons du comprendre comment la traduire afin de faire fonctionner les moteurs et les leds grâce aux instructions envoyées.

Nous nous sommes rendu compte qu’il fallait rajouter un module pour recevoir les trames DMX sur l’arduino. Ce schéma utilise donc un module qui comporte un MAX485 qui permet l’adaptation entre la carte arduino (0V-5V) et le protocole RS485. Le module MAX485 peut fonctionner en émetteur et récepteur, ici nous ne l’utiliserons que en tant que récepteur.

Attribution des bornes

DI Driver INPUT DE Driver output Enable
RO Receive OUTPUT RE Receiver ouptput enable
Vcc Alimentation 5V GND Masse 0V
A Data + B Data –

 

Une fois les trames acquises grâce au module nous avons créer un programme comprenant une librairies DMXSerial.h permettant de traduire ces signaux en sortie PWM afin de piloter le moteur et les leds.

Signal de sortie PWM :

Ainsi en fonction de la valeur envoyé sur les différents canaux les équipements esclaves fonctionneront comme décrit dans l’image ci dessus (la valeur 255 = 100%).

3. Programmation

Pour commencer nous avons programmer les leds et le moteur séparément avant des les intégrer dans le même programme.

Choix et câblage des leds:

Nous avons démonté le spot lumineux existant afin d’en récupérer les leds et définir quels seraient ses besoins énergétiques.

Les leds sont des PAR6_RGB 3 en 1 (Bleu rouge et vert) consommant 1W.

Afin de contrôler les led (alimentés en 12V) avec l’Arduino , une solution est d’utiliser des transistors Mosfets avec une résistance d’un kilo ohm comme ci-dessous sans oublier de mettre toutes les masses communes.

Câblage des leds RGB

Breadboard      Câblage des leds RGB

 

Programmation leds:

 

Choix et câblage moteur

Afin de limiter l’alimentation nécessaire, nous avons choisis des moteurs pas à pas. Utilisant un arduino pour contrôler ce moteur nous nous sommes renseignés auprès de l’IUTLAB sur la disponibilité des moteurs pas à pas. Les moteurs devant aller dans les deux sens et ne pouvant dépasser une alimentation de 12v, nous avons choisis des moteurs pas à pas de 12V.

Afin de contrôler ces moteurs grâce à l’arduino nous avons du rajouter un shield de puissance.

Enable : Allume la led du pin 13 de l’arduino pour signifier que la carte de puissance est en route

Step : Gère les pas du moteur

Direction : Gère le sens de rotation du moteur

VMOteur : Alimentation moteur

GND/Masse : Connexion à la masse

2B, 2A, 1A, 1B : Sorties du moteur

VDD : Alimentation 12v

 

 

Câblage finale avant intégration dans boitier

 

Programmation finale (moteur + leds):

Problèmes rencontrés:

  • Réception de la trame DMX et traduction du signal contrôler le moteur et allumer les leds

    >  Librairie DMXSerial pour acquérir les trames DMX et librairie STEPPER pour controler le moteur pas à pas

  • Faire tourner deux fonctions en simultanées sur l’arduino

     > Suppression de la fonction DMXSerial.dataUpdated()/DMXSerial.resetUpdated() qui permet l’attendre d’une mise à jour d’une trame

     > Utilisation de la fonction micros()

Améliorations possible:

  • Intégration d’un embout XLR mâle femelle pour améliorer l’esthétique de la connexion entre le shield DMX et le boitier Art-Net.
  • Création d’un programme gérant une interface DMX afin d’obtenir un show automatisé.
  • Mise en place d’un deuxième moteur avec son shield de puissance pour gérer la rotation horizontale des leds.
  • Intégration d’un circuit imprimé

 


RÉALISATION MECANIQUE

1. Choix de la motorisation et des transmissions

Après avoir défini le cahier des charges, nous avons retenu la solution des moteurs pas-à-pas. Ceux-ci ont la spécificité de pouvoir s’arrêter précisément. Cela nous permet donc de bien gérer la course de la lyre.

Notre lyre est composée de deux moteurs. L’un pouvant faire tourner le plateau sur l’axe verticale et l’autre, placé sur la plateau qui eut faire tourner le spot sur un axe horizontal. Ils sont fixé à l’aide de brides.

La conception de notre lyre c’est faites en deux parties. Nous avons tout d’abord commencé par concevoir le boitier principal. Il accueille tous les composants électroniques ainsi le premier moteur qui fait tourner le plateau selon l’axe vertical.

Notre première idée était une boite thermo pliée de 5 faces avec en plus un couvercle. Mais nous n’avons pas retenu cette solution pour des raisons d’étanchéité. Il aurait aussi été compliqué de fixer les composants sur le fond dû à une épaisseur de paroi trop faible. Nous aurions aussi rencontré des difficultés de montage dû au manque de modularité du boitier.

Notre deuxième solution était donc de faire chaque face indépendante l’une de l’autre. Cela nous a permis d’avoir un fond plus épais que les parois. De ce fait, nous avons opté pour une épaisseur de 10mm ce qui permet donc de percer et tarauder le fond pour pouvoir y fixer des composants. Réalisé par impression 3D, le fond du boitier a une forme carrée de 200 par 200mm comprenant différentes extrusions. Une première série d’extrusions sur les côtés qui permettent la mise en position des parois lors de l’assemblage. Puis 8 pattes de fixations intégrants des écrous montés serrés dans des logements hexagonales prévus à cet effet. Les parois latérales sont donc maintenues en position par des ensembles vis-écrous.

Dans l’hypothèse d’une production en série cette pièce aurait été réalisée en moulage par injection de matière plastique type ABS.

Pour les parois latérales nous avons décidé de faire les 4 parois identiques en épaisseur 3mm en PMMA. Elles sont munies de 4 trous de passage de vis destinés à leur maintien en position comme évoqué précédemment. Le fait de faire 4 parois identiques permet de ne pas chercher quelle paroi doit être montée à quel endroit. Un ordre de montage de ces parois n’est donc pas nécessaire. Chaque paroi a en revanche un sens de montage car elles ne sont pas symétriques, en effet pour obtenir une bonne finition au niveau des angles nous les avons fait se chevaucher successivement l’une sur l’autre.

Le couvercle quant à lui est muni d’une « corniche »  ce qui permet sa mise en position plus facilement. Il sera maintenu en position avec les parois de la même manière que le fond grâce à des pattes de fixation avec écrous intégrés. Cette partie du boitier aura également été effectué par impression 3D.

Sur ce couvercle est fixé un palier lisse réalisé en aluminium à l’aide d’un tour à commandes numériques. Celui-ci a pour but d’assurer la liaison pivot entre le plateau et le haut du boitier. Nous avons opté pour une liaison pivot par palier lisse car la liaison pivot devait également assurer le passage de câble du boitier vers le spot et le second moteur.

Donc c’est cet assemblage qui constitue cette première partie de la lyre.

Vient ensuite la partie du haut, le plateau tournant. Il a été réalisé en plusieurs parties. La partie principale en PMMA est thermo pliée en forme de U. C’est sur cette pièce que l’on viendra fixer les autres composants permettant la rotation du spot selon l’axe horizontal.

Pour guider le plateau en rotation avec le boitier, nous avons conçu seconde une pièce que l’on viendra fixer sur la partie principale du plateau. Cette pièce est un second palier lisse, cette fois-ci réalisé en impression 3D. Nous avons opté pour cette réalisation car nous y avons directement intégré une roue dentée sur le bas qui sera entraînée par le moteur dans le boitier. C’est donc plus exactement à travers cette pièce que passeront les câbles qui vont du boitier jusqu’au spot et au moteur.

Sur cette pièce en U viendra aussi se visser une bride sur laquelle sera fixée le moteur qui permettra de faire tourner le spot suivant l’axe horizontal.

Pour le guidage du spot, nous avons conçu deux différents systèmes de chaque côté du spot. D’un côté nous avons fait une pièce qui sera vissée sur la pièce principale du plateau. Le spot sera libre en rotation autour de cette pièce. Celle-ci est  creuse suivant son axe mais il y a aussi un trou sur le côté ce qui permet un passage des câbles qui sortent du second palier lisse évoqué plus haut jusque dans le spot.

De l’autre côté nous avons une pièce semblable à la précédente mais avec un tube plus petit qui viendra accueillir un axe monté serrer à l’aide d’une vis de pression.

Cet axe permettra de guider une roue dentée qui sera fixée sur le spot, ce qui permet la mise en rotation du spot sur l’autre côté

Le spot tournera donc autour de l’axe diamètre 5mm d’un côté et autour de la pièce de passage de câble qui est diamètre 16mm.

 

Améliorations possibles :

  • Rigidifier la pièce principale du plateau
  • Réduction des vibrations faites par le moteur


SHOW FINAL


CONCLUSION

Tout au long de ce projet nous avons pu mettre a rude épreuve les compétences acquises en cours. Nous avons également pu décrypter le DMX et ses mystères afin d’en comprendre les trames et  protocoles. Le travail d’équipe avec un autre corps de métier nous a appris que la communication au sein d’un groupe est primordial au bon déroulement d’un projet. N’ayant pas eu toutes les informations en notre possession dès le début du projet nous avons eu du mal à nous mettre en route ainsi qu’à départager les taches que chacun devait effectuer. De plus n’ayant eu les cours de gestion de projet qu’une fois le délai du projet entamé de moitié ce fut compliquer de respecter les délais.

Cependant la mise en pratique des connaissances scolaires fut intéressante et la finalité du projet fonctionnant à 80% est relativement satisfaisante.