<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>New Textiles 2011</title>
	<atom:link href="http://newtextiles.media.mit.edu/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://newtextiles.media.mit.edu</link>
	<description></description>
	<lastBuildDate>Thu, 08 Dec 2011 06:12:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>&#8216;Drink Me&#8217; Water Bottle Cozy</title>
		<link>http://newtextiles.media.mit.edu/?p=3098</link>
		<comments>http://newtextiles.media.mit.edu/?p=3098#comments</comments>
		<pubDate>Tue, 17 May 2011 23:13:46 +0000</pubDate>
		<dc:creator>ellann</dc:creator>
				<category><![CDATA[Final Project]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3098</guid>
		<description><![CDATA[For the final project, I decided to make a water bottle cozy that reminds you to drink. I initially got the idea because I often get dehydrated especially when working at a desk all day. I have a water bottle in front of me, but just don&#8217;t think about it. I wanted something to actively [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3417" rel="attachment wp-att-3417"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2367-600x800.jpg" alt="" title="IMG_2367 (600x800)" height="300" class="alignleft size-full wp-image-3417" /></a>For the final project, I decided to make a water bottle cozy that reminds you to drink. I initially got the idea because I often get dehydrated especially when working at a desk all day. I have a water bottle in front of me, but just don&#8217;t think about it. I wanted something to actively remind me to drink throughout the day. Thus, the &#8216;Drink Me&#8217; Water Bottle Cozy was born. </p>
<p>The project concept is a simple cozy covered in LEDs. Every 30 mins, the LEDs will start blinking. When the user picks up the bottle and slightly squeezes it to take a drink, the LEDs turn off and the timer restarts. The LEDs begin blinking again in 30 mins and the cycle repeats. The sensor is simply two pieces of conducting fabric that are connected by the users hand. </p>
<p><span id="more-3098"></span></p>
<p>I started by laying out how I wanted the project to look. I decided to go with a zig zag pattern for the conductive fabric and horizontal stripes so that a hand would definitely connect two side by side stripes. The zig zag pattern was first printed on a piece of paper. One stripe was cut out and traced multiple times onto the conductive fabric and then cut out with an exacto knife. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3406" rel="attachment wp-att-3406"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00041-20110509-2306.jpg" alt="" title="IMG00041-20110509-2306" width="800" class="alignleft size-full wp-image-3406" /></a></p>
<p>I initially started with the LEDs on black triangles but this prevented good contact with the conductive fabric and was not used in the end. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3396" rel="attachment wp-att-3396"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00032-20110509-1710.jpg" alt="" title="IMG00032-20110509-1710" width="800" class="alignleft size-full wp-image-3396" /></a></p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3398" rel="attachment wp-att-3398"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00034-20110509-17102.jpg" alt="" title="IMG00034-20110509-1710(2)" width="800" class="alignleft size-full wp-image-3398" /></a></p>
<p>Note that the LilyPad is in direct contact with the conductive fabric. This is not good because the back of the LilyPad is also conductive at points. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3397" rel="attachment wp-att-3397"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00033-20110509-1710.jpg" alt="" title="IMG00033-20110509-1710" width="800"  class="alignleft size-full wp-image-3397" /></a></p>
<p>Thus, I made an extra insulating circle to go between the LilyPad and the cozy. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3402" rel="attachment wp-att-3402"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00037-20110509-1831.jpg" alt="" title="IMG00037-20110509-1831" height="600" /></a></p>
<p>I also made a pocket to hide and to hold the battery. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3401" rel="attachment wp-att-3401"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00036-20110509-1831.jpg" alt="" title="IMG00036-20110509-1831" height="600" /></a></p>
<p>After sewing on the pocket, ironing on the conductive fabric zig zags (it had heat sensitive glue on the back), and sticking on some velcro the cozy looked like this.</p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3400" rel="attachment wp-att-3400"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG00035-20110509-1831.jpg" alt="" title="IMG00035-20110509-1831" width="800" class="alignleft size-full wp-image-3400" /></a></p>
<p>I then sewed on the LEDs and connected everything appropriately to the LilyPad Arduino.</p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3409" rel="attachment wp-att-3409"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2359-800x600.jpg" alt="" title="IMG_2359 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3409" /></a></p>
<p>The LEDs are very small and were soldered to little metal beads to make a sewable component. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3412" rel="attachment wp-att-3412"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2362-800x600.jpg" alt="" title="IMG_2362 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3412" /></a></p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3418" rel="attachment wp-att-3418"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2368-800x600.jpg" alt="" title="IMG_2368 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3418" /></a></p>
<p>The 11 pin on the LilyPad connects to the LEDs. The A5 pin connects to 1st, 3rd, and 5th stripes from the top. The &#8211; pin connects to the 2nd, 4th, and 6th stripes as well as the negative ends of the LEDs. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3410" rel="attachment wp-att-3410"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2360-800x600.jpg" alt="" title="IMG_2360 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3410" /></a></p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3411" rel="attachment wp-att-3411"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2361-800x600.jpg" alt="" title="IMG_2361 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3411" /></a></p>
<p>The finished circuit from the back looks like this. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3413" rel="attachment wp-att-3413"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2363-800x600.jpg" alt="" title="IMG_2363 (800x600)" width="800" height="600" class="alignleft size-full wp-image-3413" /></a></p>
<p>Finished product. </p>
<p><a href="http://newtextiles.media.mit.edu/?attachment_id=3416" rel="attachment wp-att-3416"><img src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_2366-600x800.jpg" alt="" title="IMG_2366 (600x800)" height="600"  /></a></p>
<p>This video shows the finished product working with a 10 second interval.<br />
<code><br />
<iframe width="640" height="510" src="http://www.youtube.com/embed/4xuuWgBxEQU?rel=0" frameborder="0" allowfullscreen></iframe><br />
</code></p>
<p>There are a few areas where this project could be improved. First, the LilyPad Arduino is not curved or flexible in any way. This means that it cannot sit flat against the side of the bottle. A different design may have not had an issue with this. To get around the curvature issue, only the pins that are parallel to the axis of the bottle were used. This means it can roll if necessary. Second, the cozy is not extremely durable. The LEDs have broken on several occasions. This could be due to the curvature of the bottle or due to the fact that the cozy is wrapped around the bottle quite tightly, which puts stress on the LEDs. The cozy must be wrapped tightly to prevent the bottle from slipping out the bottom when lifted. Third, it would be nicer if the cozy did not have to wrapped so tightly. This might be fixed with something like rubber placed between the bottle and the cozy. </p>
<p>Arduino Code: </p>
<blockquote><p>// This code was modified from the Stopwatch code by Paul Badger in 2008<br />
// http://www.arduino.cc/playground/Code/Stopwatch</p>
<p>// these constants don&#8217;t change:<br />
const int ledPin = 11;                   // LED connected to digital pin 13<br />
const int fabricButton = A5;          // fabric button input to pin A0<br />
const int threshold = 900;               // threshold value to decide when fabric button connected<br />
const int timerInterval = 10000;         // interval to wait for next blinking: sec*1000</p>
<p>// these variables will change:<br />
int value = LOW;                    // previous value of the LED<br />
int blinking;                       // condition for blinking &#8211; timer is not timing<br />
long interval = 100;                // blink interval &#8211; change to suit<br />
long previousMillis = 0;            // variable to store last time LED was updated<br />
long startTime ;                    // start time for timer<br />
long elapsedTime ;                  // elapsed time for time</p>
<p>int sensorReading = 0;      // variable to store the value read from the sensor pin<br />
int ledState = LOW;         // variable used to store the last LED status, to toggle the light</p>
<p>void setup()<br />
{<br />
   pinMode(ledPin, OUTPUT);            // sets the digital pin as output<br />
   pinMode(fabricButton, INPUT);       // sets the analong pin to input<br />
   digitalWrite(fabricButton, HIGH);   // turn on pullup resistors. Wire button so that press shorts pin to ground.<br />
   Serial.begin(9600);                 // use the serial port<br />
}</p>
<p>void loop()<br />
{<br />
    // read the sensor and store it in the variable sensorReading:<br />
   sensorReading = analogRead(fabricButton);</p>
<p>   // this is to check the value of the sensor reading in the Serial Monitor<br />
   Serial.println(analogRead(fabricButton));<br />
   delay(10);</p>
<p>   // check for button press while blinking<br />
   if (sensorReading <= threshold &#038;&#038; blinking == true) {<br />
      // if true, restart the timer and turn off the blinking<br />
      startTime = millis();                                 // store the start time<br />
      blinking = false;                                     // turn off blinking while timing<br />
      delay(5);                                             // short delay to debounce switch<br />
   }<br />
   else{<br />
      elapsedTime = millis() - startTime;                    // calculate the elapsed time<br />
   }</p>
<p>   // check if the timer has reached the desired time length<br />
   if (elapsedTime > timerInterval) {<br />
     // if ture, turn on blinking<br />
     blinking = true;<br />
   }</p>
<p>   // blink routine &#8211; blink the LED while not timing<br />
   // check to see if it&#8217;s time to blink the LED; that is, the difference<br />
   // between the current time and last time we blinked the LED is larger than<br />
   // the interval at which we want to blink the LED.</p>
<p>   if ( (millis() &#8211; previousMillis > interval) ) {</p>
<p>      if (blinking == true){<br />
         previousMillis = millis();                         // remember the last time we blinked the LED</p>
<p>         // if the LED is off turn it on and vice-versa.<br />
         if (value == LOW)<br />
            value = HIGH;<br />
         else<br />
            value = LOW;<br />
         digitalWrite(ledPin, value);<br />
      }<br />
      else{<br />
         digitalWrite(ledPin, LOW);                         // turn off LED when not blinking<br />
      }<br />
   }</p>
<p>}
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3098</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magical Blanket. no more boundary between music and body movement</title>
		<link>http://newtextiles.media.mit.edu/?p=3354</link>
		<comments>http://newtextiles.media.mit.edu/?p=3354#comments</comments>
		<pubDate>Mon, 16 May 2011 12:13:33 +0000</pubDate>
		<dc:creator>greatjudy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3354</guid>
		<description><![CDATA[We are intrigued by the interaction between human and music. This project suggests a combination of body postures and generated acoustic effects. For this final project, we created a blanket of matrix of 16 pressure sensors, each sensor consists of two pieces of conductive fabrics, with one piece of velostat and two layers of light [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="attachment wp-att-3386" href="http://newtextiles.media.mit.edu/?attachment_id=3386"><img class="aligncenter size-full wp-image-3386" title="The Magic Blanket" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/324.jpg" alt="" width="576" height="384" /></a></p>
<p>We are intrigued by the interaction between human and music. This project suggests a combination of body postures and generated acoustic effects.</p>
<p>For this final project, we created a blanket of matrix of 16 pressure sensors, each sensor consists of two pieces of conductive fabrics, with one piece of velostat and two layers of light net fabrics.</p>
<p><span id="more-3354"></span></p>
<p>To connect the sensors, we used two set of parallel and perpendicular conductive threads, and using one diode  for each of the sensor. As a result, we used only 4 analogue input to read the numbers of the whole matrix. The design of the blanket is inspired from traditional Chinese paper-cut of zodiac and Polish woodcut. To construct cover layer, we used the white canvas as the base. We glued them first with iron and sewed them around with sewing machine. For those patterns, we laser cut the red cotton fabric and glued them on top of the white canvas.</p>
<p>For the processing, many improvements could be done. For this version, we tried sound and to create different pitches with the sensor. We used Promide library to process the data from the sensors and transform it into different set of sound track with different wavelength( pitch).We used a midi machine connected to computer and created sound of various musical instruments and electric effects.  To visualize it, we created several circles based on the position of the sensor, its diameter is based on the data from the sensor, that means the higher pressure it receives, the strong the signal it produces, the bigger it is.</p>
<p>Video: <a href="http://www.youtube.com/watch?v=HReYU7DG5MY">http://www.youtube.com/watch?v=HReYU7DG5MY</a></p>

<a href='http://newtextiles.media.mit.edu/?attachment_id=3355' title='01'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/014.jpg" class="attachment-thumbnail" alt="01" title="01" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3356' title='02'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/024.jpg" class="attachment-thumbnail" alt="02" title="02" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3357' title='03'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/034.jpg" class="attachment-thumbnail" alt="03" title="03" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3358' title='04'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/044.jpg" class="attachment-thumbnail" alt="04" title="04" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3359' title='05'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/051.jpg" class="attachment-thumbnail" alt="05" title="05" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3360' title='06'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/061.jpg" class="attachment-thumbnail" alt="06" title="06" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3361' title='07'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/071.jpg" class="attachment-thumbnail" alt="07" title="07" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3362' title='08'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/081.jpg" class="attachment-thumbnail" alt="08" title="08" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3363' title='09'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/091.jpg" class="attachment-thumbnail" alt="09" title="09" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3364' title='10'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/101.jpg" class="attachment-thumbnail" alt="10" title="10" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3365' title='11'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/111.jpg" class="attachment-thumbnail" alt="11" title="11" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3366' title='12'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/121.jpg" class="attachment-thumbnail" alt="12" title="12" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3367' title='13'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/131.jpg" class="attachment-thumbnail" alt="13" title="13" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3368' title='14'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/141.jpg" class="attachment-thumbnail" alt="14" title="14" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3369' title='15'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/151.jpg" class="attachment-thumbnail" alt="15" title="15" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3370' title='16'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/161.jpg" class="attachment-thumbnail" alt="16" title="16" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3371' title='17'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/174.jpg" class="attachment-thumbnail" alt="17" title="17" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3372' title='18'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/181.jpg" class="attachment-thumbnail" alt="18" title="18" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3373' title='19'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/191.jpg" class="attachment-thumbnail" alt="19" title="19" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3374' title='20'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/201.jpg" class="attachment-thumbnail" alt="20" title="20" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3375' title='21'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/214.jpg" class="attachment-thumbnail" alt="21" title="21" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3376' title='22'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/221.jpg" class="attachment-thumbnail" alt="22" title="22" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3377' title='23'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/231.jpg" class="attachment-thumbnail" alt="23" title="23" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3378' title='24'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/244.jpg" class="attachment-thumbnail" alt="24" title="24" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3379' title='25'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/251.jpg" class="attachment-thumbnail" alt="25" title="25" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3380' title='26'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/261.jpg" class="attachment-thumbnail" alt="26" title="26" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3381' title='27'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/271.jpg" class="attachment-thumbnail" alt="27" title="27" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3382' title='28'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/281.jpg" class="attachment-thumbnail" alt="28" title="28" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3383' title='29'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/291.jpg" class="attachment-thumbnail" alt="29" title="29" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3384' title='30'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/301.jpg" class="attachment-thumbnail" alt="30" title="30" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3385' title='31'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/314.jpg" class="attachment-thumbnail" alt="31" title="31" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3386' title='The Magic Blanket'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/324.jpg" class="attachment-thumbnail" alt="The Magic Blanket" title="The Magic Blanket" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3387' title='33'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/334.jpg" class="attachment-thumbnail" alt="33" title="33" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3388' title='34'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/344.jpg" class="attachment-thumbnail" alt="34" title="34" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3389' title='35'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/354.jpg" class="attachment-thumbnail" alt="35" title="35" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3390' title='36'><img width="150" height="100" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/364.jpg" class="attachment-thumbnail" alt="36" title="36" /></a>

<p><span style="text-decoration: underline;"><strong>Code 1:</strong></span></p>
<p>import processing.serial.*;<br />
import promidi.*;<br />
Sequencer sequencer;<br />
Serial myPort;        // The serial port</p>
<p>//variables for collecting and storing information<br />
int ARRAYX = 4;<br />
int ARRAYY = 4;<br />
int [][] sensorArray = new int[ARRAYX][ARRAYY];<br />
//variables for drawing information on the screen<br />
int [][] volArray = new int[ARRAYX][ARRAYY];<br />
int spacing = 100;<br />
PFont font;</p>
<p>Track track;<br />
MidiIO midiIO;<br />
MidiOut test;</p>
<p>void setup () {<br />
//set the window size:<br />
size(400, 400);<br />
//initialize the font variables<br />
//background(255);<br />
// font = loadFont(&#8220;Interstate-Bold-12.vlw&#8221;);<br />
//textFont(font);</p>
<p>// list all the available serial ports<br />
println(Serial.list());<br />
// open the appropriate port<br />
myPort = new Serial(this, Serial.list()[2], 9600);<br />
// don&#8217;t generate a serialEvent() until you get an exclamation mark character<br />
myPort.bufferUntil(&#8216;!&#8217;);<br />
// set inital background:<br />
sequencer = new Sequencer();<br />
//MidiIO<br />
midiIO = MidiIO.getInstance();<br />
midiIO.printDevices();<br />
midiIO.closeOutput(1);<br />
//MidiOut<br />
test = midiIO.getMidiOut(1,3);</p>
<p>test.sendProgramChange(new ProgramChange(20));<br />
//Track<br />
track = new Track(&#8220;one&#8221;, test);<br />
track.setQuantization(Q._1_32);<br />
}</p>
<p>void draw () {</p>
<p>background(255);<br />
//loop through the array<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//calculate the position for each entry so that print out is approximately centered onscreen<br />
int xPosition = width/2-((ARRAYX-1)*spacing/2)+j*spacing;<br />
int yPosition = height/2-((ARRAYY-1)*spacing/2)+i*spacing;<br />
//draw the array entries on the screen<br />
//  text(sensorArray[i][j], xPosition, yPosition);</p>
<p>//    noFill();<br />
smooth();<br />
stroke(255,55);<br />
ellipse(xPosition,yPosition, sensorArray[i][j]/20, sensorArray[i][j]/20);</p>
<p>}<br />
}<br />
drawCircles();<br />
}</p>
<p>void serialEvent (Serial myPort) {<br />
//store a batch of data into variable &#8220;inString&#8221;<br />
//batches are separated by exclamation mark characters<br />
String inString = myPort.readStringUntil(&#8216;!&#8217;);<br />
//split the data into rows (rows separated by new line characters)<br />
String[] incomingArrayRows = splitTokens(inString, &#8220;\n&#8221;);<br />
//loop through all of the rows<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
//split each row into entries (entries separated by tab characters)<br />
String[] incomingArrayEntries = splitTokens(incomingArrayRows[i], &#8220;\t&#8221;);<br />
//loop through all of these entries<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//store entries in the &#8220;sensorArray&#8221; variable<br />
sensorArray[i][j]=int(incomingArrayEntries[j]);<br />
//print the entries to the terminal, separated by tab characters<br />
print(sensorArray[i][j]);<br />
print(&#8216;\t&#8217;);<br />
}<br />
//print a new line after each row<br />
println();<br />
}<br />
//print a new line after each batch of data<br />
println();<br />
makesound();</p>
<p>}</p>
<p>void drawCircles()<br />
{</p>
<p>for(int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for(int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//<br />
if (sensorArray[i][j]&gt;500)<br />
{<br />
//calculate the position for each entry so that print out is approximately centered onscreen<br />
int xPosition = width/2-((ARRAYX-1)*spacing/2)+j*spacing;<br />
int yPosition = height/2-((ARRAYY-1)*spacing/2)+i*spacing;</p>
<p>delay(20);<br />
noStroke();<br />
smooth();<br />
fill(#AF0000, 50);<br />
ellipse(xPosition,yPosition, sensorArray[i][j]/5, sensorArray[i][j]/5);<br />
}<br />
}<br />
}<br />
}<br />
void mousePressed(){<br />
if(mouseButton == LEFT) {<br />
makesound();<br />
sequencer.start();<br />
}<br />
else sequencer.stop();</p>
<p>}</p>
<p>boolean flag = false;</p>
<p>void makesound()<br />
{<br />
for(int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for(int j=0;j&lt;ARRAYY;j++)<br />
{<br />
if (sensorArray[i][j]&gt;300)<br />
{<br />
//volArray[i][j] = int (sensorArray[i][j]/1024*127);<br />
volArray[i][j] = 127;<br />
}<br />
else<br />
volArray[i][j] = 0;<br />
}}</p>
<p>track.addEvent(new Note(60, volArray[0][0],40), 0);<br />
track.addEvent(new Note(60, 0,40), 1);<br />
track.addEvent(new Note(62, volArray[0][1],40), 2);<br />
track.addEvent(new Note(62, 0,40), 3);<br />
track.addEvent(new Note(64, volArray[0][2],40), 4);<br />
track.addEvent(new Note(64, 0,40), 5);<br />
track.addEvent(new Note(65, volArray[0][3],40), 6);<br />
track.addEvent(new Note(65, 0,40), 7);<br />
track.addEvent(new Note(67, volArray[1][0],40), 8);<br />
track.addEvent(new Note(67, 0,40), 9);<br />
track.addEvent(new Note(69, volArray[1][1],40), 10);<br />
track.addEvent(new Note(69, 0,40), 11);<br />
track.addEvent(new Note(71, volArray[1][2],40), 12);<br />
track.addEvent(new Note(71, 0,40), 13);<br />
track.addEvent(new Note(72, volArray[1][3],40), 14);<br />
track.addEvent(new Note(72, 0,40), 15);<br />
track.addEvent(new Note(74, volArray[2][0],40), 16);<br />
track.addEvent(new Note(74, 0,40), 17);<br />
track.addEvent(new Note(76, volArray[2][1],40), 18);<br />
track.addEvent(new Note(76, 0,40), 19);<br />
track.addEvent(new Note(77, volArray[2][2],40), 20);<br />
track.addEvent(new Note(77, 0,40), 21);<br />
track.addEvent(new Note(79, volArray[2][3],40), 22);<br />
track.addEvent(new Note(79, 0,40), 23);<br />
track.addEvent(new Note(81, volArray[3][0],40), 24);<br />
track.addEvent(new Note(81, 0,40), 25);<br />
track.addEvent(new Note(83, volArray[3][1],40), 26);<br />
track.addEvent(new Note(83, 0,40), 27);<br />
track.addEvent(new Note(84, volArray[3][2],40), 28);<br />
track.addEvent(new Note(84, 0,40), 29);<br />
track.addEvent(new Note(86, volArray[3][3],40), 30);<br />
track.addEvent(new Note(86, 0,40), 31);</p>
<p>Song song = new Song(&#8220;test&#8221;, 100);<br />
song.addTrack(track);<br />
sequencer.setSong(song);<br />
sequencer.setLoopStartPoint(0);<br />
sequencer.setLoopEndPoint(512);<br />
sequencer.setLoopCount(-1);</p>
<p>if(!flag){<br />
sequencer.start();<br />
flag = true;<br />
}</p>
<p>}</p>
<p><span style="text-decoration: underline;"><strong>Code 2:</strong></span></p>
<p>import processing.serial.*;<br />
import promidi.*;<br />
Sequencer sequencer;<br />
Serial myPort;        // The serial port</p>
<p>//variables for collecting and storing information<br />
int ARRAYX = 4;<br />
int ARRAYY = 4;<br />
int [][] sensorArray = new int[ARRAYX][ARRAYY];<br />
//variables for drawing information on the screen<br />
int [][] volArray = new int[ARRAYX][ARRAYY];<br />
int spacing = 100;<br />
PFont font;</p>
<p>Track track;<br />
MidiIO midiIO;<br />
MidiOut test;</p>
<p>void setup () {<br />
//set the window size:<br />
size(400, 400);<br />
//initialize the font variables<br />
//background(255);<br />
// font = loadFont(&#8220;Interstate-Bold-12.vlw&#8221;);<br />
//textFont(font);</p>
<p>// list all the available serial ports<br />
println(Serial.list());<br />
// open the appropriate port<br />
myPort = new Serial(this, Serial.list()[2], 9600);<br />
// don&#8217;t generate a serialEvent() until you get an exclamation mark character<br />
myPort.bufferUntil(&#8216;!&#8217;);<br />
// set inital background:<br />
sequencer = new Sequencer();<br />
//MidiIO<br />
midiIO = MidiIO.getInstance();<br />
midiIO.printDevices();<br />
midiIO.closeOutput(1);<br />
//MidiOut<br />
test = midiIO.getMidiOut(1,3);</p>
<p>test.sendProgramChange(new ProgramChange(20));<br />
//Track<br />
track = new Track(&#8220;one&#8221;, test);<br />
track.setQuantization(Q._1_32);<br />
}</p>
<p>void draw () {</p>
<p>background(255);<br />
//loop through the array<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//calculate the position for each entry so that print out is approximately centered onscreen<br />
int xPosition = width/2-((ARRAYX-1)*spacing/2)+j*spacing;<br />
int yPosition = height/2-((ARRAYY-1)*spacing/2)+i*spacing;<br />
//draw the array entries on the screen<br />
//  text(sensorArray[i][j], xPosition, yPosition);</p>
<p>//    noFill();<br />
smooth();<br />
stroke(255,55);<br />
ellipse(xPosition,yPosition, sensorArray[i][j]/20, sensorArray[i][j]/20);</p>
<p>}<br />
}<br />
drawCircles();<br />
}</p>
<p>void serialEvent (Serial myPort) {<br />
//store a batch of data into variable &#8220;inString&#8221;<br />
//batches are separated by exclamation mark characters<br />
String inString = myPort.readStringUntil(&#8216;!&#8217;);<br />
//split the data into rows (rows separated by new line characters)<br />
String[] incomingArrayRows = splitTokens(inString, &#8220;\n&#8221;);<br />
//loop through all of the rows<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
//split each row into entries (entries separated by tab characters)<br />
String[] incomingArrayEntries = splitTokens(incomingArrayRows[i], &#8220;\t&#8221;);<br />
//loop through all of these entries<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//store entries in the &#8220;sensorArray&#8221; variable<br />
sensorArray[i][j]=int(incomingArrayEntries[j]);<br />
//print the entries to the terminal, separated by tab characters<br />
print(sensorArray[i][j]);<br />
print(&#8216;\t&#8217;);<br />
}<br />
//print a new line after each row<br />
println();<br />
}<br />
//print a new line after each batch of data<br />
println();<br />
makesound();</p>
<p>}</p>
<p>void drawCircles()<br />
{</p>
<p>for(int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for(int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//<br />
if (sensorArray[i][j]&gt;500)<br />
{<br />
//calculate the position for each entry so that print out is approximately centered onscreen<br />
int xPosition = width/2-((ARRAYX-1)*spacing/2)+j*spacing;<br />
int yPosition = height/2-((ARRAYY-1)*spacing/2)+i*spacing;</p>
<p>delay(20);<br />
noStroke();<br />
smooth();<br />
fill(#AF0000, 50);<br />
ellipse(xPosition,yPosition, sensorArray[i][j]/5, sensorArray[i][j]/5);<br />
}<br />
}<br />
}<br />
}<br />
void mousePressed(){<br />
if(mouseButton == LEFT) {<br />
makesound();<br />
sequencer.start();<br />
}<br />
else sequencer.stop();</p>
<p>}</p>
<p>boolean flag = false;</p>
<p>void makesound()<br />
{<br />
//test.sendProgramChange(new ProgramChange(20));</p>
<p>for(int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for(int j=0;j&lt;ARRAYY;j++)<br />
{<br />
if (sensorArray[i][j]&gt;300)<br />
{<br />
//volArray[i][j] = int (sensorArray[i][j]/1024*127);<br />
if(volArray[i][j] == 0){<br />
volArray[i][j] = 127;<br />
test.sendNote(new Note(i*4+j+60, 127, 1000));<br />
}<br />
}<br />
else{<br />
volArray[i][j] = 0;<br />
test.sendNote(new Note(i*4+j+60, 0, 0));<br />
}<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3354</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deja Vu</title>
		<link>http://newtextiles.media.mit.edu/?p=3049</link>
		<comments>http://newtextiles.media.mit.edu/?p=3049#comments</comments>
		<pubDate>Thu, 12 May 2011 03:09:51 +0000</pubDate>
		<dc:creator>heidiqc</dc:creator>
				<category><![CDATA[Final Project]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3049</guid>
		<description><![CDATA[by Heidi and Nicole Ladies, have you ever left the house without your cell phone? Locked yourself out without your keys? Paused mid step to hurriedly search your bag for items you thought you may have forgotten? Deja Vu is here to help. The newly developed intelligent bag boasts an RFID system that helps you [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">by Heidi and Nicole</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3073" title="Deja Vu set with custom tags" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3387.jpg" alt="" width="400" height="600" /><img class="aligncenter size-full wp-image-3071" title="Deja Vu - front view" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3378.jpg" alt="" width="400" height="600" /> <a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3378.jpg"></a></p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3072" title="Deja Vu - top view" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3382.jpg" alt="" width="800" height="600" /></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;">
<p>Ladies, have you ever left the house without your cell phone? Locked yourself out without your keys? Paused mid step to hurriedly search your bag for items you thought you may have forgotten?</p>
<p>Deja Vu is here to help. The newly developed intelligent bag boasts an RFID system that helps you to remember to take important items like your wallet, keys, and cell phone with you. Just attach our custom RFID tags to your things, turn on the bag, and you&#8217;re all set. The bag will automatically scan items as they enter and leave, keeping track of what&#8217;s in the bag.  A simple squeeze of the soft button and the LED display will light up to show which items are accounted for, so that you never have to frantically search the bag to check if your items are there.  The bag can take up to 5 tags for important items.<br />
<span id="more-3049"></span></p>
<p style="text-align: left;">
<p style="text-align: center;">
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/jbWgcs8AtyU?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jbWgcs8AtyU?version=3" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;"><strong>Process:</strong></p>
<p style="text-align: left;">Roll over each picture for more details.</p>

<a href='http://newtextiles.media.mit.edu/?attachment_id=3053' title='Making a mock-up of first draft of pattern'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3013.jpg" class="attachment-thumbnail" alt="Making a mock-up of first draft of pattern" title="Making a mock-up of first draft of pattern" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3054' title='Bag paper prototype'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3017.jpg" class="attachment-thumbnail" alt="Bag paper prototype" title="Bag paper prototype" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3055' title='Soldered RFID breakout board'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3021.jpg" class="attachment-thumbnail" alt="Soldered RFID breakout board" title="Soldered RFID breakout board" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3056' title='Testing the RFID reader'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3023.jpg" class="attachment-thumbnail" alt="Testing the RFID reader" title="Testing the RFID reader" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3058' title='Programming the LilyPad'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3237.jpg" class="attachment-thumbnail" alt="Programming the LilyPad" title="Programming the LilyPad" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3059' title='Testing the program'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3238.jpg" class="attachment-thumbnail" alt="Testing the program" title="Testing the program" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3057' title='Sewing the bag prototype'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3193.jpg" class="attachment-thumbnail" alt="Sewing the bag prototype" title="Sewing the bag prototype" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3060' title='Bag prototype following modified pattern'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3239.jpg" class="attachment-thumbnail" alt="Bag prototype following modified pattern" title="Bag prototype following modified pattern" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3061' title='Mapped circuitry on front showing LEDs and button'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3244.jpg" class="attachment-thumbnail" alt="Mapped circuitry on front showing LEDs and button" title="Mapped circuitry on front showing LEDs and button" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3062' title='Sewing prototype circuit'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3249.jpg" class="attachment-thumbnail" alt="Sewing prototype circuit" title="Sewing prototype circuit" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3063' title='Solving battery and circuitry problems'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3252.jpg" class="attachment-thumbnail" alt="Solving battery and circuitry problems" title="Solving battery and circuitry problems" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3064' title='Solving power issues with AA batteries'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3258.jpg" class="attachment-thumbnail" alt="Solving power issues with AA batteries" title="Solving power issues with AA batteries" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3065' title='Mapping revised circuitry on actual bag handle'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3263.jpg" class="attachment-thumbnail" alt="Mapping revised circuitry on actual bag handle" title="Mapping revised circuitry on actual bag handle" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3066' title='New circuitry map - back'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3265.jpg" class="attachment-thumbnail" alt="New circuitry map - back" title="New circuitry map - back" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3067' title='Sewing the Lilypad'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3268.jpg" class="attachment-thumbnail" alt="Sewing the Lilypad" title="Sewing the Lilypad" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3068' title='Mapping circuitry on front'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3269.jpg" class="attachment-thumbnail" alt="Mapping circuitry on front" title="Mapping circuitry on front" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3069' title='All 5 bag components before being put together'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3292.jpg" class="attachment-thumbnail" alt="All 5 bag components before being put together" title="All 5 bag components before being put together" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3070' title='The complete circuitry'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3296.jpg" class="attachment-thumbnail" alt="The complete circuitry" title="The complete circuitry" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3074' title='Circuit behind-the-scenes'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3278.jpg" class="attachment-thumbnail" alt="Circuit behind-the-scenes" title="Circuit behind-the-scenes" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3071' title='Deja Vu - front view'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3378.jpg" class="attachment-thumbnail" alt="Deja Vu - front view" title="Deja Vu - front view" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3072' title='Deja Vu - top view'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3382.jpg" class="attachment-thumbnail" alt="Deja Vu - top view" title="Deja Vu - top view" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3073' title='Deja Vu set with custom tags'><img width="112" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3387.jpg" class="attachment-thumbnail" alt="Deja Vu set with custom tags" title="Deja Vu set with custom tags" /></a>

<p style="text-align: left;">
<p style="text-align: left;">
<p><strong>Download the presentation slides here:</strong><br />
<a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/NewTextilesFinalProjectl.pdf">NewTextilesFinalProjectPresentation-DejaVu</a><br />
It contains more details about the project, including: inspirations, process, circuitry, challenges encountered and future improvements.</p>
<p><strong>Many thanks to:</strong><br />
<a href="http://bildr.org/2011/02/rfid-arduino/">http://bildr.org/2011/02/rfid-arduino/</a> &#8211; for the RFID- Arduino interfacing and code<br />
<a href="http://machenmachen.files.wordpress.com/2007/08/machen-machen-wasp-bag.pdf">http://machenmachen.files.wordpress.com/2007/08/machen-machen-wasp-bag.pdf</a> &#8211; for the bag pattern</p>
<p><strong>Arduino Code:</strong></p>
<div id="_mcePaste">// set pin numbers</div>
<div id="_mcePaste">int RFIDResetPin = 3;</div>
<div id="_mcePaste">int RFIDLedPin = 13;</div>
<div id="_mcePaste">int led1 = 8;</div>
<div id="_mcePaste">int led2 = 9;</div>
<div id="_mcePaste">int led3 = 10;</div>
<div id="_mcePaste">int led4 = 11;</div>
<div id="_mcePaste">int led5 = 12;</div>
<div id="_mcePaste">int CheckStatusPin = A3;</div>
<div id="_mcePaste">int Clasp = A4;</div>
<div id="_mcePaste">int RFIDSwitch= A5;</div>
<div>//Register your RFID tags here</div>
<div id="_mcePaste">char tag1[13] = &#8220;4500B8ED3222&#8243;;</div>
<div id="_mcePaste">char tag2[13] = &#8220;4500B8DAF4D3&#8243;;</div>
<div id="_mcePaste">char tag3[13] = &#8220;4400E6A55453&#8243;;</div>
<div id="_mcePaste">char tag4[13] = &#8220;4400E6A46F69&#8243;;</div>
<div id="_mcePaste">char tag5[13] = &#8220;00365F8F6482&#8243;;</div>
<div>// initialize boolean variables</div>
<div id="_mcePaste">boolean item1 = false;</div>
<div id="_mcePaste">boolean item2 = false;</div>
<div id="_mcePaste">boolean item3 = false;</div>
<div id="_mcePaste">boolean item4 = false;</div>
<div id="_mcePaste">boolean item5 = false;</div>
<div>void setup(){</div>
<div id="_mcePaste">Serial.begin(9600);</div>
<div id="_mcePaste">pinMode(RFIDResetPin, OUTPUT);</div>
<div id="_mcePaste">pinMode(RFIDSwitch, OUTPUT);</div>
<div id="_mcePaste">pinMode(Clasp, INPUT);</div>
<div id="_mcePaste">digitalWrite(Clasp, HIGH);</div>
<div id="_mcePaste">pinMode(RFIDLedPin, OUTPUT); // flashing pin when item is read</div>
<div id="_mcePaste">pinMode(CheckStatusPin, INPUT);</div>
<div id="_mcePaste">digitalWrite(CheckStatusPin, HIGH);</div>
<div id="_mcePaste">//set up led pins</div>
<div id="_mcePaste">pinMode(led1, OUTPUT);</div>
<div id="_mcePaste">pinMode(led2, OUTPUT);</div>
<div id="_mcePaste">pinMode(led3, OUTPUT);</div>
<div id="_mcePaste">pinMode(led4, OUTPUT);</div>
<div id="_mcePaste">pinMode(led5, OUTPUT);</div>
<div id="_mcePaste">}</div>
<div>void loop(){</div>
<div id="_mcePaste">// when the bag is open, turn on RFID reader power via MOSFET</div>
<div id="_mcePaste">if (digitalRead(Clasp) == HIGH) {</div>
<div id="_mcePaste">digitalWrite(RFIDSwitch, HIGH);</div>
<div id="_mcePaste">//Serial.println(500); for debugging</div>
<div id="_mcePaste">} else {</div>
<div id="_mcePaste">digitalWrite(RFIDSwitch, LOW);</div>
<div id="_mcePaste">Serial.println(550); // for debugging</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">char tagString[13];</div>
<div id="_mcePaste">int index = 0;</div>
<div id="_mcePaste">boolean reading = false;</div>
<div id="_mcePaste">//Serial.println(12); for debugging</div>
<div id="_mcePaste">// when a card is passed over the RFID reader, get tag code</div>
<div id="_mcePaste">while(Serial.available()){</div>
<div id="_mcePaste">Serial.println(10);</div>
<div id="_mcePaste">int readByte = Serial.read(); //read next available byte</div>
<div id="_mcePaste">if(readByte == 2) reading = true; //begining of tag</div>
<div id="_mcePaste">if(readByte == 3) reading = false; //end of tag</div>
<div id="_mcePaste">if(reading &amp;&amp; readByte != 2 &amp;&amp; readByte != 10 &amp;&amp; readByte != 13){</div>
<div id="_mcePaste">//store the tag</div>
<div id="_mcePaste">tagString[index] = readByte;</div>
<div id="_mcePaste">index ++;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">//Serial.println(13); for debugging</div>
<div id="_mcePaste">checkTag(tagString); //Check if it is a match</div>
<div id="_mcePaste">clearTag(tagString); //Clear the char of all value</div>
<div id="_mcePaste">resetReader(); //reset the RFID reader</div>
<div id="_mcePaste">// if button is pressed, light up led corresponding to tag read</div>
<div id="_mcePaste">if (digitalRead(CheckStatusPin) == LOW) {</div>
<div id="_mcePaste">Serial.println(300);</div>
<div id="_mcePaste">if (item1== true) {</div>
<div id="_mcePaste">digitalWrite(led1,HIGH);</div>
<div id="_mcePaste">} if (item2 == true) {</div>
<div id="_mcePaste">digitalWrite(led2, HIGH);</div>
<div id="_mcePaste">} if (item3 == true) {</div>
<div id="_mcePaste">digitalWrite(led3, HIGH);</div>
<div id="_mcePaste">} if (item4 == true) {</div>
<div id="_mcePaste">digitalWrite(led4, HIGH);</div>
<div id="_mcePaste">} if (item5 == true) {</div>
<div id="_mcePaste">digitalWrite(led5, HIGH);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">} else {</div>
<div id="_mcePaste">digitalWrite(led1, LOW);</div>
<div id="_mcePaste">digitalWrite(led2, LOW);</div>
<div id="_mcePaste">digitalWrite(led3, LOW);</div>
<div id="_mcePaste">digitalWrite(led4, LOW);</div>
<div id="_mcePaste">digitalWrite(led5, LOW);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div>void checkTag(char tag[]){</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">//Check the read tag against known tags, toggle boolean variable</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">if(strlen(tag) == 0) return; //empty, no need to contunue</div>
<div id="_mcePaste">if(compareTag(tag, tag1)){ // if matched tag1, do this</div>
<div id="_mcePaste">lightLED(RFIDLedPin);</div>
<div id="_mcePaste">item1 = !item1;</div>
<div id="_mcePaste">}else if(compareTag(tag, tag2)){ //if matched tag2, do this</div>
<div id="_mcePaste">lightLED(RFIDLedPin);</div>
<div id="_mcePaste">item2 = !item2;</div>
<div id="_mcePaste">}else if(compareTag(tag, tag3)){ //if matched tag3, do this</div>
<div id="_mcePaste">lightLED(RFIDLedPin);</div>
<div id="_mcePaste">item3 = !item3;</div>
<div id="_mcePaste">}else if(compareTag(tag, tag4)){ //if matched tag4, do this</div>
<div id="_mcePaste">lightLED(RFIDLedPin);</div>
<div id="_mcePaste">item4 = !item4;</div>
<div id="_mcePaste">}else if(compareTag(tag, tag5)){ //if matched tag5, do this</div>
<div id="_mcePaste">lightLED(RFIDLedPin);</div>
<div id="_mcePaste">item5 = !item5;</div>
<div id="_mcePaste">}else{</div>
<div id="_mcePaste">Serial.println(tag); //read out any unknown tag</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div>void lightLED(int pin){</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">//Turn on LED on pin &#8220;pin&#8221; for 250ms</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">Serial.println(pin);</div>
<div id="_mcePaste">digitalWrite(pin, HIGH);</div>
<div id="_mcePaste">delay(250);</div>
<div id="_mcePaste">digitalWrite(pin, LOW);</div>
<div id="_mcePaste">}</div>
<div>void resetReader(){</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">//Reset the RFID reader to read again.</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">digitalWrite(RFIDResetPin, LOW);</div>
<div id="_mcePaste">digitalWrite(RFIDResetPin, HIGH);</div>
<div id="_mcePaste">delay(150);</div>
<div id="_mcePaste">}</div>
<div>void clearTag(char one[]){</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">//clear the char array by filling with null &#8211; ASCII 0</div>
<div id="_mcePaste">//Will think same tag has been read otherwise</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">for(int i = 0; i &lt; strlen(one); i++){</div>
<div id="_mcePaste">one[i] = 0;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">boolean compareTag(char one[], char two[]){</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">//compare two value to see if same,</div>
<div id="_mcePaste">//strcmp not working 100% so we do this</div>
<div id="_mcePaste">///////////////////////////////////</div>
<div id="_mcePaste">if(strlen(one) == 0) return false; //empty</div>
<div id="_mcePaste">for(int i = 0; i &lt; 12; i++){</div>
<div id="_mcePaste">if(one[i] != two[i]) return false;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">return true; //no mismatches</div>
<div id="_mcePaste">}</div>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3049</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving screen</title>
		<link>http://newtextiles.media.mit.edu/?p=3223</link>
		<comments>http://newtextiles.media.mit.edu/?p=3223#comments</comments>
		<pubDate>Thu, 12 May 2011 01:22:15 +0000</pubDate>
		<dc:creator>denamolnar</dc:creator>
				<category><![CDATA[Final Project]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3223</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-3229" href="http://newtextiles.media.mit.edu/?attachment_id=3229"><img class="aligncenter size-full wp-image-3229" title="IMG_9789" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9789.jpg" alt="" width="317" height="300" /></a></p>
<p>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.</p>
<p><a rel="attachment wp-att-3231" href="http://newtextiles.media.mit.edu/?attachment_id=3231"><img class="aligncenter size-full wp-image-3231" title="IMG_9795" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9795.jpg" alt="" width="511" height="341" /></a></p>
<p>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.</p>
<p><a rel="attachment wp-att-3232" href="http://newtextiles.media.mit.edu/?attachment_id=3232"><img class="aligncenter size-full wp-image-3232" title="IMG_9796" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9796.jpg" alt="" width="341" height="511" /></a></p>
<p>Above is detail of the first stripe shifting in color.</p>
<p><a rel="attachment wp-att-3227" href="http://newtextiles.media.mit.edu/?attachment_id=3227"><img class="aligncenter size-full wp-image-3227" title="IMG_9710" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9710.jpg" alt="" width="341" height="336" /></a></p>
<p>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.</p>
<p><a rel="attachment wp-att-3228" href="http://newtextiles.media.mit.edu/?attachment_id=3228"><img class="aligncenter size-full wp-image-3228" title="IMG_9787" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9787.jpg" alt="" width="511" height="341" /></a></p>
<p>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.</p>
<p><a rel="attachment wp-att-3230" href="http://newtextiles.media.mit.edu/?attachment_id=3230"><img class="aligncenter size-full wp-image-3230" title="IMG_9790" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9790.jpg" alt="" width="341" height="511" /></a></p>
<p>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.</p>
<p><a rel="attachment wp-att-3245" href="http://newtextiles.media.mit.edu/?attachment_id=3245"><img class="aligncenter size-full wp-image-3245" title="IMG_9800" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9800.jpg" alt="" width="511" height="341" /></a></p>
<p>After some initial trial and error (and a failed attempt to get the prototype working during the final presentation)..success!</p>
<p><a rel="attachment wp-att-3244" href="http://newtextiles.media.mit.edu/?attachment_id=3244"><img class="aligncenter size-full wp-image-3244" title="IMG_9798" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9798.jpg" alt="" width="511" height="341" /></a></p>
<p>Arduino Code</p>
<div id="_mcePaste">/*</div>
<div id="_mcePaste">AnalogReadSerial</div>
<div id="_mcePaste">Reads an analog input on pin 0, prints the result to the serial monitor</div>
<div id="_mcePaste">This example code is in the public domain.</div>
<div id="_mcePaste">*/</div>
<div id="_mcePaste">int sensorold, sensornew;</div>
<div id="_mcePaste">int sensordif = 3;</div>
<div id="_mcePaste">boolean trigger;</div>
<div id="_mcePaste">void setup() {</div>
<div id="_mcePaste">pinMode(2, OUTPUT);</div>
<div id="_mcePaste">pinMode (6, OUTPUT);</div>
<div id="_mcePaste">pinMode (7, OUTPUT);</div>
<div id="_mcePaste">pinMode (13, OUTPUT);</div>
<div id="_mcePaste">digitalWrite(2, LOW);</div>
<div id="_mcePaste">digitalWrite(6, LOW);</div>
<div id="_mcePaste">digitalWrite(7, LOW);</div>
<div id="_mcePaste">digitalWrite(13, LOW);</div>
<div id="_mcePaste">sensorold = analogRead(A0);</div>
<div id="_mcePaste">sensornew = sensorold;</div>
<div id="_mcePaste">trigger = false;</div>
<div id="_mcePaste">Serial.begin(9600);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">void loop() {</div>
<div id="_mcePaste">sensornew = analogRead(A0);</div>
<div id="_mcePaste">if (abs(sensornew &#8211; sensorold) &gt; sensordif)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">Serial.println(&#8220;trigger 2&#8243;);</div>
<div id="_mcePaste">digitalWrite(2, HIGH);</div>
<div id="_mcePaste">digitalWrite (13, HIGH);</div>
<div id="_mcePaste">// set the LED on</div>
<div id="_mcePaste">delay(1000);</div>
<div id="_mcePaste">// wait for a second</div>
<div id="_mcePaste">digitalWrite(2, LOW);</div>
<div id="_mcePaste">digitalWrite (13, LOW);  // set the LED off</div>
<div id="_mcePaste">Serial.println(&#8220;off 2&#8243;);</div>
<div id="_mcePaste">delay(10000);</div>
<div id="_mcePaste">Serial.println(&#8220;trigger 6&#8243;);</div>
<div id="_mcePaste">digitalWrite (6, HIGH);</div>
<div id="_mcePaste">delay(1000);</div>
<div id="_mcePaste">Serial.println(&#8220;off 6&#8243;);</div>
<div id="_mcePaste">digitalWrite (6, LOW);</div>
<div id="_mcePaste">delay(10000);</div>
<div id="_mcePaste">Serial.println(&#8220;trigger 7&#8243;);</div>
<div id="_mcePaste">digitalWrite (7, HIGH);</div>
<div id="_mcePaste">delay(1000);</div>
<div id="_mcePaste">digitalWrite (7, LOW);</div>
<div id="_mcePaste">Serial.println(&#8220;off 7&#8243;);</div>
<div id="_mcePaste">delay(10000);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">// Serial.println(sensorValue, DEC);</div>
<div id="_mcePaste">}</div>
<p>/*  AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor   This example code is in the public domain. */<br />
int sensorold, sensornew;int sensordif = 3;boolean trigger;<br />
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);}<br />
void loop() {  sensornew = analogRead(A0);  if (abs(sensornew &#8211; sensorold) &gt; sensordif)  {    Serial.println(&#8220;trigger 2&#8243;);    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(&#8220;off 2&#8243;);    delay(10000);    Serial.println(&#8220;trigger 6&#8243;);    digitalWrite (6, HIGH);    delay(1000);    Serial.println(&#8220;off 6&#8243;);    digitalWrite (6, LOW);    delay(10000);    Serial.println(&#8220;trigger 7&#8243;);    digitalWrite (7, HIGH);    delay(1000);    digitalWrite (7, LOW);    Serial.println(&#8220;off 7&#8243;);    delay(10000);  }   // Serial.println(sensorValue, DEC);}</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3223</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Albert&#8217;s Amarino-Powered Kung-Fu Jacket</title>
		<link>http://newtextiles.media.mit.edu/?p=3220</link>
		<comments>http://newtextiles.media.mit.edu/?p=3220#comments</comments>
		<pubDate>Wed, 11 May 2011 23:35:57 +0000</pubDate>
		<dc:creator>mrching</dc:creator>
				<category><![CDATA[Final Project]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3220</guid>
		<description><![CDATA[How do you talk to a jacket?  There was a time when if you did, people would look at you a little bit funny. These days, with a little thing called an Android phone, a powerful little circuitboard called Lilypad Arduino, and an amazing toolkit called Amarino developed by Bonifaz Kaufmann, you can talk to [...]]]></description>
			<content:encoded><![CDATA[<p>How do you talk to a jacket?  There was a time when if you did, people would look at you a little bit funny.</p>
<p>These days, with a little thing called an Android phone, a powerful little circuitboard called Lilypad Arduino, and an amazing toolkit called <a href="http://www.amarino-toolkit.net/">Amarino</a> developed by Bonifaz Kaufmann, you can talk to your jacket &#8212; and even better, you can talk to someone else&#8217;s!</p>
<div class="wp-caption alignnone" style="width: 730px"><img title="User Testing the Kung-Fu Jacket" src="https://lh6.googleusercontent.com/_Y9p6N00ThMQ/TcreQUaSSoI/AAAAAAABIxI/mt7ep1Wrk4Y/s720/IMG_0100.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">User Testing the Kung-Fu Jacket</p></div>
<p><span id="more-3220"></span></p>
<p>The Amarino-Powered Kung-Fu Jacket that I developed started with an understanding of how an Android phone could talk to an Arduino board.  The connection is based on two necessary but ubiquitous components &#8212; a <a href="Lilypad Arduino and Bluetooth modem">bluetooth modem</a> for the Arduino and the free and open toolkit called Amarino that Kaufmann developed back in 2009.</p>
<div class="wp-caption alignnone" style="width: 730px"><img title="Lilypad Arduino and Bluetooth modem" src="https://lh4.googleusercontent.com/_Y9p6N00ThMQ/TcreQE0hlFI/AAAAAAABIxA/oARsUFxu7Rc/s720/IMG_0099.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Lilypad Arduino and Bluetooth modem</p></div>
<div class="wp-caption alignnone" style="width: 730px"><img title="Amarino on the Android" src="https://lh3.googleusercontent.com/_Y9p6N00ThMQ/TcreSkLGvFI/AAAAAAABIyA/MPgdsbz7yd8/s720/IMG_0198.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Amarino on the Android</p></div>
<p>The first test was to see if these items could talk to each other.  After some initial testing, success.</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/qIiLoBPwxZ8?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qIiLoBPwxZ8?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/dAGzDLDqMyY?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dAGzDLDqMyY?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>From there, I wanted to incorporate this technology into existing garments &#8212; not just because my sewing skills are quite rough but as much because I wanted to find a way to augment any garment that I had with smart technology.  The challenge was to design it in a way that allowed the garment to be resilient to washing.  The solution was simple in retrospect &#8212; soldered-on snaps! The snaps made it easy to remove the Lilypad board, the bluetooth and the battery when either the technology or the garment needed maintenance.</p>
<div class="wp-caption alignnone" style="width: 730px"><img title="Snaps soldered onto a Lilypad board" src="https://lh5.googleusercontent.com/_Y9p6N00ThMQ/TcreSA3igKI/AAAAAAABIx4/POBcT6aK3cY/s720/IMG_0197.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Snaps soldered onto a Lilypad board The next</p></div>
<p>Next, it was important to know where to put the output device &#8212; in this case, the vibrator to have maximum effect for the user.  After a bit of user-<br />
testing including changing the conductive threat to a thicker one that provided more current and thus a stronger and more tangible vibration, I determined that the most sensitive part of my upper-quadrant (where the Arduino board was located) was the small area smack between my shoulders.  Since I wanted the vibrator to be felt by the user, I ended up sewing a place for snaps there.  (A few users have told me that the vibrator is so strong that if it was a bit stronger, it would give them a good shoulder massage).</p>
<div class="wp-caption alignnone" style="width: 730px"><img title="Vibrator" src="https://lh5.googleusercontent.com/_Y9p6N00ThMQ/TcreRyNDQTI/AAAAAAABIxw/aWZGSBYxdmQ/s720/IMG_0196.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Vibrator</p></div>
<p>With the platform in place, my final step was to program the Arduino board to sync with the multiple sensors on the Android phone in a unique way.  I started with the amazing <a href="http://developer.android.com/reference/android/hardware/Sensor.html">accelerometer</a> on an Android, a sensor that sends different data based on the orientation of the phone through 3 axes &#8211; x, y and z.  While it took a little learning to utilize that data for something that could then be translated into an output on the jacket, I got it to work in a basic and I think fun way!</p>
<div class="wp-caption alignnone" style="width: 730px"><img title="Kung-Fu-ing with My Jacket Take 1" src="https://lh4.googleusercontent.com/_Y9p6N00ThMQ/TcreROWtHkI/AAAAAAABIxY/8k0gGTI9pRY/s720/IMG_0102.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Kung-Fu-ing with My Jacket Take 1 </p></div>
<div class="wp-caption alignnone" style="width: 730px"><img title="Kung-Fu-ing with My Jacket Take 2" src="https://lh5.googleusercontent.com/_Y9p6N00ThMQ/TcreRTqZCJI/AAAAAAABIxg/gwQxtK6-_VM/s720/IMG_0103.JPG" alt="" width="720" height="480" /><p class="wp-caption-text">Kung-Fu-ing with My Jacket Take 2</p></div>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/-eoGoxo752I?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-eoGoxo752I?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The interesting part of the coding was whether or not to precisely to map the accelerometer movements with the outputs of the jacket &#8212; in other words to make it clear what orientations of the phone &#8211; up, down, horizontal &#8211; would respond to what outputs e.g. LED lighting up or a vibrator vibrating.  The looser the constraints e.g. LED lights up when phone is middle down to middle up made it more fun for the user to exaggerate their motions and to discover what actions was triggering what event.</p>
<p>You can see the code I used in the end below:</p>
<div id="_mcePaste">/*</div>
<div id="_mcePaste">Turns on vibrator when phone is vertical down and the LED when phone is horizontal.</div>
<div id="_mcePaste">Both turn off when the phone is vertical up.</div>
<div id="_mcePaste">Author: Albert Ching &#8211; May 2011</div>
<div id="_mcePaste">*/</div>
<div id="_mcePaste">#include &lt;MeetAndroid.h&gt;</div>
<div id="_mcePaste">// declare MeetAndroid so that you can call functions with it</div>
<div id="_mcePaste">MeetAndroid meetAndroid;</div>
<div id="_mcePaste">// starting with 1 LED</div>
<div id="_mcePaste">int vibrator = 16;</div>
<div id="_mcePaste">int LED = 11;</div>
<div id="_mcePaste">void setup()</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">// use the baud rate your bluetooth module is configured to</div>
<div id="_mcePaste">// not all baud rates are working well, i.e. ATMEGA168 works best with 57600</div>
<div id="_mcePaste">Serial.begin(57600);</div>
<div id="_mcePaste">// register callback functions, which will be called when an associated event occurs.</div>
<div id="_mcePaste">meetAndroid.registerFunction(vibrateoff, &#8216;A&#8217;);</div>
<div id="_mcePaste">pinMode(vibrator, OUTPUT);</div>
<div id="_mcePaste">pinMode(LED, OUTPUT);</div>
<div id="_mcePaste">digitalWrite(vibrator, LOW);</div>
<div id="_mcePaste">digitalWrite(LED, LOW);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">void loop()</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">meetAndroid.receive(); // you need to keep this in your loop() to receive events</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">void vibrateoff(byte flag, byte numOfValues)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">int values[]={0,0,0};</div>
<div id="_mcePaste">meetAndroid.getIntValues(values);</div>
<div id="_mcePaste">// xxx</div>
<div id="_mcePaste">int X=values[1];</div>
<div id="_mcePaste">int Y=values[2];</div>
<div id="_mcePaste">int Z=values[3];</div>
<div id="_mcePaste">if (Y &lt; -4) {</div>
<div id="_mcePaste">digitalWrite(vibrator, LOW);</div>
<div id="_mcePaste">digitalWrite(LED, LOW);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">else if (Y &lt; 4) {</div>
<div id="_mcePaste">digitalWrite(vibrator, HIGH);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">else if (Y &gt; 4) {</div>
<div id="_mcePaste">digitalWrite(LED, HIGH);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">else</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">digitalWrite(vibrator, LOW);</div>
<div id="_mcePaste">digitalWrite(LED, LOW);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<p>Since the phone also had a number of other sensors, I also tested out using the receive SMS sensor in Amarino.  It was simple to set-up and<br />
my intention was to have the LED change based on the message that was received from a user.  Unfortunately, I couldn&#8217;t get the coding correctly so I only got a single LED event but imagine that it would not be too difficult to figure out how to adjust the code below to figure this out.</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/AOkZj1eU0Lo?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/AOkZj1eU0Lo?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>/*</p>
<p>Turns on LED when phone receives an SMS.</p>
<p>Author: Albert Ching &#8211; May 2011</p>
<p>*/</p>
<p>#include &lt;MeetAndroid.h&gt;</p>
<p>// declare MeetAndroid so that you can call functions with it</p>
<p>MeetAndroid meetAndroid;</p>
<p>// starting with 1 LED</p>
<p>int LED = 11;</p>
<p>void setup()</p>
<p>{</p>
<p>// use the baud rate your bluetooth module is configured to</p>
<p>// not all baud rates are working well, i.e. ATMEGA168 works best with 57600</p>
<p>Serial.begin(57600);</p>
<p>// register callback functions, which will be called when an associated event occurs.</p>
<p>meetAndroid.registerFunction(LEDon, &#8216;A&#8217;);</p>
<p>pinMode(LED, OUTPUT);</p>
<p>digitalWrite(LED, LOW);</p>
<p>}</p>
<p>void loop()</p>
<p>{</p>
<p>meetAndroid.receive(); // you need to keep this in your loop() to receive events</p>
<p>}</p>
<p>void LEDon (byte flag, byte numOfValues)</p>
<p>{</p>
<p>int values[]={0};</p>
<p>meetAndroid.getIntValues(values);</p>
<p>// xxx</p>
<p>int X=values[1];</p>
<p>if (X = &#8216;hey&#8217;) {</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>} else if (X = &#8216;aloha&#8217;) {</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(1000);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>} else if (X = &#8216;aloha baby&#8217;) {</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, HIGH); // set the LED on</p>
<p>delay(200);              // wait for a second</p>
<p>digitalWrite(LED, LOW);    // set the LED off</p>
<p>} else</p>
<p>{</p>
<p>digitalWrite(LED, LOW);</p>
<p>}</p>
<p>}</p>
<p>The great thing with this project (for me at least) is that my jacket is now a platform for expressing anything that my Android phone can do.  With the significant range of the Bluetooth (100 meters), it can even be controlled by someone far away.  After showing the jacket to many of my classmates, I&#8217;ve heard of use cases from a long-distance massage, a way to find someone subtly in a crowd, to give real-time feedback to a presenter or a teacher, to receive text message notifications without being close to our sometimes too clingy  mobile phones.</p>
<p>I can&#8217;t wait to continue the experimentation and am extremely grateful to Leah and the other members of the High-Low Tech lab for introducing this whole new world to me &#8212; and to Bonifaz for creating this very easy to use toolkit.  Mahalo nui loa!</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3220</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Archigram Skirt featuring Walking City</title>
		<link>http://newtextiles.media.mit.edu/?p=3109</link>
		<comments>http://newtextiles.media.mit.edu/?p=3109#comments</comments>
		<pubDate>Wed, 11 May 2011 14:00:44 +0000</pubDate>
		<dc:creator>KristyKat</dc:creator>
				<category><![CDATA[Final Project]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3109</guid>
		<description><![CDATA[Last semester, I became very interested in Archigram. As a final project for one of my classes, I modeled and rendered an animation of Walking City. In my final project proposal for this class,  I proposed making a dress that featured Walking City and included charlie plexing circuitry for a scatter/sparkly lighting effect. After speaking [...]]]></description>
			<content:encoded><![CDATA[<p>Last semester, I became very interested in Archigram. As a final project for one of my classes, I modeled and rendered an animation of Walking City. In my final project proposal for this class,  I proposed making a dress that featured Walking City and included charlie plexing circuitry for a scatter/sparkly lighting effect. After speaking with Leah, I decided to scale down my project by excluding the circuitry and  sewing a skirt instead of a dress.</p>
<p><strong>Skirt Design</strong></p>
<p>To simplify things a bit (and after noticing that skirt patterns weren&#8217;t quite available in my size at a local fabric store), I decided to extract a skirt pattern from one of my favorite skirts. I&#8217;m not quite  familiar with sewing clothes, however, with some previous quilting experience, I improvised extracting the pattern and sewing the pieces together. From the previous assignment with the embroidery machine, I chose to use a thick fabric to lessen the chances of the bobbin thread bunching and knotting.</p>
<div id="attachment_3180" class="wp-caption alignleft" style="width: 385px"><a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3726.jpg"><img class="size-full wp-image-3180" title="DSCN3726" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3726.jpg" alt="" width="375" height="279" /></a><p class="wp-caption-text">One of my favorite skirts.</p></div>
<div id="attachment_3172" class="wp-caption alignleft" style="width: 382px"><a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3635.jpg"><img class="size-full wp-image-3172" title="DSCN3635" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3635.jpg" alt="" width="372" height="277" /></a><p class="wp-caption-text">Cutting the pattern out.</p></div>
<p><img class="alignleft size-full wp-image-3184" title="Pattern_skirt" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Pattern_skirt.png" alt="" width="800" height="431" /></p>
<p><strong> Processing Code<br />
</strong></p>
<p>For my original computation assignment, I began working on code  that evaluated the RGB value of a given pixel of an image and then visualized the pixel&#8217;s RGB value with another shape &#8212; such as  a circle. I worked on this code a little more for this project so that I could change the number of pixels that were evaluated in the x and y directions in addition to filtering the image&#8217;s colors into 5 colors.</p>
<p><img class="alignleft size-full wp-image-3183" title="test2" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/test2.jpg" alt="" width="365" height="291" /><img class="alignleft size-full wp-image-3182" title="final" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/final.jpg" alt="" width="380" height="260" /></p>
<p><strong>Embroidery</strong></p>
<p>The embroidery took about ~4 hours. As the embroidery progressed, I cut the needle thread. After the embroidery finished, I cut off the loose needle thread. Here&#8217;s a <a href="http://www.youtube.com/watch?v=I2JNVH6tXu8"><strong>YouTube Video</strong></a> of the embroidery process.</p>
<p><img class="alignleft size-full wp-image-3177" title="DSCN3708" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3708.jpg" alt="" width="256" height="192" /></p>
<p><strong><img class="alignleft size-full wp-image-3176" title="DSCN3706" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3706.jpg" alt="" width="257" height="195" /></strong></p>
<p><strong><img class="alignleft size-full wp-image-3174" title="DSCN3702" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3702.jpg" alt="" width="255" height="198" /></strong></p>
<p><img class="alignnone size-full wp-image-3179" title="DSCN3714" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3714.jpg" alt="" width="800" height="600" /></p>
<p><img class="alignnone size-full wp-image-3181" title="Final Presentation10" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Final-Presentation10.jpg" alt="" width="800" height="558" /></p>
<p><strong>Problems</strong></p>
<p>The most problems I had were with the embroidery machine.  There was inconsistency from the color layout as depicted in Processing code to the 29 threads that the embroidery software detected (which I filtered down to five in processing). In the embroidery software, I filtered back down to 5 threads again, but 29 threads still showed up while embroidering.</p>
<p><strong>Further Work</strong></p>
<p>As part of my thesis, I&#8217;ve continued studying Archigram&#8217;s works through 3D modeling and rendering of  one of their other projects: Plug-in City. I&#8217;m interested in continuing modeling their work after I graduate from MIT. As I&#8217;ve worked on the project for this class, I began to consider my skirt being similar to a Girl Scout&#8217;s sash ( i.e., as they complete projects/requirements, they receive a badge as a indication of their work and progress which is sewn onto the sash). For this project, I chose to embroider Walking City because it&#8217;s something I&#8217;ve worked on and completed. And, similar to a Girl Scout&#8217;s badge, I&#8217;ve considered adding embroidery of other Archigram projects on the skirt as I complete modeling and rendering other Archigram Projects. I may be including an embroidery of Plug-in City very soon.</p>
<p>In my proposal, I also considered adding light and this is something I may do after finals.</p>
<p><strong>Files</strong></p>
<p><a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Final-Presentation-_crystalr2.pdf" target="_blank">Final Presentation</a></p>
<p><a href="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Pattern.pdf">Pattern</a></p>
<p><strong>Code</strong></p>
<p>int x=0;<br />
int y=0;<br />
int a=50;<br />
int b=0;<br />
int e=0;<br />
int f=50;<br />
int img_y = 0;<br />
int img_x = 0;<br />
PImage img;</p>
<p>void setup()<br />
{<br />
size (1200,700);<br />
img = loadImage(&#8220;test2.jpg&#8221;);<br />
smooth();<br />
background(255);</p>
<p>//image size<br />
int img_width = img.width;<br />
int img_height = img.height;</p>
<p>int stepsize = 10;<br />
int width_density = round(512/stepsize)-1;<br />
int height_density = round(281/stepsize)-1;</p>
<p>for (int i=0;i&lt; width_density;i++) //X<br />
{</p>
<p>for (int j=0;j&lt; height_density ;j++) //Y<br />
{<br />
//Pick a point<br />
//Archigram Image 512 px by 281 px<br />
img_x = x+i*stepsize ;<br />
img_y = y+j*stepsize ;<br />
int loc = img_x + img_y*img.width;</p>
<p>// Look up the RGB color in the source image<br />
loadPixels();<br />
float r = red(img.pixels[loc]);<br />
float g = green(img.pixels[loc]);<br />
float b = blue(img.pixels[loc]);</p>
<p>//Test to check that shades of gray are when r==g==b<br />
/*if(r==g &amp;&amp; g==b) {</p>
<p>}*/<br />
noStroke();</p>
<p>//Limit fill to 5 shades of gray<br />
//keep dark spots dark<br />
//Values of RGB determined per http://www.w3schools.com/html/html_colors.asp<br />
//Shade 1 &#8212; Black<br />
int shade1 = 32;<br />
int shade2 = 88; // between 25 and 72<br />
int shade3 = 120;<br />
int shade4 = 180;<br />
int shade5 = 220;<br />
int shade6 = 255;</p>
<p>if(r &lt;= shade1 &amp;&amp; g &lt;= shade1 &amp;&amp; b &lt;= shade1) {<br />
r = 0;<br />
g = 0;<br />
b = 0;<br />
}</p>
<p>else if ((r&lt;=shade2 &amp;&amp; r&gt;shade1) || (g&lt;=shade2 &amp;&amp; g&gt;shade1) || (b&lt;=shade2 &amp;&amp; b&gt;shade1))  {<br />
/*r = 48;<br />
g = 48;<br />
b = 48; */</p>
<p>r = 255;<br />
g = 0;<br />
b = 0;  //ReD</p>
<p>}</p>
<p>else if ((r&lt;=shade3 &amp;&amp; r&gt;shade2) || (g&lt;=shade3 &amp;&amp; g&gt;shade2) || (b&lt;=shade3 &amp;&amp; b&gt;shade2))   {<br />
/*r = 96;<br />
g = 96;<br />
b = 96; */</p>
<p>r = 128;<br />
g = 0;<br />
b = 128; //Magenta<br />
}</p>
<p>else if (r&lt;=shade4 &amp;&amp; r&gt;shade3)  {<br />
/*r = 136;<br />
g = 136;<br />
b = 136; */</p>
<p>r = 255;<br />
g = 255;<br />
b = 0; //Yellow</p>
<p>}</p>
<p>else if (r&lt;=shade5 &amp;&amp; r&gt;shade4)  {<br />
r = 255;<br />
g = 128;<br />
b = 0;  //Orange<br />
//print(&#8220;test: &#8220;);<br />
}</p>
<p>else  {<br />
r = 255;<br />
g = 255;<br />
b = 255; //White<br />
}</p>
<p>fill(r, g, b);</p>
<p>int radius = round(random(8,15)); //width<br />
int radius2 = round(random(3,8)); //height<br />
int tester = width_density-5;<br />
if(j==tester) {<br />
radius = 5;<br />
radius2 = 8;<br />
print(&#8220;j: &#8221; + j);<br />
}</p>
<p>ellipse(x+i*10, y+j*10, radius, radius2);</p>
<p>}<br />
}</p>
<p>}</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game for Gettysburg</title>
		<link>http://newtextiles.media.mit.edu/?p=3042</link>
		<comments>http://newtextiles.media.mit.edu/?p=3042#comments</comments>
		<pubDate>Wed, 11 May 2011 02:50:57 +0000</pubDate>
		<dc:creator>Sheralyn Woon</dc:creator>
				<category><![CDATA[Final Project]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=3042</guid>
		<description><![CDATA[Inspired by an earlier project on the PCB Puzzle, I wanted to use the same concept to develop a game for an online site that teaches 5th graders about the civil war. The embroidery process and writing code in Processing was challenging.  The various pieces had to fit properly. When pieces were sewn separately, the [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by an earlier project on the <a title="PCB Puzzle" href="http://newtextiles.media.mit.edu/?p=1414" target="_blank">PCB Puzzle</a>, I wanted to use the same concept to develop a game for an online site that teaches 5th graders about the civil war.</p>

<a href='http://newtextiles.media.mit.edu/?attachment_id=3081' title='MIT_final1'><img width="150" height="124" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_final1.jpg" class="attachment-thumbnail" alt="The final work" title="MIT_final1" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3082' title='MIT_final3'><img width="121" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_final3.jpg" class="attachment-thumbnail" alt="Test2" title="MIT_final3" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3083' title='MIT_final4'><img width="111" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_final4.jpg" class="attachment-thumbnail" alt="MIT_final4" title="MIT_final4" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3084' title='MIT_final5'><img width="121" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_final5.jpg" class="attachment-thumbnail" alt="Test1" title="MIT_final5" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3085' title='MIT_Final_project_back'><img width="150" height="67" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_Final_project_back.jpg" class="attachment-thumbnail" alt="Conductive yarn in the quilt" title="MIT_Final_project_back" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3086' title='MIT_Final_project_hats'><img width="150" height="134" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_Final_project_hats.jpg" class="attachment-thumbnail" alt="Resistors in the puzzle pieces" title="MIT_Final_project_hats" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3087' title='MIT_Final_project_untrimmed'><img width="150" height="102" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_Final_project_untrimmed.jpg" class="attachment-thumbnail" alt="The untrimmed puzzle pieces" title="MIT_Final_project_untrimmed" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3088' title='MIT_Final_project_velcro_test'><img width="150" height="113" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_Final_project_velcro_test.jpg" class="attachment-thumbnail" alt="Testing velcro" title="MIT_Final_project_velcro_test" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3089' title='MIT_Final_project'><img width="150" height="111" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/MIT_Final_project.jpg" class="attachment-thumbnail" alt="Before attaching the conductive materials on the quilt" title="MIT_Final_project" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3129' title='Slide01'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide01.jpg" class="attachment-thumbnail" alt="Slide01" title="Slide01" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3130' title='Slide02'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide02.jpg" class="attachment-thumbnail" alt="Slide02" title="Slide02" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3131' title='Slide03'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide03.jpg" class="attachment-thumbnail" alt="Slide03" title="Slide03" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3132' title='Slide04'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide04.jpg" class="attachment-thumbnail" alt="Slide04" title="Slide04" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3133' title='Slide05'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide05.jpg" class="attachment-thumbnail" alt="Slide05" title="Slide05" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3134' title='Slide06'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide06.jpg" class="attachment-thumbnail" alt="Slide06" title="Slide06" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3135' title='Slide07'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide07.jpg" class="attachment-thumbnail" alt="Slide07" title="Slide07" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3136' title='Slide08'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide08.jpg" class="attachment-thumbnail" alt="Slide08" title="Slide08" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3137' title='Slide09'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide09.jpg" class="attachment-thumbnail" alt="Slide09" title="Slide09" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=3138' title='Slide10'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/Slide10.jpg" class="attachment-thumbnail" alt="Slide10" title="Slide10" /></a>

<p>The embroidery process and writing code in Processing was challenging.  The various pieces had to fit properly. When pieces were sewn separately, the sizes of the items were not of the same scale. To fit everything, all items were put into a hoop at the same time and sewed together at one time. (This took over 4 hrs). When testing the pieces, the snaps and velcro sometimes don&#8217;t snap together properly, giving strange readings. The velcro readings evened out after a while of repeated attachment and removal. Writing the code was also difficult for a first-timer.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/O7rfMBUYwlA?hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/O7rfMBUYwlA?hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
I want to keep working on the coding for processing to add a timer and allow 2 players to play simultaneously.</p>
<p>Code:</p>
<p>import processing.serial.*;<br />
Serial myPort;        // The serial port</p>
<p>//variables for collecting and storing information<br />
int ARRAYX = 2;<br />
int ARRAYY = 3;<br />
int [][] sensorArray = new int[ARRAYX][ARRAYY];</p>
<p>int flag = 0;<br />
boolean inGame = false;<br />
boolean prompt = false;<br />
int characterPrompt = 0;<br />
boolean instructions = true;<br />
boolean wonGame = false;<br />
boolean endGame = false;</p>
<p>//variables for drawing information on the screen<br />
int spacing = 100;<br />
PFont font;<br />
PFont fontA;</p>
<p>void setup () {<br />
//set the window size:<br />
size(600, 400);<br />
//initialize the font variables<br />
font = loadFont(&#8220;SansSerif-20.vlw&#8221;);<br />
textFont(font);</p>
<p>fontA = loadFont(&#8220;SansSerif-48.vlw&#8221;);</p>
<p>// list all the available serial ports<br />
println(Serial.list());<br />
// open the appropriate port<br />
myPort = new Serial(this, Serial.list()[0], 9600);<br />
// don&#8217;t generate a serialEvent() until you get an exclamation mark character<br />
myPort.bufferUntil(&#8216;!&#8217;);<br />
// set inital background:<br />
background(0);<br />
}</p>
<p>void draw () {<br />
background(0);<br />
//draw buttonNEXT<br />
fill (255);<br />
rect(520, 350, 50, 30);<br />
text(&#8220;NEXT&#8221;, 520, 350);<br />
//draw buttonEXIT<br />
fill (255);<br />
rect(450, 350, 50,30);<br />
text(&#8220;EXIT&#8221; , 450, 350);</p>
<p>if (inGame==false)<br />
{<br />
if (instructions==true)<br />
{<br />
//draw instructions<br />
text(&#8220;Stick the right clothes onto the right character.&#8221;, 75, 100);<br />
}</p>
<p>else if (prompt==true)<br />
{<br />
// draw prompt<br />
if (characterPrompt == 0)<br />
{<br />
text(&#8220;Mary Tepe&#8221;, width/2, height/2);<br />
}<br />
else if (characterPrompt == 1)<br />
{<br />
text(&#8220;Jenny Wade&#8221;, width/2, height/2);<br />
}<br />
else if (characterPrompt == 2)<br />
{<br />
text(&#8220;General Lee&#8221;, width/2, height/2);<br />
}<br />
else if (characterPrompt == 3)<br />
{<br />
text(&#8220;General Meade&#8221;, width/2, height/2);<br />
}<br />
}<br />
else if (wonGame==true)<br />
{<br />
text(&#8220;You&#8217;re right!&#8221;, width/2, height/2);<br />
}<br />
}<br />
else if (inGame==true &amp; wonGame == false)<br />
{<br />
if (characterPrompt == 0)<br />
{<br />
if (testIfMary() == true)<br />
{<br />
text(&#8220;You&#8217;re right!&#8221;, width/2, height/2);<br />
wonGame=true;<br />
inGame = false;<br />
}<br />
else<br />
text(&#8220;That&#8217;s not Mary, keep trying.&#8221;, 200, height/2);<br />
}</p>
<p>if (characterPrompt == 1)<br />
{<br />
if (testIfJenny() == true)<br />
{<br />
text(&#8220;You&#8217;re right!&#8221;, width/2, height/2);<br />
wonGame=true;<br />
inGame = false;<br />
}<br />
else<br />
text(&#8220;That&#8217;s not Jenny, keep trying.&#8221;, 200, height/2);<br />
}</p>
<p>if (characterPrompt == 2)<br />
{<br />
if (testIfGeneralL() == true)<br />
{<br />
text(&#8220;You&#8217;re right!&#8221;, width/2, height/2);<br />
wonGame=true;<br />
inGame = false;<br />
}<br />
else<br />
text(&#8220;That&#8217;s not Gen. Lee, keep trying.&#8221;, 200, height/2);<br />
}</p>
<p>if (characterPrompt == 3)<br />
{<br />
if (testIfGeneralM() == true)<br />
{<br />
text(&#8220;You&#8217;re right!&#8221;, width/2, height/2);<br />
wonGame=true;<br />
inGame = false;<br />
}<br />
else<br />
text(&#8220;That&#8217;s not Gen Meade, keep trying.&#8221;, 200, height/2);<br />
}<br />
}<br />
}</p>
<p>void mousePressed() {<br />
//test if over area<br />
if (( mouseX&gt; 519 &amp; mouseX&lt; 571) &amp; (mouseY&gt;349 &amp; mouseY&lt;381))<br />
{<br />
if (instructions==true)<br />
{<br />
instructions = false;<br />
inGame=false;<br />
prompt=true;<br />
characterPrompt = int(random(4));<br />
//characterPrompt = 0;<br />
}<br />
else if (prompt== true)<br />
{<br />
prompt = false;<br />
inGame= true;<br />
}<br />
else if (wonGame== true)<br />
{<br />
wonGame= false;<br />
prompt=true;<br />
characterPrompt = int(random(4));<br />
}</p>
<p>}</p>
<p>else if (( mouseX&gt; 449 &amp; mouseX&lt; 501 ) &amp; (mouseY&gt;349  &amp; mouseY&lt;381))<br />
{<br />
println(&#8220;clicked exit&#8221;);<br />
exit();<br />
}<br />
}</p>
<p>void serialEvent (Serial myPort) {<br />
//store a batch of data into variable &#8220;inString&#8221;<br />
//batches are separated by exclamation mark characters<br />
String inString = myPort.readStringUntil(&#8216;!&#8217;);<br />
//split the data into rows (rows separated by new line characters)<br />
String[] incomingArrayRows = splitTokens(inString, &#8220;\n&#8221;);<br />
//loop through all of the rows<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
//split each row into entries (entries separated by tab characters)<br />
String[] incomingArrayEntries = splitTokens(incomingArrayRows[i], &#8220;\t&#8221;);<br />
//loop through all of these entries<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
//store entries in the &#8220;sensorArray&#8221; variable<br />
sensorArray[i][j]=int(incomingArrayEntries[j]);<br />
//print the entries to the terminal, separated by tab characters<br />
print(sensorArray[i][j]);<br />
print(&#8216;\t&#8217;);<br />
}<br />
//print a new line after each row<br />
println();<br />
}<br />
//print a new line after each batch of data<br />
println();<br />
}</p>
<p>void printArray()<br />
{<br />
for (int i=0;i&lt;ARRAYX;i++)<br />
{<br />
for (int j=0;j&lt;ARRAYY;j++)<br />
{<br />
print(sensorArray[i][j]);<br />
print(&#8216;\t&#8217;);<br />
}<br />
//print a new line after each row<br />
println();<br />
}<br />
println();<br />
}</p>
<p>boolean testIfMary()<br />
{<br />
int hat = sensorArray[0][1];<br />
int clothes = sensorArray[0][0];<br />
int other = sensorArray[0][2];</p>
<p>if ((hat&gt;10 &amp; hat &lt;29) &amp; (clothes&gt;10 &amp; clothes&lt;29)  &amp; (other&gt;10 &amp; other&lt;29))<br />
{<br />
return true;<br />
}<br />
else<br />
return false;<br />
}</p>
<p>boolean testIfJenny()<br />
{<br />
int hat = sensorArray[0][1];<br />
int clothes = sensorArray[0][0];<br />
int other = sensorArray[0][2];</p>
<p>if ((hat&gt;30 &amp; hat &lt;60) &amp; (clothes&gt;30 &amp; clothes&lt;60)  &amp; (other&gt;30 &amp; other&lt;60))<br />
{<br />
return true;<br />
}<br />
else<br />
return false;<br />
}</p>
<p>boolean testIfGeneralM()<br />
{<br />
int hat = sensorArray[1][2];<br />
int clothes = sensorArray[1][0];<br />
int other = sensorArray[1][1];</p>
<p>if ((hat&gt;10 &amp; hat&lt;60) &amp; (clothes&gt;10 &amp; clothes&lt;60)  &amp; (other&gt;10 &amp; other&lt;60))<br />
{<br />
return true;<br />
}<br />
else<br />
return false;<br />
}</p>
<p>boolean testIfGeneralL()<br />
{<br />
int hat = sensorArray[1][2];<br />
int clothes = sensorArray[1][0];<br />
int other = sensorArray[1][1];</p>
<p>if ((hat&gt;200 &amp; hat&lt;300) &amp; (clothes&gt;200 &amp; clothes&lt;300)  &amp; (other&gt;200 &amp; other&lt;300))<br />
{<br />
return true;<br />
}<br />
else<br />
return false;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=3042</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D textile</title>
		<link>http://newtextiles.media.mit.edu/?p=2997</link>
		<comments>http://newtextiles.media.mit.edu/?p=2997#comments</comments>
		<pubDate>Fri, 06 May 2011 00:54:30 +0000</pubDate>
		<dc:creator>greatjudy</dc:creator>
				<category><![CDATA[Nonwoven]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2997</guid>
		<description><![CDATA[My basic idea is to create some fabric that can do 3D spatial structures. The non-woven materials show potentials to do this kind of stuff seamlessly. For this experiment I used the agenlina fibres to cast the shape of the daily objects. For the first one, I used a water bottle with hot water inside as [...]]]></description>
			<content:encoded><![CDATA[<p>My basic idea is to create some fabric that can do 3D spatial structures. The non-woven materials show potentials to do this kind of stuff seamlessly.</p>
<p>For this experiment I used the agenlina fibres to cast the shape of the daily objects. For the first one, I used a water bottle with hot water inside as a mold. Then I put a latex glove over the surface and filled the fibers in between the latex and the bottle. I put the whole thing into boiling water. Unfortunately the latex began to melt during boing. But basically the result is good. Some parts are lack of fibers since I did not distribute them homogeneously. I used the iron to &#8220;roll&#8221; the bottle to get more fibers on.</p>
<p><a rel="attachment wp-att-3018" href="http://newtextiles.media.mit.edu/?attachment_id=3018"><img class="alignleft size-full wp-image-3018" title="IMG_1056" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_10562.jpg" alt="" width="567" height="425" /></a></p>
<p><a rel="attachment wp-att-3019" href="http://newtextiles.media.mit.edu/?attachment_id=3019"><img class="alignleft size-full wp-image-3019" title="IMG_1058" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_10582.jpg" alt="" width="567" height="425" /></a></p>
<p><a rel="attachment wp-att-3005" href="http://newtextiles.media.mit.edu/?attachment_id=3005"><img class="alignleft size-full wp-image-3005" title="IMG_9902" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9902.jpg" alt="" width="567" height="425" /></a></p>
<p><a rel="attachment wp-att-3021" href="http://newtextiles.media.mit.edu/?attachment_id=3021"><img class="alignleft size-full wp-image-3021" title="IMG_1066" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_10661.jpg" alt="" width="567" height="425" /></a></p>
<p><a rel="attachment wp-att-3024" href="http://newtextiles.media.mit.edu/?attachment_id=3024"><img class="alignleft size-full wp-image-3024" title="IMG_9915" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99151.jpg" alt="" width="531" height="709" /></a></p>
<p><a rel="attachment wp-att-3023" href="http://newtextiles.media.mit.edu/?attachment_id=3023"><img class="alignleft size-full wp-image-3023" title="IMG_9914" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99141.jpg" alt="" width="531" height="709" /></a></p>
<p><a rel="attachment wp-att-3008" href="http://newtextiles.media.mit.edu/?attachment_id=3008"><img class="alignleft size-full wp-image-3008" title="IMG_9916" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_9916.jpg" alt="" width="531" height="709" /></a></p>
<p>Then I put the fibers in between two paper bowls and drop the whole thing into boiling water. The paper became soft, but the casting seemed fast. I took it out before the paper turned to shapeless.</p>
<p><a rel="attachment wp-att-3028" href="http://newtextiles.media.mit.edu/?attachment_id=3028"><img class="alignleft size-full wp-image-3028" title="IMG_9929" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99291.jpg" alt="" width="531" height="709" /></a></p>
<p> <img class="alignleft size-full wp-image-3029" title="IMG_9931" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99311.jpg" alt="" width="531" height="709" /></p>
<p><a rel="attachment wp-att-3030" href="http://newtextiles.media.mit.edu/?attachment_id=3030"><img class="alignleft size-full wp-image-3030" title="IMG_9932" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99321.jpg" alt="" width="709" height="531" /></a></p>
<p><a rel="attachment wp-att-3031" href="http://newtextiles.media.mit.edu/?attachment_id=3031"><img class="alignleft size-full wp-image-3031" title="IMG_9934" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/IMG_99341.jpg" alt="" width="709" height="531" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2997</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gloss Medium Compound</title>
		<link>http://newtextiles.media.mit.edu/?p=2988</link>
		<comments>http://newtextiles.media.mit.edu/?p=2988#comments</comments>
		<pubDate>Wed, 04 May 2011 03:56:37 +0000</pubDate>
		<dc:creator>N.Tari</dc:creator>
				<category><![CDATA[Nonwoven]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2988</guid>
		<description><![CDATA[After Leah showed us all of the interesting techniques last week for making non-woven it made me start to think about what processes I could use. I was specifically interested in the compound, possible constructed by two fabrics dipped in a rubber or resin. It has an interesting texture and look. I started to think [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="attachment wp-att-2989" href="http://newtextiles.media.mit.edu/?attachment_id=2989"><img class="aligncenter size-full wp-image-2989" title="nonWoven" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/nonWoven.jpg" alt="" width="622" height="465" /></a></p>
<p>After Leah showed us all of the interesting techniques last week for making non-woven it made me start to think about what processes I could use. I was specifically interested in the compound, possible constructed by two fabrics dipped in a rubber or resin. <span id="more-2988"></span>It has an interesting texture and look. I started to think about what I could used to mimic it. I decided to experiment with acrylic glossing medium and a light weight shiny fabric.  I brushed the gloss medium on to a single pieces and let it dry. It produced a compound that feels similarly to vinyl. It has a little bit of stretch to it and changes flexibility with the heat of your hands. Next I used the same fabric and layered two pieces brushed with the medium. It has a slightly different appearance and feel.</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2988</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Project Presenatations and Documentation</title>
		<link>http://newtextiles.media.mit.edu/?p=2982</link>
		<comments>http://newtextiles.media.mit.edu/?p=2982#comments</comments>
		<pubDate>Tue, 03 May 2011 21:50:54 +0000</pubDate>
		<dc:creator>leah buechley</dc:creator>
				<category><![CDATA[Assignments]]></category>
		<category><![CDATA[Final Project]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2982</guid>
		<description><![CDATA[Due: Tuesday, May 10, 2011 See student final projects here Your final project assignment has 3 pieces: the project itself, a short presentation about the project, and a web page documenting the project. Information about presentations and documentation is below. Presentations Prepare a short formal presentation to present to the class. It should include: * [...]]]></description>
			<content:encoded><![CDATA[<p>Due: Tuesday, May 10, 2011<br />
<a href="http://newtextiles.media.mit.edu/?cat=21">See student final projects here</a></p>
<p>Your final project assignment has 3 pieces: the project itself, a short presentation about the project, and a web page documenting the project.  Information about presentations and documentation is below.<span id="more-2982"></span></p>
<p><strong>Presentations</strong><br />
Prepare a short formal presentation to present to the class. It should include:</p>
<p>    * A short survey of previous work in the area.<br />
    * A demonstration of the project in action (the core of your presentation)<br />
    * A short discussion of your construction process including challenges and learning experiences.<br />
    * A short discussion of what you would do to improve the project if you were to keep working on it.</p>
<p><strong>Documentation</strong><br />
Create a post that documents your project and add it to the Final Projects category. Your page should include a description of your project, a pdf copy of your presentation slides, a few work-in-progress photos, photos of your final piece, and a video of your final piece.  Documentation is due by the end of the day on Wednesday May 11.</p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2982</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paint = Fabric</title>
		<link>http://newtextiles.media.mit.edu/?p=2968</link>
		<comments>http://newtextiles.media.mit.edu/?p=2968#comments</comments>
		<pubDate>Tue, 03 May 2011 12:15:41 +0000</pubDate>
		<dc:creator>heidiqc</dc:creator>
				<category><![CDATA[Nonwoven]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2968</guid>
		<description><![CDATA[For this nonwoven, I decided to experiment with acrylic paints to see if they could be incorporated into a fabric. During the class, I was inspired by the silicone material, but thought the molding process was limiting and time consuming for textile applications. Making a mold takes time, and it is hard to control the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-2969" title="Final products" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3254.jpg" alt="" width="600" height="400" /></p>
<p style="text-align: left;">For this nonwoven, I decided to experiment with acrylic paints to see if they could be incorporated into a fabric. During the class, I was inspired by the silicone material, but thought the molding process was limiting and time consuming for textile applications. Making a mold takes time, and it is hard to control the topography of the finished product from the mold. Hence, I played around with some glue, acrylic paints and felt.</p>
<p><span id="more-2968"></span></p>
<p style="text-align: left;">Unfortunately, the glue (Elmer&#8217;s) dried hard, and did not make an amazing fabric as it was very brittle. The acrylic however, dried into a splendidly soft and flexible material. Varying the paint colors and the way the paint was applied gave the top surface an interesting texture and surface aesthetic that I found very appealing. Next, I tried mixing felt and paint. Instead of painting on top of the felt (too similar to fabric paint), I decided to put the felt on top of the paint. This version has a combination of surface textures &#8211; the smooth back of the acrylic paint, the rough bumpy top surface of the paint, and the soft fuzziness of the felt. The felt also stuck pretty well to the paint.</p>
<p style="text-align: left;">I would like to further experiment with felt and acrylic paint. I think that putting the two together in a fashion that is similar to woven structures (maybe a grid of sorts?) will be quite fascinating. The fact that the acrylic can just be painted on gives rise to a large design space where one can paint whatever fabric structure one desires, and I think that property can be exploited for further use.</p>

<a href='http://newtextiles.media.mit.edu/?attachment_id=2970' title='Acrylic paints'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3176.jpg" class="attachment-thumbnail" alt="Acrylic paints" title="Acrylic paints" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2971' title='Putting on the first layer'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3177.jpg" class="attachment-thumbnail" alt="Putting on the first layer" title="Putting on the first layer" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2972' title='Second layer drying'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3178.jpg" class="attachment-thumbnail" alt="Second layer drying" title="Second layer drying" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2974' title='2 layer acrylic is bendable and soft'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3256.jpg" class="attachment-thumbnail" alt="2 layer acrylic is bendable and soft" title="2 layer acrylic is bendable and soft" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2975' title='Acrylic with felt'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3257.jpg" class="attachment-thumbnail" alt="Acrylic with felt" title="Acrylic with felt" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2969' title='Final products'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3254.jpg" class="attachment-thumbnail" alt="Final products" title="Final products" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=2973' title='Backs'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCF3255.jpg" class="attachment-thumbnail" alt="Backs" title="Backs" /></a>

<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2968</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nonwoven Diagrid</title>
		<link>http://newtextiles.media.mit.edu/?p=2824</link>
		<comments>http://newtextiles.media.mit.edu/?p=2824#comments</comments>
		<pubDate>Tue, 03 May 2011 10:43:37 +0000</pubDate>
		<dc:creator>KristyKat</dc:creator>
				<category><![CDATA[Nonwoven]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2824</guid>
		<description><![CDATA[I&#8217;ve recently become interested in the diagrid pattern and its variations. For this project, I laser cut a mold from masonite and plexiglass. 1st Diagrid Mold I created the first mold from masonite  (1/8&#8243;) and used Smooth-On to cast the mold. The Smooth-On mold was very messy and runny. I wrapped it in three layers [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently become interested in the diagrid pattern and its variations. For this project, I laser cut a mold from masonite and plexiglass.</p>
<p><strong>1st Diagrid Mold</strong></p>
<p>I created the first mold from masonite  (1/8&#8243;) and used Smooth-On to cast the mold. The Smooth-On mold was very messy and runny. I wrapped it in three layers of wax paper and taped it to prevent leakage and let it sit for three days. After three days, however, the mold was not fully set. Despite this mold being very greasy &#8212; a feature intended to aid in the extraction process &#8212; I had a great deal of difficulty getting the mold out of the cast.</p>
<div id="attachment_2832" class="wp-caption alignleft" style="width: 248px"><a rel="attachment wp-att-2832" href="http://newtextiles.media.mit.edu/?attachment_id=2832"><img class="size-full wp-image-2832" title="photo(2)" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/photo2.jpg" alt="" width="238" height="175" /></a><p class="wp-caption-text">Smooth-On mold</p></div>
<div id="attachment_2831" class="wp-caption alignleft" style="width: 248px"><a rel="attachment wp-att-2831" href="http://newtextiles.media.mit.edu/?attachment_id=2831"><img class="size-full wp-image-2831" title="photo" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/photo.jpg" alt="" width="238" height="175" /></a><p class="wp-caption-text">Masonite</p></div>
<div id="attachment_2834" class="wp-caption alignleft" style="width: 248px"><a rel="attachment wp-att-2834" href="http://newtextiles.media.mit.edu/?attachment_id=2834"><img class="size-full wp-image-2834" title="photo(4)" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/photo4.jpg" alt="" width="238" height="175" /></a><p class="wp-caption-text">Smooth-On in masonite</p></div>
<p><strong>2nd Diagrid Mold</strong></p>
<p>I created the second mold from plexiglass (1/16&#8243;) and used another  mold for casting. This mold was extremely viscous (but not as messy). I  wasn&#8217;t quick enough pouring the mold into the cast and it became more  viscous (hardened) as I worked my way across the mold (right to left) and air pockets formed on the left side of the mold. Additionally, I applied the final layer of the mold  (smallest diagrids) on top too late &#8212; when I pulled it off the mold, it  created an uneven surface across the already setting mold.</p>
<div id="attachment_2834" class="wp-caption alignnone" style="width: 810px"><a rel="attachment wp-att-2825" href="http://newtextiles.media.mit.edu/?attachment_id=2825"><img class="size-full wp-image-2825" title="DSCN3612" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3612.jpg" alt="" width="800" height="600" /></a></p>
<div class="mceTemp">
<dl id="attachment_2825" class="wp-caption alignnone" style="width: 810px;">
<dd class="wp-caption-dd">Plexiglass cast</dd>
</dl>
</div>
<div class="mceTemp">
<dl id="attachment_2827" class="wp-caption alignnone" style="width: 810px;">
<dt class="wp-caption-dt"><a rel="attachment wp-att-2827" href="http://newtextiles.media.mit.edu/?attachment_id=2827"><img class="size-full wp-image-2827" title="DSCN3615" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3615.jpg" alt="" width="800" height="600" /></a><p class="wp-caption-text">plexiglass cast</p></div>
<div id="attachment_2829" class="wp-caption alignnone" style="width: 810px"><a rel="attachment wp-att-2829" href="http://newtextiles.media.mit.edu/?attachment_id=2829"><img class="size-full wp-image-2829" title="DSCN3624" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/05/DSCN3624.jpg" alt="" width="800" height="600" /></a><p class="wp-caption-text">Final Rubber Mold</p></div>
</dt>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2824</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
