Upload
zhou-shuying
View
245
Download
2
Embed Size (px)
DESCRIPTION
responsive analogue and digital prototyping
Citation preview
ResponsiveAnalogueAndDigital Prototyping
Tutor:Flora SalimZhou Shuying
Elective Pamphlets
RAD-P: Responsive Analogue and Digital Prototyping
Information is ubiquitous. There is an unprecedented volume of information in
our physical and socially networked world that can be used to inform our design
problems and the way we design. What happens if we get our digital models to
respond to our physical environment? What are the possibilities for design if we
are able to get our analogue models to converse with our digital models? How do
we design an architectural model that responds to, interacts with, and adapts to
the ambient environment, physical stimuli, or online social networks?
These questions are the subject of experiments in projects which explore the
potential of new types of physical and sensor-driven input to create responsive
analogue and digital design models.
1
Schedule
System
Send data from serial
Write data to servo
2
There is an unprecedented volume of information in our physical and socially networked world that can be used to inform our way of design.
3
Structure
4
Inspiration
Aplication Research
Abstract shapes are created in the areas where the leaves overlap and light and shadow blend to create changes in translucency and shape.
Sulpture|Ceiling|Window|Wall|Floor|Shelter
5
roate vertically along axis
Four semitransparent plates form a unit. Inside a unit each plate can rotate around the axis clockwise/anti-clockwise within the angle 0~90 degree.
6
roate horizontally around center
Subtractive primaries are those obtained by the subtraction of light: cyan, magenta and yellow. They combine to form black.We can change the hue, saturation and brightness to get more possibilities.
7
Digital Model
The range 0-1023 of the slinder shows the light value range in the environment. The slinder which controls the rotation of digital model can be replaced by changing data read (0-1023)from the analogue pin.
8
#include <Servo.h> //attach Servo library *disables PWM on pins 9 and 10#define BAUDRATE 9600 //Set the Baud Rate to an appropriate speed, 9600 is recommended#define BUFFSIZE 128 // buffer one command at a time, 12 bytes is longer than the max lengthchar buffer[BUFFSIZE]; // this is the double bufferuint8_t bufferidx = 0; // a type of unsigned integer of length 8,16, or 32 bitsuint16_t DPin13, DPin12, PWM11, PWM10, PWM9, DPin8, PWM6, PWM5, PWM3; //control Servos and Digital Outs int readCounter = 0;/*============================================================================== * GLOBAL VARIABLES *============================================================================*/char *parseptr;char buffidx;int APin0 = 0; //declare all Analog In pinsint APin1 = 0;int APin2 = 0;int APin3 = 0;int APin4 = 0;int APin5 = 0;int DPin2 = 0; //declare all Digital In pinsint DPin4 = 0;int DPin7 = 0;Servo Servo1; // declare all Servo (PWM)Servo Servo2;Servo Servo3;int writecounter = 0; //declare the write counter
int lowVal=500;int highVal=700;int currVal = 0;int mapX;int tempt;
/*============================================================================== * SETUP() This code runs once *============================================================================*/void setup(){ pinMode(2, INPUT); // sets Digital In pin mode to INPUT (for on/off buttons) pinMode(4, INPUT); // sets Digital In pin mode to INPUT (for on/off buttons) pinMode(7, INPUT); // sets Digital In pin mode to INPUT (for on/off buttons) pinMode(9, OUTPUT); pinMode(8, OUTPUT); // sets the pin for digital output (for on/off LEDS) pinMode(12, OUTPUT); // sets the pin digital output (for on/off LEDS) pinMode(13, OUTPUT); // sets the pin digital output (for on/off LEDS) Serial.begin(BAUDRATE); // Start serial communication //blink LED when start calibrating digitalWrite(9, HIGH); delay(100); digitalWrite(9, LOW); delay(100); //calibrating light sensor - while calibrating cover and open the light sensor a few times for (int i = 0; i <200; i++) { digitalWrite(9, HIGH); int lightlevel = analogRead(0); Serial.println(lightlevel); if (lightlevel < lowVal) { lowVal = lightlevel; } if (lightlevel > highVal) { highVal = lightlevel; } delay(30); digitalWrite(9, LOW); } digitalWrite(9, HIGH); delay(50); lowVal = lowVal - 50; highVal = highVal + 50; Serial.print(“low level threshold: “); Serial.println(lowVal); Serial.print(“high level threshold: “); Serial.println(highVal); Servo1.attach(6);//attaching servo to pin 6}/*============================================================================== * LOOP() This code loops *============================================================================*/void loop(){ //serialread(); // Call the Serial Write function //if (writecounter == 1500){ // Wait every 1500th loop to then call the Serial Write function //writecounter = 0; serialwrite(); //} // writecounter = writecounter +1; }
/*============================================================================== * WRITE FUNCTION() *============================================================================*/void serialwrite(){ // READ SENSORS + BUTTONS FROM ARDUINO APin0 = analogRead(0); // Read analog input pin
APin0= constrain(APin0, lowVal,highVal); mapX = map(APin0,lowVal,highVal,1,90); if (mapX > currVal) { if ((mapX - currVal) > 5) { currVal = mapX; } } else if (mapX < currVal) { if ((currVal - mapX) > 5) { currVal = mapX; } } else { currVal = mapX; } Servo1.write(currVal);
int ledPin=9;
if (currVal > 45) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
Serial.print(currVal); Serial.print(“,”); // Send the value and a comma
Serial.print(APin1); Serial.print(“,”); // Send the value and a comma Serial.print(APin2); Serial.print(“,”); // Send the value and a comma Serial.print(APin3); Serial.print(“,”); // Send the value and a comma Serial.print(APin4); Serial.print(“,”); // Send the value and a comma Serial.print(APin5); Serial.print(“,”); // Send the value and a comma Serial.print(DPin2); Serial.print(“,”); // Send the value and a comma Serial.print(DPin4); Serial.print(“,”); // Send the value and a comma Serial.print(DPin7); Serial.print(“,”); // Send the value and a comma Serial.println(“eol”);}///*==============================================================================// * READ FUNCTION()// *============================================================================*/
uint32_t parsedecimal(char *str){ uint32_t d = 0; while (str[0] != 0) { if ((str[0] > ‘50’) || (str[0] < ‘0’)) return d; d *= 10; d += str[0] - ‘0’; str++; } return d;}
Hardware
The light sensor of Arduino measures the external environmental conditions. Arduino exists in both digital and physical world. It passes this information to digital model and physical model and put them into effect.
9
Prototyping Model
Inspiration :Abstract shapes are created in the areas where the leaves overlap
and light and shadow blend to create changes in translucency and shape.
Prototyping Model
10
11
12
With thanks to
tutorsreviewersclassmates
Title: Responsive Analogue and Digital PrototypingTutor: Flora Salim, Jane Burry, Daniel DavisPole: Expanded FieldDate: Semester 2, 2010
This and other documented examples of elective subjects run as part of the RMIT University Architecture program can be found on issuu.com
Elective Pamphlets