tag:blogger.com,1999:blog-83615092953913375332024-02-20T15:29:27.456-08:00SmartSurfaces 2010Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-8361509295391337533.post-66913639230051756212010-11-30T07:33:00.001-08:002010-11-30T07:33:36.547-08:00code for slave arduinos#include <Wire.h><br />
#define ADDRESS 65<br />
<br />
// these are digital pins (leds)<br />
int led[]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};<br />
<br />
// these are analog pins (photoresistors and pir)<br />
int photo[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};<br />
int ambient = 15; // this is used for the comparison of each photoresistor<br />
int light[15];<br />
<br />
void setup() { <br />
<br />
Serial.begin(9600);<br />
Wire.begin(ADDRESS);<br />
Wire.onReceive(receiveEvent);<br />
<br />
for(int i = 0; i< 15; i++){<br />
pinMode(led[i],OUTPUT);<br />
}<br />
<br />
for(int i = 0; i< 15; i++){<br />
pinMode(photo[i],INPUT);<br />
}<br />
<br />
pinMode(ambient, INPUT);<br />
<br />
}<br />
<br />
<br />
void loop() {<br />
}<br />
<br />
void receiveEvent(int val){<br />
<br />
while (Wire.available() > 0){<br />
val = Wire.receive();<br />
int compare = analogRead(ambient);<br />
Serial.println(val);<br />
<br />
for(int i = 0; i< 15; i++){<br />
light[i] = analogRead(photo[i]);<br />
}<br />
<br />
if (val == 111){<br />
<br />
int delayTime = 250; //the time (in milliseconds) to pause between LEDs<br />
//make smaller for quicker switching and larger for slower<br />
<br />
for(int i = 0; i < 15; i++){<br />
int offLED = i - 1; //Calculate which LED was turned on last time through<br />
if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will<br />
offLED = 15; //turn on LED 2 and off LED 1)<br />
} //however if i = 0 we don't want to turn of led -1 (doesn't exist)<br />
//instead we turn off LED 7, (looping around)<br />
digitalWrite(led[i], HIGH); //turn on LED #i<br />
digitalWrite(led[offLED], LOW); //turn off the LED we turned on last time<br />
delay(delayTime);<br />
}<br />
}<br />
else if( val != 0){<br />
<br />
// for the control of leds----------------------------------<br />
for(int i = 0; i< 15; i++){<br />
<br />
if (light[i] > compare + 10){<br />
digitalWrite(led[i], HIGH);<br />
}<br />
<br />
else {<br />
digitalWrite(led[i], LOW);<br />
}<br />
<br />
}<br />
}<br />
<br />
else if (val == 0){<br />
for (int i = 0; i< 15; i++){<br />
digitalWrite(led[i], LOW);<br />
}<br />
}<br />
}<br />
}<br />
<div><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-7469562515113804362010-11-30T06:30:00.001-08:002010-11-30T06:30:19.675-08:00code for master arduino#include <Wire.h><br />
int ADDRESS[] = {65,42,43,60,61,62,64,65};<br />
<br />
// these are digital pins (leds)<br />
int led[]={2,3,4,5,6,7,8,9,10,11,12,13};<br />
<br />
// these are analog pins (photoresistors and pir)<br />
int photo[] = {0,1,2,3,4,5,6,7,8,9,10,11};<br />
int ambient = 15; // this is used for the comparison of each photoresistor<br />
int motion = 14; // pir sensor digital<br />
int motion2 = 13; // second pir sensor<br />
int sound = 12;<br />
<br />
int light[12];<br />
<br />
void setup() { <br />
<br />
Serial.begin(9600);<br />
Wire.begin();<br />
<br />
for(int i = 0; i< 12; i++){<br />
pinMode(led[i],OUTPUT);<br />
}<br />
<br />
for(int i = 0; i< 12; i++){<br />
pinMode(photo[i],INPUT);<br />
}<br />
<br />
pinMode(ambient, INPUT);<br />
pinMode(motion, INPUT);<br />
pinMode(motion2, INPUT);<br />
<br />
}<br />
<br />
<br />
void loop() {<br />
<br />
int compare = analogRead(ambient); <br />
int val = analogRead(motion);<br />
int val2 = analogRead(motion2);<br />
int noise = analogRead(sound);<br />
Serial.print(val);<br />
Serial.print(' ');<br />
Serial.print(val2);<br />
Serial.print(' ');<br />
Serial.println(noise);<br />
<br />
for(int i = 0; i< 12; i++){<br />
light[i] = analogRead(photo[i]);<br />
}<br />
<br />
int i= 0;<br />
while( i < 8){<br />
<br />
//Serial.println("val");<br />
int value = ADDRESS[i];<br />
Wire.beginTransmission(value);<br />
//Serial.println(i);<br />
if( val >= val2){<br />
Wire.send(val);<br />
}<br />
else{<br />
Wire.send(val2);<br />
}<br />
Wire.endTransmission();<br />
i++;<br />
}<br />
<br />
<br />
if (noise >= 10){<br />
<br />
int delayTime = 50; //the time (in milliseconds) to pause between LEDs<br />
//make smaller for quicker switching and larger for slower<br />
<br />
for(int i = 0; i <= 12; i++){<br />
int offLED = i - 1; //Calculate which LED was turned on last time through<br />
if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will<br />
offLED = 12; //turn on LED 2 and off LED 1)<br />
} //however if i = 0 we don't want to turn of led -1 (doesn't exist)<br />
//instead we turn off LED 7, (looping around)<br />
digitalWrite(led[i], HIGH); //turn on LED #i<br />
digitalWrite(led[offLED], LOW); //turn off the LED we turned on last time<br />
delay(delayTime);<br />
}<br />
<br />
int i = 0;<br />
while (i< 8){<br />
Wire.beginTransmission(ADDRESS[i]); <br />
int number = 111;<br />
Wire.send(number);<br />
Wire.endTransmission();<br />
delay(150);<br />
i++;<br />
}<br />
<br />
}<br />
<br />
<br />
if( val != 0 || val2 != 0){<br />
// for the control of leds----------------------------------<br />
for(int i = 0; i< 12; i++){<br />
<br />
if (light[i] > compare + 10){<br />
digitalWrite(led[i], HIGH);<br />
}<br />
<br />
else {<br />
digitalWrite(led[i], LOW);<br />
}<br />
<br />
}<br />
}<br />
<br />
else if (val == 0 && val2 == 0){<br />
for(int i = 0; i<12; i++){<br />
digitalWrite(led[i], LOW);<br />
}<br />
}<br />
}<br />
<div><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-61950185228394309442010-11-26T15:48:00.000-08:002010-11-26T15:48:08.061-08:00electromagnets...So far, the only successful electromagnets that we managed to make were out of transformer coils. Unfortunately we only have enough supplies to make ten for the final project so we spent the majority of the week experimenting with different forms of electromagnets. We finally acquired some enameled wire which greatly helped the process along. Ekta managed to wrap a magnet that caused the ferrofluid to spike:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ0SXoY9y6IJF_clfqElv2YJVqJnokI5usBHdhXo8UBq72JrG-wumoAMLilRoj4lq7t1hvdpOeSwvJLyelkRYMEvDPbgw14whyphenhyphen39WdPWanYE5MIGkiRiNTfk3p3hr4_jcn8g7WtELz5a8/s1600/IMG_2183.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ0SXoY9y6IJF_clfqElv2YJVqJnokI5usBHdhXo8UBq72JrG-wumoAMLilRoj4lq7t1hvdpOeSwvJLyelkRYMEvDPbgw14whyphenhyphen39WdPWanYE5MIGkiRiNTfk3p3hr4_jcn8g7WtELz5a8/s320/IMG_2183.JPG" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdOhJygdnV2zhf7cUF6HgmOUoKEKZEod8rKgzeV2XFh1Cs3AnmsLCXRQLBzmiwY0yqxC7WKrXCSt-kWuJiNTTiJcDMixt143lo2BLp_wZhb8d34CdeXY3uxWN_b689mz0HKEwyIJbZI_g/s1600/IMG_2187.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdOhJygdnV2zhf7cUF6HgmOUoKEKZEod8rKgzeV2XFh1Cs3AnmsLCXRQLBzmiwY0yqxC7WKrXCSt-kWuJiNTTiJcDMixt143lo2BLp_wZhb8d34CdeXY3uxWN_b689mz0HKEwyIJbZI_g/s320/IMG_2187.JPG" width="320" /></a> </div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">I also tried to make electromagnets that used the ferrofluid as a core so we wouldn't have to worry about sealing the box they are in. These magnets, as seen below, do not spike but form a small bump of ferrofluid. </div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikbafpM79__bLWuCNqAyo0ahl322tcMqGiBV8w9zGloH7tPv1Hc3hf8Ox0iRkpQR8-j70UMP1rM2OMhbS9AkLyuRU0UEElzBp2VRWEpapYGLe3Xkd5gfT_i-Dzlz3vXV5vSNZitMqLuyY/s1600/IMG_2201.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikbafpM79__bLWuCNqAyo0ahl322tcMqGiBV8w9zGloH7tPv1Hc3hf8Ox0iRkpQR8-j70UMP1rM2OMhbS9AkLyuRU0UEElzBp2VRWEpapYGLe3Xkd5gfT_i-Dzlz3vXV5vSNZitMqLuyY/s320/IMG_2201.JPG" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigiLwnBEdYj4pqXUbWgo-1sL-hqpKVxCfFcLvLXF13A8CNy9pkp4N43wK8-gnkmxX2vW2-oPNqObG3GlMV3n9O-zoFxkBhccm8tWKES72RW52p91as6REM7qAhYaTz3rm08HoSgDWO_EQ/s1600/IMG_2202.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigiLwnBEdYj4pqXUbWgo-1sL-hqpKVxCfFcLvLXF13A8CNy9pkp4N43wK8-gnkmxX2vW2-oPNqObG3GlMV3n9O-zoFxkBhccm8tWKES72RW52p91as6REM7qAhYaTz3rm08HoSgDWO_EQ/s320/IMG_2202.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnzktZ7PbqU6lQ_5eZdRfUdMEwaNMTIqY9X3f1mDy6PH2TgRBtL1kyqB5Gyli7JZEYUbtEeXtyrFLXqScq1-JGVn2bFkGPRMwTHiJNuoGJLUJLYr5G_oH1qZdrxaPt9eGVbVT2zoOizFU/s1600/IMG_2197.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnzktZ7PbqU6lQ_5eZdRfUdMEwaNMTIqY9X3f1mDy6PH2TgRBtL1kyqB5Gyli7JZEYUbtEeXtyrFLXqScq1-JGVn2bFkGPRMwTHiJNuoGJLUJLYr5G_oH1qZdrxaPt9eGVbVT2zoOizFU/s320/IMG_2197.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">The final form of our project will contain magnets which spike (made the same way Ekta made her's). We found a better way to seal the magnets into the acrylic using epoxy clay which passed both water and ferrofluid leak tests which we ran for several consecutive days.</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-58193166214870724212010-11-26T15:32:00.000-08:002010-11-26T15:32:18.575-08:003 boxesWe decided that our final project would be composed of three modules; each responding to either light, sound, or touch. The form was three meter wide vertical boxes, with a viewing window 54" off the ground and extending 18 inches up. One of the boxes was presented in class and was not well received, causing us to reconsider the final form of our project. I wrote and tested programs for all three responses so if we proceed with any of them the coding will be at least partially done.Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-21738515261268995662010-11-26T15:22:00.000-08:002010-11-26T15:22:48.652-08:00working module<div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">The requirement for this week was to have a working module of our final project to present. Since we switched our project the previous week we had to come up with a project and get it working in a relatively short amount of time. We presented an array of extended core electromagnets which were turned on in response to changes in light. The magnets were made with lag bolts and the enameled wire coils that were taken out of transformers. Each magnet was paired with a photoresistor and turned on when a shadow was over it. This is a view from the bottom of our module showing the electromagnets and relays:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-cJDAqmTqG42kx0QdW0Yhjml6XJ83jfzhvuCTZScllxzWuMgJ7S30_CbBpBFal9Sp-73VsQkPYCBSNQTCKB0AlXk4zBfZxfEmQutxkj2bOhmgSY0VXqf0bkAmEulBNAFSfS56DsDRYtU/s1600/IMG_2140.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-cJDAqmTqG42kx0QdW0Yhjml6XJ83jfzhvuCTZScllxzWuMgJ7S30_CbBpBFal9Sp-73VsQkPYCBSNQTCKB0AlXk4zBfZxfEmQutxkj2bOhmgSY0VXqf0bkAmEulBNAFSfS56DsDRYtU/s320/IMG_2140.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">This is a side view of the fully assembled module with the ferrofluid in it. The spikes are the threads of the lag bolts which were used as the core of the electromagnets.</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX7p-2ERjMbbq4PUxeipDNHC0FxV6VhABu2jQc4v-qxQ5R3thCNLTYtjybcx04vhR0r47Pkh1L_lR1bm58_VPneEQ87w8nq7c77nAghqAs7ZhmzYMmfG5fJCwgWZnWHcmkAww3NKR_7Bc/s1600/IMG_2156.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX7p-2ERjMbbq4PUxeipDNHC0FxV6VhABu2jQc4v-qxQ5R3thCNLTYtjybcx04vhR0r47Pkh1L_lR1bm58_VPneEQ87w8nq7c77nAghqAs7ZhmzYMmfG5fJCwgWZnWHcmkAww3NKR_7Bc/s320/IMG_2156.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">A spiral of ferrofluid formed by turning on one of the electromagnets:</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm45vo80uu-SF-S6JclIOw7BHZ4Pfb7J9W-AYKbqUbEcqSRc6PGGambjqep-AlrqkEcLuUXCKSXglrpbqMkQjholo453mEpKvw0glpgoZqSxa9E8sWDc2aLZSmHGR02SdA3h8bIl0ZiCI/s1600/IMG_2151.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm45vo80uu-SF-S6JclIOw7BHZ4Pfb7J9W-AYKbqUbEcqSRc6PGGambjqep-AlrqkEcLuUXCKSXglrpbqMkQjholo453mEpKvw0glpgoZqSxa9E8sWDc2aLZSmHGR02SdA3h8bIl0ZiCI/s320/IMG_2151.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">We had a small problem with leaking ferrofluid since the heat produced by the electromagnet heated the silicone seals we used. We plan on finding a more reliable sealant for the final and using drip pans as backup.</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-81699475468198973552010-11-06T16:04:00.000-07:002010-11-06T16:04:04.646-07:00Movement mechanisms and a new project<div style="text-align: justify;">It was decided that we needed to further explore movement mechanisms so for the weekend we split up into pairs and each prototyped mechanisms that seemed viable on paper. Unfortunately, paper doesn't always translate well into real life if you don't take the time to work out the mechanics of the system. Here is what resulted (plus one more gear mechanism which is not shown):</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5dea4O_8u6VF4tlkHYRQCd9U9ECFnDWDk5CFqRUksHIXUEFn54g3CsA5gy4CwfE1lVNIBUVDkur90WMCgCWrYVOBr77RVFAifOxPTtmf1ymHkqpbg06lTYWb7yNwRlBHHk-rgCubOQ64/s1600/CIMG5594.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5dea4O_8u6VF4tlkHYRQCd9U9ECFnDWDk5CFqRUksHIXUEFn54g3CsA5gy4CwfE1lVNIBUVDkur90WMCgCWrYVOBr77RVFAifOxPTtmf1ymHkqpbg06lTYWb7yNwRlBHHk-rgCubOQ64/s320/CIMG5594.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDn0iytOSymHgDdTOni2niGk_lUUWSZXv719l19FqAatXmbu9Ddwupyd6IDmHH7C03HQWE9BDkDgzu8AZ_7vpmq6K7lorM3aVw7gc1URChH5w7OSouLjxUHoZqWCyXTq6DzM4mHGUPcM/s1600/CIMG5602.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDn0iytOSymHgDdTOni2niGk_lUUWSZXv719l19FqAatXmbu9Ddwupyd6IDmHH7C03HQWE9BDkDgzu8AZ_7vpmq6K7lorM3aVw7gc1URChH5w7OSouLjxUHoZqWCyXTq6DzM4mHGUPcM/s320/CIMG5602.JPG" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxaVGYjeRt9pzJI_YxZOcIDZKTS8ooVmgCHs8G_ry4WybUuheUlhU69sdYfr0X-MpS4KEfz4mw-qZDsGa34M8GuXTJi9T9WqkAB0Vn0fEp7LUeXQMgYzc78sDPo0d_Uf_hbdJ6FEW8xWQ/s1600/CIMG5603.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxaVGYjeRt9pzJI_YxZOcIDZKTS8ooVmgCHs8G_ry4WybUuheUlhU69sdYfr0X-MpS4KEfz4mw-qZDsGa34M8GuXTJi9T9WqkAB0Vn0fEp7LUeXQMgYzc78sDPo0d_Uf_hbdJ6FEW8xWQ/s320/CIMG5603.JPG" width="320" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5R8QZ8DuNUwuVS-UEgPC50u1ZAEHeknKIpTaQHyu2Sm91g40Y7ukLZ6Xb3iXRM92KpjMkud9wn0S_rKzUGOJg-4OnJYf70lqstWdW2sXgQQIWbWAPOyk06xY-_hwQ1IFKhDM-mm7L6w4/s1600/CIMG5606.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5R8QZ8DuNUwuVS-UEgPC50u1ZAEHeknKIpTaQHyu2Sm91g40Y7ukLZ6Xb3iXRM92KpjMkud9wn0S_rKzUGOJg-4OnJYf70lqstWdW2sXgQQIWbWAPOyk06xY-_hwQ1IFKhDM-mm7L6w4/s320/CIMG5606.JPG" width="240" /></a></div><br />
<div class="separator" style="clear: both; text-align: justify;">Since none of these worked very well, the majority of the group wanted to give up on this project and pursue something which is mechanistically easier and has a higher chance of working well. Now we are making a table which contains ferrofluid which is activated by electromagnets.</div><div style="text-align: justify;"><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-77849946022035579932010-11-06T15:54:00.000-07:002010-11-06T15:54:14.960-07:00Week 6<div style="text-align: justify;">We received our final 6 week project and were required to make a biomimetic smart surface. The assignment is very open ended which made it difficult to come up with a project as we could take the assignment and our three thousand dollars and go in whichever direction we choose. Our group had several meetings where we each presented our ideas of what direction the project could take. As a result, we came up with a list:</div><br />
<ul><li style="text-align: justify;">sphere that responds to stimuli</li>
<li style="text-align: justify;">sea cucumber inspired surface</li>
<li style="text-align: justify;">boxes that for furniture</li>
<li style="text-align: justify;">collection of surfaces that mimic a shoal of fish</li>
<li style="text-align: justify;">blimps that hover by a light </li>
<li style="text-align: justify;">spider web of fiber-optics</li>
<li style="text-align: justify;">device that moves on the ground and interacts with people</li>
<li style="text-align: justify;">surface that falls apart and rebuilds</li>
<li style="text-align: justify;">plants that move toward water</li>
<li style="text-align: justify;">fancy coffee maker</li>
<li style="text-align: justify;">seeded paper</li>
<li style="text-align: justify;">wall of stacked shapes that makes sound</li>
<li style="text-align: justify;">anemone surface</li>
<li style="text-align: justify;">wall covering that shrinks and expands</li>
</ul><div style="text-align: justify;">Through a series of long discussions it was narrowed down to the collection of surfaces that mimics a shoal of fish and the wall of stacked shapes that make sound. We discussed each project further, took a break for the night, and resumed the next day to make a decision. After much compromise in the form, it was decided that we would go with the collection of surfaces that moved similar to a shoal of fish on a window. There was the possibility of them being autonomous so we decided to explore mechanisms for movement on a track and independently on a grid or mesh which would be placed over the window. Unfortunately, the majority of the mechanisms were never prototyped and we just discussed them on paper resulting in the presentation of only one (wheels on a pipe) presented in class. </div><br />
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3UlKJbJfOq126Ei4PlmXarHWIPVBS-t3ssKXTtu9Mp1c9raddAXpUYH8h3PwLFcCngm-skAzMbCK3QI4rfI_V1j3NxunapwfQQjkApz6DYrYRA67-Bwtc1HqHArkguPpUk7cDcHck5Ns/s1600/IMG_2088.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3UlKJbJfOq126Ei4PlmXarHWIPVBS-t3ssKXTtu9Mp1c9raddAXpUYH8h3PwLFcCngm-skAzMbCK3QI4rfI_V1j3NxunapwfQQjkApz6DYrYRA67-Bwtc1HqHArkguPpUk7cDcHck5Ns/s320/IMG_2088.JPG" width="320" /></a></div><span style="font-family: Calibri; font-size: 18pt;"><br />
</span></div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-86469458852037113092010-10-19T10:58:00.000-07:002010-10-19T10:58:20.165-07:00Week 5<div style="text-align: justify;">After the critique of our week 4 solar tracker we decided to focus more on the 2-axis tracker itself and not its application. This resulted in a redesign of the solar tracking mechanism with inspiration coming from the eye. As light enters the eye, it is concentrated to a point where it comes into contact with the retina. The biomimicry aspect of our device comes from how the solar tracker receives the signal to move. Similar to an eye, the light comes through a pinhole and contacts the sensor array (similar to rods and cones in a eye). The light is then read as a number and the device responds by moving towards it. </div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.ophtec.com/uploads/Image/consumer/anoogbw.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="http://www.ophtec.com/uploads/Image/consumer/anoogbw.gif" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.ophtec.com/consumer/en/artisan-artiflex/the-eye">http://www.ophtec.com/consumer/en/artisan-artiflex/the-eye</a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> The device consists of a sphere (the eye) fixed at two points to a turntable so it can rotate freely. An arc of pegs (the mohawk) is attached to the bottom of the sphere and meshes with a gear (powered by a servo) that rotates the eye. The image below shows the preliminary sketches for the movement mechanism of our solar tracker.The gear/mohawk mechanism is then attached to another servo that allows the whole eye to rotate on the xy plane by moving the turntable. The second image is a photograph of one of the joints connecting the turntable and the xy plane servo. The slit in the bar allows the system to adjust in height small amounts to prevent the servo from lifting the lid off the device. </div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1bLBLiJe0ceaCAiAkvyueoQah-werrQ8uqd3QVrt_9iHWYXCzE0u1fWTOJKxqOJbj2FSdhY0AP4aXtCIzQwrxGfVpFC5YyGLPhdxIWB7FSg4KIRfPecz3AWuua90WBJfY_szfVTMXeOc/s1600/IMG_1921.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1bLBLiJe0ceaCAiAkvyueoQah-werrQ8uqd3QVrt_9iHWYXCzE0u1fWTOJKxqOJbj2FSdhY0AP4aXtCIzQwrxGfVpFC5YyGLPhdxIWB7FSg4KIRfPecz3AWuua90WBJfY_szfVTMXeOc/s200/IMG_1921.JPG" width="150" /><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; color: black;"></span></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhpACugMc83ySGw_RFAU42WEcg1BiRb__stnboBEzSGAywNG__UFrXjeWef3NOmd6MNquNwzqCWUAoh56iyNamFvba3V30SjSsdJBWm_ZXzURN-xGE5GY0W6C3vdKuEKF4E5EoT0inoss/s1600/IMG_1932.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhpACugMc83ySGw_RFAU42WEcg1BiRb__stnboBEzSGAywNG__UFrXjeWef3NOmd6MNquNwzqCWUAoh56iyNamFvba3V30SjSsdJBWm_ZXzURN-xGE5GY0W6C3vdKuEKF4E5EoT0inoss/s200/IMG_1932.JPG" width="200" /></a></div><div class="separator" style="clear: both; text-align: justify;">Below is a video of the partially constructed device that allows you to see the movement on both the xy and yz planes. </div><div class="separator" style="clear: both; text-align: center;"><br />
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dw29vnpmMYGRQkf64ToQuC_7jnrNhpY_ggaDQIAn8CP6lH692nokKU-Tup-mExWRFkin8TYGNtP6tyGiJ2p9g' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">This is an image of our fully functional two-axis solar tracking device. When the pin hole has oriented with a light source, the green led indicator light comes on and is visible through the front of the acrylic case. </div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV33UN1wo21TOHsokWEeVVqr6ReE_xOxwm2z3VBjv3YJED8ASylcGdFEkt9iokNl6sl2kLanfyQSPltkLS1CtMpaBYsMqaKUrRmSD_dXWNMupJkah7Gd35dp6l1jj1nQINb0U8TKfDc_M/s1600/IMG_1937.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV33UN1wo21TOHsokWEeVVqr6ReE_xOxwm2z3VBjv3YJED8ASylcGdFEkt9iokNl6sl2kLanfyQSPltkLS1CtMpaBYsMqaKUrRmSD_dXWNMupJkah7Gd35dp6l1jj1nQINb0U8TKfDc_M/s320/IMG_1937.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">This is the code used for operating the servos to track a light source. It is very similar to the one used last week but with the light values mapped to 1050 to account for one of the photoresistors being a different type and reading a much higher value.</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"></div><div class="separator" style="clear: both; text-align: justify;">#include <Servo.h></div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Servo zyplane; //servo attached to the base servo rotates on the zy plane (around x axis)</div><div class="separator" style="clear: both; text-align: justify;">Servo xyplane;</div><div class="separator" style="clear: both; text-align: justify;">int pos = 90;</div><div class="separator" style="clear: both; text-align: justify;">int pos2 = 90;</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">//PhotoResistors (these are all analog pins)</div><div class="separator" style="clear: both; text-align: justify;">int photo1 = 0; </div><div class="separator" style="clear: both; text-align: justify;">int photo2 = 1;</div><div class="separator" style="clear: both; text-align: justify;">int photo3 = 2;</div><div class="separator" style="clear: both; text-align: justify;">int photo4 = 3;</div><div class="separator" style="clear: both; text-align: justify;">int photo5 = 4;</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">//alignment indicator LED (this is a digital PWM pin)</div><div class="separator" style="clear: both; text-align: justify;">int ledPin = 5; </div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">void setup()</div><div class="separator" style="clear: both; text-align: justify;">{</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(ledPin, OUTPUT); //sets the led pin to output</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(photo1, INPUT);</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(photo2, INPUT);</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(photo3, INPUT);</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(photo4, INPUT);</div><div class="separator" style="clear: both; text-align: justify;"> pinMode(photo5, INPUT);</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> zyplane.attach(10);// attach the pin 10 servo to servo object</div><div class="separator" style="clear: both; text-align: justify;"> xyplane.attach(9);</div><div class="separator" style="clear: both; text-align: justify;"> Serial.begin(9600); // use the serial port</div><div class="separator" style="clear: both; text-align: justify;">}</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">void loop()</div><div class="separator" style="clear: both; text-align: justify;">{</div><div class="separator" style="clear: both; text-align: justify;"> //--------------------gives a value for each photoresistor------------------------------</div><div class="separator" style="clear: both; text-align: justify;"> int light1 = analogRead(photo1); //Read the lightlevel</div><div class="separator" style="clear: both; text-align: justify;"> light1 = map(light1, 0, 900, 0, 1050); //adjust the value 0 to 900 to span 0 to 1050</div><div class="separator" style="clear: both; text-align: justify;"> light1 = constrain(light1, 0, 1050);//make sure the value is between 0 and 1050</div><div class="separator" style="clear: both; text-align: justify;"> </div><div class="separator" style="clear: both; text-align: justify;"> int light2 = analogRead(photo2); //Read the lightlevel</div><div class="separator" style="clear: both; text-align: justify;"> light2 = map(light2, 0, 900, 0, 1050); //adjust the value 0 to 900 to span 0 to 1050</div><div class="separator" style="clear: both; text-align: justify;"> light2 = constrain(light2, 0, 1050);//make sure the value is between 0 and 1050</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> int light3 = analogRead(photo3); //Read the lightlevel</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> Serial.println(light3);</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> int light4 = analogRead(photo4); //Read the lightlevel</div><div class="separator" style="clear: both; text-align: justify;"> light4 = map(light4, 0, 900, 0, 1050); //adjust the value 0 to 900 to span 0 to 1050</div><div class="separator" style="clear: both; text-align: justify;"> light4 = constrain(light4, 0, 1050);//make sure the value is between 0 and 255</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> int light5 = analogRead(photo5); //Read the lightlevel</div><div class="separator" style="clear: both; text-align: justify;"> light5 = map(light5, 0, 900, 0, 1050); //adjust the value 0 to 900 to span 0 to 1050</div><div class="separator" style="clear: both; text-align: justify;"> light5 = constrain(light5, 0, 1050);//make sure the value is between 0 and 1050</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">//----------------------------------operates xyplane servo---------------------------------//</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> if (light1>light3 && light1>light5 && light1>light4 && light1>light2 && pos!=180 ){</div><div class="separator" style="clear: both; text-align: justify;"> xyplane.write(pos);</div><div class="separator" style="clear: both; text-align: justify;"> delay(100);</div><div class="separator" style="clear: both; text-align: justify;"> pos ++;</div><div class="separator" style="clear: both; text-align: justify;"> }</div><div class="separator" style="clear: both; text-align: justify;"> </div><div class="separator" style="clear: both; text-align: justify;"> if (light3>light1 && light3>light5 && light3>light4 && light3>light2 && pos!= 0 ){</div><div class="separator" style="clear: both; text-align: justify;"> xyplane.write(pos);</div><div class="separator" style="clear: both; text-align: justify;"> delay(100);</div><div class="separator" style="clear: both; text-align: justify;"> pos --;</div><div class="separator" style="clear: both; text-align: justify;">}</div><div class="separator" style="clear: both; text-align: justify;">//-------------------------------operates zyplane servo----------------------------------------</div><div class="separator" style="clear: both; text-align: justify;"> //zyplane.attach(10);// attach the pin 10 servo to servo object</div><div class="separator" style="clear: both; text-align: justify;"> </div><div class="separator" style="clear: both; text-align: justify;"> if (light2>light4 && light2>light5 && light2>light3 && light2>light1 && pos2!=180 ){ </div><div class="separator" style="clear: both; text-align: justify;"> zyplane.write(pos2);</div><div class="separator" style="clear: both; text-align: justify;"> delay(100);</div><div class="separator" style="clear: both; text-align: justify;"> pos2 --;</div><div class="separator" style="clear: both; text-align: justify;"> }</div><div class="separator" style="clear: both; text-align: justify;"> </div><div class="separator" style="clear: both; text-align: justify;"> if(light4>light2 && light4>light5 && light4>light1 && light4>light3 && pos2 != 0){</div><div class="separator" style="clear: both; text-align: justify;"> zyplane.write(pos2); //goes to the position</div><div class="separator" style="clear: both; text-align: justify;"> delay(100); //this gives the servo time to move</div><div class="separator" style="clear: both; text-align: justify;"> pos2 ++;</div><div class="separator" style="clear: both; text-align: justify;">}</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">//---------------------------operates LED alignment indicator--------------------------------------</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> if (light5>light1 && light5>light2 && light5>light3 && light5>light4){</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"> digitalWrite(ledPin, HIGH);</div><div class="separator" style="clear: both; text-align: justify;"> }</div><div class="separator" style="clear: both; text-align: justify;"> else{ </div><div class="separator" style="clear: both; text-align: justify;"> digitalWrite(ledPin, LOW);</div><div class="separator" style="clear: both; text-align: justify;"> </div><div class="separator" style="clear: both; text-align: justify;"> }</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">} </div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><br />
<div class="separator" style="clear: both; text-align: justify;"><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-51640459499845906232010-10-08T12:58:00.000-07:002010-10-08T12:58:33.895-07:00Week 4<div style="text-align: justify;">The requirements for this week were to create a 2 axis solar tracking biomimetic surface. The design that our group came up with was inspired by the window plant and an eye. The window plant has a relatively flat surface that focuses the light to a central column of oxylic acid where it is channeled downward (similar to fiber optics) to the base of the plant where photosynthesis takes place.</div><div style="text-align: justify;"><br />
</div><img height="183" src="http://www.asknature.org/images/uploads/strategy/6eb4107cbcdde41d35818191b29f60f5/fda6c5a33c736eb93c1d1fe58e487562.jpg" width="400" /><br />
(<a href="http://www.asknature.org/strategy/6eb4107cbcdde41d35818191b29f60f5">http://www.asknature.org/strategy/6eb4107cbcdde41d35818191b29f60f5</a>)<br />
<br />
<div style="text-align: justify;">The eye works by acting as a spherical lens that focuses light to a single point. Our proposed design consisted of a hemispherical glass dome, which acts as a lens, that focuses light to a point where a solar panel would be placed. This allows for a higher efficiency solar panel to be used since the light would be concentrated. The solar panel would be located just past the center of the sphere as the focal point of a spherical lens is approximately equal to the radius. As the sun moves through the sky there will be a small variance in the position of the focus point (it moves over an arc throughout the day) so the solar panel would be located on a solar tracking device to optimize the alignment with the sun. This would be achieved by placing an array of photo resistors under a pinhole in the solar panel. The solar cell would then move in the direction of the light until the central photo resistor receives the most light, at which point the photovoltaic would be aligned and the movement would stop. </div><br />
<br />
Solar Tracking Code:<br />
<br />
<br />
#include <Servo.h><br />
Servo xyplane; //base servo that rotates on the xy plane(around z axis)<br />
int pos = 0;<br />
<br />
Servo zyplane; //servo attached to the base servo rotates on the zy plane (around x axis)<br />
int pos2 = 0;<br />
<br />
<br />
//PhotoResistors (these are all analog pins)<br />
int photo1 = 0;<br />
int photo2 = 1;<br />
int photo3 = 2;<br />
int photo4 = 3;<br />
int photo5 = 4;<br />
<br />
//alignment indicator LED (this is a digital PWM pin)<br />
int ledPin = 5; <br />
<br />
void setup()<br />
{<br />
pinMode(ledPin, OUTPUT); //sets the led pin to output<br />
pinMode(photo1, INPUT);<br />
pinMode(photo2, INPUT);<br />
pinMode(photo3, INPUT);<br />
pinMode(photo4, INPUT);<br />
pinMode(photo5, INPUT);<br />
xyplane.attach(9); // attach the pin 9 servo to servo object<br />
zyplane.attach(10);// attach the pin 10 servo to servo object<br />
}<br />
<br />
void loop()<br />
{<br />
//--------------------gives a value for each photoresistor------------------------------<br />
int light1 = analogRead(photo1); //Read the lightlevel<br />
light1 = map(light1, 0, 900, 0, 255); //adjust the value 0 to 900 to span 0 to 255<br />
light1 = constrain(light1, 0, 255);//make sure the value is between 0 and 255<br />
<br />
<br />
int light2 = analogRead(photo2); //Read the lightlevel<br />
light2 = map(light2, 0, 900, 0, 255); //adjust the value 0 to 900 to span 0 to 255<br />
light2 = constrain(light2, 0, 255);//make sure the value is between 0 and 255<br />
<br />
<br />
int light3 = analogRead(photo3); //Read the lightlevel<br />
light3 = map(light2, 0, 900, 0, 255); //adjust the value 0 to 900 to span 0 to 255<br />
light3 = constrain(light3, 0, 255);//make sure the value is between 0 and 255<br />
<br />
<br />
int light4 = analogRead(photo4); //Read the lightlevel<br />
light4 = map(light4, 0, 900, 0, 255); //adjust the value 0 to 900 to span 0 to 255<br />
light4 = constrain(light4, 0, 255);//make sure the value is between 0 and 255<br />
<br />
<br />
int light5 = analogRead(photo5); //Read the lightlevel<br />
light5 = map(light5, 0, 900, 0, 255); //adjust the value 0 to 900 to span 0 to 255<br />
light5 = constrain(light5, 0, 255);//make sure the value is between 0 and 255<br />
<br />
<br />
//----------------------------------operates xyplane servo---------------------------------//<br />
<br />
while ( light5<light1 || light5<light3){<br />
<br />
if (light1>light3 && light1>light5){<br />
xyplane.write(pos);<br />
delay(30);<br />
pos ++;<br />
<br />
}<br />
<br />
if (light3>light1 && light3>light5){<br />
xyplane.write(pos); //goes to the position<br />
delay(30); //this gives the servo time to move<br />
pos --;<br />
}<br />
light5= analogRead(photo5);<br />
light1= analogRead(photo1);<br />
light3= analogRead(photo3);<br />
}<br />
//-------------------------------operates zyplane servo----------------------------------------<br />
<br />
while (light5<light2 || light5<light4){<br />
<br />
if (light2>light4 && light2>light5){<br />
zyplane.write(pos2);<br />
delay(30);<br />
pos2 ++;<br />
}<br />
<br />
if(light4>light2 && light4>light5){<br />
zyplane.write(pos2); //goes to the position<br />
delay(30); //this gives the servo time to move<br />
pos2 --;<br />
}<br />
light5= analogRead(photo5);<br />
light4= analogRead(photo4);<br />
light2= analogRead(photo3);<br />
}<br />
<br />
//---------------------------operates LED alignment indicator--------------------------------------<br />
<br />
if (light5>light1 && light5>light2 && light5>light3 && light5>light4){<br />
digitalWrite(ledPin, HIGH);<br />
}<br />
}Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-8518561630798252712010-10-05T08:12:00.000-07:002010-10-05T08:12:45.885-07:00Week 3<div style="text-align: justify;">During the third week of the project our group had to take the acrylic and ping-pong ball model and make it into a functioning structure that was representative of an actual implementation of our design. After the initial criticism of our re-design it was determined that aside from the smartness gained from the plants being automatically watered when needed, the structure should interact with people in some way. The use of LEDs and motion sensors provided this (along with additional aesthetic appeal and an element of delight). In order to better visualize the design, we chose to implement it in the Duderstadt atrium (image below). </div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKt7zmWM169SMDTaRXqC67prFnUAYuLrTstUGubwua1nny8rYDTfh478iH9-3QSEJPv5pzoUcshWBJAz2dMjcsT-JZxWo9mGSP6_m-9bA3ltQB13MXjGIBrX1qaONyHga_ETIwwt-SelE/s1600/CIMG5318.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKt7zmWM169SMDTaRXqC67prFnUAYuLrTstUGubwua1nny8rYDTfh478iH9-3QSEJPv5pzoUcshWBJAz2dMjcsT-JZxWo9mGSP6_m-9bA3ltQB13MXjGIBrX1qaONyHga_ETIwwt-SelE/s320/CIMG5318.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">For our model, the atrium was constructed out of acrylic and chipboard with the plant holding spheres represented by ping-pong balls. Red, blue, and green LEDs were incorporated within the ping-pong balls to provide the lighting effects. The blue lights were programmed to turn on and fade off in sequence to look like water flowing downward, the green lights lit and faded randomly, and the red lights respond to motion. All three LED sets would only come on when it was dark. As it was difficult to connect the arduinos without the proper i2c, each set of lights and the pump ran on separate arduinos. Below is an image of the final model as well as an image of the wiring and arduinos. </div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSNko8GTODlER4FbHRuyS3d9CzU3jWMkRNV6GmcMtYdUDgX3Se3XwafgLaGQglEI9pT1wxsz7HqlBGoiHjRIygIFLz0ukjSuHgWX1U5Ss1IeP-DwX7-MmCFnQc5VCgK2C5wSHKrMSKy-U/s1600/IMG_1851.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic6e3XOn5j8yhoklf4-l0YwrpD9YYxfq27Vit6wRJ38LokWzMVgERejrLRJz_GtxLjLYgdAsr83LJ8-IkqkbbcDRSnoZw0YKU9jXsupICKrG17IRL4m-VHcBgH5L8nUxmefqB-QeiNsSo/s1600/IMG_1847.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"><br />
</a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic6e3XOn5j8yhoklf4-l0YwrpD9YYxfq27Vit6wRJ38LokWzMVgERejrLRJz_GtxLjLYgdAsr83LJ8-IkqkbbcDRSnoZw0YKU9jXsupICKrG17IRL4m-VHcBgH5L8nUxmefqB-QeiNsSo/s1600/IMG_1847.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic6e3XOn5j8yhoklf4-l0YwrpD9YYxfq27Vit6wRJ38LokWzMVgERejrLRJz_GtxLjLYgdAsr83LJ8-IkqkbbcDRSnoZw0YKU9jXsupICKrG17IRL4m-VHcBgH5L8nUxmefqB-QeiNsSo/s200/IMG_1847.JPG" width="150" /></a><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; color: black; margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSNko8GTODlER4FbHRuyS3d9CzU3jWMkRNV6GmcMtYdUDgX3Se3XwafgLaGQglEI9pT1wxsz7HqlBGoiHjRIygIFLz0ukjSuHgWX1U5Ss1IeP-DwX7-MmCFnQc5VCgK2C5wSHKrMSKy-U/s200/IMG_1851.JPG" width="200" /></span></div><div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; color: black; margin-left: 1em; margin-right: 1em;"><br />
</span></div><div class="separator" style="clear: both; text-align: justify;"><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; color: black; margin-left: 1em; margin-right: 1em;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><u><br />
</u></div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-6911892116951938722010-09-28T13:41:00.000-07:002010-09-28T13:41:36.804-07:00Re-design (week 2)<div style="text-align: justify;">After the critique of our week 1 project, it was clear that we had reached a dead end with our current design. It was a general consensus that we needed something entirely new that met the criteria (smart surface, holds, optimally packed spheres) but still retained the properties of the last design that we liked (the different interpretation of optimally packed, aesthetically pleasing). During the reevaluation of our last design we determined some of the problems with it were:</div><ul><li>no purpose/practicality</li>
<li>no specific location for it's use</li>
<li>the design would be difficult to mechanize</li>
<li>'holds' was interpreted too literally</li>
<li>wasn't scalable</li>
<li>weak relation to bio mimicry</li>
<li>it didn't "do enough" for the complexity of the design<br />
</li>
</ul><div style="text-align: justify;">One of the group members pointed out that some of the smartness of the design could come from the way we use the materials, not just force the materials to represent our idea. Acrylic is translucent, watertight and rigid; chipboard is flexible, and opaque. These properties helped us determine what our final design would be. </div><div><div style="text-align: justify;"><br />
</div></div><div><br />
<div style="text-align: justify;">Initially, it was purposed that a cluster of plant holding acrylic spheres could be arranged around a light source. With this design, the plants would get receive light and soften it so it wasn't as bright in the room (the shadows cast from the plants could also have aesthetic appeal). This design would allow lighting needs to still be met while incorporating good growing conditions for plants into a room. The arduino would be used to take soil moisture readings and water the plants when needed. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">The previously described 'plant sphere lamp' idea was expanded on and the result was a panel system in which clear plant holding spheres were nested. The bottoms of the spheres would be silvered to prevent root rot and make it more aesthetically pleasing. The series of panels would be used to create structures indoors. These would include dividing walls, partial window coverings, and awning type structures that you could walk through. The use of the ardunio to provide water would remain the same. The purpose of this design is to allow for plants to be incorporated into well lit, indoor areas in a low maintenance, artistic, and aesthetically pleasing way. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">For the week 2 presentation, our group presented a bent acrylic sheet with laser cut holes that held ping-pong balls that represented the proposed plant holding acrylic ones.</div><br />
<br />
<div></div><div><br />
</div></div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-45245049517964495982010-09-23T19:52:00.000-07:002010-09-23T19:52:41.327-07:009/15 to 9/16<div style="text-align: justify;">When we met to finish our week one project, one of the group members purposed a new interpretation of 'optimally packing' in which the spheres that we made would be stored in a position where they were folded together (a sphere nested within a sphere). This proposal allowed for all eight of the spheres to pack down to four all while remaining an optimally packed plane. After a long discussion, it was agreed that we would continue with the new interpretation of optimal packing. Ideally, the spheres would un-nest and close by means of a motor but for the purpose of our presentation we manipulated them by hand.<br />
<br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0tag:blogger.com,1999:blog-8361509295391337533.post-18456940189053422982010-09-14T15:12:00.000-07:002010-09-14T15:12:48.627-07:009/09-9/14The criteria that we were given to work with were:<br />
-Smart surface<br />
-Holds<br />
-Optimally packed spheres (with inspiration from the spittle bug <a href="http://www.organicgardeninfo.com/images/spittlebugs.jpg">http://www.organicgardeninfo.com/images/spittlebugs.jpg</a>)<br />
<br />
<div style="text-align: justify;">Initially, the ideas consisted of a structure that was filled with spheres packed in the fcc orientation. The design consisted of chipboard walls with holes cut into them to allow small spheres (ping-pong ball size) to fill it without gaps on the sides. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Figure 1 is a model made in Rhinoceros that shows how the spheres would protrude from the holes cut into the chipboard. In this design, the chipboard structure optimally holds the spheres.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjygoypWkooOgfxruW3O051sLadcVm6KAYF0lic6arWPIIrDN4Vguw8sf6j5njv3w3qMtM_g1geM8ohnoA1Sj2mZrYa0Z4sGhkgFM6BZ3KzzOwPghlEHB76uI-YmVsH9SVoKDDtKnKImyo/s1600/prop_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjygoypWkooOgfxruW3O051sLadcVm6KAYF0lic6arWPIIrDN4Vguw8sf6j5njv3w3qMtM_g1geM8ohnoA1Sj2mZrYa0Z4sGhkgFM6BZ3KzzOwPghlEHB76uI-YmVsH9SVoKDDtKnKImyo/s320/prop_1.jpg" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 1</div><br />
<div style="text-align: justify;">Figure 2 is a model made in Rhinoceros of the second initial design. It is similar to the one shown in Figure 1 except that there is also a structure on the inside and the spheres fill the area between the two panels of chipboard. Initially, it was thought this was the better of the two as it holds the spheres optimally and can hold something else in the inner compartment. </div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFYUIauf24HOnyEb0QQxK8RBRVQUOvJgKR0vlVe-vwiMO_3I0ZsbbEVNXHH0lSulVffY-bZ3gHIJ9Ki9-4xQp2z5sUxgAAsQ2Np8U6YCHWX8wjxZuJdXOhY1XqLeWvJ24oHKGgsuuNccU/s1600/prop_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFYUIauf24HOnyEb0QQxK8RBRVQUOvJgKR0vlVe-vwiMO_3I0ZsbbEVNXHH0lSulVffY-bZ3gHIJ9Ki9-4xQp2z5sUxgAAsQ2Np8U6YCHWX8wjxZuJdXOhY1XqLeWvJ24oHKGgsuuNccU/s320/prop_2.jpg" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 2</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">After a night it was agreed upon by the group that we had left out the 'smart' portion of our surface. The definition of 'smart' was discussed in depth and it was decided that the surface had to respond to or interact with something. </div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Again, two ideas were purposed. One of which was a ramp and basket combination that spheres would roll down and end up in the fcc orientation. The other was a structure consisting of stacked spheres (in fcc orientation) that opened to hold something. Figure 3 is a preliminary sketch of this design. The spheres would be made of leaf-like panels that would open by means of rotating around an axis.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzMElLDlhG-T0JE4fNzmVJLrj3uEgx6CEc27hh3fKkKUPn3ntDiq0De-4NwA7tw_d8bmafc9CeTaw5wk2kRL7l1_mfSktwS0do_ejcA8RSkgGgTMep1s7cnlG9vJO6reNGtCFMZrKgBe4/s1600/IMG_1788+-+Copy.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzMElLDlhG-T0JE4fNzmVJLrj3uEgx6CEc27hh3fKkKUPn3ntDiq0De-4NwA7tw_d8bmafc9CeTaw5wk2kRL7l1_mfSktwS0do_ejcA8RSkgGgTMep1s7cnlG9vJO6reNGtCFMZrKgBe4/s320/IMG_1788+-+Copy.JPG" /></a></div><div style="text-align: center;">Figure 3</div><div style="text-align: center;"><br />
</div><div style="text-align: justify;">The group split into two in order to more efficiently pursue both design concepts. It was decided that each sphere in the structure should be aprox. 6 inches in diameter and be composed of a rigid hemisphere that was connected to 6 freely moving leafs that would overlap each other. Figure 4 is a model made in Rhinoceros that shows the hemisphere (front of figure) and overlapping panels (back of figure). </div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjQFFIq26ss0Sskrt52tGg8_uLEvoIqHTbdaJQBJw5jFEs0Jh-qMwtM6cfveLYN33HDGPu2WgOp1fp_kGjeNjh-FXNNXqBke75RJv870u6b-W508fXcL9iV3zuvGRWqVXwMFrTD7IUa78/s1600/onione_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjQFFIq26ss0Sskrt52tGg8_uLEvoIqHTbdaJQBJw5jFEs0Jh-qMwtM6cfveLYN33HDGPu2WgOp1fp_kGjeNjh-FXNNXqBke75RJv870u6b-W508fXcL9iV3zuvGRWqVXwMFrTD7IUa78/s320/onione_1.jpg" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 4</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Three chipboard models were made of this design; The second of which was improved to make the final structure more spherical and the third to allow for a better connection between the hemisphere and the panels. Figure 5 shows the first two spheres and Figure 6 shows the third.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqzUVbOyhlFXWpXXogZpnB3pp2Msu5LaOcqti7jxmgnyOpZG08yNWPTycE3xWSN2PL4T6y82ze2C9szhC0_45IKoQ00J9m4tXewmEaIJkxfDykehYpxeGd2yM_O8YQR3SSW3dqj_9Jn4M/s1600/CIMG5156.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqzUVbOyhlFXWpXXogZpnB3pp2Msu5LaOcqti7jxmgnyOpZG08yNWPTycE3xWSN2PL4T6y82ze2C9szhC0_45IKoQ00J9m4tXewmEaIJkxfDykehYpxeGd2yM_O8YQR3SSW3dqj_9Jn4M/s320/CIMG5156.JPG" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 5</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz5_ENBpCqulp9hr-vT9TD4Fcw9CCCN_j1V0u0V263ny7FVMXe2FL4_C50z_kFuuc644Yh9_asAuA2l-HTRbY-StTlZPNNyA2r37hYdvj4sh47eCJz53EpsgKCCYRr92MUBJg_6ux5PeM/s1600/CIMG5163.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz5_ENBpCqulp9hr-vT9TD4Fcw9CCCN_j1V0u0V263ny7FVMXe2FL4_C50z_kFuuc644Yh9_asAuA2l-HTRbY-StTlZPNNyA2r37hYdvj4sh47eCJz53EpsgKCCYRr92MUBJg_6ux5PeM/s320/CIMG5163.JPG" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 6</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">There were a few rotation problems with the front panels, so a modification that was two hemispheres (similar to the current back) one of which slightly smaller than the other that rotate into each other was purposed. One sphere made with the previously mentioned two hemisphere method and it rotated much better.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">The group met as a whole and it was determined that we would all proceed together with the stacked spheres. Gluing the panels, instead of tape, was purposed and found to make the spheres rotate past each other without catching as much. This resulted in making two more spheres were with glue and remaking the original two hemisphere sphere with glue. </div>Melanyhttp://www.blogger.com/profile/15623309114016660486noreply@blogger.com0