Making Furniture Interactive

December 17, 2007

Laser Cut Paper Iris

An attempt was made at cutting out a mechanical iris on the laser cutter. It did not work so well and was later abandoned without making it motorized.

A separate mechanical device, a power window motor was modified through sheet metal work and welding. This was used to hang a tree upon and thereby spin it. This is seen in action in a short clip of the Robotic Branch Video below during Rossum’s recent Uncanny Valley robotic art show at the Brewhouse.

Paper IrisPaper Iris and HandPaper Iris OpenPaper Iris Failures



Motor Fan

Filed under: Exercise 6: Motorized Mechanical Movement,Jamin Hegeman — Jamin Hegeman @ 3:18 pm

For this exercise I used a light sensor to control a DC motor, which rotated a circular paper with some dots on it. You also had to hold down a button to ensure the motor wouldn’t start running on its own in response to environmental light changes.

December 16, 2007

Purpose Based Interaction

Filed under: Exercise 6: Motorized Mechanical Movement — mjlevy @ 11:39 pm

pdia.jpg I’ll preface this by saying that what I built is not what I intended to build when I started.  I had discussed in class build a lamp that moved east and west through a room to mimic the movement of the sun.  While the idea of celestial-mimicry still intrigues me, I realized that was it was missing was any kind of real interaction.   What I’ve attempted to do here is wholly based on interaction and the meanings thereof.  I kept thinking about the idea of a lamp, and one of the original problems I had had with my earlier plans: how to turn it on and off.  The idea of turning something on and off kept me thinking for a while.  What is at the essence of on-ness and off-ness for our objects?  When it comes to a lamp, the usual interaction for light (the up/down switch) is actually a rather good interpretation of the on/off state in terms of light creation.  Up is the sky, where the light comes from; down is the ground, where it doesn’t.  Desk lamps, however, are far worse off in terms of their interactions, with everything from rotary switches to double pull double throw switches.  What I wanted to do was to build in some kind of interaction that better represents on-ness and off-ness for a lamp.    As you can see, when the lamp is upright, facing the sky, it is illuminated; when it is down, on the ground, it is not.  It’s very simple, but it gets closer to the mental model of on/off that we actually have, shortening the mental distance between understanding and interaction.  onoff.jpg

Lending a Hand

Filed under: Exercise 5: Mechanical Movement — mjlevy @ 11:15 pm

mrhand So this exercise was mechanically a failure, but I ended up learning a great deal, making it ostensibly successful (this covers mechanical movement and motorized mechanical movement).  The beauty of these automata is how with such simple mechanical movements, incredibly complex stories can be told.  Mechanically, what I built was very simple, but a brain looking at it makes incredible assessments and leaps in logic, applying an entire innate knowledge base about hands and how they work.  Such things aside, I learned a great deal from this project.  Firstly, movement is complicated.  That was a genuine lesson that I guess I had not quite internalized.  As an industrial designer, I’m used to making rather static objects.  The leap to the kinetic was a large one.  I had a great number of difficulties with different parts of the movement.  The cams were unsuccessful for several reasons, foremost their geometry.  There was far too great a change in radius in either direction in too short an amount of time.  Thusly, they were never fully incorporated.  Among the other major hurdles I ran into were material choice for the “tendons,” the amount of throw for each of the finger joints, and having far too lofty of goals (my first idea was a Michael Jackson moonwalker-bot).  Even though the project did not turn out the way I had originally hoped it would, people still responded very viscerally to the hand and were immediately drawn to it.   

November 1, 2007

Exercise 5 (Sorta): Failed Use of Veer™ Catalog

Filed under: Exercise 5: Mechanical Movement,Matt Thompson — Mattt @ 7:21 am

Just to get everything up on the class blog, here’s the documentation I shot of a failed attempt at Exercise 5. After hours of breaking balsa wood, cutting myself, and generally not getting anywhere, this is what I had.  (more…)

October 30, 2007

vector fan

Filed under: Exercise 6: Motorized Mechanical Movement,Marc Manzke — marcmanzke @ 11:44 pm

I built this “jet” from a couple 12 volt, 0.5 amp case fans that can move alot of air. I built a simple cardboard enclosure to regulate the outflow / thrust of the fans.


Filed under: Exercise 5: Mechanical Movement,Marc Manzke — marcmanzke @ 11:25 pm

