Building Your Own Glowing Cyber-Balls?
krezel asks: "So I've been drooling over the Ambient Orb, a cool little gadget 'glowing ball' that you changes colors based the 'health' of things you specify. It can do stuff like fade from red to yellow to green as your stock portfolio improves. However, being a poor college student I can't afford its $200 price tag. I've found lots of sources for super bright multi-color LED's. Cast a couple of them in some translucent resin, hook them up to a power source, and you've got yourself a cheap glowing ball. But I've yet to find any good information on how to build hardware that will let me control relays for devices like this through my serial or parallel port. Basically I'm looking for a cheap way to build a board that will let me control 4-8 relays (for each color) over my serial port, and some info on how to write the software for it. This could be a very cool project, and I plan on making the plans available, and the code Open Source, when I'm done with it. Any ideas?"
Don't you want more than 8 colors? If you use relays, you can only turn on or off each of the red/green/blue colors. But if you vary the current through each led, or vary the duty cycle by pulsing the leds quickly, then you can get more colors (like 24 bit color!).
--Tim
the Ambient Orb runs off a wireless network... no computer needed, and you can control it from anywhere in the world (theoretically). To manage that, you'd have to build an 802.11b -> relay interface, at least - if not a cellular one.
Now, assuming you don't want to muck about with that (and who does), your best bet would be to not use relays in the first place - they're loud, slow, and not gradual. Use a Basic Stamp from Parallax and write some code to output a PWM (Pulse Width Modulated) voltage to three different pins - one for each color. (Chances are you'll be using either one 4-pin, 3 color LED or 3 leds (red, green, blue). Infrared or UV leds could be interesting, but aren't recommended...) Then you can either leave the BASIC stamp connected to your serial port and controlled via DEBUG or SERIN (IIRC) commands from your host computer (and write some corresponding code for the host), or you can leave it standing alone and interface to it using any one of the who-knows-how-many add-on boards Parallax sells. (you might want to check out the Communications page - that modem looks like a good thing to try)
This
A solid state relay (S101S05v) is not a mechanical switch.
Having done some large castings in casting resin (clear and with opaque or translucent dyes), I can tell you that it's not all that simple to just cast a ball that size either. The casting material is going to be expensive to begin with. And if you don't get the hardner mix ratio just right, that stuff it going to crack and craze like crazy (split a few "paper-weights" in half). It gives off heat (from the chemical reaction as it "cures") which can damage really thick objects, like a 6 inch ball. I'd be willing to bet that what they have is not "hobbiest grade" casting material. It's more likely commercial grade plexiglass type material with a translucent dye added. It might not even be chemically cured like epoxy resins but may be cure thermally or by UV light (former - likely, later - possible but highly unlikely). Plexiglass resins become soft and pliable as you warm them (within reason - moderately high heat burns them easily) but casting resin does not - it cracks and crazes and shatters. The dye would be similar to the casting dyes you would get at a hobby shop. You MIGHT be able to cast a ball that size, if you are lucky, in casting resin but keep it away from large temperature changes and bright sunlight (which damages through both large temperature gradients and UV breakdown damage). You may find that this isn't a cost-effective "do it yourself project" after all.
One thing to remember though is that you're not allowed access to the ports under Win32 NT-family kernels except through a Ring 0 driver. That can get a little ugly.
Google for "Beyond Logic" and you'll find a site that lays out more info on the legacy ports and on making peripherals for them (and for USB) than you could read in a day.
(Mind, it's pretty easy to make a serial one too. There's a UART called the CDP6402 that's specifically designed to run without a master uC; just add an osc to get 4x the desired baud rate and use an octal latch to maintain the output with an RC circuit to generate the rcv ack pulse, and you're set.)
Lotsa links here...
First of all, the 2002 Burning Man project I did that involved a couple hundred RGB LEDs spinning in a persistence-of-vision-based nighttime animated display. Here is the best picture of it. This is the page about the development details.
The LEDs I used were manufactured by Kingbright. The model I used, the LF819EMBGMBC, is big (10mm) and relatively bright for an RGB LED. I couldn't find any U.S. retailers that actually told the truth about whether they stocked them, so I ended up buying 400 directly from Kingbright for I think a little more than $2.50 each. I still have a few left.
Atmel AVR microcontrollers are just a few bucks each, easily programmable with the STK-500 programmer, also cheap at around $80. I used the ATMega8, which was more than sufficient for my needs. I imagine the original Slashdotter could use one of the ATTiny MCUs, since it really needs only 3 or 4 I/O lines (fewer depending on how many helper circuits you decide to use).
The boards were manufactured by PCBExpress and I was very happy with them. The CAD/CAM software was Eagle, which except for some crashing/redrawing bugs was really amazing. The version I used was free. I tried to buy it but CadSoft has (had?) a fairly crazy pricing scheme that actually left you worse off in terms of acceptable usage if you paid them money than if you used the free version.
The best part of using the Atmel MCU was that GCC can cross-compile for it. So you're basically writing regular old C code but it runs on a little tiny piece of silicon. You'll want to subscribe to the quite active avr-gcc mailing list. Save every message from Marek Michalkiewicz; in my opinion he's the god of GCC-for-AVR development.
download a set of drivers called "PortTalk", they work very well for allowing programs to access the parallel port under nt/2k/xp and they include quite a bit of sample code for doing it also.
In terms of hardware, you'd need the jack for the port, the power cord, a PIC chip, a transistor for each color, and a bunch of LEDs/resistors of each color. Easy stuff really. Let me know what you come up with. If you use USB, I'd be especially interested, as I have a Mac (no serial port). Good luck!
I hereby place the above post in the public domain.
I've actually done this with eight LEDs (four red, four green) and the parallel port on my firewall machine. I did it mostly because it had a cool smoked perspex cover that slides over the drive bays, and the LEDs shining through it looks pretty cool. Especially when you make them flash and do stuff. Have a look at some pics.
In this case, the LEDs have their anodes connected together, and brought back to the 5v rail, and their cathodes connected to the parallel port pins through 220 ohm resistors. You then bring the appropriate pin low to turn the LED on. There's a good reason for doing it "backwards" - the gates driving the parallel port can sink more current than they can source. That is to say, the transistor pulling the pin to ground is "stronger" than the one pulling it to +5v, so it's more suitable for turning on an LED. You could use two resistors and a small transistor per pin, too. If you like.
Actually you can get 12 "output" channels out of a parallel interface if you really want to... the 8 data channels, plus the "strobe", "autofeed", "init", and "select-in" channels (pins 1, 14, 16, 17, but 1, 14, and 17 are "inverted" watch out).
c uit.jpg
I use the parallel port to drive three stepper motors. Pretty easy to do, and your circuit would be just as easy. You could actually use the same circuit, but simply change the +12V input to the correct voltage, and hook the LED's in where the motor phases would be.
See my crude circuit diagram here:
www.lenticularshareware.com/downloads/stepper_cir
FYI, you can also get 4 "input" channels from the parallel port at the same time, I use them for limit switches to set the position of the steppers to "home". (see diagram)
MadCow.
I used to have a sig, but I set it free and it never came back.