New York photo shooting/ Aug. 25th
















a collaboration with Ming-Hwa Lin at Stock 20, Taiwan.
Address : 6-6, Lane 37, Fusing Rd. Section 4, Taichung City, Taiwan.
鐵道藝術網路台中站 - 二十一號倉庫 [2006 /10/13~ 11/12 ]
地址;台中市復興路四段37巷6-6號






Daniel Shiffman, a professor at ITP have made this Led dispaly which light up the itp student's mug photo. Shiffman I personal think it is a strong critic of the realistic photography.
[the breadboard set up] *two IR sensors with red and blue leds

[the ball made in Processing]

[ documentation]
SERIAL COMMUNICATION (PROCESSING) PART 1.
************************************************
import processing.serial.*;
Serial port; // The serial port
int[] serialInArray = new int[2]; // ***Where we'll put what we receive
int serialCount = 0; // ***A count of how many bytes we receive
int xpos, ypos; // Starting position of the ball
boolean firstContact = false; // Whether we've heard from the microcontroller
void setup() {
size(256, 256); // Stage size
noStroke(); // No border on the next thing drawn
// Set the starting position of the ball (middle of the stage)
xpos = width/2;
ypos = height/2;
// Print a list of the serial ports, for debugging purposes:
println(Serial.list());
// I know that the first port in the serial list on my mac
// is always my Keyspan adaptor, so I open Serial.list()[0].
// On Windows machines, this generally opens COM1.
// Open whatever port is the one you're using.
port = new Serial(this, Serial.list()[2], 9600);
port.write(65); // Send a capital A to start the microcontroller sending
}
void draw() {
background(255);
fill(255,200,150);
// Draw the shape
ellipse(xpos, ypos, 20, 20);
// If no serial data has beeen received, send again until we get some.
// (in case you tend to start Processing before you start your
// external device):
if (firstContact == false) {
delay(300);
port.write(65);
}
}
void serialEvent(Serial port) {
// if this is the first byte received,
// take note of that fact:
if (firstContact == false) {
firstContact = true;
}
// Add the latest byte from the serial port to array:
serialInArray[serialCount] = port.read();
serialCount++;
// If we have 2 bytes:
if (serialCount > 1 ) {
xpos = serialInArray[0];
ypos = serialInArray[1];
// print the values (for debugging purposes only):
// println(xpos + "\t" + ypos + "\t" );
// Send a capital A to request new sensor readings:
port.write(65);
// Reset serialCount:
serialCount = 0;
}
}
SERIAL COMMUNICATION (ARDUINO) PART2
********************************************
int potPin = 0; // Analog input pin that the potentiometer is attached to
int firstpotValue = 0; // value read from the pot
int secondpotValue=0;
int firstled = 9; // PWM pin that the LED is on. n.b. PWM 0 is on digital pin 9
int secondled=10; //PWM pin that the LED is on.
int inByte = 0; // ***incoming serial byte
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
void loop() {
analogWrite(firstled, firstpotValue/4); // PWM the LED with the pot value (divided by 4 to fit in a byte)
analogWrite(secondled, secondpotValue/4); //PWM the LED with the pot value.
/*
Serial.print(firstpotValue); // print the pot value back to the debugger pane
Serial.print('\t');
Serial.println(secondpotValue);
Serial.print('\t');
delay(10); // wait 10 milliseconds before the next loop
*/
if (Serial.available() > 0) { //***set and start to send the serial
// get incoming byte:
inByte = Serial.read();
firstpotValue = analogRead(0); // ***see if there is serial number and read the pot value
secondpotValue = analogRead(1);
//( read first analog input, divide by 4 to make the range 0-255:) tom did
// IR sensor is around 500 range, divide by 2 to make the rang 0-255
firstpotValue = analogRead(0)/4;
// delay 10ms to let the ADC recover:
delay(10);
// read second analog input, divide by 4 to make the range 0-255:
secondpotValue = analogRead(1)/4;
// read switch, multiply by 255
// so that you're sending 0 or 255:
// send sensor values:
Serial.print(firstpotValue, BYTE);
Serial.print(secondpotValue, BYTE);
}
}
[ time square area ]

[ the led display on the stage ]

• the lighting is incredible fun to look at, which is designed byUnited Visal Artist



[we all look very red, becuase all the lighting is putting on to the viewers. after a while my eyes is a little uncomfortable. ]


