Coffee Tables Are Boring
In order to fix this insidious (and totally contrived) problem, I decided to make mine significantly more interesting by adding about 400 feet of fiber optic filament, some stepper motors, and an Arduino controller.
The first step was to drill all the holes (over 350 of them). It seems somewhat easy to put random holes in a table, however, it turned out to be surprisingly difficult. My brain favors order and consistency far too much and I found that I was filling open spaces and attempting to distribute all of the holes evenly. I wanted the pattern to be truly random so I threw hundreds of BBs on the table and marked where each one was before drilling. It was a lot of work and made a huge mess, but it did make a good pattern.
The holes were drilled, the fiber was inserted and glued, and the loose ends were bundled together and cut flush with each other. This took a LOT longer than you might think because I did not want to just grab the filaments at once and tie them together. This would cause the color changes to sweep across the table in a linear motion. I wanted the color to appear from all over the table at once so the transitions did not look mechanical. I did this by grabbing smaller bundles of 8 or so filaments together (2 from each quadrant on the back of the table) and zip-tying them together. This way, when I put the small groups together in the final bundle, it was unlikely that any given filament in the bundle (where the light is coming in) was adjacent to a ‘near by’ filament on the table surface. (probably sounds excessive, but it was worth it in the end)
Here are some long-exposure pictures of the table being lit-up with a laser (it is easier to see the filaments this way – plus it is just way-cool to see)
And here is the exact same thing with an ultraviolet laser… (just too cool to not show)
Next two motors were installed: one controlled a color wheel and the other controlled an interference pattern to create a twinkling effect. The motors come with the ULN2003 driver boards which were controlled with an Arduino Uno.
I used SketchUp to design a mounting bracket for the circuit boards. This made it easy to mount all 3 of them anywhere without putting strain the wiring or fibers.
Here is the final circuit mounted on the bracket:
I wanted to control the speed and direction of the motors so I could see what patterns and colors looked the best (for future projects) so I built a control panel that extends from the bottom of the table. In order to stop the motors, a pause button was added for each that calls an interrupt on the Arduino.
The motor driver boards each have 4 red lights on them to indicate the speed and direction of the motor. They are useful to tell what is going on under there, but I didn’t want them blinking away and lighting up the underside of the table. Instead of removing them, I covered them up (with a printed housing) and ran fiber optic filament back to the control panel so they were still visible but only as tiny dots.
Here what the whole thing looks like mounted under the table…
Here is a video showing a flashlight lighting up the surface filaments:
Finally, here is a video of it in action…
As an added bonus, I can set the color to “grass”, “lava”, or “water” when my daughter is playing on it with her action figures!