IFD:PhysicalComp2011/Hui Yuan: Difference between revisions

From Medien Wiki
No edit summary
No edit summary
 
(15 intermediate revisions by 2 users not shown)
Line 3: Line 3:
=== Concept ===
=== Concept ===


For the important day in the memory of life, wedding day probably is the most. It would be interesting to explore the different weddings in west and china in a commen space. People will find the difference in the attitude of  wedding, the way of wedding and the traditionl things.
It would be interesting to explore the wedding culture in west and china in a common space. People will find the difference in the attitude of  wedding, the way of wedding and the traditional things. The time schedule is very important in chinese wedding. Since now the chinese wedding has changed a lot with the traditional, but people still observe the time rule from past. People have a strong sense of the  ‘Lucky Time’ and ‘Unlucky Time’, as well as for moving, funeral, and other important moments in life. The ‘Lucky Time ’ is calculated from couple’s birthday and chinese calendar.I’d like to document the weddings not only for memory, but also find the different family attitude and the living style.
 
To compare the different time sense in west and chinese wedding via two videos and a interactive installation. Making the video be interated with the audiences, I will make a simply installation for audiences controlling the video like to make the time back. Although they are the looker on wedding, the installation makes them were in the wedding.  


The time schedule is very important in chinese wedding.In China people are carefully chosen according to astrological book when it would be proper and propitious to hold the wedding. Every meaningful behavior has a ‘lucky time’.


I have made two analyses of chinese and west wedding, about the time and flow:
I have made two analyses of chinese and west wedding, about the time and flow:
Line 13: Line 14:
[[File:wedding2.jpg|400px|]]
[[File:wedding2.jpg|400px|]]


===Videos===
===Video===
The videos will be recorded from the different cities(first idea). I already have a wedding shooting of my cousin, who had a wonderful wedding on March 2010. Her wedding was a typical chinese modern wedding, not only had the traditional culture but also had west elements of wedding.
The video will be recorded from the different cities(first idea). I already have a wedding shooting of my cousin, who had a wonderful wedding on March 2010. Her wedding was a typical chinese modern wedding, not only had the traditional culture but also had west elements of wedding.


I also want to shoot the west wedding video for the installation, recording the all the process and details. The video won’t be edited very special or romantic, just continued and documentary. The video is the most factually way to react the scenes. I’d like to ask the audience to control the time to react the moment they want. And experiencing two total different weddings in one space.  
I also want to shoot the west wedding video for the installation, recording the all the process and details. The video won’t be edited very special or romantic, just continued and documentary. The video is the most factually way to react the scenes. I’d like to ask the audience to control the time to react the moment they want. And experiencing two total different weddings in one space.  
Line 28: Line 29:
The first idea is to use a real clock to install with the arduino and potentiemeter, but a touch screen could be better for interface. When audiences touch and move the figure of clock, the video will jumo to the corresponding time of the clock and play automatically.
The first idea is to use a real clock to install with the arduino and potentiemeter, but a touch screen could be better for interface. When audiences touch and move the figure of clock, the video will jumo to the corresponding time of the clock and play automatically.


[[File:wedding5.jpg|400px|]]
[[File:wedding9.jpg|400px|]]




===Code===
===Code===
   Arduino (sample)
'''Arduino'''
 
<source lang="java">
//*Arduino, rotary encoder code
// this sketch use the five feet rotary encoder.
// it includes an "endless" potentiometer and a button.
// Encoder hooked up with common to GROUND,
// encoder0PinA to pin 3, encoder0PinB to pin 4(could be exchange depends on the value)
 
int val;
int encoder0PinA = 3;
int encoder0PinB = 4;
//define encoder0PinA
//define encoder0PinB
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;
 
int myButtonPin=10; //define button on the encoder
int myLedPin=13;
int myButtonState = 0;
 
void setup() {
   pinMode(myButtonPin, INPUT);
  pinMode(myLedPin, OUTPUT);
  //setup button
  pinMode (encoder0PinA,INPUT);
digitalWrite(encoder0PinA,HIGH);
  pinMode (encoder0PinB,INPUT);
  digitalWrite(encoder0PinB,HIGH);
 
  Serial.begin (9600);
}


[[File:111.jpg|400px|]]
void loop() {
  int myButtonState = digitalRead(myButtonPin);
 
  if(myButtonState == HIGH){
    digitalWrite(myLedPin, HIGH);
  }else{
    digitalWrite(myLedPin, LOW);
}  //button control the Led to test
 
  n = digitalRead(encoder0PinA);
  if ((encoder0PinALast == LOW) && (n == HIGH)) {
    if (digitalRead(encoder0PinB) == LOW) {
      encoder0Pos--;
    } else {
      encoder0Pos++;
    }
    Serial.print (encoder0Pos);
    Serial.println ("/");
  }
  encoder0PinALast = n;
}


</source>


  Proccessing 1 (figure moved by potentiemeter)
<br /><br />


