DMX Motor Control
An interactive performance uses two DC motors to control two large rings that hang above an open theater space. The movement of these illuminated rings will be controlled by input from two performers moving below the elevated rings.
This project follows the path to make the addressable DMX motor control device and connect it to Max 8 for real-time interactive control. Max will control the motors with DMX based on the DMXUSB Pro Max abstraction by Oliver Pasquet as well as receive OSC (open sound control) from other applications. This allows for device control from QLab, Isadora, Supercollider or any device that can send OSC commands. An Isadora Example File is included in the file download.
DMX is integrated and a Lighting Designer also has control over the rings via a DMX signal from a lightboard. This fallback is for safety and also to allow collaborative control. I want to make my controller box addressable so we can change the DMX address in order to not interfere with other DMX devices on the network. I include a dip-switch function in the Arduino code for this addressing.
Project System Sketch:
Software and Hardware
Software Control: Max 8
DMX to USB Interface: ENTTEC DMX PRO
Hardware Programming: Arduino
Conceptinetics DMX Library for Arduino
TTL RS485 converter for Arduino here
Motor Driver: Pololu Dual G2 High-Power Motor Driver 24v18
And Pololu 24v18 Arduino Library
Dip Switch addressing uses an MCP23017 IO Expansion Board, Expands 16 I/O Pins with i2c
MCP23017 Adafruit Library
Addressable DMX Calculator
Max 8 DMX abstraction
based on Oliver Pasquet's DMX USB PRO abstraction
Code and more technical information found on my Github
Prototyping the Arduino to receive DMX via the TTL RS485 converter:
Final Box Interface DMX addressing with Red Dip Switches
DMX input and DMX Thru output (for daisy chaining devices)
Final Box Interface Output 2 motors 2 fused outputs and on the Right 18v fused input
Arduino, DMX converter board, 10 bit Dip Switch i2c expansion board and Pololu 2Motor Driver
Max Control Patcher receives OSC on port 7400
integers 0-255 to addresses /ch1 /ch2 /ch3 /ch4 /allOFF
DMX USB PRO SUBPATCH
References:
Basic DC Motor Control for Arduino: HERE
Pololu 2 motor Library HERE
To build the DMX Arduino circuit use this instructable:
DMX effect controller HERE
For the Future:
Artnet RGBW Pixel Tape LED control from Max and Madmapper.
Computer Vision from Max to track the Dancers in the space and translate that to OSC for the Motor control.