| |
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.
|
|