<?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 &#187; Uncategorized</title>
	<atom:link href="http://newtextiles.media.mit.edu/?feed=rss2&#038;cat=1" 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>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>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>Final Project Proposal</title>
		<link>http://newtextiles.media.mit.edu/?p=2262</link>
		<comments>http://newtextiles.media.mit.edu/?p=2262#comments</comments>
		<pubDate>Tue, 05 Apr 2011 15:55:39 +0000</pubDate>
		<dc:creator>denamolnar</dc:creator>
				<category><![CDATA[Final Project Proposal]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=2262</guid>
		<description><![CDATA[For my final project, I am interested in developing a patterned wall panel/surface that would produce  an alternating pattern in response to a passerby&#8217;s movement or engagement. Motion sensors and or pressure sensors would be employed to activate the pattern. The resulting pattern would function as a visual and temporal recording of a person&#8217;s presence.]]></description>
			<content:encoded><![CDATA[<p>For my final project, I am interested in developing a patterned wall panel/surface that would produce  an alternating pattern in response to a passerby&#8217;s movement or engagement. Motion sensors and or pressure sensors would be employed to activate the pattern. The resulting pattern would function as a visual and temporal recording of a person&#8217;s presence.</p>
<p><a rel="attachment wp-att-2358" href="http://newtextiles.media.mit.edu/?attachment_id=2358"><img class="aligncenter size-full wp-image-2358" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/04/otical3.jpg" alt="" width="450" height="450" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=2262</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maria&#8217;s Spring Yarn.</title>
		<link>http://newtextiles.media.mit.edu/?p=1381</link>
		<comments>http://newtextiles.media.mit.edu/?p=1381#comments</comments>
		<pubDate>Mon, 07 Mar 2011 22:14:01 +0000</pubDate>
		<dc:creator>maria.stangel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=1381</guid>
		<description><![CDATA[I wanted to make a very conductive yarn which would be elastic and flexible at the same time. I started to search for different types of aluminium. My class mate Ilan came with an idea to use a waste springs from his metal workshop. That was my first time in a workshop like that and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Spinning" src="http://25.media.tumblr.com/tumblr_lhp99pEoF21qgg885o1_500.jpg" alt="" width="400" height="300" /></p>
<p>I wanted to make a very conductive yarn which would be elastic and flexible at the same time. I started to search for different types of aluminium. My class mate Ilan came with an idea to use a waste springs from his metal workshop. That was my first time in a workshop like that and it was a great experience to see all the mashines and other equipment they are using there. We wanted to make the longest &#8221; waste&#8221; spring possible to spin it later with other fabrics. Unfortunately the material wasn&#8217;t as elastic as I was hoping at the begining. I managed to make just about a yard of my yarn. I wanted to isolate the yarn by wraping a natural cotton therad around it.</p>
<p><span id="more-1381"></span></p>
<p>Process:</p>
<p>1. During our spinning tutorial led by KanJun Qiu we have learned how to use a spindle and make a yarn out of different types fiber. My first yarn made during this class was 164 cm long and I used it later to fill my conductive Spring.</p>
<p>2. I went with Ilan to the metal workshop where I could see a diffrent types of aluminium springs. They had diverse lengh and twist, some were very fragile but some quite elastic and flexible. We started to search for a right one, but than we had an idea to make one very long aluminium base by ourselves. That was my first time when I had a chance to use this &#8220;metal peeling&#8221; machine. It was a great experience, to feel how soft metal can be when is treated with a certain speed!</p>
<p>3. The longest piece we managed to make was 90 centimeters, but I decided to work with it. I was hoping that I could connect shorter pieces later on. I spun my toutorial-class yarn together with my aluminium spring &#8211; this gave me a needed  thickness cause the aluminium itself was very flat.</p>
<p>4. I wanted to isolate the spring so I started to wrap the spiral with a cotton thread.</p>
<p>Final length of the yarn:  87 centimiters (lenght of aluminium spring)</p>
<p>Conductivity: 0.6 ohms per 10 mm</p>
<p>Ply: 7 (2 inside yarn made during spinning tuotorial, 1 aluminium spring, 1 cotton thread (made out of 4)</p>
<p>Fiber length: aluminium 90 centimiters, wool- around 13/14 cm, thread &#8211; (used as continuous filament 2x 150 cm)</p>
<p>Twist: Aluminium 1 full turn per 15 mm, thread apx. 16 turns per 15 mm, my spun yarn 7 per 15 mm</p>

<a href='http://newtextiles.media.mit.edu/?attachment_id=1399' title='IMG_0078'><img width="150" height="69" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0078.jpg" class="attachment-thumbnail" alt="IMG_0078" title="IMG_0078" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1403' title='IMG_0085'><img width="150" height="65" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0085.jpg" class="attachment-thumbnail" alt="IMG_0085" title="IMG_0085" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1404' title='IMG_0104'><img width="145" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0104.jpg" class="attachment-thumbnail" alt="IMG_0104" title="IMG_0104" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1406' title='IMG_0084'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0084.jpg" class="attachment-thumbnail" alt="IMG_0084" title="IMG_0084" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1407' title='IMG_0086'><img width="150" height="141" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0086.jpg" class="attachment-thumbnail" alt="IMG_0086" title="IMG_0086" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1408' title='IMG_0111'><img width="150" height="112" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0111.jpg" class="attachment-thumbnail" alt="IMG_0111" title="IMG_0111" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1409' title='IMG_0119'><img width="84" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0119.jpg" class="attachment-thumbnail" alt="IMG_0119" title="IMG_0119" /></a>
<a href='http://newtextiles.media.mit.edu/?attachment_id=1410' title='IMG_0116'><img width="54" height="150" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/03/IMG_0116.jpg" class="attachment-thumbnail" alt="IMG_0116" title="IMG_0116" /></a>

]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=1381</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AllumiYarn: Conductive Aluminum Yarn</title>
		<link>http://newtextiles.media.mit.edu/?p=928</link>
		<comments>http://newtextiles.media.mit.edu/?p=928#comments</comments>
		<pubDate>Mon, 28 Feb 2011 23:06:18 +0000</pubDate>
		<dc:creator>N.Tari</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Yarn]]></category>

		<guid isPermaLink="false">http://newtextiles.media.mit.edu/?p=928</guid>
		<description><![CDATA[I have always been interested in the history of weaving. It is such an old, amazing technique used by women all over the word to make fibers into fabric. Last monday I was inspired by our workshop and am really enjoying the process of spinning. It feels magical and also meditative. The yarn that I [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><a rel="attachment wp-att-931" href="http://newtextiles.media.mit.edu/?attachment_id=931"><img class="aligncenter size-full wp-image-931" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_10_small.jpg" alt="" width="373" height="279" /></a></p>
<p><span style="font-size: small">I have always been interested in the history of weaving. It is such an old, amazing technique used by women all over the word to make fibers into fabric. Last monday I was inspired by our workshop and am really enjoying the process of spinning. It feels magical and also meditative.</span><br />
<span id="more-928"></span><br />
<span style="font-size: small">The yarn that I spun is constructed on wool and aluminum fibers structured in two different methods. I decided to make one yarn (yarn #1) that is a single of both the aluminum and the wool ply together, and a second (yarn #2) that is a mixture of the two materials and spun into a single then plied. I  then compared the two yarns in conductivity. The conductivity is different. Also, I found that the conductivity changes in each as the yarn is stretched.</span></p>
<p><span style="font-size: small"><strong>Observations &amp; Measurements:</strong></span></p>
<p><span style="font-size: small"><em><strong>Yarn #1</strong></em></span></p>
<p><span style="font-size: small">1 Yard in length</span></p>
<p><span style="font-size: small">2 ply </span></p>
<p><span style="font-size: small"><em>Fiber length:</em> Wool 60mm/fiber, Alluminun 100mm/fiber</span></p>
<p><span style="font-size: small"><em>Twist: </em>Single is clockwise, Double counter clockwise, 2.5 twists/inch</span></p>
<p><span style="font-size: small"><em>Diameter: </em>2,000µm</span></p>
<p><strong><em>Yarn #2</em></strong></p>
<p>3 Yard in length</p>
<p>2 ply</p>
<p><em>Fiber length:</em> Wool 60mm/fiber, Alluminun 100mm/fiber</p>
<p><em>Twist: </em>Single is clockwise, Double counter clockwise, 3 twists/inch</p>
<p><em>Diameter: </em>2,000µm</p>
<p><strong><em>Yarn #2: </em></strong>The measurements in Ω variy whenn the yarn is measured at rest and stretched. This is what I expected when making it. When the yarn was measured at rest (a section about 4 inches in length) it measured between 6 and 12 Ω. When stretched the resistance dropped (varing between 1 and 3 Ω . Over a longer section of yarn the conductivity drops and the resistance increases. Even though the conductivity is less the yarn behaves the same, at rest is less conductive that stretched. <strong><em>Yarn #1</em></strong> reacts the same and appears to have a higher conductivity in general. This makes since due to its structure, one single strand of both the aluminum and wool then plied together. Most likely <strong><em>Yarn #2 </em><span style="font-weight: normal">has a more dynamic structure causing the resistance to be higher in general.</span></strong></p>
<p><span style="font-weight: normal"><strong><em>USB Microscope Pictures:</em></strong></span></p>
<p><span style="font-size: x-small"><a rel="attachment wp-att-954" href="http://newtextiles.media.mit.edu/?attachment_id=954"><img class="alignleft size-full wp-image-954" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/20110228_131147644.png" alt="" width="307" height="230" /></a></span></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-955" href="http://newtextiles.media.mit.edu/?attachment_id=955"><img class="aligncenter size-full wp-image-955" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/20110228_131207784.png" alt="" width="307" height="230" /></a></span></p>
<p><span style="font-size: small"><a rel="attachment wp-att-999" href="http://newtextiles.media.mit.edu/?attachment_id=999"><img class="alignleft size-full wp-image-999" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/20110228_1312287971.png" alt="" width="307" height="230" /></a></span></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1001" href="http://newtextiles.media.mit.edu/?attachment_id=1001"><img class="aligncenter size-full wp-image-1001" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/20110228_131340830.png" alt="" width="307" height="230" /></a></span><strong> </strong></p>
<p style="text-align: left"><strong>Process:</strong></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1004" href="http://newtextiles.media.mit.edu/?attachment_id=1004"><img class="alignleft size-full wp-image-1004" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_1_small.jpg" alt="" width="261" height="350" /></a><a rel="attachment wp-att-1008" href="http://newtextiles.media.mit.edu/?attachment_id=1008"></a></span></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1008" href="http://newtextiles.media.mit.edu/?attachment_id=1008"><img class="aligncenter size-full wp-image-1008" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_2_small.jpg" alt="" width="251" height="336" /></a></span></p>
<p style="text-align: center"><span style="font-size: small"><br />
</span></p>
<p style="text-align: center">
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1009" href="http://newtextiles.media.mit.edu/?attachment_id=1009"><img class="alignleft size-full wp-image-1009" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_3_small.jpg" alt="" width="279" height="373" /></a></span></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1012" href="http://newtextiles.media.mit.edu/?attachment_id=1012"><img class="aligncenter size-full wp-image-1012" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_5_small1.jpg" alt="" width="279" height="373" /></a></span></p>
<p style="text-align: center"><span style="font-size: small"><a rel="attachment wp-att-1015" href="http://newtextiles.media.mit.edu/?attachment_id=1015"><img class="alignleft size-full wp-image-1015" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_6_small.jpg" alt="" width="279" height="373" /></a><a rel="attachment wp-att-1016" href="http://newtextiles.media.mit.edu/?attachment_id=1016"><img class="aligncenter size-full wp-image-1016" src="http://newtextiles.media.mit.edu/wp-content/uploads/2011/02/Process_8_small.jpg" alt="" width="279" height="373" /></a><br />
</span></p>
<p style="text-align: center"><span style="font-size: small"><br />
</span></p>
<p style="text-align: center">
<p style="text-align: center"><span style="font-size: small"><br />
</span></p>
<p style="text-align: center">
<p style="text-align: center"><span style="font-size: small"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://newtextiles.media.mit.edu/?feed=rss2&#038;p=928</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
