Acclaim Lighting makes LED based lighting products. Some of their products include architectural lighting, high brightness fixtures utilizing Luxeon LEDs, and even lighting to cover a whole floor or wall. It all is controlled by DMX-512. Well--almost; the interesting fixture here is the X-Panel Frame. This device consists of 12 5x5 RGB LED arrays, arranged in a matrix. Due to the number of channels, it needs more than 512 channels so it supports "DMX-1000K," a protocol I am completely unfamiliar with. Fortunately, if you limit yourself to 6 X-Panel modules, DMX-512 works just fine, and the display size is just a bit limited.
Now, of course I was unwilling to use the recommended software provided by Acclaim; it didn't run on my platform of choice. Actually, I didn't even have a copy of the stuff. Nor could I find a USB DMX-512 interface. But I did have an idea.The power of Cocoa allowed me to whip up a little application for my Mac in about two evenings. It took about 2 more days to finish up all the features. But what exactly does it do? First I made the whole display blink, then added some chasing features, and did some automated fading. Simple stuff, but it was lots of fun. It made me want to do more; so I wrote a little function that would translate from normal cartesian coordinates+color to the DMX data, reflecting the physical orientation of the device. An NSImageView configured as an image well later, and I could drag & drop photos and have them displayed on the LEDs. The resolution was low, and my scaling unoptimized, but video was the most fulfilling.
But fancy Cocoa programming does me no good without a way to physically control the device. Fortunately I happened to have my EasyLase USB interface handy. I wired up a level converter with some MAX-485 chips, according to the wiring diagram included in the manual. I had recently finished testing the DMX-512 portion of the EasyLase USB Driver for OS X, but this was the first time I used it with a real device : ). (if you need a copy, let me know)
Please excuse the low quality of the video, I just kinda hacked it together. The screen capture and live video are slightly out of sync, and the CCD in my digital camera simply isn't able to handle the brightness of the LEDs.
The video clip at the end is complements of Charlie Deets. Please don't laugh at the poor software interface design; it was just a toy.
While I am not quite a mathematician, being a student of Computer Science, I have the opportunity to associate with those skilled in Mathematics. I took it upon myself to determine if I had a finite Erdős number. It turns out I do.
I have documented my findings below; the last three lines of the table were determined via MathSciNet, the first two by personal knowledge. I was pleased to find my number is so low and am proud to declare my finding.
|Directing Change Using Bcfg2
|Ewing L. Lusk
|MPISH: A Parallel Shell for MPI Programs
|Ewing L. Lusk
|John Mackintosh Howie
|Combinatorial results relating to products of idempotents in finite full transformation semigroups
|John Mackintosh Howie
|John L. Selfridge
|A semigroup embedding problem and an arithmetical function
|John L. Selfridge
|Some problems on the prime factors of consecutive integers
A few weeks ago the most adorable little Päckchen arrived on my doorstep from Germany. Inside was the EasyLase USB interface by JM Laser. The EasyLase is a USB device that has a 25-pin ILDA compatible DB-25 connector to output analog signals for laser projectors. It incorporates 12-bit DACs for the X-Y channels for superior resolution.
In testing so far, it seems like it is going to be great, but there is plenty of coding to do yet to achieve the greatest performance. The card has plenty to give, and extra features like DMX512 In/Out--one less thing I need to buy!
Thus far, because the projector isn't quite finished yet, I've been testing with a Tektronix 2440 Oscilloscope. My friend Sean helped code a 3d Torus demo. It worked quite well, but I'm still having trouble with FTDI's D2XX driver for OS X version 0.1.0, perhaps the next version will solve some of the problems I'm having. Specifically, read and write calls are hanging when I know they shouldn't.
A while back I had the pleasure of speaking with a gentleman named Craig from the ECE Machine shop here at my university. I had the opportunity to talk to him because I was picking up some parts that he had machined for me out of solid aluminum!
Key features include all-aluminum construction for optimal heat-dissipation as well as strategically placed mounting holes for circuitry or additional heatsinks. The should also provide flexible mounting surfaces for the galvos. It will be necessary to use thermal epoxy to glue the coils to the surface for maximum thermal conduction.
I really anticipate these will provide high-performance platforms for the rest of the components.
I spent quite a while building the prototypes. They include the cheap bearings I bought at the hobby store, a steel axle, and the N50 cylindrical magnets.
The acrylic models gave me a good idea of the tolerances involved, but it was clear I needed more precision. I used the dremel to finish the prototypes, drilling holes, and tapping some of them for 2mm screws. Unfortunately my drilling was not precise enough for production work.
I never install the coils more than just for test-fit in the acrylic prototypes. Amplifiers would be needed before any performance testing would be possible anyway. Eventually the prototypes proved useful in demonstrating design to the machinists that would build the aluminum pieces for the final version.
subscribe via RSS