Go Down

Topic: I'm hoping something like this is possible - 24vDC pass-thru interrupt on event (Read 1 time) previous topic - next topic

My first time with Arduino.
I want to be able to allow the signal output from the DMX-512 controller to pass-thru the Arduino until a "high" is sensed through a digital pin. then output its own DMX light 'scene' from the code. After it has run through the code revert back to allowing the pass-thru.

I'm hoping to do this between the controller and the light to allow plug-n-play ease.
there will be 50+ units needed in total. Re-coding all those units would take awhile.
the input/output must be analog to allow color combinations

I drew it out to show the setup.
Is this possible? If it is, I will split this into the proper topics to figure it out. -divide and conquer-
~Thanks DK
gplus.to/DragonsKindler

retrolefty

Quote
the input/output must be analog to allow color combinations


As the arduino has no true analog output capabilities, external components would be required. External Analog mux along with 3 channels of external D/A would be required. Looks doable with enough shield mounted external parts and pieces.

Lefty



EmilyJane

Would it be practical to instead multiplex the DMX input to the controller between it and the Arduino and when you get the command for the color you are looking for, insert the different command in from the Arduino to the controller. That way you wouldn't have to mess with recreating those analog bits. Or maybe I don't understand the problem.


Would it be practical to instead multiplex the DMX input to the controller between it and the Arduino and when you get the command for the color you are looking for, insert the different command in from the Arduino to the controller. That way you wouldn't have to mess with recreating those analog bits. Or maybe I don't understand the problem.


Here's reference for the full picture:
Bowling Ally
the global DMX controller (front of the house) is daisy-chained to 6-10 LED controllers (back of the house) one on each lane running pit lights creating patters that beat to the music during glow bowl. When a strike is made (event trigger - from pinsetter) this prototype has to interrupt the global scene only running on that one lane for a visual effect (i.e. flash between red and white for 3-5 seconds) then allow the pit light to return to normal operation. All without interrupting the running global scene.

the problem with putting the "strike-sense" in the DMX line is that there would need to be dip-switches to inform the code of which signals to override.
now thinking of it, if the MC can sense all (say) 8 strike sensors. and only interrupt the DMX on the three specific channels. the only problem I see with this is can the Arduino  run this all in parallel. It can't hesitate. 

**pardon my brain storming. there is no one to bounce ideas off of here in this part of Florida**

here is what we (2 person team) have done so far at one of our centers-  http://youtu.be/k6zvsgURmrE
note: all this was installed/programmed in-house by us at two of the four of our centers we are hoping with all this R/D we can get our own department... an office... something.  8)
gplus.to/DragonsKindler

EmilyJane

Brain storming is what this forum is about.

I watched the video and didn't have an epileptic seizure. Is there a strike event-trigger from each lane? Am I correct that there is a controller for each lane taking commands from the MC?


Quote
the input/output must be analog to allow color combinations


As the arduino has no true analog output capabilities, external components would be required. External Analog mux along with 3 channels of external D/A would be required. Looks doable with enough shield mounted external parts and pieces.

Lefty


Size is not a problem. I picked the Arduino project because of the community!  :)
I'm also 95% sure the owner has a warehouse that can custom etch PCB's. He (sister company) makes the the controller boards to link old bowling center equipment to run with the new Qubica Bowland X software. This is all just prototyping. This kind of extra stuff looks better when applying for a tech spot at the main office. Plus, tech (of any kind) has been a hobby of mine for many years.
gplus.to/DragonsKindler


Is there a strike event-trigger from each lane? Am I correct that there is a controller for each lane taking commands from the MC?


The strike event trigger is build into each one of the pin setters. The DMX-tx is a S.T.C.K. (http://www.nicolaudie.com/stick-ku1.htm) with a standard 3-channel DMX-rx with RJ-45 plugs for input on each lane.
gplus.to/DragonsKindler

EmilyJane

I modified your drawing but I can't get it to attach. Anyway, my suggestion is to place a multiplexor in front of each slave controller, the output going to the input of the slave and one of its inputs coming from the DMX master, the other coming from the Arduino. The mux would be controlled by the Arduino. The strike signal would be an input to the Arduino. The Arduino would contain the alternate scene plus additional code.

Normally the mux would point to the DMX master but when the Arduino sensed the strike signal, it would switch the mux to the Arduino which would output the alternate scene to the slave.

Close? Complete miss?

I was thinking grabbing one of these DMX Master Shield for Arduino with the code from here Tinker.it DMX libs
I'm just hoping Arduino can allow pass-thru over the pins. And delay isn't too bad.

this sound more simple?
gplus.to/DragonsKindler

EmilyJane

Yes, that's what I would use. There's room for a few extra components it looks like.

Quote
I'm just hoping Arduino can allow pass-thru over the pins. And delay isn't too bad.


I don't understand what you mean by "pass-thru". I would guess the delay would be very low. What sort of synchronization problems could arise?


I don't understand what you mean by "pass-thru". I would guess the delay would be very low. What sort of synchronization problems could arise?


Allow the global DMX scene to play until int [strikeSwitch] signals HIGH. e.g.
Code: [Select]
int xSense = 12;

void setup()
{
  pinMode(xSense, INPUT);
}

void loop()
{
  {
  if (digitalRead(xSense) == HIGH)
  /* END sample code
  */
}
gplus.to/DragonsKindler

EmilyJane

I've never designed any DMX gear and I know very little about it but as I recall it has a fixed packet size no matter how many slaves are addressed. Maybe that has been revised in a later standard. Anyway, my point is you might have to monitor the DMX master stream AFTER the strike interrupt and let it completely finish a command before you switch the Arduino to control the slave in order to maintain synchronization and avoid any unsightly hiccups in your light show.

That might actually simplify the system. Maybe that's what you mean by "pass-thru". Instead of the mux I suggested, pass the DMX master commands through the Arduino until the strike interrupt and then switch to the stored program for the strike LED pattern. Then all you would have to do is make sure you resynchronized with the master before passing it through again. At worst, you would lose one command while you resynced.

I tested loosing sync while I was there for practice, all it does when unplugged is keep last color position. I can end the strike scene/pattern with white and no one will complain for that split second sync.

So it's possible...YAY!  Time to order parts! I can't seem to find the DMX I/O here, in the states, so I'm just gonna have to get it from arduino.cc

Time to learn to code.  :smiley-roll-sweat: I've been watching jeremy blum's videos to get started. Any other good vlog out there. blogs work too. I learn allot faster watching vids.

   
gplus.to/DragonsKindler

EmilyJane

Quote
I tested loosing sync while I was there for practice, all it does when unplugged is keep last color position. I can end the strike scene/pattern with white and no one will complain for that split second sync.


I think you'll still have to let the packet that is coming in when you get the interrupt finish before you send out a new one so as not to confuse the DMX library on the Arduino. That'll be easy enough to accomplish.

I think the interface is just RS-485 so you could probably build your own on a prototyping shield. Be sure to check out Sparkfun if you haven't already.

Sorry, I can't recommend any videos. Have fun and keep us posted on your progress!

Go Up