ARCHITECTURE
WORK SAMPLES
ED WU
www.edwudesign.com
NASA | MARS SURFACE HABITAT Mars | Design 402 | Fall 2016 | Team of 5
COLUMBIA UNIVERSITY BOATHOUSE Bronx, New York | Design 302 | Spring 2016
PRATT INSTITUTE DORMITORY
Brooklyn, New York | Design 301 | Fall 2015 | Team of 2 D
C
13 14 15 12
UP
16
MAIL BOXES
17 11
UP
UP
10
UP
DN
UP
E 9 F
8
UP
UP
UP
7
B Extensive Green Roof
GALLERY
N
G
A 0’
1
2
3
4
4’
8’
Cove Light
16’
Glass Glazing Insulation
6
5
Perforated Panel Metal Stud Rainscreen Panel Operable Window
13
12
11
10
9
8
7
B
A
Glass Sliding Door
Rainscreen Support System
Metal Stud Rainscreen Support System Rainscreen Panel Vapor Barrier Insulation Cove Light Glass Glazing Operable Window
Rainscreen Support System Rainscreen Panel
Section A 0’
A
B
7
8
9
10
11
12
13
1’
2’
SILENT MEGAPHONE
Methods and Materials | Spring 2016
NEWSPAPER CHAIR
Methods and Materials | Spring 2016
BOTANIC URBANISM | LIGHT SPEED ARCHITECTURE Design 403 | Spring 2017
Interatction Sequence
Deployment Sequence 1 | Unpack
2 | Unroll
char data = 0; //Constant const int CH9 = 7; const int CH10 = 6; const int CH11 = 5; const int CH12 = 4; const int CH13 = 3; const int CH14 = 2; const int CH1 = 10;
//12vdc one way //12vdc one way //12vdc one way //12vdc one way //12vdc one way //12vdc two way //12vdc two way
const int CH4 = 8; const int CH5 = 9;
//110vac Blower //110vac Blower
digitalWrite(CH11, on); break; case 'N': digitalWrite(CH11, off); break; case 'm': digitalWrite(CH12, on); break; case 'M': digitalWrite(CH12, off); break; case 'o': digitalWrite(CH13, on); break; case 'O': digitalWrite(CH13, off); break; case 'p': digitalWrite(CH14, on); break; case 'P': digitalWrite(CH14, off); break; case 'q': digitalWrite(CH1, on); break; case 'Q': digitalWrite(CH1, off); break;
//sensor const int trigPin = 12; const int echoPin = 11; //the relay on and off is fliped #define on LOW #define off HIGH //set statement byte mainblower_state = on; byte insideblower_state = on; byte condi�on1_state = on;
COMPRESSOR
unsigned long currentMillis = 0; unsigned long newTime = 0; unsigned long currentTime = 0; unsigned long previousMillis_mainblower = 0; unsigned long previousMillis_insideblower = 0; unsigned long previousMillis_condi�on1 = 0; unsigned long previousMillis_condi�on2 = 0;
SENSOR ARRAY
// variables //outside blower long on�me1 = 300000; long o�ime1 = 600000; //inside blower long on�me2 = 600000; long o�ime2= 300000; //condi�on 1 long on�me3 = 5000; long o�ime3 = 5000; //cond�on 2 long on�me4 = 3000; long o�ime4 = 3000;
BOTTLE
ARDUINO
BOTTLE
RELAY
boolean mainB = false; boolean insideB = false; boolean con1 = false; boolean con2 = false; boolean con3 = false; boolean con4 = false; boolean con5 = false; boolean sen = false; boolean sen2 = false; void setup() { pinMode(CH9, OUTPUT); pinMode(CH10, OUTPUT); pinMode(CH11, OUTPUT); pinMode(CH12, OUTPUT); pinMode(CH13, OUTPUT); pinMode(CH14, OUTPUT); pinMode(CH1, OUTPUT); pinMode(CH4, OUTPUT); pinMode(CH5, OUTPUT);
3 | Inflate
digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off);
S
4 | Attach Specimen and Frame
BOTTLE
AIR MUSCLE
digitalWrite(CH4, off); digitalWrite(CH5, off); delay (1000);
S BOTTLE
AIR MUSCLE
if (mainB == true) { Mainblower(); } if(insideB == true) { Insideblower(); }
AIR MUSCLE S
BOTTLE
AIR MUSCLE S
BOTTLE
AIR MUSCLE S AIR MUSCLE }
if(con1 == true) { Condi�on1(); } if(con2 == true) { Condi�on2(); } if(con3 == true) { Condi�on3(); } if(con4 == true) { Condi�on4(); } if(con5 == true) { condi�on5(); } if(sen == true) { Sensor(); } if(sen2 == true) { Sensor2(); }
void BTdata() {
S AIR MUSCLE
if(Serial.available() > 0) { data = Serial.read(); Serial.print(data); Serial.print("\n"); switch (data) { case 'a':// Mainblower cycle on mainB = true; break; case 'A':// Mainblower cycle off mainB = false; digitalWrite(CH4, off); break; case 'b'://Mainblower cycle off, on forever mainB = false; digitalWrite(CH4, on); break; case 'B':// Mainblower cycle off, off forever digitalWrite(CH4, off); break; case 'c': //insideblower cycle on insideB = true; break; case 'C': //insideblower cycle off insideB = false; digitalWrite(CH5, off); break; case 'd': //insideblower cycle off, on forever insideB = false; digitalWrite(CH5, on); break; case 'D'://insideblower cycle off, off forever digitalWrite(CH5, off); break; case 'e'://run condi�on1 con1 = true; break; case 'E'://stop condi�on1 con1 = false; digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off); break; case 'f': //run condi�on2 con2 = true; break;
6 | Interact
case 'g': // all on AllOn(); break; case 'G': // all off AllOff(); break; case 'h': //senor with condi�on 2 run sen = true; break; case 'H': //senor with condi�on 2 stop sen = false; break; case 'i': //run cond�on 3 con3 = true; break;
ch8
ch7
ch6
ch5
ch4
ch3
ch2
ch1
5 | Link Rope to Pneumatic Muscles
Serial.begin(9600);
void loop() { currentMillis = millis(); BTdata(); // Bluetooth Data
S BOTTLE
pinMode(trigPin,OUTPUT); pinMode(echoPin, INPUT); }
ch9
ch10
ch11
ch12
ch13
ch14
ch15
ch16
case 'j': //senor with condi�on 3 run sen2 = true; break; case 'J': //senor with condi�on 3 stop sen2 = false; break; //individual case 'k': digitalWrite(CH9, on); break; case 'K': digitalWrite(CH9, off); break; case 'l': digitalWrite(CH10, on); break; case 'L': digitalWrite(CH10, off); break; case 'n':
case 'r': // condi�on 4 run con4 = true; break; case 's': //condi�on 5 run con5 = true; break; default: break;
}
}
}
void Mainblower() { if((mainblower_state == on) && (currentMillis previousMillis_mainblower >= on�me1)) { mainblower_state = off; previousMillis_mainblower = currentMillis; digitalWrite(CH4, mainblower_state); } else if ((mainblower_state == off) && (currentMillis - previousMillis_mainblower >= o�ime1)) { mainblower_state = on; // turn it on previousMillis_mainblower = currentMillis; digitalWrite(CH4, mainblower_state ); } } void Insideblower() { if((insideblower_state == on) && (currentMillis previousMillis_insideblower >= on�me2)) { insideblower_state = off; previousMillis_insideblower = currentMillis; digitalWrite(CH5, insideblower_state); } else if ((insideblower_state == off) && (currentMillis - previousMillis_insideblower >= o�ime2)) { insideblower_state = on; // turn it on previousMillis_insideblower = currentMillis; digitalWrite(CH5, insideblower_state ); } } void Condi�on1() { if((condi�on1_state == on) && (currentMillis previousMillis_condi�on1 >= on�me3)) { condi�on1_state = off; previousMillis_condi�on1 = currentMillis; digitalWrite(CH9, condi�on1_state); digitalWrite(CH10, condi�on1_state); digitalWrite(CH11, condi�on1_state); digitalWrite(CH12, condi�on1_state); digitalWrite(CH13, condi�on1_state); digitalWrite(CH14, condi�on1_state); digitalWrite(CH1, condi�on1_state); } else if ((condi�on1_state == off) && (currentMillis - previousMillis_condi�on1 >= o�ime3)) { condi�on1_state = on; // turn it on previousMillis_condi�on1 = currentMillis; digitalWrite(CH9, condi�on1_state); digitalWrite(CH10, condi�on1_state); digitalWrite(CH11, condi�on1_state); digitalWrite(CH12, condi�on1_state); digitalWrite(CH13, condi�on1_state); digitalWrite(CH14, condi�on1_state); digitalWrite(CH1, condi�on1_state); } } void my_�me(long interval) //millis �me delay { currentTime= millis(); newTime = millis(); while((newTime - currentTime) < interval) { newTime = millis(); if(Serial.available() > 0) {data = Serial.read(); Serial.print(data); Serial.print("\n"); return false; } } return true; } void Condi�on2() { digitalWrite(CH9, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); digitalWrite(CH1, on); my_�me(5000); //on for 5 sec digitalWrite(CH1, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); digitalWrite(CH13, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); digitalWrite(CH13, off); digitalWrite(CH12, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); digitalWrite(CH13, off); digitalWrite(CH12, off); digitalWrite(CH11, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); digitalWrite(CH13, off); digitalWrite(CH12, off); digitalWrite(CH11, off); digitalWrite(CH10, off); my_�me(500); digitalWrite(CH1, off); digitalWrite(CH14, off); digitalWrite(CH13, off); digitalWrite(CH12, off); digitalWrite(CH11, off); digitalWrite(CH10, off); digitalWrite(CH9, off); con2 = false; } void Condi�on3() { for(int i=0; i < 2 ; i++) { digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); digitalWrite(CH1, on); my_�me(2000); digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off); my_�me(2000); } con3 = false; } void Condi�on4() { for(int i=0; i < 2 ; i++) { digitalWrite(CH12, on); my_�me(500);
}
digitalWrite(CH13,on); digitalWrite(CH11, on); my_�me(500); digitalWrite(CH14, on); digitalWrite(CH10, on); my_�me(500); digitalWrite(CH1,on); digitalWrite(CH9,on); my_�me(1000); digitalWrite(CH9, off); digitalWrite(CH1, off); my_�me(500); digitalWrite(CH10, off); digitalWrite(CH14, off); digitalWrite(CH9, on); digitalWrite(CH1, on); my_�me(500); digitalWrite(CH11,off); digitalWrite(CH13, off); digitalWrite(CH10, on); digitalWrite(CH14, on); digitalWrite(CH9, off); digitalWrite(CH1, off); my_�me(500); digitalWrite(CH12, off); digitalWrite(CH10, off); digitalWrite(CH14, off); my_�me(500); } con4 = false;
void condi�on5() { digitalWrite(CH10, on); digitalWrite(CH11, on); my_�me(500); digitalWrite(CH13, on); digitalWrite(CH14, on); my_�me(500); digitalWrite(CH11, off); digitalWrite(CH14, off); my_�me(500); digitalWrite(CH11, on); digitalWrite(CH14, on); digitalWrite(CH13, off); digitalWrite(CH10, off); my_�me(500); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, on); digitalWrite(CH9, on); digitalWrite(CH1,on); my_�me(500); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); digitalWrite(CH1, on); my_�me(2000); digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off); my_�me(2000); digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); digitalWrite(CH1, on); my_�me(2000); digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off); my_�me(1000); con5 = false; } void AllOn() { digitalWrite(CH9, on); digitalWrite(CH10, on); digitalWrite(CH11, on); digitalWrite(CH12, on); digitalWrite(CH13, on); digitalWrite(CH14, on); digitalWrite(CH1, on); } void AllOff() { digitalWrite(CH9, off); digitalWrite(CH10, off); digitalWrite(CH11, off); digitalWrite(CH12, off); digitalWrite(CH13, off); digitalWrite(CH14, off); digitalWrite(CH1, off); } void Sensor() { int dura�on, distance; digitalWrite(trigPin, HIGH); delayMicroseconds(50); digitalWrite(trigPin, LOW); dura�on = pulseIn(echoPin, HIGH); //measure the �me using pulsein when the echo receives a signal set it to high distance = (dura�on/2)/29.1; if(distance< 13) { Condi�on2(); }
}
Serial.print(distance); Serial.println("CM"); delay(500);
void Sensor2() { int dura�on, distance; digitalWrite(trigPin, HIGH); delayMicroseconds(50); digitalWrite(trigPin, LOW); dura�on = pulseIn(echoPin, HIGH); //measure the �me using pulsein when the echo receives a signal set it to high distance = (dura�on/2)/29.1; if(distance< 13) { Condi�on4(); }
}
Serial.print(distance); Serial.println("CM"); delay(500);