def listen(self): while self.isRunning() and not self.serialok: try: port = get_port_by_serial_number(self.portname) self.log("Starting DMX sender on port", port) self.dmx = Controller(port) self.serialok = True except: self.log("ERROR: ", self.portname, "not found.. retrying") time.sleep(5) self.stopped.wait()
class DmxOutput(BaseInterface): def __init__(self, portname): super().__init__("DMX out", "green") self.portname = portname self.serialok = False self.test = False def listen(self): while self.isRunning() and not self.serialok: try: port = get_port_by_serial_number(self.portname) self.log("Starting DMX sender on port", port) self.dmx = Controller(port) self.serialok = True except: self.log("ERROR: ", self.portname, "not found.. retrying") time.sleep(5) self.stopped.wait() # i = 0 # while self.isRunning(): # if not self.test: # time.sleep(0.2) # else: # i = (i+1)%2 # if i % 2: # self.dmx.set_channel(1, 255) # else: # self.dmx.set_channel(1, 128) # self.dmx.submit() # time.sleep(1) # for i in range(256): # self.set_channel(1, i) # self.submit() # time.sleep(0.02) # for i in range(256): # self.set_channel(1, 255-i) # self.submit() # time.sleep(0.02) def setBuffer(self, buffer): for i in range(min(512, len(buffer))): if i > 0: self.dmx.set_channel(i, buffer[i]) self.dmx.submit()
def run(shared): dmx = Controller('/dev/ttyUSB0') dmx.set_all_channels(0) dmx.submit() phase = Phase() while True: info = shared.get() last_beat = info['last_beat'] bpm = info['bpm'] if shared.debug_on: dmx_programs.debug(shared, dmx, phase) elif shared.auto_on: dmx_programs.auto(shared, dmx, phase) else: phase.update(last_beat, bpm) PROGRAMS[shared.program_index](shared, dmx, phase) dmx.submit() time.sleep(0.01)
sounds = [[None, None, None],[None, None, None],[None, None, None],[None, None, None],[None, None, None],[None, None, None]] audioch1 = None def LOG(msg): print(msg) # PI i2cbus = smbus.SMBus(1) ardAddr = 0x03 try: dmxUsb = get_port_by_product_id(24577) dmx = Controller(dmxUsb) except: LOG("No DMX device detected") dmx = None ''' 4, 24, 17, 25, 27, 8, 22, 7, 10, 12, 9, 16, 11, 20, 5, 21 Pins for light relays: 7 - GPIO 4 - power on: 8, 10 - GPIO 21, //14, 15 - Red: button, spot 11, 12 - GPIO 20, //17, 18 - Green: button, spot 13, 15 - GPIO 16, //27, 22 - Blue: button, spot 16, 18 - gpio 12, // 23, 24 - Yellow: button, spot
''' sudo pip install DMXEnttecPro ''' ''' from DMXEnttecPro import Controller dmx = Controller('/dev/ttyUSB0') # or ''' from DMXEnttecPro import Controller from DMXEnttecPro.utils import get_port_by_serial_number, get_port_by_product_id #my_port = get_port_by_serial_number('6A3ROIWE') my_port = get_port_by_product_id(24577) dmx = Controller(my_port) dmx.set_channel(2,0) dmx.set_channel(3,0) dmx.submit()
import time from DMXEnttecPro import Controller dmx = Controller('/dev/cu.usbserial-EN246934') for ch in range(1, 8): dmx.set_channel(ch, 255) dmx.submit() for val in range(255): dmx.set_channel(1, val) dmx.submit() # print("sending ", val) time.sleep(0.01) for val in range(255, 0, -1): dmx.set_channel(1, val) dmx.submit() # print("sending ", val) time.sleep(0.01)