16
Responsive Analogue And Digital Prototyping Tutor:Flora Salim Zhou Shuying Elective Pamphlets

RADP elective

Embed Size (px)

DESCRIPTION

responsive analogue and digital prototyping

Citation preview

Page 1: RADP elective

ResponsiveAnalogueAndDigital Prototyping

Tutor:Flora SalimZhou Shuying

Elective Pamphlets

Page 2: RADP elective

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.

Page 3: RADP elective

1

Schedule

System

Send data from serial

Write data to servo

Page 4: RADP elective

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.

Page 5: RADP elective

3

Structure

Page 6: RADP elective

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

Page 7: RADP elective

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.

Page 8: RADP elective

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.

Page 9: RADP elective

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.

Page 10: RADP elective

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.

Page 11: RADP elective

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

Page 12: RADP elective

10

Page 13: RADP elective

11

Page 14: RADP elective

12

Page 15: RADP elective

With thanks to

tutorsreviewersclassmates

Page 16: RADP elective

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