Doria Fan
doria[at]nyu[dot]edu

 

Networked Objects
Spring 05

 

 
 

Tom Igoe's class site

Back to Journal

Mauricio Melo's journal
Jason Kaufman's journal

Networked Flowers

Firstly, lots of photos as proof that it actually worked...

Okay, now for the scary pictures of our circuit...



I would've cried if I lost this piece of scrap (right) which I used to help me keep track of the LED configuration.



Please refer to the main journal entry for project description.

More info:
The individual components of the circuit and pic code are relatively straightforward: logic to communicate with the network, qprox, 5206 chips. A good bulk of this project became an exercise in wire management. Since the circuit is so huge and messy, when it came to debugging, it was a matter of doing damage control and being level-headed when approaching the mess. In this regard, it was very helpful to be working in a team on this, and to get a second pair of eyes on stuff. Really, we need to clean up this breadboard.

After wiring 25 LEDs for our first prototype, we realized the wires were too short, and I tried not to have a hissy fit. We went for a very snug fit, just so I could get all the LEDs tested and work out the sequences. It also got our gear spinning to think about how to deal with the stem, base, and wire management overall, as well as how to put this thing together and attach components (LEDs, plexiglass base for LEDs). In an ideal world, or with further iterations, we'd be able to better deal with design for manufacturability (at our level -- how to put the damn thing together) and serviceability (if you use superglue, and an LED blows, you're kinda screwed). Regardless, it was a good exercise to start thinking more about these issues. And seeing how many wires are required of this gets me thinking about how we could use less LEDs in the future. I also know why people try to avoid using so many LEDs (all those wires are a pain in the ass.)

