Friday, December 16, 2011

509_Smartsurface_Great Presentation!!

Final Presentation is here, click to see


Model















Wire circuit_make it yourself

















The left one is the digital thermometer, and the right one is the relay part to control the heater. Left part talk to right part through xbee. PIR sensor, temperature sensor, rotary encoder, LCD, learning code have all been integrated into the left unit. Works successfully!Great!

During the last three weeks, we upgrade our model three times from regular LEDs to RGB LEDs then finally to LCD. We get everything works well just right before 12:00, the presentation day~ Great Jobs!

Love to work with Ted & Alex. Every sleepless night is happy and fruitful because of all you guys! So so so much love to you guys. So so so much love to SmartSurface Studio. On the way to be a hi-tech girl~

Tuesday, December 6, 2011

508_Smartsurface_Scale it up?!

I prefer to use small RGB leds but because of the budgets and delivery time limitation, our group compromised to use "giant" RGB leds (they are free).
 
Base















Top piece (suppose it is a piece of wall)















Widgets (to have better light effect)















Detail















Light effect







Monday, December 5, 2011

507_3_Smartsurface_Video show

~O(∩_∩)O~

507_2_Smartsurface_Gradient

For the interface design, I use potentiometer (convenient to integrated with relay part) to control LEDs in order to show the gradient. Potentiometer converts voltage (0-5V) to a digital number between 0-1024. Therefor, if we want to control a serial of LEDs to turn on and remain turn on, we should assign each of them to specific number range.So if one condition (certain number range input from potentiometer) reached, the led will be turn on untill the condition disappear (poterntiometer move away from one range). 

Below is the code I wrote:

int sensorPin = 0;    
int ledPin1 = 1;     
int ledPin2 = 2;
int ledPin3 = 3;     
int ledPin4 = 4;
int ledPin5 = 5;     
int ledPin6 = 6;
int ledPin7 = 7;
int ledPin8 = 8;     
int ledPin9 = 9;     
int ledPin10 = 10;
int ledPin11 = 11;     
int ledPin12 = 12;
int sensorValue = 0;

void setup() {
   pinMode(ledPin1, OUTPUT);  
   pinMode(ledPin2, OUTPUT);  
   pinMode(ledPin3, OUTPUT); 
   pinMode(ledPin4, OUTPUT); 
   pinMode(ledPin5, OUTPUT);  
   pinMode(ledPin6, OUTPUT);  
   pinMode(ledPin7, OUTPUT); 
   pinMode(ledPin8, OUTPUT); 
   pinMode(ledPin9, OUTPUT);  
   pinMode(ledPin10, OUTPUT);  
   pinMode(ledPin11, OUTPUT); 
   pinMode(ledPin12, OUTPUT); 
}
void loop() {
   int threshold1 = 1020;
  if(analogRead(sensorPin) < threshold1){
    digitalWrite(ledPin1, HIGH);}
    else{ digitalWrite(ledPin1, LOW);}
    
    int threshold2 = 938;
  if(analogRead(sensorPin) < threshold2){
    digitalWrite(ledPin2, HIGH);}
    else{ digitalWrite(ledPin2, LOW);}
    
        int threshold3 = 853;
  if(analogRead(sensorPin) < threshold3){
    digitalWrite(ledPin3, HIGH);}
    else{ digitalWrite(ledPin3, LOW);}
    
            int threshold4 = 768;
  if(analogRead(sensorPin) < threshold4){
    digitalWrite(ledPin4, HIGH);}
    else{ digitalWrite(ledPin4, LOW);}
    
  int threshold5 = 683;
  if(analogRead(sensorPin) < threshold5){
    digitalWrite(ledPin5, HIGH);}
    else{ digitalWrite(ledPin5, LOW);}
    
    int threshold6 = 598;
  if(analogRead(sensorPin) < threshold6){
    digitalWrite(ledPin6, HIGH);}
    else{ digitalWrite(ledPin6, LOW);}
    
        int threshold7 = 512;
  if(analogRead(sensorPin) < threshold7){
    digitalWrite(ledPin7, HIGH);}
    else{ digitalWrite(ledPin7, LOW);}
    
         int threshold8 = 427;
  if(analogRead(sensorPin) < threshold8){
    digitalWrite(ledPin8, HIGH);}
    else{ digitalWrite(ledPin8, LOW);}
   
         int threshold9 = 342;
  if(analogRead(sensorPin) < threshold9){
    digitalWrite(ledPin9, HIGH);}
    else{ digitalWrite(ledPin9, LOW);}
    
    int threshold10 = 257;
  if(analogRead(sensorPin) < threshold10){
    digitalWrite(ledPin10, HIGH);}
    else{ digitalWrite(ledPin10, LOW);}
    
        int threshold11 = 172;
  if(analogRead(sensorPin) < threshold11){
    digitalWrite(ledPin11, HIGH);}
    else{ digitalWrite(ledPin11, LOW);}
    
            int threshold12 = 87;
  if(analogRead(sensorPin) < threshold12){
    digitalWrite(ledPin12, HIGH);}
    else{ digitalWrite(ledPin12, LOW);}
}

E-circuit of LEDs
  














Put revised model in, just fit! (the support piece last week is smaller for LED to embedded in, I redo them~)















Light it up!!















Light effect















Detail












507_1_Smartsurface_Learning_Heated up

Potentiometer_Frequency 

RGB control

Tuesday, November 22, 2011

506_2_Smartsurface_Assembly process

On the way for the final push~
This week, we finished "read" part and 1st version of the final product.For now, 70% of the technique part has been finished. But the rest 30% is the most tough part--integration. 

For the interface design, I am thinking about combine all parts together into one. No exposed messy wires and breadboard. Mini arduino will be used and the smaller, the better. For the model this week, some elements are not easy to match.Like the LED is not easy to fit into the piece. Make it look elegant of course for the 2nd version~ 



506_1_Smartsurface_Interface design

Cut sheet

Align RGB LED piece *16














 Embed rotary encoder

Final effect


















Tuesday, November 15, 2011

concept

505_Smartsurface_Datalogger_coding to death

For this week, I am working on the data logging part to save environment temperature & user input for "predicting" personal preference for the next step.

Step 2: Coding part is the most crucial part. Although sensors and datalogger can work well separately, but for our final product, the two should be integrated together.Wires should be reconnected and coding lines should be reformatted 

Wire circuit















Coding Integration












Serial monitor












Timely data restored
















Post-process


Saturday, October 22, 2011

402_SamrtSurface_Hands on making



























We like last groups' idea about light on the elevation of the house. And we further develop it to light fence on the boundary of the site to provide dynamic  interactive events between passersby and our smart surface. 

Besides interactive behaviors as below:
  • following people's speed
  • leading direction
  • warning-change the color
the light bunches also have self behaviors:
  • blink one by one every few second (whole bunch)
  • blink individually, no connection with other bunches. 

401_SamrtSurface_Botenic garden

Drawing notes





























Amazing plant under Kaleidoscope