import processing.serial.*;
Serial myPort;
int incomingVal;
//int hours=0;


void setup() {
'''Proccessing 1'''
size(1000, 700);
strokeWeight(5);
smooth();
println(Serial.list());
myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
}


void draw() {
<source lang="java">
background(0);
// Moving the figure of the clock according to the incomingValue.
import processing.serial.*;
Serial myPort;
int incomingVal;


while(myPort.available() > 0){
void setup() {
incomingVal = myPort.read();
  size(1000, 700);
println(incomingVal);
  strokeWeight(5);
}
  smooth();
  println(Serial.list());
  myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
}


fill(174,221,60);
void draw() {
ellipse(500,350,250,250);
  background(0);
ellipse(385,350,2,2);
 
ellipse(615,350,2,2);
  while(myPort.available() > 0){
ellipse(500,465,2,2);
  incomingVal = myPort.read();
ellipse(500,235,2,2);
  println(incomingVal);
ellipse(500,350,5,5);
}
float hourAngle = map(incomingVal/12, 0, 255, 0, 360);
 
 
  fill(174,221,60);
pushMatrix();
  ellipse(500,350,250,250);
translate(500, 350);
  ellipse(385,350,2,2);
rotate(radians(hourAngle*12) - radians(90));
  ellipse(615,350,2,2);
line(0, 0, 100, 0);
  ellipse(500,465,2,2);
  ellipse(500,235,2,2);
  ellipse(500,350,5,5);
  float hourAngle = map(incomingVal/12, 0, 255, 0, 360);
    
    
float speed = dist(mouseX, mouseY, pmouseX, pmouseY);
  pushMatrix();
float diameter = speed * 2.0;
  translate(500, 350);
fill(204, 221, 80);
  rotate(radians(hourAngle*12) - radians(90));
ellipse(250, 250, diameter/2, diameter/2);
  line(0, 0, 100, 0);
popMatrix();
    
    
    
   float speed = dist(mouseX, mouseY, pmouseX, pmouseY);
translate(500, 350);
  float diameter = speed * 2.0;
rotate(radians(hourAngle) - radians(90));
  fill(204, 221, 80);
line(0, 0, 50, 0);
  ellipse(250, 250, diameter/2, diameter/2);
}
  popMatrix();
 
  translate(500, 350);
  rotate(radians(hourAngle) - radians(90));
  line(0, 0, 50, 0);
}
</source>


<br /><br />


  Processing 2(video play and jump by data)
'''Processing 2'''
<source lang="java">
// Video jump and play by incomingValue.


import processing.video.*;
import processing.video.*;
Movie myMovie;
Movie myMovie;
import processing.serial.*;
import processing.serial.*;
Serial myPort;
Serial myPort;
int incomingVal;
int incomingVal;


void setup() {
void setup() {
    
    
size(640,480,P2D);
  size(640,480,P2D);
frameRate(30);
  frameRate(30);
myMovie = new Movie(this, "video.mov");
  myMovie = new Movie(this, "video.mov");
myMovie.loop();
  myMovie.loop();
println(Serial.list());
  println(Serial.list());
myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
  myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
}
}


void movieEvent(Movie myMovie) {
void movieEvent(Movie myMovie) {
myMovie.read();
  myMovie.read();
}
}


void draw() {
void draw() {
while(myPort.available() > 0){
  while(myPort.available() > 0){
incomingVal = myPort.read();
    incomingVal = myPort.read();
println(incomingVal);
    println(incomingVal);
}
  }
if(myMovie.available()){
  if(myMovie.available()){
}
  }
image(myMovie, 0, 0);
  image(myMovie, 0, 0);
}
}


void mousePressed(){
  void mousePressed(){
myMovie.jump(incomingVal);
  myMovie.jump(incomingVal);
}
}
    
    
</source>
<br /><br />
[[File:wedding8.jpg|400px|]]




Line 130: Line 198:




[[File:wedding7.jpg|400px|]]
[[File:wedding7.jpg|600px|]]
 
[[File:wedding10.jpg|600px|]]


[[File:wedding4.jpg|400px|]]
[[File:wedding4.jpg|600px|]]

Latest revision as of 15:35, 28 January 2012

The Moment

Concept

It would be interesting to explore the wedding culture in west and china in a common space. People will find the difference in the attitude of wedding, the way of wedding and the traditional things. The time schedule is very important in chinese wedding. Since now the chinese wedding has changed a lot with the traditional, but people still observe the time rule from past. People have a strong sense of the ‘Lucky Time’ and ‘Unlucky Time’, as well as for moving, funeral, and other important moments in life. The ‘Lucky Time ’ is calculated from couple’s birthday and chinese calendar.I’d like to document the weddings not only for memory, but also find the different family attitude and the living style.

To compare the different time sense in west and chinese wedding via two videos and a interactive installation. Making the video be interated with the audiences, I will make a simply installation for audiences controlling the video like to make the time back. Although they are the looker on wedding, the installation makes them were in the wedding.


