Frederich Steenkamp
MSc 1&2 Architecture Portfolio
TU D elft M S c A r chite ctu r e 2 0 1 1 - 2 0 1 2
F or De e r ns R ij swij k, M ar tij n Timme r
Robofold Workshop, December 2011 Software: Grasshopper, Rhino
Hyperbody MSc 1 Project, Flexscape, January 2012 Software: Grasshopper, Rhino, Firefly
Robofold Workshop, December 2011
Media Studies Course, Hyper-Peloton, January 2011 Software: Processing, Arduino
Robofold Workshop, December 2011
// 2 x Ping Sensors const int pingPinL = 3; w int pingPinR = 5; const int ledPinL = 9; const int ledPinR = 10; const int distMIN = 6; const int distMAX = 30; int dist = distMAX-distMIN;
void setup() { // initialize Colour pins: Serial.begin(115200); pinMode (ledPinL, OUTPUT); pinMode (ledPinR, OUTPUT); } void loop() { // establish variables for duration of the ping, // and the distance result in inches and centimeters: long duration1, duration2, inches1, inches2; int fade1, fade2;
Distance Sensor 1
9V Power Supply
// The PING LEFT))) is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPinL, OUTPUT); digitalWrite(pingPinL, LOW); delayMicroseconds(2); digitalWrite(pingPinL, HIGH); delayMicroseconds(15); digitalWrite(pingPinL, LOW); delayMicroseconds(20); // The same pin is used to read the signal from the PING))): a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. pinMode(pingPinL, INPUT); duration1 = pulseIn(pingPinL, HIGH); inches1 = microsecondsToInches(duration1); // The PINGRIGHT))) is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPinR, OUTPUT); digitalWrite(pingPinR, LOW); delayMicroseconds(2); digitalWrite(pingPinR, HIGH); delayMicroseconds(15); digitalWrite(pingPinR, LOW); delayMicroseconds(20); // The same pin is used to read the signal from the PING))): a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. pinMode(pingPinR, INPUT); duration2 = pulseIn(pingPinR, HIGH); inches2 = microsecondsToInches(duration2); if (inches2<distMIN || inches1<distMIN) inches2 = distMIN; if (inches2>distMAX && inches1>distMAX) inches2 = distMAX; inches1=inches1-distMIN; fade1 = 255.0*inches1/dist; inches2=inches2-distMIN; fade2 = 255.0*inches2/dist; analogWrite(ledPinR,(fade1+fade2)/2); delay (50); } long microsecondsToInches(long microseconds) { // According to Parallax’s datasheet for the PING))), there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance travelled by the ping, outbound // and return, so we divide by 2 to get the distance of the obstacle. // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf return microseconds / 74 / 2; }
RGB LED
Distance Sensor 2
Arduino Board
VSHFL¿F GLVWDQFH
5
Scenario when nothing detected within the defined surroundings
Scenario when either side detected another object in a comfortable distance
Scenario when either side detected another object in a very close distance 6
MSc2 XXL Studio, De Nieuwe Kuip, April 2012 Software: Grasshopper, GSA, Ecotect, Rhino
Robofold Workshop, December 2011