Members | Sign In
All Forums > Troubleshooting
avatar

DMX Custom Hardware and Question

posted May 19, 2014 06:23:34 by chiendarrendor
So, I went a little crazy, and, after buying a DMX RGB LED light from Amazon.com, which was cool, but I wanted more.

So, I went out and bought an addressable LED RGB light strip and an Arduino, and with a modest amount of soldering and an astonishingly small amount of easy Arduino Code, I created an LED Artemis Power Meter!
(Please let me know if you would like to know more about how I made this work...I think it's
kinda cool, but I don't know if anyone else would)


The Arduino responds to a single DMX signal (17, or 16 from the point of view of Artemis)
and based the signal value, sets the following LED blocks, from top to bottom, with
an expectation of mapping them to the given Artemis DMX events...

yellow (>= 225) => ENERGY_200
blue (>= 200) => ENERGY_100
green (>= 175) => ENERGY_80
green (>= 150) => ENERGY_60
green (>= 125) => ENERGY_40
red (>= 100) => ENERGY_20
flashing red (< 100) => ENERGY_LOW

The Arduino works as designed, I have tested it repeatedly with the DMX tool
mentioned in the forum thread here: http://artemis.forumchitchat.com/post/dmx-commander-tool-6649349

However, when I start playing Artemis, the ENERGY_x events don't appear to fire.
I have mapped the Power Bar DMX signal to set to certain values for NORMAL_CONDITION_1
and PLAYER_SHIELDS_ON and seen it change appropriately, so Artemis DMX is actually
capable of sending the signal values to set the lights on the bar...

Has anyone had any experience with the ENERGY_x events that might be able to tell
me what I am doing wrong? below is my current DMXcommands.xml file.



<?xml version="1.0" encoding="utf-8"?>
<DMX_CONTROL version="2.00">
<event type="NORMAL_CONDITION_1" continuous="yes">
<timeblock mseconds="1000">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
<setvalue index="16" value="210" change="0" />
</timeblock>
</event>


<event type="PLAYER_SHIELDS_ON" continuous="yes">
<timeblock mseconds="1000">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="200" change="0"/>
</timeblock>
</event>

<event type="WITHIN_NEBULA" continuous="yes">
<timeblock mseconds="1000">
<setvalue index="1" value="255" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="52" change="0"/>
</timeblock>
</event>


<event type="TRACTORED_FOR_DOCKED" continuous="yes">
<timeblock mseconds="500">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="155" change="200"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="500">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="255" change="-200"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
</event>

<event type="COMPLETELY_DOCKED" continuous="yes">
<timeblock mseconds="500">
<setvalue index="1" value="255" change="0"/>
<setvalue index="2" value="255" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
</event>


<event type="RED_ALERT" continuous="no">
<timeblock mseconds="250">
<setvalue index="1" value="55" change="800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="255" change="-800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="55" change="800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="255" change="-800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="55" change="800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="255" change="-800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="55" change="800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
<timeblock mseconds="250">
<setvalue index="1" value="255" change="-800"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
</event>




<event type="PLAYER_TAKES_SHIELD_DAMAGE" continuous="no">
<timeblock mseconds="20">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="255" change="0"/>
</timeblock>
<timeblock mseconds="80">
<setvalue index="1" value="0" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="255" change="0"/>
</timeblock>
</event>

<event type="PLAYER_TAKES_INTERNAL_DAMAGE" continuous="no">
<timeblock mseconds="100">
<setvalue index="1" value="255" change="0"/>
<setvalue index="2" value="0" change="0"/>
<setvalue index="3" value="0" change="0"/>
</timeblock>
</event>


<event type="ENERGY_LOW" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="75" change="0" />
</timeblock>
</event>

<event type="ENERGY_20" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="110" change="0" />
</timeblock>
</event>

<event type="ENERGY_40" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="135" change="0" />
</timeblock>
</event>

<event type="ENERGY_60" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="160" change="0" />
</timeblock>
</event>

<event type="ENERGY_80" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="187" change="0" />
</timeblock>
</event>

<event type="ENERGY_100" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="210" change="0" />
</timeblock>
</event>

<event type="ENERGY_200" continuous="yes">
<timeblock mseconds="500">
<setvalue index="16" value="240" change="0" />
</timeblock>
</event>




</DMX_CONTROL>

<!-- channel 0: RGB Mode -->
<!-- channel 1: red -->
<!-- channel 2: green -->
<!-- channel 3: blue -->
<!-- channel 4: strobing, higher = faster -->
<!-- channel 5: dimming, higher = more dim -->
<!-- channel 16: Arduino Energy Bar -->









[Last edited May 20, 2014 02:03:22]
Login below to reply: