Come to dorkbot

•November 18, 2010 • Leave a Comment

18 November Meeting Details

We’ll meet Thursday, 18 November, 7:30pm, upstairs at Brillobox.

Heather Knight – Heather is a doctoral student at Carnegie Mellon’s Robotics Institute and founder of Marilyn Monrobot, which creates socially intelligent robot theater performances. Her installations have been featured at the Cooper-Hewitt Design Museum, LACMA, Pop!Tech, SIGGRAPH, Mindshare LA, TEDxUSC and Fortezza da Basso. Her work also includes; robotics, and instrumentation at NASA’s Jet Propulsion Laboratory, interactive installations with Syyn Labs (including an award-winning Rube Goldberg Machine music video with OK GO), and sensor design at Aldebaran Robotics. She is an alumnus from the Personal Robots Group at the MIT Media Lab, earning her bachelors and masters in Electrical Engineering at MIT.

Kelly Gates – Kelly is Assistant Professor of Communication and Science Studies at University of California San Diego. Her major areas of research are digital media studies, science and technology studies, and visual culture. Her recent work has focused on the politics of computerization and surveillance system development in post-war United States. She has published in multiple journals, including Cultural Studies, Journal of Communication Inquiry, Social Text, Social Semiotics, and Television and New Media. She is co-editor of The New Media of Surveillance (Routledge, 2009), and her book, Our Biometric Future: Facial Recognition Technology and the Culture of Surveillance, is forthcoming from NYU Press. She is currently spending a sabbatical semester in Pittsburgh.

Final Project Documentation – James Z.

•May 22, 2010 • 1 Comment

The goal of this project was to create an array of LEDs embedded in ping pong balls, and the balls would be able to move and react independently to interaction. Each ball is attached to a series of metal wires, providing a physical output of motion when acted upon by a user. Each LED is also capable of dimming, providing a visual output of a change in light. This was made to create a simple, enjoyable experience that comes from being able to interact with these little balls of light. I wanted this to be  something that was fun to interact with, as well as beautiful to look at.

Note: photographing and recording LED light is very difficult. but if you look closely, the lights do dim, but they are dimming very very quickly. the side view is best for seeing that.

How It Works:


The motion of each ball comes from the metal wires supporting it, and the bolt attached directly below the ping-pong ball. All of these things are meant to keep the ball  in motion for as long as possible when acted upon. Also, the bolt functions to provide the ball with some weight so that a ball  in motion can collide with a stationary ball and cause a chain reaction.


Each LED is also capable of independently dimming, because on each metal support wire, there is a bending variable resistor. The current going to the LED passes through the resistor. When the metal wire is bent, the resistor bends with it,  increases resistance, and limits the current flowing to the LED. The LED dims as a result:

Please enlarge this picture!


The Base:

The base is made of MDF. the holes were drilled in a 3 x 12 pattern, making 36 holes. I used a 1/16in drill bit, because these holes have to be as small as possible. The whole wire assembly is inserted into the hole, and it is imperative that the hole and size of the music wire inserted into it are as close as possible. Then, I drilled a larger hole next to each of the smaller ones, for electrical wires to pass through to attach to the circuit underneath.

The Wire Assembly:

Each part of the wire assembly was chosen very methodically, and was a result of experimentation with various  materials. What I ended up choosing helped me achieve the motion that I had originally wanted when I was coming up with the concept. The wire assembly is comprised of the following components:

Music Wire: Provides the overall bend. It is very flexible yet strong, and consistently returns to an unbent state when the stress that is bending the wire is removed.

a Bolt: Provides the weight to keep the ball in motion for a longer period of time acting as as a sort of pendulum.

Steel Wire: To get the entire assembly to move in a consistent manner, this section needed to be completely stiff. It allows controllable oscillation to occur, because of the distance the bolt is away from the flexible music wire. if the entire wire assembly was flexible, the movement of the ping-pong ball would be inconsistent, and it would flop around rather than swing.

Brass Tube: Connects the steel and music wire.

LED: Wrapped in scotch tape, to diffuse the light even more.

All of these components were glued together with 5-Minute Epoxy.

I made 36 of these. Gluing it all together definitely was the most time consuming part. I used pliers to squeeze down on the brass tube once I had inserted the music and steel wires into either end, to help secure them in place while they were gluing. This additionally helped secure them even more once the glue had dried.

Note: You have to use heavy duty cutters to cut music wire. It is extremely strong wire and will damage all normal wire cutters, and even more rugged ones. That is why I suggest you buy linesman cutters, which I listed below under the materials section.

Please enlarge this picture!

The Bendable Resistors:

This video tutorial explains every step I went through to create the bendable resistors:

After cutting out all the resistors, I took two thin strips of .02 styrene, placed a piece of music wire along the back of the resistor, and glued the strips of styrene over the wire, so they would be secured to the resistor and wrapping over the wire:

the two strips of styrene on the top and bottom hold the resistor to the music wire. They were glued there using Plastruct Bondene

Once they were done drying, I pulled out the music wire I had used to shape the styrene strips (I couldnt use the actual music wire because it was still drying from having been glued into the wire assembly)


I took the resistors I had made (with the conductive thread attached) and slipped them onto the music wire end of the wire assembly.

I inserted  the wire assemblies into each of the 36 holes, gluing them in with 5-Minute epoxy,. Then I soldered on electrical wire to the prongs of the LEDs. This is what it looked like before and after I wired it all up.

I took the conductive thread at the top end of the resistor and wrapped it around the electrical wire that was attached to Positive side of the LED, and secured the two together with electrical tape.

I simply attached the LEDs in parallel. Underneath the MDF board, each row  of LEDs  has a designated Power and Ground wire that each LED in that row is attached to.  I took the conductive thread at the other end of the resistor, fed it through the larger hole i drilled, and wrapped it around the Power wire. I took the Ground electrical wire and soldered it to the designated Ground wire for the row. Then, all three Power and  three Ground wires are connected to the breadboard to the Power or Ground columns.


Schematic of Circuit

Bottom of wire assemblies with resistors attached


36 Ping Pong balls

36 LEDs (Super Bright, Low Voltage) [Electronic Goldmine]

.32 mm Music Wire [CMU Art Store]

1/8 inch Brass Tubing [CMU Art Store]

14 Gauge Galvanized Steel Wire [CMU Art Store]

Smaller Gauge Wire [CMU Art Store]

Utility Knife [CMU Art Store]

Heavy Duty Wire Cutter (Something like this)

Wire Stripper [Electronic Goldmine]

Black Electrical Tape [CMU Art Store]

Scotch Tape [CMU Art Store]

.5 inch Thick MDF [Home Depot]

Nails [Home Depot]

36 Bolts [Home Depot]

Electrical Wire [Sparkfun]

Soldering Iron [Radioshack]

Solder (Rosin Core)

5 Minute Epoxy [CMU Art Store]

Hot Glue Gun [CMU Art Store]

