Moving screen

by denamolnar

The repeated elements of textile designs not only create a sense of rythm, but they can be quite mesmerizing. While they are capable of creating a sense of movement, in reality they are of often static. As a textile designer,  I have always been interested in the idea of a textile that is capable of shifting in terms of pattern and or color. My final project attempts this goal.

To begin, I developed a test on paper. I painted a series of test pieces with thermo chromic paint that represented what would be stripes in the final design. I then sewed conductive thread through each piece. Using an Arduino and  a motion sensor, I wrote a code that allowed for the stripes to be heated up and  in turn change color sequentially when motion was detected.

Above is detail of the first stripe shifting in color.

Once I had the system worked out, I used a shear textile with a striped weft as the surface of the screen. I painted a layer of transparent gesso to make the surface slightly more rigid and suitable for painting on.

I experimented with different ways of applying a patterned layer of thermo chromic pigment, including making a template from a piece of the textile. For the template, I simply gessoed a piece of the shear material to a piece of card stock. Once it was dry, I cut out the striped shapes with an exacto knife. While I used the template, I also found it just as easy to paint directly onto the textile.

After I painted in some areas of the textile, I sewed conductive thread over the black striped weft and added the mosfets and conductive tape which would connect to a 12V AC adaptor, ground and output to the Arduino.

After some initial trial and error (and a failed attempt to get the prototype working during the final presentation)..success!

Arduino Code

/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor
This example code is in the public domain.
*/
int sensorold, sensornew;
int sensordif = 3;
boolean trigger;
void setup() {
pinMode(2, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (13, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(13, LOW);
sensorold = analogRead(A0);
sensornew = sensorold;
trigger = false;
Serial.begin(9600);
}
void loop() {
sensornew = analogRead(A0);
if (abs(sensornew – sensorold) > sensordif)
{
Serial.println(“trigger 2″);
digitalWrite(2, HIGH);
digitalWrite (13, HIGH);
// set the LED on
delay(1000);
// wait for a second
digitalWrite(2, LOW);
digitalWrite (13, LOW);  // set the LED off
Serial.println(“off 2″);
delay(10000);
Serial.println(“trigger 6″);
digitalWrite (6, HIGH);
delay(1000);
Serial.println(“off 6″);
digitalWrite (6, LOW);
delay(10000);
Serial.println(“trigger 7″);
digitalWrite (7, HIGH);
delay(1000);
digitalWrite (7, LOW);
Serial.println(“off 7″);
delay(10000);
}
// Serial.println(sensorValue, DEC);
}

/*  AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor   This example code is in the public domain. */
int sensorold, sensornew;int sensordif = 3;boolean trigger;
void setup() {  pinMode(2, OUTPUT);  pinMode (6, OUTPUT);   pinMode (7, OUTPUT);  pinMode (13, OUTPUT);    digitalWrite(2, LOW);  digitalWrite(6, LOW);  digitalWrite(7, LOW);  digitalWrite(13, LOW);  sensorold = analogRead(A0);  sensornew = sensorold;  trigger = false;  Serial.begin(9600);}
void loop() {  sensornew = analogRead(A0);  if (abs(sensornew – sensorold) > sensordif)  {    Serial.println(“trigger 2″);    digitalWrite(2, HIGH);    digitalWrite (13, HIGH);// set the LED on    delay(1000);    // wait for a second    digitalWrite(2, LOW);    digitalWrite (13, LOW);  // set the LED off    Serial.println(“off 2″);    delay(10000);    Serial.println(“trigger 6″);    digitalWrite (6, HIGH);    delay(1000);    Serial.println(“off 6″);    digitalWrite (6, LOW);    delay(10000);    Serial.println(“trigger 7″);    digitalWrite (7, HIGH);    delay(1000);    digitalWrite (7, LOW);    Serial.println(“off 7″);    delay(10000);  }   // Serial.println(sensorValue, DEC);}