FACETED MOTION DOCUMENTATION

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

TABLE OF CONTENTS OVERVIEW 1 GEOMETRY AIM 2 FORM 3,4 COMPONENTS 5,6 GLOBAL FORM 7,8 GEOMETRIC RELATIONSHIP 9 GEOMETRY 10 GLOBAL FORM 11-13 MATERIAL CONCEPT 14,15 MOCK-UP 16 LED’s 17 FUTURE DEVELOPMENT ARDUINO 18,19 PLANS 20,21

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FACETED MOTION //CONCEPT

Faceted motion was created through a generative process using Grasshopper and Rhino. The project utilizes basic geometric relationships coupled with mathematic equations in order to generate the form of the individual modules as well as to be able to predict the shape of the global aggregation. It was then possible to take these mathematical predictions and apply them to the arduino portion of the project. Arduino is used within the project to calculate the average ambient sound, control the RBG LEDs lighting the project, and finally, control the movement of the wall. The project started by aggregating tetrahedrons to create a surface. It was then soon discovered that by manipulating the front hypotenuse of each panel, it was possible to induce curvature in the global aggregation. This change in hypotenuse was originally done physically by switching out panels in order to effectively change the geometry of each module. However, this presented a challenge because the wall was made up of multiple panels, and thus the global change would happen gradually as the panels were switched out. The desire for the change to happen more suddenly and simultaneously coupled with the goal of having the wall react to sound drove the project to incorporate the Arduino microprocessor. This allows the wall to move and light up simultaneously.

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

1

GEOMETRY //AIM

One of the main goals of the module is to be rigid in order to resist a vertical load. The other goal to create a curved form out of rigid modules that can be defined by a series of parameters

RIGID MODULE 1.1

PREDICTABLE GLOBAL FORM 1.2

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

2

GEOMETRY //FORM

Equilateral Triangle

Elongated to create an isosceles triangle

Symmetrical triangular form to allow for aggregation on either side of module

Removed a face because the only one is needed to define the angle of the top face

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

Two of the isosceles triangles were joined together in order to create a component that would be able to define a curve as seen in Angles 7.1, 7.2

FIGURE 2.1

3

GEOMETRY //FORM

The basic form is two tetrahedrons with a shared base. (Figure 3.1) The angles and side lengths of this module is controlled by 5 control points (figure 3.3) The tetrahedron was further simplified to two fixed sides, (represented in the red), connected by adjustable edges, (represented in the grey) (figure 3.4) This allows the aggregation to be controlled by a single parameter.

FIGURE 3.1

FIGURE 3.2

FIGURE 3.3

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 3.4

4

GEOMETRY

//COMPONENTS

The adjustable edge length controls the angle of the vertical panel. (Figure 4.1)

FIXED LENGTH

FIXED LENGTH FIGURE 4.1

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

5

GEOMETRY

//COMPONENTS

The adjustable edge is shown at different lengths, and the resulting angle of the vertical side. (Figure 5.1 - 6) C

C

FIGURE 5.1

C

FIGURE 5.4

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 5.2

FIGURE 5.3

C

FIGURE 5.5

C

FIGURE 5.6

6

GEOMETRY

//GLOBAL FORM

Sum of interior angles = (n-2)180 Each interior angle = ((n-2)180)/n Each exterior angle = (180-((n-2)180)/n)/2

The angle at which the two flaps of the trapezoid are bent out at determine the radius of the “global” cylinder form. (Figure 6.1) These angles are then used to determine relationships between the components as seen in Figure 7.1

FIGURE 6.1

Number of Sides 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

FIGURE 6.2

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

Fold Angles (°) 45 36 30 25.7 22.5 20 18 16.4 15 13.8 12.9 12 11.25 10.6 10 9.5 9 TABLE 6.3

7

GEOMETRY

//GLOBAL FORM

The length of “C” determines the angle that the vertical side is leaning. The angle that the vertical side is leaning at in turn defines the angle between the vertical panels. C

Finally, this angle informs the curvature of the global form. LEAN

