To create a responsive origami tessellation to alter the tempo of natural light in an environment, thereby affording a slower walking pace for the occupants of that space. The presence of a person below the structure triggers a slow movement, so if someone is in a rush, then they will miss what is happening right above their heads. This structure prompts people to take the time to slow down, look up, and observe what is going on around them.

0

Objective

Our goal with this project was to create an environment that responds to the needs of those within it. We wanted to create a foldable structure that shrinks to let light in from the ceiling based on the presence of someone below it. A glass ceiling would be a tessellated grid of these foldable units, and their movement would be triggered by the presence of a person below them. They don’t expand too fast, so if someone is in a rush, then they will miss what is happening right above their heads. We hope that this structure prompts people to take the time to slow down, look up, and observe what is going on around them. For our project we created one unit of the ideal system of many. Unfortunately it was out the scope of this class for us to make it to scale, but our prototype is sufficient enough to demonstrate what we envisioned for its appearance and motion.


Execution

Our final implementation was a 12” x 12” implementation of the square twist that expanded up to 18” x 18” and was actuated by two gearhead motors in response to presence as detected by an infrared proximity detector. Alone and on the table, our single unit does not do much to provide the experience we had in mind, but it does express a great understanding of the mechanism and how it might play out in a larger scale. It moves at almost the correct pace, only limited by the maximum speed of the gearhead motors. The shapes and patterns of the origami and its changing shadows play into the overarching feeling of wonder we hope to instill in those who pass under it. The proximity detector includes the people under it in the form of the space they occupy, as their presence is reflected in the motion of these ceiling tiles.


Reflection

While, in the end, the mechanism and code were able to work together, the infrared sensor was very unreliable, and would work only once in every few tries. In terms of the product, the single unit was successful in expressing the function single unit, but not in expressing the wavelike behavior we would expect of many units together.

0
R.O.S.E
Natalie Harmon - https://vimeo.com/148699236
0
/*
 * DRV8833_Test_PWM
 * PWM (Pulse Width Modulation) test for the DRV8833 library.
 * The DRV8833 is a dual motor driver carrier made by Pololu.
 * You can find it here: https://www.pololu.com/product/2130
 *
 * Attach the positive wire of a motor to the Aout1 and the negative
 * wire to the Aout2 pins on the DRV8833.
 * Attach the positive wire of a motor to the Bout1 and the negative
 * wire to the Bout2 pins on the DRV8833.
 * Attach the Arduino's ground to the one of the GND pins on the DRV8833.
 * Attach a 9V battery's positive connection to the Vin pin
 * on the DRV8833, and the negative connection to one of the GND pins.
 * 
 * Created March 31, 2015, by Aleksandr J. Spackman.
 */

#include <DRV8833.h>

// Create an instance of the DRV8833:
DRV8833 driver = DRV8833();

// Pin numbers. Replace with your own!
// For this example sketch, these pin numbers MUST be PWM.
// Attach the Arduino's pin numbers below to the
// Ain1, Ain2, Bin1, and Bin2 DRV8833 pins.
const int inputA1 = 5, inputA2 = 6, inputB1 = 9, inputB2 = 10;

// The speed of the motors:
const int motorSpeed = 127; // Half speed (255 / 2).

const int buttonPinA = 8;     // the number of the pushbutton pin
const int buttonPinB = 12;     // the number of the pushbutton pin
int buttonStateA = 0;         // variable for reading the pushbutton status
int buttonStateB = 0;         // variable for reading the pushbutton status

int ir = 0; //analog pin 0
int averageir = 0; //average ir value

void setup() {
  // put your setup code here, to run once:
  
  // Start the serial port:
  Serial.begin(9600);
  
  // Wait for the serial port to connect. Needed for Leonardo.
  while (!Serial);
  
  // Attach the motors to the input pins:
  driver.attachMotorA(inputA1, inputA2);
  driver.attachMotorB(inputB1, inputB2);
  Serial.println("Ready!");

   pinMode(buttonPinA, INPUT_PULLUP);
   pinMode(buttonPinB, INPUT_PULLUP);

}

void loop() {
  // put your main code here, to run repeatedly:
  //buttonState = digitalRead(buttonPin);
  
Serial.print(" ir=");
Serial.print(analogRead(ir));
Serial.print(" A=");
Serial.print(digitalRead(buttonPinA));
Serial.print(" B=");
Serial.println(digitalRead(buttonPinB));
  if(analogRead(ir) > 20){    // if someone gets close
    
    // Put the motors in forward using the speed:
    driver.motorAForward(motorSpeed);
    driver.motorBReverse(motorSpeed);
    Serial.println("Forward:");
    
    // Wait to see the effect:
    delay(3000);
    driver.motorAStop();
    driver.motorBStop(); //stop when you get all the way out
    delay(100);          // pause for a moment
    driver.motorAReverse(motorSpeed * 3 / 4);
    driver.motorBForward(motorSpeed * 3 / 4);
    
    //
    bool aispressed = 0, bispressed = 0;
    
    while(!aispressed || !bispressed){ //
      Serial.print(" ir=");
      Serial.print(analogRead(ir));
      Serial.print(" A=");
      Serial.print(digitalRead(buttonPinA));
      Serial.print(" B=");
      Serial.println(digitalRead(buttonPinB));
      if(!digitalRead(buttonPinA)){
        driver.motorAStop();
        aispressed = 1;
        Serial.print("ButtonA Pressed");
      }
      if(!digitalRead(buttonPinB)){
        driver.motorBStop();
        bispressed = 0;
        Serial.print("ButtonB Pressed");
      }
    }
  }
}
Click to Expand
x
Share this Project

Courses

16-223 Introduction to Physical Computing

· 1 member

Physical computing refers to the design and construction of physical systems that use a mix of software and hardware to sense and respond to the surrounding world. Such systems blend digital and ph...more


Focused on
Skills
Tools
About

To create a responsive origami tessellation to alter the tempo of natural light in an environment, thereby affording a slower walking pace for the occupants of that space. The presence of a person below the structure triggers a slow movement, so if someone is in a rush, then they will miss what is happening right above their heads. This structure prompts people to take the time to slow down, look up, and observe what is going on around them.