*photo proved by Guy Lee

SkyeModule™ M1 & RFID sensor
[ Process ]
green LED = circle = approved
red LED = cross = denied
blue = put your rfid on the top of it !!

[testing with the plastic cover ]
* the blue and red led work perfect underneath the plastic
* the green is not as bright as the blue and red, so we will build more in.

[ putting everything together }
*first






User Testing:
*




RESEARCH:
[body implanted RFID]
flickr site
[info]
Card reader01
Card reader02
card reader03
universal magnetic swipe reader USB keyboard interface:
usb interface
[ INTERACTIVE INSTITUE ]

Interact Institute is very thoughtful IT-research institute from Swedon.
The Flower Lamp is one of the interesting products that I saw in their boot.
The flow shape lamp will open and close depend on how much energy that people consume in the space. The lamp is a reminder mahine that is not too annoy with all kind of sound but having this suttle visual movement to the users.

[ LED CUBE]
I met James two years ago in one of the Chealsea art galleries. He was documenting his work, while I was wondering about how he made the Led lighting Cube. He is also the person who introduces ITP. His work really engages with the viewers. At that time, viewers have to wear 3D paper glasses to see the three dimensional illusion. This time the led cube became a product and James also establishes his company now.
www.JamesClar.com
Illusion Machine is a collaboration piece by Younghyung and aichen. The illusion Machine is to response the show Moving Pictures(American Art & Early Film, 1880-1910) at Grey Art NYU Gallery.

The connection:


detail:



final installation:

The code:
int servoPin0 = 2; // Control pin for servo motor
int servoPin1 = 3;
int minPulse = 500; // Minimum servo position
int maxPulse = 2500; // Maximum servo position
int pulse = 0; // Amount to pulse the servo
int rotating_duration = 20000;
long lastPulse = 0; // the time in milliseconds of the last pulse
int refreshTime = 150; // the time needed in between pulses
int analogValue = 0; // the value returned from the analog sensor
int analogPin = 0; // the analog pin that the sensor's on
boolean direction = true;
long count = 0;
void setup() {
pinMode(servoPin0, OUTPUT); // Set servo pin as an output pin
pinMode(servoPin1, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (direction) {
pulse = minPulse;
if (count++ >= rotating_duration) {
direction = false;
count = 0;
}
}
else {
pulse = maxPulse;
if (count++ >= rotating_duration) {
direction = true;
count = 0;
}
}
{
// pulse the servo again if rhe refresh time (20 ms) have passed:
if (millis() - lastPulse >= refreshTime) {
digitalWrite(servoPin0, HIGH); // Turn the motor on
digitalWrite(servoPin1, HIGH); // Turn the motor on
delayMicroseconds(pulse); // Length of the pulse sets the motor position
digitalWrite(servoPin0, LOW); // Turn the motor off
digitalWrite(servoPin1, LOW); // Turn the motor off
lastPulse = millis(); // save the time of the last pulse
}
}
}
1.counting daily uses
iPod user: move their fingers on the scroll panel
subway ticket : swipe the card on the machine
elevator: use the button to indicate the floor.
Palm: use the pen tool on touchable screen to write and select the options
2. in depth observation
NYU student ID swipe action

SETTING : a digital swipe machine
PHYSICAL ORIENTATION: people walking pass the machine and sometimes have to stop in front of it.
PHYSICLLY DO :
first: take our the card
second: flip one or two times to figure out which side is the right one.
third: insert the card
fourth: may be able to walk through or have to try again on the other side.
total: could be 4 steps or more.
*missunderstanding of using the NYU ID in comparison to subway card is debilitating user's effort.
*the illustrated instruction doesn't fully give a clear direction to the user


[ codes ]
int threshold = 350;
int ledPin = 9;
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop(){
int analogValue = analogRead(0);
Serial.println(analogValue, DEC );
if (analogValue > threshold) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
delay(10);
}
[ The Tips to install the audurio from Tom Igoe ]
First, with 10.3.9, you should use Arduino 0004, not 0005.
Second, make sure you've run the FDTI driver install from the drivers
folder before you plug it in.
Third, make sure you've run the macosx_setup.command script by double-
clicking on it and following the instructions it gives.
Fourth, restart Arduino.
Fifth, make sure the poer jumper is set to the USB side.
Failing all of that, check the forums on the arduino.cc site for more.