I brazed together this robo-bug out of copper tubing and wire. It translates flex movement to rotational movement of its legs via braided bicycle cables. A pair of springs return the legs to their original position. The most interesting part of the build was brazing the tubes together with simple flux, solder, and a torch. I had to wrap more complicated joints with copper wire before brazing to hold things together and provide a stronger finished joint.


October 27, 2007

Exercise 6: Kipum Lee, “Spin It!”

Filed under: Exercise 6: Motorized Mechanical Movement,Kipum Lee — Kip @ 11:49 pm

I started from scratch for Exercise 6. I built custom gears out of aluminum rods, nails, and aluminum wires. Also, the structure for the “toy” was built from foamcore and thumbtaks. I first tried to use a 3V DC motor, but it spinned too fast and lacked power. With the new geared motor, it definitely has more power to get the job done.

Instead of using a diode, I used an LED instead because functions the same way as a diode (hence the term, light-emitting diode). This was realized after a trip up to the code lab and through Mark’s advice.

It was a challenge trying to put together the motor with the rotational gears. Since the rotating axis/plastic has a unique shape, I had to figure out a way to fit the shape into my rotating aluminum apparatus. This was quite a challenge and involved a combination of wood, plastic and nails to get the right part made.

As of right now, a photosensor at the top of the toy is the switch that turns on and off the motor. I learned to constantly reiterate the parts and taking the right measurement for the parts was key to getting a smoothly working toy.

Aluminum Small Gears Gear Attachment LED as diode Battery PoweredPhotosensor



Servo car


For the motorized portion of the assignment, I decided, heck with creativity, I just want to build a self-controlled car. I used a battery to power the arduino, a Parallax Ping Ultrasonic Range Finder, a servo (HS311), and a battery+motor little plastic car without steering that I had lying around. My final product was held together with:

  • Masking tape
  • 3M tabs
  • a bent wire hanger
  • cable ties
  • electrical tape
  • gravity

Good times. The wiring was straightforward – it turns out that neither the servo nor the range finder need external powering (I did the TIP120 thing with my cabinet project, though), and are run off the arduino output pins. After significant coding distress I looked for and obtained a servo library (I posted a link to it) to separate the servo timing from the range finder timing.

With this project I gained a new appreciation for stereo vision. With one stationary servo, the most I could do was wall-following for walls with gradual changes. The code keeps the car attempting to maintain a fixed distance from the wall.

// debug
int ledPin = 3;

// ultrasonic range finder
int signalPin = 4;                // sensor signal pin connected to wiring pin 0
int elapsedtime = 0;
int last_elapsedtime = 0;

// servo
int servoPin = 9;     // Control pin for servo motor
int minPulse = 800;   // Minimum servo position (microseconds)
int maxPulse = 1800;  // Maximum servo position (microseconds)
int angle = 90;        // Amount to pulse the servo
int last_angle = 90;
ServoTimer1 st;

void setup() {
  pinMode(ledPin, OUTPUT);

void loop() {
  elapsedtime = 0;
  pinMode(signalPin, OUTPUT);     // set signalPin as OUTPUT

  // Send 0-1-0 pulse to activate the sensor
  digitalWrite(signalPin, LOW);
  digitalWrite(signalPin, HIGH);
  digitalWrite(signalPin, LOW);  

  // Listen to pulse
  pinMode(signalPin, INPUT);      // set signalPin as INPUT
  elapsedtime = pulseIn(signalPin, HIGH);  // get the length of the pusle while it is HIGH

  // the goal here will be to keep it at a steady 800
  // map 400 to 2000     to     170 to 10
  int med = 2000;
  if (elapsedtime < med)
      if (elapsedtime  med)
      if (elapsedtime > 2 * med)
        angle = 20;
        angle = 60;
  if (elapsedtime == med)
      angle = 90;

  if (abs(angle - last_angle) > 1) {
    last_angle = angle;

  // debug led
  if (elapsedtime == med)
    digitalWrite(ledPin, HIGH);
    digitalWrite(ledPin, LOW);

  // print value through Serial
  Serial.print("angle ");
  Serial.print("    ");
  Serial.println(elapsedtime, DEC);

October 25, 2007

Project Proposals

Filed under: Assignments — mdgross @ 10:19 am

5 minute presentation in class Oct 30, posted on Blog by Nov 2:

• Text “abstract” (50-100 words) succinctly describes project
• Diagram(s) to illustrate plan or scheme to build project
• Text Scenario describes “action”
• Bill of materials (what “stuff” you will need to acquire)
• Bill of knowledge (what you will need to learn)

Next Page »

Create a free website or blog at