I have made two analyses of chinese and west wedding, about the time and flow:

Wedding6.jpg

Wedding2.jpg

Video

The video will be recorded from the different cities(first idea). I already have a wedding shooting of my cousin, who had a wonderful wedding on March 2010. Her wedding was a typical chinese modern wedding, not only had the traditional culture but also had west elements of wedding.

I also want to shoot the west wedding video for the installation, recording the all the process and details. The video won’t be edited very special or romantic, just continued and documentary. The video is the most factually way to react the scenes. I’d like to ask the audience to control the time to react the moment they want. And experiencing two total different weddings in one space.

Below is the example video from Thomas Grill, he did the shooting on August for the Pure Data Convention in Weimar. This video will be only for the test of the installation.

<videoflash type="vimeo">27718339|450|280</videoflash> Wedding3.jpg

Clocks

I'd like to do a clock which could control the clips which have happened. And is related to two different videos and interactive between users.

The first idea is to use a real clock to install with the arduino and potentiemeter, but a touch screen could be better for interface. When audiences touch and move the figure of clock, the video will jumo to the corresponding time of the clock and play automatically.

Wedding9.jpg


Code

Arduino

//*Arduino, rotary encoder code
// this sketch use the five feet rotary encoder.
// it includes an "endless" potentiometer and a button.
// Encoder hooked up with common to GROUND,
// encoder0PinA to pin 3, encoder0PinB to pin 4(could be exchange depends on the value) 

int val; 
int encoder0PinA = 3;
int encoder0PinB = 4;
//define encoder0PinA
//define encoder0PinB
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;

int myButtonPin=10; //define button on the encoder
int myLedPin=13;
int myButtonState = 0;

void setup() { 
  pinMode(myButtonPin, INPUT); 
  pinMode(myLedPin, OUTPUT);
  //setup button
  pinMode (encoder0PinA,INPUT);
 digitalWrite(encoder0PinA,HIGH);
  pinMode (encoder0PinB,INPUT);
  digitalWrite(encoder0PinB,HIGH);

  Serial.begin (9600);
} 

void loop() { 
  int myButtonState = digitalRead(myButtonPin);
  
  if(myButtonState == HIGH){
    digitalWrite(myLedPin, HIGH);
  }else{
    digitalWrite(myLedPin, LOW);
}  //button control the Led to test
  
  n = digitalRead(encoder0PinA);
  if ((encoder0PinALast == LOW) && (n == HIGH)) {
    if (digitalRead(encoder0PinB) == LOW) {
      encoder0Pos--;
    } else {
      encoder0Pos++;
    }
    Serial.print (encoder0Pos);
    Serial.println ("/");
  } 
  encoder0PinALast = n;
}




Proccessing 1

// Moving the figure of the clock according to the incomingValue.
 
 
 import processing.serial.*;
 Serial myPort;
 int incomingVal;

 void setup() {
  size(1000, 700);
  strokeWeight(5);
  smooth();
  println(Serial.list());
  myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
 }

 void draw() {
  background(0);

  while(myPort.available() > 0){
  incomingVal = myPort.read();
  println(incomingVal);
 }

  fill(174,221,60);
  ellipse(500,350,250,250);
  ellipse(385,350,2,2);
  ellipse(615,350,2,2);
  ellipse(500,465,2,2);
  ellipse(500,235,2,2);
  ellipse(500,350,5,5);
  float hourAngle = map(incomingVal/12, 0, 255, 0, 360);
  
  pushMatrix();
  translate(500, 350);
  rotate(radians(hourAngle*12) - radians(90));
  line(0, 0, 100, 0);
  
  float speed = dist(mouseX, mouseY, pmouseX, pmouseY);
  float diameter = speed * 2.0;
  fill(204, 221, 80);
  ellipse(250, 250, diameter/2, diameter/2);
  popMatrix();
   
  translate(500, 350);
  rotate(radians(hourAngle) - radians(90));
  line(0, 0, 50, 0);
 }



Processing 2

// Video jump and play by incomingValue.

 import processing.video.*;
 Movie myMovie;
 import processing.serial.*;
 Serial myPort;
 int incomingVal;

 void setup() {
  
  size(640,480,P2D);
  frameRate(30);
  myMovie = new Movie(this, "video.mov");
  myMovie.loop();
  println(Serial.list());
  myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
 }

 void movieEvent(Movie myMovie) {
  myMovie.read();
 }

 void draw() {
  while(myPort.available() > 0){
    incomingVal = myPort.read();
    println(incomingVal);
  }
  if(myMovie.available()){
  }
  image(myMovie, 0, 0);
 }

  void mousePressed(){
  myMovie.jump(incomingVal);
 }



Wedding8.jpg


Sketch up

Using arduino to collect the data outside and transform into the computer. I connected the touch screen with arduino so that collect the moving movement and touch point. After computer received the data, processing will read data and give order to the video.


Wedding7.jpg

Wedding10.jpg

Wedding4.jpg