Introduction: Vibrating Pixels, Mechanical Mirror

The following tutorial guides you through the basic steps in creating this vibrating-pixel-mirror (feel free to help me with a name), which uses tiny motors to vibrate an array of mirrored pixels and distort the image. The motors are individually addressable through an Arduino board, allowing simple animations to be created. I'm hoping to translate this prototype into a larger array with greater resolution and the possibility for more complex animations and interactions.

Step 1: Making the Face of the Thing





1. Figure out the size.
Again, you can make it as big as you want, but a grid of 9 pixels is pretty manageable for a first try:
Mine consists of an 8" square with nine 1" diameter circles arranged a grid at 1-1/8" from center to center.

2.
Laser-cut your shape out of a sheet of mirrored acrylic.
The circles cut out of the center will be used as the face of the pixels. I used circles to avoid trouble later on in orienting and aligning them.

3. Put some rubber on the back.

The black rubber shown is 1/4" neoprene sheet. Cut out a 6"-7" square of it, at least big enough to cover all the holes. Super glue it onto the back of the panel. The neoprene is what the pixels will eventually be attached to, and seems to do a pretty good job of holding them firmly while not dampening the vibration.

4. Make a frame.

If the thing stands up on it's own, everything will be a little bit easier. To this end, I built a wooden frame for the panel to mount to . Make it deep enough to mount the Arduino uno board inside, around 3". For more details, maybe find a woodworking friend, or find a wooden box the right size, or make one out of cardboard, or macaroni.











Step 2: Pixel Parts

Here's what I used:

1. The nine mirrored acrylic shapes that were cut out of the panel

2. Nine pieces of .02" dia. x 1" long steel piano wire.

These will be cut a little shorter later on so it dosen't have to be too accurate. longer is better. The steel instrument wire compared to some other metals is pretty elastic - it doesn't tend to kink easily when bent which is important. It's sometimes sold at art supply stores as a model making material.

3. Nine m
ini vibrating motors.
As the name suggests, these are what do the vibrating. They're cheap and neat. I got them from adafruit (http://www.adafruit.com/products/1201). You'll need to solder an extra length of wire to the leads of each one. 8" long is probably safe.

4. 1/8" thick x 1/2" square acrylic with a ~.025 hole drilled in the center (the red things)

These transition between the wire and the motor. I was able to laser cut these with the hole and all (not an accurate way to make a small hole but it worked). The hole is there to accommodate the piano wire and should be a fairly tight fit to make the assembly easier.

5. 1/8" thick x 1" dia. custom acrylic shape with a ~.025 hole drilled in the center (the yellow things)

These transition between the wire and the mirror. They're made just like the red parts. They are the same diameter as the pixels which makes centering them easy later on. They could be full circles but the extra weight might be an issue.




Step 3: Pixel Assembly

Here's how it all goes together:

1. Glue the yellow acrylic part to the back of the pixel face.
The super glue I used melted the backing very slightly which showed on the mirrored side, so you might try something different. Also, if the acrylic looks warped at all, you might need to clamp it to make sure its on there flat.

2. Attach the wire
Insert the wire into the hole in the yellow acrylic and glue it. Use pliers to press the wire in so as not to put the wire through your finger. Add a dab of glue where it connects and wait for it to dry.

3. Trim the wire.
Using calipers and diagonal cutter I trimmed the wires all equally to 11/16" above the back of the mirrored piece.

4. Pierce the rubber
The rest of the pixel assembly happens after they are inserted into the panel. To do this you need to pierce holes in the rubber that has been attached to the panel. In order to make these holes straight I used a sewing needle inserted into a drill press. To keep them centered in the opening I made a jig with laser cut acrylic.

5. Attach the square acrylic piece to the other end of the wire.
With all panel laying face down and the wire sticking up through the rubber, press the wire into the hole in the red acrylic square and add a dab of glue where they come together. Make sure the wire isn't sticking up past the surface of the acrylic square. let it dry.

6. Finally, Stick the a vibe motor to the center of each acrylic square
The pixels can still rotate at this point so orientation doesn't matter. The motors have their own sticky back, but since these are going to get warm and shake violently, some extra adhesive is recommended. I dabbed tiny amounts of regular gorilla glue around the edges of the motors. DO NOT USE SUPER GLUE. I did so on a previous prototype and, for reasons still unexplained, my motors ceased to pass voltage through them. (the multimeter read infinite resistance).







Step 4: Containing the Wires

The nest of wires created at this point is not healthy. One solution:

1. Make some custom laser cut wire corrals.
These were cut out of 1/4" stock and work pretty ok. I would tweak the shape a little if I did it again. They seem excessive but were actually kind of necessary in that I couldn't use staples in this situation. They glued down easily to the rubber and more or less hold the wires in.

2. Run the wires
Run the wires as shown so that they all exit on the same side of the panel. This will be the side that your breadboard is mounted on.


Step 5: Electronics

What I used:

An Arduino Uno
An adafruit perma-proto breadboard.
Two 75HC595 shift registers

What I did:

1. Prepare to mount the components
hold the Uno and Breadboard on the inside of the box against the wood and mark the mounting holes. pre drill these holes into the wood so that mounting will be easier later on

2. solder the shift registers onto the breadboard
The shift registers allow the Arduino to control all nine pixels through a single pin. Each shift register can control 8 elements. These two are linked in series, with the second one controlling only a single vibrating motor.

3. Read the
Arduino Shift Out Tutorial
These electronics are hooked up exactly according to the wiring diagrams here. I have simply substituted motors for LEDs.

4. Hook up everything but the pixels

I found it convenient to get everything on the breadboard set up and connected to the Arduino before dealing with the motor connections.

5. Connect the motors

Hook them up them according to the shift out tutorial and you should be done. That tutorial also has some code examples to use as a starting point in creating neat effects. Ideally you would connect the motors in some intuitive order (1-9 is counted right to left and up to down or something).

6
. Good Luck
I'd love to hear about any successes or failures you have. I'm open to questions, suggestions and commissions for massive, architectural-scale vibrating installations.