Tri-color LEDs & 5206 chips:
I decided to use 7 tri-colors for the center (stamen) which indicate the state (welcome message, alert, etc.). Different colors could indicate different states. Initially, I was going to have a different message alert color/pattern for each pattern, but I had a lot of trouble controlling the color of all of LEDs. More on this below. To make our lives easier, we went with white for the petals. The thought there was to keep it simple. If colored lighting isn't handled well, it can be really tacky.
When you are lighting up 25 LEDS (18 normal (single color) and 7 tricolor -- there is a lot of wiring. We ended up using 7 5206 chips, which has 6 channels. Each chip can handle 6 normal/superbrights or 2 tri-color. I put an extra resistor (220K) for the red leg because supposedly the red burns brightest. I'm sure there are specs to tell you what resistance to use for R,G, & B, respectively, but in my rush, I didn't look. I was able to cool down the tri-colors, but now it's looking a little blue. I did notice that the red seems to blow more easily than the green or blue on the tri-colors. I had hooked up a pot to each of the 3 color channels to see what values corresponded with different colors. I did find fine controlling of the tri-color LEDs with the digipot to be a bit tricky. Sometimes the colors were a little off. I was also dealing with a lot of LEDs, so rather than try to fine-tune and get the initial color variation I wanted, I just aimed to get it to work. When your circuit looks as hideous as ours, I found it best to get rid of any added complexity, and just try to get the damn thing working. In it's present state, it can be a little scary to debug.The tri-color LEDs also tended to get a little nutty when you turn on/off the circuit. My workaround this was to initialize them (set them all to zero) at the beginning and end of every sequence. Otherwise, I couldn't get them to behave. I found it easier to code the LED animations using simple for loops, vs. storing a bunch of values in an array. I went with what was simplest to get this thing working on time. It could still use some fine-tuning. The values (0-255) to control the brightness of the LED is logarthmic vs. linear. If I wanted to be clever about it, I could compensate for this in code so the transitions are smoother.

Qprox:
It took a while to find the right capacitance to work for the system. Unfortuntately, when I put everything together for our class presentation, I couldn't get it working properly, so I faked it with a switch. I have it up and running for the show. In talking with John Schimmel, whose also using the qprox with a bunch of LEDs, he noted that you often have to "recalibrate" the qprox/play with the capacitance. Good to know.

Logic/network:
Thankfully, Jason Kaufman expressed interested in working with us the project. He was already in the process of developing a system (pic to web/cell phone) that fed in nicely with what we were doing. I had bought the PERL book, but was dreading it, so it was great to be able to concentrate more on the physical object and the electronics/logic of that component, than having to deal with the network. I had a simple board with logic working with Jason's board. However, when we connected the huge board with it, we were having power issues. I thought we had tested it with separate power sources & common ground (but maybe not?). SInce it was the night before, and we were able to get his Teleo module workign with Mauricio's emoticons, we decided to fake it with the flower. We're in the process of sorting it out. As of today (2 weeks after our presentation), I started to have a bit of a power meltdown overall. Originally, I was running off one power source. But the LEDs were having an epileptic fit today, so I put in another power source, with common ground, and that seemed to solve the problem. Hopefully, we can get this connected to the network without too much pain.

Once we do that, Mauricio and I are going to rebuild our boards to make it easier to manage and more presentable for the show. Right now, it's in a tenuous state. If we get this done, I also got more plexiglass cut to build multiple flowers. It'd be interesting to see this as a bouquet, vs.a single flower.

pic code:
hello world
basic analog code
3 pots/digipot/tri-color LED code -- to correlate digipot values to colort
code to jog LEDs on 7 5206 chips to make sure LEDs are working
basic qprox code
basic logic to get board communicating with Teleo module
main code for flower

A little more about the actual physical prototype:
I was very happy to be building stuff again and deal with all the challenges that come with trying to put things together. I was able to fold some of this effort with stuff we were learning in the Materials & Building Strategies class. I was initially looking into materials that are translucent, and possibly casting petals/the flower. I looked at embedding paper (e.g. rice paper), fabric, lace, etc. into dragon skin or other materials. I've got quite a few sketches and other ideas for other "lighting" projects. I also got the chance to test out the capabilities of the laser cutter. We tested how different cuts, materials (normal, single-side frosted, double-sided frosted) diffused light, etc. It was fun to do the drawings and to dimension stuff again. I made a gauge to figure out what size hole the LEDs fit in, and to figure out the fit/slop of the laser cutter. This template is designed to see how 1/8" pieces would fit together. I decide to just go with using plexiglass for this project since we had this service available to us. Below are some inital quick ugly protoypes to get our minds thinking and some photos of pieces we got cut. Great to work with Mauricio on this stuff -- he has a great design sensibility, a high sense of craftsmanship, and a lot of experience in making things.

Photos below:


Mockup for what the web interface might look like is up: here. We'll get this connected for the show.

Some earlier documentation: the initial scenario. (We haven't implemented the email feedback for this.)

Further thoughts:
Right now the form is a little 2-D to me. It'd be nice to give this more volume. The center LEDs are blinding. It'd be nice to be able to diffuse them (e.g. put them in another material, like a mini ping pong ball for each LED) or possibly hide all the LEDs. More work could be done with the LED sequences. It'd be nice to give the user a certain level of control and creating their own sequences. The tricky part is making that interface easy and also put in enough freedom for them to create something of their own, but enough control so that they don't go haywire. This seems to be a common dilemna in finding how much customization to allow the user (before the product becomes ridiculously complex, etc.) I now know the issues of that come up with lots of wires. Overall, it was very rich experience to work with Jason and Mauricio, specifically on the flowers, and also to see the range of what personal communcation devices they came up with individually (Jason's thumb, Mauricio's emoticons), and how those user experiences differ. I was also inspired by the work produced by John Schimmel, Matty Salin, and Michael Jefferson. Although our projects were quite different, I think there was a similar spirit there. I'm still not convinced if these type of devices can reach a larger audience (my initial intent to see if you can create a more universal personal platform for this type of communication), but it was an interesting exploration.