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
ADJUSTABLE 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’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
Nut Threaded Rod
Nut Threaded Rod
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);
//LOOP void loop(void) { long sound = analogRead(A0); myStats.add(sound*100);
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