ANGLE

FIGURE 7.1

OUT

C

C

FIGURE 7.2

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

LEAN

TABLE 7.3

8

GEOMETRY

//GEOMETRIC RELATIONSHIP

The aggregation can continue vertically indefinitely because the end of each tier remains parallel to the ground plane. Global Aggregation (Figure 8.1) Stages (Figure 8.2 - 8.4)

FIGURE 8.1

FIGURE 8.2

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 8.3

FIGURE 8.4

9

GEOMETRY //GEOMETRY

Given A=3.5”, B=2”, J=2.5”, ANGLE Find C Cylinder Calculations

A

J B

B

RADIUS R =((J/2)/sin(ANGLE)) LEAN = R-Rcos(ANGLE) = R(1-cos(ANGLE) = ((J/2)/(sin(ANGLE))(1-cos(ANGLE) OUT =SQRT(B2-(J/2)2) - LEAN =SQRT(B2-(J/2)2) - ((J/2)/(sin(ANGLE))(1-cos(ANGLE) Inverted Triangle Calculations TRUE HEIGHT =SQRT(A2-(J/2)2) FLOOR HEIGHT =SQRT(TRUE HEIGHT2 - LEAN2) =SQRT(A2-(J/2)2-((J/2)/(sin(ANGLE))(1-cos(ANGLE)2

C

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

C

=SQRT(OUT2 + FLOOR HEIGHT2)

C

=A2 + B2 - 2(J/2)2 - 2SQRT(B2 -(J/2)2)(((J/2)/sin(ANGLE))(1-cos(ANGLE))

10

GEOMETRY

//GLOBAL FORM

By increasing the length of side “C”, it is possible to morph the global form from cylindrical to fully open.

FIGURE 9.1

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 9.2

11

GEOMETRY

//GLOBAL FORM

The manner in which the module aggregates, creates continous “hinge” lines. This forces the aggregation to grow in a triangular form where the base is larger than the top.

FIGURE 10.1

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 10.2

12

GEOMETRY

//GLOBAL FORM

By using multiple global aggregations it would be possible to possible to construct a wall comprised of preinformed clusters that could react to various stimuli such as light or motion. These inputs can then be interpreted and used to adjust the length of “C” thus morphing the wall from a solid wall to one that has openings. Open (Figure 10.1) Closed (Figure 10.2)

FIGURE 11.1

FIGURE 11.2

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

13

MATERIAL //CONCEPT

The wall is constructed out of a lightweight frosted plastic cardboard material that allows the structure to be aggregated without weighing very much. There is a network of wires on the back of each panel to provide inputs to the 15 RGB LEDâ&#x20AC;&#x2122;s that are located on the back of each panel. The materials come together to create a wall that allows natural light to penetrate. In addition, the materials highlight the mechanical system that makes the structure move while the structural panels take secondary prominence.

Top Mount

Top Mount

PVC Pipe

PVC Pipe

Plastic Cardboard

5mm Coupler 5v Motor Bottom Mount

5mm Coupler 5v Motor Bottom Mount FIGURE 12.1

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

FIGURE 12.2

14

MATERIAL //CONCEPT

This shows the threaded rod assembly as well as the connection between the threaded rod and the motor. In addition, the completed LED panel is shown in the bottom image.

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

15

MATERIAL //MOCK-UP

This was the first iteration of the module. This version most closely resembles the basic shape of the module which is a tetrahedron. This model is basically a tetrahedron minus one of the front faces. The other remaining front face is removable as shown by the two bolts. The face can be removed and replaced with another that has a different geometry. It was constructed out of thin plywood.

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

16

MATERIAL //LED’s

This is the process of soldering the network of LEDs together. The Arduino Pro Mini is the micro processor that will be driving the LED’s.

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

17

FUTURE DEVELOPMENT //ARDUINO

This is the script that was developed to control the wall with the arduino micro processor.

//LIBRARIES #include “Statistic.h” #include <AFMotor.h> #include <SoftwareSerial.h> #include <Wire.h> #include <AccelStepper.h> #include <AFMotor.h> Statistic myStats; int sound; int averagesound; int oldaveragesound; int stepnumber; int oldstepnumber; int newsteps; //PORTS AF_Stepper motor1(513, 1); AF_Stepper motor2(513, 2); //SINGLE STEPS void forwardstep1() { motor1.onestep(FORWARD, SINGLE); } void backwardstep1() { motor1.onestep(BACKWARD, SINGLE); } void forwardstep2() { motor2.onestep(FORWARD, SINGLE); } void backwardstep2() { motor2.onestep(BACKWARD, SINGLE); } //MOTOR SHIELD AccelStepper stepper1(forwardstep1, backwardstep1); AccelStepper stepper2(forwardstep2, backwardstep2);

{ }

Serial.begin(9600);

void loop() { long sound = analogRead(A15); myStats.add(sound*100.0); Serial.print(“ Count: “); Serial.print(myStats.count()); Serial.print(“ Average: “); Serial.print(myStats.average(), 4); Serial.println(); //AVERAGE SOUND CALCULATION if (myStats.count() == 20) { long averagesound = (myStats.average()); myStats.clear(); Serial.println(); Serial.print(averagesound); stepper1.setMaxSpeed(500.0); stepper1.setAcceleration(100.0); stepper1.moveTo(averagesound*1000); stepper2.setMaxSpeed(500.0); stepper2.setAcceleration(100.0); stepper2.moveTo(averagesound*1000); stepper1.run(); stepper2.run(); } }

delay(5000);

void setup() ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

18

FUTURE DEVELOPMENT //ARDUINO

This is the script that was developed to control the LED’s independant of the wall’s movement.

//LIBRARIES #include “Statistic.h” #include <SoftwareSerial.h> #include <Wire.h> //PINOUTS #define BLUE 6 #define GREEN 5 #define RED 3 //INTEGERS int sound; int averagesound; int oldaveragesound; int threshold1 = 1280; int threshold2 = 1300; int threshold3 = 1320; int threshold4 = 1340; Statistic myStats; //SETUP void setup(void) { Serial.begin(9600); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT); pinMode(RED, OUTPUT); digitalWrite(GREEN, HIGH); digitalWrite(BLUE, HIGH); digitalWrite(RED, HIGH); }

delay(1000);

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

Serial.print(“ Count: “); Serial.print(myStats.count()); Serial.print(“ Average: “); Serial.print(myStats.average(), 4); Serial.println(); //AVERAGE SOUND CALCULATION if (myStats.count() == 20) { long averagesound = (myStats.average()); myStats.clear(); Serial.println(); Serial.print(averagesound);

} else if(averagesound>threshold4) //RED { analogWrite(RED, 255); analogWrite(GREEN, 0); analogWrite(BLUE, 0); } else{}

} }

delay(3000);

//LIGHT PANEL if(averagesound<threshold1) //GREEN { analogWrite(RED, 0); analogWrite(GREEN, 255); analogWrite(BLUE, 0); } else if(averagesound>threshold1, averagesound<threshold2) //AQUA { analogWrite(RED, 0); analogWrite(GREEN, 255); analogWrite(BLUE, 255); } else if(averagesound>threshold2, averagesound<threshold3) //BLUE { analogWrite(RED, 0); analogWrite(GREEN, 0); analogWrite(BLUE, 255); } else if(averagesound>threshold3, averagesound<threshold4) //PURPLE { analogWrite(RED, 255); analogWrite(GREEN, 0); analogWrite(BLUE, 255);

19

FUTURE DEVELOPMENT //PLANS

After the aggregation was put together, it was possible to manipulate it manually. However, in the future we hope to get all the motors and LEDâ&#x20AC;&#x2122;s connected and run the wall exclusively with the arduino microprocessors.

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

20

ALEXANDER YU - DANE TEEGARDIN | SPRING 2014 PROFESSOR: MARY POLITES

21

Faceted Motion

Alex Yu Dane Teegardin