Roll-out RGB Strip Light Panel | ||
As if there
aren't already enough projects on the go this winter! After the order of
LED's came in, LED's for lighting the whole house with 12 volts, and colored
LED's for the studio, I realized I'd be waiting quite a while for mechanical
parts for the lightBar
and the globeLight.
This project can be under way in a fairly short time, as soon as I can get
into Canadian Tire and buy a couple of those "crazy carpet" kids toboggan
things, and somehow get a length of 50 conductor rainbow ribbon up from
Vancouver. Yep you read right, crazy carpets. As you can see in the facsimile above, some strips of RGB LED's (Joy-Deal on eBay) will be mounted/stuck/glued to a backing. I am using the "carpets" because the whole thing can be rolled up and easily carried to venues. It'll be 9 feet across, and can be hung from ceiling or wall, or put on floor. Getting cool yet? |
|
I've been playing
around with the 16.6' long strip light,150 SMD RGB LED's, and it sure looks
pretty and sparkly! ...and it only draws max 1.2A @ 12 volts. This means
it'll be cheap to drive.
"GOOFY CIRCUIT" DESCRIPTION: Sorry about the goofy circuit layout and colors, but I am a bit of a painter artist as well! Originally, only 8 strips, 24" each, was the idea. Once I decided to use those carpets, which are only 18" wide, the design changed to 12 bars, 16" long each. This is way better anyway because more elements is higher resolution even at these levels, so animation will be better. Much of the programming I have borrowed from the lightBar, but the board is quite different. The 16' strip can be cut every 3 LED's, so each bar will only have 12 LED's. Such a small amount of current will be easy for a cheap 2N3904 transistor to handle, even the surface-mount style. There will be 36 of those, even though only one is shown. These will be driven from some 74LS374 octal latches addressed to get the 36 outputs from only 13 ports. The '374's are loaded via a rising edge clock, and are very fast so won't be a problem PWM'ing to get dim and bright control.
A recent
addition to this board is a pair of CDS photocells. The thing that is
different is they will each have a color filter. One red, one green. This
means, after adjusting out the CDS color spectrum sensitivity imbalance,
that ambient or other lightshow colors can be "followed" with this unit. So
if set up as a wash, all Bars on, and a red light flashed on the overhead,
this unit's red LED's would come on. |
|
The other controlling inputs are MIDI ( of course! ) and low-passed audio. This
time I'm going to use a dynamic mic instead of an electrohet mic. I have
noticed with the light16
project, very loud bass and drums over drive it terribly and all the lights
end up just staying on if a speaker is too close! There's no way around it
as they are sensitive in the sub-sonic frequencies. I guess I should change
that one day.
Back on the 2 CDS cells for a moment. I have just used one as a trigger on my intelligent Disco Ball Motor ( out of necessity, as it makes too much motor noise for an internal mic! ) and it seems to work well. The really neat thing about using 2 CDS's with filters, one with a red bezel, the other a green is if red is coming from the light stand, it will follow by changing to red, and if yellow (R+G) it will change to yellow, based on some parameters comparing one against the other. Ooooo! I can't wait! |
A lot can be done with this set-up, I won't bore you with too many ideas
I've already simulated, but outside of direct MIDI control from a sequencer
that is accompanying the song, lot's more has been added. Looking at the
board layout below, or diagram above, you may have noticed a flash EEPROM.
This is so it can remember "recorded" lighting sequences, like a miniature
DMX PC. This can be really easy using FL Studio ( or any sequencer ) Set up some beats, then tweak control of the strip lights until just right, then set record mode and record them all in at once, in real time. During a song, these pre-recorded sequences can be started using just one note to address it, and the MIDI-SYNC clock will ensure proper alignment with the beat. These could also be called from the Audio trigger routines. Even different types of sequences can be recorded into areas of the flash chip. Acoustic with either no "kick" or a higher frequency rhythm would trigger those. |
|||
That'll
be used in the lightBar as well!
Here's how the board looks so far. The colored lines are wires on the back of the board. If this was to be mass-produced, they would be traces on a double-sided board, but for a one-off it's not worth the aggravation. I'll be photo-etching it in a few days. (Addendum: The deep-pink traces and parts are changes and add-ons. See Dec 22nd 2012 entry below) I wanted the board to be compact, using SMD's etc, but still it ended up quite large. Over 3" wide. I guess that part won't roll up as well. In the bottom left corner is the audio circuitry. There is a mic pre-amp, then and adjustable amp, then a low-pass filter set to 60 Hz. This is so the bass drum will ring through above all else, defining the beat. I'm using 9 volts to drive the LM324 again because 5 volts just doesn't give that swing for the ADC. De-coupling and balancing the ADC input is easy enough. Look at all those outputs! They sure add up in a hurry. That's why I plan on using six, 6 conductor cables and running them along the back. Every 2 bars encountered ends another 6, so by the time the cable set gets to the far-right end, there won't be many left.
(Up to November 7th 2012) |
|||
It's amazing how far this project has come in the past few days. Now the mechanical & design aspect is out of the way, the fun stuff can begin! Problem is I don't have the board made because I need one of the girls at Staples to copy the board printout onto some transparency paper. And that's a $22 ferry ride away, and can't go until the weekend. So for now I have been writing the microcontroller program for the unit. This is where it gets a bit crazy! Writing an
orderly, logical, easily User Interface-able program for a PIC
microcontroller isn't an easy task. After writing hundreds of programs for
these things, I have come to the conclusion that writing the users manual /
instruction manual first, is the best way to get the desired results.
It's written with the thought of "how would this part of the program be
done?" |
The Program:
I have written a short operation manual, and written instructions on how
to use the Strip Lights with FL Studio. It needs to be easy to use,
flexible, and convenient, or I won't use it! |
||
The Strip must be:
Because
the unit needs to operate in so many ways, some parameters must be set.
Starting with MIDI. In the clip to the right, there are several
"patches". These patches are actually musical instruments in General
MIDI. Patch 1 is usually Piano, Patch 2 is usually Electric Piano etc.
Patch 1 is the most obvious. A way to instantly "play" any of 10 colors. Each octave on the keyboard is a different color. Each note in that octave is a different bar of light. Happily, 12 notes/octave and 12 bars! ( Purely a coincidence...really it was! ) Patch 2 is a wash, or all lights, on each of 10 natural keys, which is a good way to get instant colors. The velocity of the notes sets the brightness of the lights. Patch 3 just another wash, but 3 notes control Red, Green,& Blue. MIDI Control Change #60,61, & 62 control them gradually. Patch 4 is to start pre-programmed lighting sequences. (See Record below) Any Note that has been programmed to play a sequence will start the sequence. The sequence will play through regardless of when the note is released. Starting another sequence during a sequence will cancel the old in lieu of the new. Care must be taken to start the sequence at the beat it was recorded at. This will usually be on the first beat of a 4/4 bar. |
||
Patch
5&6 are a breakaway from the automation of the MIDI Sequencer (FL Studio
in this case) in that it the Strip Light will act like keys on a piano.
This will make an interesting display while playing live, and ooooh the
colors! The way it works is the 12 keys in an octave will be the 12 bars
of LED's. The harder they are played, the higher the color. Max velocity
would be Red, followed by pink, then sky blue, etc. Each octave is
overlapped, and can act additively. This means if a key plays green,
then another key 1 octave up plays orange, then the note would turn
yellow. The notes won't just flash, but they'll fade over 1 second or so, adding to the colorful display. Patch 6 takes advantage of this by moving all of the keys to the right within 1 second. This will hopefully give a "race" effect like dripping food coloring into a stream. (Not that I've ever done that!) Patch 7 is to set the type of music the recorded patch will be for -during auto-Audio / CDS mode. I added this because ambient fades just wouldn't work with a pounding techno beat, as a flashing, pulsing display wouldn't work at all with a little guitar ditty. (That kind of happened when I set my incandescent light show up at the Legion and went for a smoke!! Flash flash flash!) Patch 8 is to set what parameter can be modified (by the Audio input & CDS cells) away from the original set during programming. Mostly color or brightness. That's not completely done yet. It also will have a "Fade-out" on/off control note. |
||
Patch 128 is to set the Sequence # before a record. The capture to the
right shows the patch already at 128. This was just set by the RecordArm
pattern. This pattern can be re-used by each new sequence. It's missing
over the green in the image.
Somewhere in the
first bar, the Sequence number note is to be "played". This must be set
before the RecordArm pattern returns the patch to 1 (at beat 3) or it
won't be captured. All of the notes in the 2nd bar are a short light sequence, which must be terminated by an "End Of Sequence Marker", a note C-10, before the 1st beat of the next bar. It
seems a bit complex, but once the initial setup in FL Studio is taken
care of, it's just a matter of re-loading the STRIPLIGHTS.flp file, and
adding to it. In fact it has to be done this way because a flash EEPROM
can't erase individual bytes. It's a simple way too! "How does the Strip Lights program know when to erase the EEPROM?" you're probably asking. If the unit has been turned off, a flag is cleared on startup. If the unit hasn't been turned off, the flag is cleared on a MIDI Stop Play. On entering Record mode, if this flag isn't set, the EEPROM is erased, then it is set. |
||
Apart from a
few quirky routines that still have no access yet, like a ping-pong fast
pan, and a high speed chaser that may deal better with the 16/second
scan-rate issue, that's about all there is to it. I have most of the
programming done and simulated already, so once the board is together,
and the 12 strip lights mounted off it, things should work right away. Ha ha! In my dreams! |
Well that's about it for now, but next time I'll update on how it's working and maybe post some video on youtube. It's kept me busy for a few days now, and will probably change a bit before then so stay tuned.
December 22nd: Project Revision & Completion!
Well, it took a bit longer than I thought, and if I was the head designer at a big telecom company I'd be fired by now, but progress has been made and it's now hanging happily from the ceiling (because my walls are angled inward!) | ||
Here's
the final schematic, and the board corrections have been updated above. There were a number of changes made to the board, the program, and even the User Manual. In the circuitry, there were changes to:
-The Mic Amp: A dynamic mic just didn't do the lows ( I forgot not all
mics are $350 mics!)
-The Flash EEPROM's SDi & SDo were backwards, so those are noted on
board, and a 3.8V zener
-The MIDI out transistor was wired in, but the 180 ohm resistor is
pulling up the collector of the The program was changed in lots of ways as well:
-The PIC '74 SPI bus interface was dumped as I just couldn't get it to
work after 4 days! -The CDS cells were almost forgotten, so now act as a "no audio" light follower that works better!
-A secondary Kick drum sensor had to be added in the way of a secondary
frequency counter that |
|
|
-Added an "Advanced Settings" into Patch 6, which also turn on/off fade
mode. That's all too complicated to explain here, look at USER MANUAL for more. To keep it short, the Disco/Club cross-over BPM, Ambient min. Mic level, Kick Low-Cut, Beat Trigger Level, & Kick Drop On/Off/More can be set in Patch 6. These are saved to EEPROM so no need to set on power-up! -Patch 3 was redundant because of Patch 2, so became a live control called "Bar-Fly"... 'nuff said!
-Programming Sequences has also changed. The image to the right shows an
example clip. Notice the |
|
|
This EEPROM
(8Mbit) can hold about 17 minutes of light sequences, which is enough
for anything I could come up with. The Maximum number of sequences,
though, is only 120 which is dictated by the number of notes before C-10 (the end-sequence note). Using sequences in a song sure makes things easy! Just one note and colors, movement, flashing... wow!
This unit is
everything I'd hoped for, and feels like a Christmas prezzie to me, from
me! It does have a few minor bugs, and now I know the world didn't come
to an end, I may as well fix them!
Although they won't do it justice, Here's some photos until then....
I hope you have enjoyed this crazy project as much as I have!! Time to move on to the next 2: the lightBar and the globeLight Cheers!! Sandy*
|
Disclaimer: This is not an
instructional page to build or manufacture the above project, nor are there
any guarantees of accuracy herein. This page is an "of interest" discussion, and the project is intended for my own personal use. If you have any questions, or wish to pursue this project, you may contact me (Sandra) at fresh(at)freshnelly.com |