Drill (I drilled holes that were 1/16 in. and 5/32 in.

Staple Gun

.25 Acrylic Sheeting

Black Spray Paint [CMU Art Store]

3 AA Batteries


For the Resistors:

Conductive Thread

Graphite Powder

Rubber Cement [CMU Art Store]


Measuring Spoon [Giant Eagle]

.02 inch Styrene Plastic

Plastruct Bondene

Multi-Perspective Real-Time Light Painting [Brett Holcomb]

•May 16, 2010 • Leave a Comment

Sorry this is so late! My birthday was the 13th and I was a bit slow to recover.

BHolcomb – Multi-Perspective Real-Time Light Painting (pdf)

I’ll add a video so blog viewers can get a sense for what it looked like.

Arduino code (serial communication, signal processing) (pde)
openFrameworks code (camera comm, serial comm, image processing, debug cmds, modes) (cpp)

Voodoo Bunny – Final Project

•May 14, 2010 • Leave a Comment

For my final project I was inspired by voodoo dolls to make a giant inflatable bunny that could be inflated and deflated by pressing on a smaller “voodoo” bunny. Pressing on the small bunny shuts off the bigger bunny’s fan, transmitting your push to the bigger bunny.

The plans for both bunnies were generated using a computer program that I wrote which unfolds any 3D model into a pattern that can be folded together and inflated to form the original shape. The patterns were projected onto and cut out of polyethylene sheeting, then welded together to form the bunny. More information about this aspect of the project is available here. You can see and print out the patterns I used to create the bunny at the link below:

The Voodoo Device

The voodoo trigger device is a development on my previous huggable input sensor project. When the inflated bag is pushed or hugged air flows back through the fans, slowing them down. An attached Arduino board reads this change in speed and turns off the big bunny’s fan if a change is detected.

While I had hoped to have a small voodoo bunny be the trigger device for the larger bunny, I ran into some difficulty in assembling the smaller bunny. I thought that a 3’ tall bunny would have enough internal volume to trigger the sensor, but it did not.

This was by far the most time-consuming (and frustrating) step of the project. Because it took over ten hours just to construct the 3’ tall bunny, I was not able to create a larger bunny in time for the deadline. Instead, I used the simple plastic bag membrane I was using to test the device in its place.

For posterity, I constructed the 3’ tall bunny using several computer printouts of the patterns I used for the big bunny and the same 4mil polyethylene sheeting I used or the big bunny. I welded the edges of the bunny using a soldering iron and a ruler rather than an impulse sealer. This technique yielded mixed results, and I would recommend using the impulse sealer method described in my other post.

The Relay

To control the fan using my voodoo sensor I wired a relay into an extension cord attached to the fan.

Before I describe the method I used to accomplish this…

WARNING: Switching wall electricity can electrocute and kill you! There are safer ways to wire a relay than the way I did it. If you like living, check out this great sparkfun tutorial that shows you how to switch power using a GFCI. If you’re feeling brave or lucky, keep reading.

All of the things required to build this switch can be purchased at Radio Shack:

Y-Splitter Power Cord I spliced my relay into this Y-shaped power adapter. You can use an extension cord if you want.
Electrical Tape
Heat Shrink Tubing
Relay I used a relay that I salvaged from some old electronics I found. This relay or any other single pole single throw relay under 5V will do.
Perfboard Though not necessary, this is a nice way to mount your relay for soldering.

I cut in the middle of the power cord, leaving room on each side for splicing:

Then I stripped the outside covering of the wire. Be careful not to cut the smaller wires inside. If you have slack, cut further down the wire than I am here.

I stripped the other (socket) side of the wire as well.

After stripping, three wires are visible.

Green is ground. It will be directly connected to the other piece
White is hot. It will also be directly connected to the other piece.
Black is neutral. It will be switched by the relay.

NOTE: Be sure to use only the black, neutral wire with your relay. Switching the hot wire can get you electrocuted.

I stripped each of the wires, twisted them, and soldered the green and white ones to their matching wires on the socket side. Then I insulated the solder points using heat shrink tubing.

The black wire remains free.

Then I mounted the relay to the perfboard and began wiring its connections according to this diagram. I ran long wires from the relay to my Arduino so that it was isolated from the relay.

circuit diagram

There are many different pin configurations for relays, so yours might not look exactly the same as mine.

I didn’t do a very good job of soldering this to the perfboard. You can do better!

After you’re done, wrap the whole thing in electrical tape. When wrapping, make sure that none of the wires going into the relay can touch.

The Program

Like the huggable input device, Voodoo Bunny uses the excellent Arduino FreqCounter library. The program measures the frequency of the voodoo fan’s tachometric sensor with FreqCounter to determine if the little bunny has been pushed. Once it’s determined that a push has occurred, the Arduino powers the relay, shutting off the big bunny’s fan. It then waits a set number of cycles before deactivating the relay and turning the fan back on.

The source code is available on Github at the link below:

Arduino Source

Bunny Construction

After the relay, Arduino, and sensor were set up, I turned on the power. This is what the back of the bunny looks like when it’s inflated.

Final Project Documentation – part 1 (what i have so far) [James Z.}

•May 13, 2010 • Leave a Comment

this is what i have so far for documentation. i have lots and lots of video clips to sort through and photos to choose.

this is a rough version of the beginning of a comprehensive video tutorial im making to show how i made the graphite and rubber cement resistors. im going to try to put everything i learned through the incredibly long experimentation process so that someone can watch it and learn from it, and choose the best form of resistor that would best suit their needs without having to struggle through endless tests

im also going to put in photos of the constructing process for my final project, and the video of my final project functioning.

hooking the conductive thread and pulling it through the hole to connect it to the circuit below.

one issue im having is that the variable resistors  are not sensitive enough to respond as well to changes in the bend of the wire. when the wire bends, the resistor attached  to the wire will change resistance accordingly. however, the bend needed has to be less of a smooth radial curve and more of a bend that meets at an angle. i have been unable find a way to make the bend for my project be more sharp and angled. while the LEDs in my project to react to bends in the wire, the shifts in the resistance are not as dramatic as i had hoped.

08.0 Final Project Documentation [Michelle Spitzer]

•May 13, 2010 • Leave a Comment

I believe furniture should work with the people using it rather than against them.  Since the coffee table is often central in a college student’s apartment, I decided to see what I could make a couple of them do for me.

This project was an attempt at two different table ideas.  One was a writing surface lit from the bottom with leds.  The surface reacts to changes in pressure on the surface incurred while writing on the table.  While it may not make the task any easier, it makes it more fun, and the table itself makes a convenient spot to problem solve while working.  The other table was a go at an all-in-one work station. The primary goal was to create a lamp integrated with the table.  I built this lamp to fold out of the table with a swiveling light bar on the top that allows the user to adjust the angle of light.  There is also a peltier unit built into the table under an aluminum plate that cools your drink when turned on, and compartments built into the table that light up when a magnet is removed from their vicinity.  This allows you to see what you have in them without having the stuff all over the table.

Parts and Materials for the Lamp Table:

17x white LEDs

5x yellow LEDs

4x blue LEDs

8x green LEDs

8x red LEDs

hookup wire

2x 150 ohm resistors

1x 100 ohm resistor

1x 330 ohm resistor

1 peltier unit

1 computer fan

1 heatsink

3 acrylic drawer organizers

1 L298N h-bridge

1 12v, 1amp power supply

1 potentiometer

1 arduino

1 9v .66amp power supply

1 lamp fixture (I built mine of walnut and used 1/4″ brass tubing for the joints so I could run hookup wire through the assembly and avoid snagging) This would depend on the size of the table

3 reed switches

3 magnets

1 coffee table (I built mine to 25″x25″) You could build one to your specifications, or buy one and hack it so there are holes in the top surface to set elements into and add a bottom surface with plywood.

3 perf board panels to wire the LEDs onto (3″x3″, 3″x6″, 3″x9″)

Breadboard Diagram of the Lamp Table:

Schematic of the Lamp Table:

Code of the Lamp Table:
Arduino Sketch: final_lamp_table

Parts and Materials for the Writing Table

3x Force sense resistors (you could use more- I just had 3 panels)

3x LED panels from Lamp Table

colored LEDs and resistors from Lamp Table

1x Arduino

1x 9v .66amp power supply

1x coffee table (same deal as above)

2x 20″x20″ optix 1/8″ acrylic sheets for top surface (must be clear to write on it or it doesn’t erase)

1x 20″x20″ fibrous plexi for dispersion of light (goes under the two clear ones)

Breadboard Diagram of the Writing Table:

Schematic of the Writing Table:

Code of the Writing Table:
Arduino Sketch: final_writing_surface

Process Pictures


08. Final Project: Counteract [Franklin Krouse]

•May 13, 2010 • Leave a Comment

08. Final Project: [Franklin Krouse]


Abstract Description:

While using light and shadow as my primary source of public
interaction, observers counteract a museum’s art restraints through a
physical involvement with their immediate environment. Through a
contrast in observation and interaction, an organized density of five
foot steel bar’s are designed to fluctuate based off 1. the amount of
ambient light in the space and 2. the quantity of people surrounding
the lamp.


Diagram 1

Diagram 2


How It Was Made:

After designing a template in rhinoceros to accommodate the multiple densities of light, I laser cut a 1:1 scale outline in cardboard. After cutting all of the steel rods down to their appropriate lengths, I had to use a plasma cutter to cut out the two steel base plates. After the plates were cut out, I then fastened the template to the plates and drill press. By drilling through the plates first, I was able to MIG weld (hide) all connections.

After assembling the structure, I began adding more layers to the project. Introducing a gear reduction system with a dc motor was the most challenging aspect of the project for me. I found a dc motor (Buehler) with a gear train already attached, which allowed me to directly connect the structure to the dc motor.

All of the mechanical aspects of the project were designed to be hidden to the observer. The overall form of the lamp was constructed to not distract from the light itself, but rather enhance it. Through light, shadow, and engaging human curiosity I have tried to enhance the publics awareness through a tangible interaction with my lamp.

Top looking down

Materials Used:

x(42) 1/8″ steel rods_x(22) 1/4″ steel rods_x(2) 1′ x 1′ square steel plate

x(4) photo resistors_x(1) Buehler dc motor_x(2) 3′ long florescent bulbs

x(1) housing/ ballast/ extension cord_x(1) Arduino Duemilanove

Equipment Used:

Metal Band Saw_Mig welder_Drill press_Metal Chop Saw_Wire Cutters_Soldering Iron_Plasma Cutter

Schematic Design:

Arduino Code:

H-Bridge Setup with Buehler Dc Motor. [Franklin Krouse]

const int switchPin = 2; // switch input
const int motor1Pin = 3; // H-bridge leg 1 (pin 2, 1A)
const int motor2Pin = 4; // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 9; // H-bridge enable pin
const int ledPin = 13; // LED

void setup() {
// set the switch as an input:
pinMode(switchPin, INPUT);

// set all the other pins you’re using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ledPin, OUTPUT);

// set enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);

// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that the module
// reset itself.
blink(ledPin, 3, 100);

void loop() {
// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low

blinks an LED
void blink(int whatPin, int howManyTimes, int milliSecs) {
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
digitalWrite(whatPin, LOW);

shadow fluctuates based off movement of rods