Tuesday, December 14, 2010

Final Manufacture

I was most involved in the final manufacture of the design as opposed to the electronics or fabrication of parts.  Alex took some great pictures of the step by step way we put each of the pieces together.  Here it is:
Battery Module
This is the MDF base that Alex routed for the battery module.

 This image shows how the lithium ion battery fits snuggly into the frame.  There is a PIR motion detector in the small rectangular compartment on the right.

 All electrical connections, circuit boards, and wires must be shoved into the base before the sandblasted acrylic can be bolted into place.  When all of the sensors were attached this was nearly impossible to close.  We tried to shorten some of the wires and screw extenders would be helpful.  It may also be possible to make the frame thicker or lose some of the sides so that there is a little more room for the wires.

Sensing Modules:
 These are the snapping mechanisms that we used to keep the suction cups on the modules.

 This is the base that is different from the battery module.  The suction cup is below the center.  There are acrylic holders for the servos on each of the three arms.


This shows the servos in place with the bobbins attached.  The bobbins are made of acrylic and have fishing line wound around them.

This is an image of the transmitting/receiving module all assembled.  The fishing line from the bobbins is tied through holes on the top of the face.  Holes were laser cut out of the acrylic for the fishing line to come through.  When the servo turns the bobbin either lets out or takes in some of the fishing line so that the top face will move according to the instructions that the servos are receiving.  Many of the faces have holes laser cut in them so that fiber optics could be threaded through to create interesting effects with the LEDs that were in the face.

Monday, December 6, 2010

Final Project: What Does It Do?

Wrote this almost a month ago but it never got published:

That is a good question.  Our design is such an open platform we couldn't decide.  We couldn't decide what sensors to use.  We couldn't decide what to make it do or how to react.  No one wanted to commit to any one thing.  This is why we decided to make our array of clusters very multifunctional...we decided not to decide, basically.  We will have clusters of 5 modules.  One will be the communicator and house the Arduinos and batteries and the other five will have different sensors detecting light, sound, distance, and motion.  At different times different sensors can be functioning or the strongest signal relative to another can determine the function.  What I would really like to see, though, is a hierarchy of sensors.  Maybe the light sensor realizes that it is day time, so the motion sensor starts working and once it senses motion the little creatures start wiggling around and then stop if someone gets close or makes noise and close up.

Final Project: Sensor Testing

To try and narrow down what we wanted our design to do we tested many different sensors.  Here are some of the codes from the ones that I tested:

PING Ultrasonic Range finder code modified from: http://www.arduino.cc/en/Tutorial/Ping

  

const int pingPin = 7;

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
}

void loop()
{
  // establish variables for duration of the ping,
  // and the distance result in inches and centimeters:
  long duration, inches, cm;

  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
 
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
 
  delay(100);
}

long microsecondsToInches(long microseconds)
{

  // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the
  // object we take half of the distance travelled.
  return microseconds / 29 / 2;
}


 The range finder works well and was put into our final project.


The following sound detector code simply turns an LED on when sound is detected:



int inputPin = 7;
int val = 0;
int ledPin = 13;
void setup() {
  pinMode(inputPin, INPUT);
  pinMode(ledPin, OUTPUT);
}
void loop() {
  val = digitalRead(inputPin);
  if (val == HIGH) {
    digitalWrite (ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

The sound detector works well for nearby percussive sounds, but does not pick up voices well.  It should work for footsteps on tile floors like the ones in the NCRC where it will be installed, so it will still be used in the final design.

Sunday, November 7, 2010

As of October 28th...

For the week of the 28th of October Design Team 1 our main goal was to understand all of our sensors and tools we had purchased as well as decide what kind of interactions we wanted to have with our surface.

We tested flex sensors that sense flexural movement by detecting a change in resistance.  We tested RF transmitters and receivers...Chris actually made a 3D mouse by creating a graphic on the computer screen that was moving based on an accelerometer that was attached to a remote Arduino.  Jason tested out a mindflex toy which he hacked to show "brain waves" on a computer screen.  There was a little touchscreen that you can draw on and a few others, too.

We split up into three groups of two as we will do for the rest of the semester based on tasks necessary.  I'm still not sure if this is the best way to go because things feel a little disjointed and the communication in the group has never been that great in the first place.  Alex and I were supposed to work on an array, but this was really difficult since we didn't have a form or a function yet.  I did think that this was interesting, but we would want to do something that reacts to the surroundings instead of programmed patterns.

We thought about different ways to make a surface and what we consider a smart surface and we want to build something that uses the RF transmitters and receivers to have an affect on the audience and we want to stick with the moving mechanism of the LFST and are inspired by tube worms as well.  Such as putting two remote surfaces in the NCRC that will respond to each other or do something related to the other surface's space.  We even discussed using our spring mechanisms to make a floor that would respond to people walking on it by making the ceiling move or light up.

At this point I'm apprehensive about not making too many decisions but the group has promised me that it will be better in the end if we just make what works and then tweak things at the end to make a function or make it look better...guess we'll just have to see.

Monday, October 25, 2010

Sketching on a TI84

Apparently more than one person has hooked up their graphing calculator to their Arduino...this video is pretty cool: http://www.youtube.com/watch?v=cMNOGHKQDQk

Sunday, October 24, 2010

Learning Organically

This is what we did on Thursday:
Got on the little orange bus

Went to the Botanical Gardens
There we learned about all the ways that plants kill things, reproduce, and use energy efficiently.  I had never been so interested in a green house before.  I wish we could have taped each explanation of the plants and their mechanisms for world domination.  Here are some of the plants I thought were the most exciting:

Orchids






I was inspired by the way they are pollinated. They direct the bees where to go and
basically make them passively do all the work. It is a two-step process that is very
inefficient, but using sticky surfaces the plants may eventually be pollinated. I think
it would be neat to make an interactive smart surface that was so smart it could make
people act the way it wanted them to. Oh, and they're pretty, too.

Killer Plants

The two pictures above are from two different plants that get nutrients from insects by trapping them.  The bugs get stuck and then just sit and rot until they are broken down enough for the plant to use them for nutrients.  The simplicity and passiveness of this system could be used as inspiration, though for our purposes we probably wouldn't want rotting insects.

Window Plants!

Also known as living rocks, the window plants that inspired the team to use fiber optics in Project 2 were in the green house!  The chlorophyll is actually in a small layer along the edges of the plants and the window on top allows the sun to be penetrating in at all times of the day to reach the chlorophyll.  The plants are also camouflaged as rocks so that predators won't find them.  Maybe our prototype could have a bio-inspired camouflage and have an unrelated purpose...our act biomimetic and look like something inorganic.


Thursday, October 21, 2010

Please Quantify...

We got together this week to define our team and structure.  We seemed to agree on strengths, weaknesses, and our mission but I got stuck on goal writing.  I sometimes wonder why I chose to go in to engineering in the first place (typically at about 2AM when I am still at the library) and talking about our team and project goals reiterated for me that I require numbers with my goals.  I need a way to test a hypotheses or answer a yes or no question to feel comfortable...this may not always be necessary (as my team is still trying to convince me), but it really makes me feel better.

Tuesday, October 19, 2010

It's Alive!

High five!  The LFST is alive!!  After reconsidering our design for last week we came up with a slimmed down, less tank-like version.  What we seem to have made instead is a little alien creature with some interesting personality traits...here is a video from about 11:30 PM last Wednesday of our little guy:




This was the first time I had ever made something that seemed to be an entity all by itself once it was plugged into an electrical source.  It was really exciting and kind of changed the way I feel about design and creation.  Instead of trying to make a very specific thing with the exact attributes that you want you can make something and then let it tell you what you have made...Karl basically said the same thing during some of the presentations and I wouldn't have really believed it until this project was done.  This also hits on my weaknesses thus far in Smart Surfaces.

I always want to have a plan that we can all stick to and follow because I thought it would make things more efficient.  Maybe it does and maybe it doesn't, but maybe being super-efficient isn't always better.  Letting something that follow the basic criteria grow organically was really rewarding and the level of excitement after our solar tracker started moving was amazing.

Wednesday, October 6, 2010

Defined by Being Confined

I don't know if other groups feel the same way, but it seems like this task is really draining to ours.  We are supposed to make an item that will track the sun, indicate when it has located the sun, and involves biomimicry.  It is supposed to rotate on at least 2 axes and should have personality.  I thought being unconfined was hard for the last design, but having a forced operation is proving to be more difficult.  It seems even worse because I feel like we have to fudge a way to put biomimcry in the design.  I guess we get to define the function of our design, but when it has to involve tracking light it limits the functions that would make sense to use.
 There are a lot of interesting creatures that use light in peculiar ways such as the window plant that uses crystals to guide light down from its flat top down to its roots.  This led us to think about using fiber optics, but they proved to be too expensive and difficult to obtain for our project...not sure where we are going to go with our project at this point.

Tuesday, October 5, 2010

Bringin Home the Tomatoes

The beginning of last week was a little frightening for me...we had two seemingly different approaches to our urban farming problem.  One faction wanted to stick with the geometrical polyhedron and the other wanted to come up with a completely different shape and different mechanisms for the final prototype.  To jog your memory this is the prototype from the week before:

The main problem that I had with this design was that it was inefficient in doing its most important functions....like collecting water.  It was supposed to collect water in those flaps on the bottom and squish the water into a sponge or through a membrane.  Another problem that was discovered was that when this prototype is scaled up to size it would stick out 6 feet.  That kind of defeats the purpose when we are trying to save space.  There was some resistance to change in the group but we eventually came up with a compromise.

The original design that was suggested was the following:


It really isn't that attractive, so much of the group wasn't very fond of it.  It also doesn't quite follow the original criteria of shapes that cover curves efficiently, so a compromise was made:


The top side of each of the panels opened out to allow for water to come in easily and can allow for venting heat and humidity.  Here is a pic of the final product:



The code used for Arduino is as follows:

//  SmartSurfaces 2010
//  Project 1
//  Design Group 1
// 
//  Alex Carmichael, Jason Prasad, Beth Glesner
//  Joyce Tseng, Jim Christian, Chris Parker
// 
//  Written by Beth Glesner and Chris Parker
//  Using SHT1x Library by practicalarduino.com

#include <Stepper.h>
#include <SHT1x.h>

#define SHTDATA  2
#define SHTCLOCK 3
SHT1x sht1x(SHTDATA, SHTCLOCK);

#define MOTORSTEPS 400
Stepper stepper(MOTORSTEPS, 8, 9, 10, 11);

float instantTemp  = 0;
float averageTemp  = 0;
float instantHum   = 0;
float averageHum   = 0;

int cpuCycles      = 0;

void setup()
{
    stepper.setSpeed(100);
   
    Serial.begin(9600);
    Serial.println(“Starting Up”);
    Serial.println(“Calibrating Sensors”);
   
    for(int i = 0; i < 30; i++) {
        averageTemp  += sht1x.readTemperatureF();
        averageHum   += sht1x.readHumidity();
        delay(1000);
    }
    averageTemp /= 30;
    averageHum /= 30;
   
    Serial.println(“Sensors Ready”);
    Serial.print(“Average Temperature(F): “);
    Serial.print(averageTemp, DEC);
    Serial.print(“  “);
    Serial.print(“Average Humidity %: “);
    Serial.print(averageHum, DEC);
    Serial.print(“\n”);
}

void loop()
{
    instantTemp = sht1x.readTemperatureF();
    instantHum = sht1x.readHumidity();
    Serial.print(“Temperature(F): “);
    Serial.print(instantTemp, DEC);
    Serial.print(“  “);
    Serial.print(“Humidity %: “);
    Serial.print(instantHum, DEC);
    Serial.print(“\n”);
   
    if(instantTemp > averageTemp + 2.0) {
        Serial.println(“Opening Panels”);
        stepper.step(400);
    }
   
    if(instantTemp < averageTemp - 2.0) {
        Serial.println(“Closing Panels”);
        stepper.step(-400);
    }
   
    delay(50);
}

This code averages the temperature and humidity in the room and then opens or closes the panels when the temp or humidity differ from the average.

These are the roles for the week:  Rhino-Jason, Jim, and Alex  Arduino-Chris and me  Presentation-Joyce  Construction-everyone!  


I was really impressed how well we came together as a group in the end.  We started out on shaky ground this week, but pulled together to come up with an impressive final product.

Thursday, September 23, 2010

Motion Detection (PIR) to Start Servo Code

This code is a combination of the Servo code from the Arduino guide and the PIR code from smartsurfaces.net/pir


#include <Servo.h>
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
int ledPin = 9; // led connected to control pin 13
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object



 pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT
 Serial.begin(9600); // use the serial port
}
int pirSensor = 0; // the passive infra red sensor will be plugged at analog pin 0
byte val = 0; // variable to store the value read from the sensor pin
int statePin = HIGH; // variable used to store the last LED status, to toggle the light
int THRESHOLD = 5; // threshold value to decide when detected motion is movement or not


void loop() {
  val = analogRead(pirSensor); // read the sensor and store it in the variable "val"
  if (val >= THRESHOLD) {
    statePin = !statePin; // toggle the status of the ledPin (this trick doesn't use time cycles)
    digitalWrite(ledPin, statePin); // turn the led on or off
    Serial.println("Motion Detected"); // send the string "Motion Detected" back to the computer, followed by newline
 for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
  }
  delay(150); // A delay to avoid overloading the serial port



}


Warning: some of the comments may no longer be in the correct places


Team Roles...

Like I wrote (typed still doesn't sound as cool) before, we split up into two teams to see which directions we would want to take our 2-week surface. It was interesting that the team that I was not on (Jason, Chris, and Joyce) went for a patterned, organic-looking installation for a wall or tall-flat surface while the team that I was on (with Alex and Jim) went for a solo, self-containing design. I don't think both of these could have gotten fully developed without splitting up for a time. We chose to go with a sort of "pod" design that can be installed on a window and will respond to rain and temperature given the correct sensors.

For the team that I was on it seemed like Alex was our Rhino expert for the week, Jim was the construction and vision director and I felt that my role was to help construct, give info about greenhouse materials, and build a presentation. Yes, I finally got to use a little specialized knowledge! I thought it was exciting, anyway.

Here are some pics of our designs that we made in the process:





The theme of geometric shapes, scales, and modular forms can be seen in our prototypes.  The last picture is actually just a modified version of the pentagons from our first prototype.

Wednesday, September 22, 2010

New Strategy

This week the team formerly known as Design Team 1 has taken a new strategy to make our prototype better. We decided not to be completely tied down to our prototype from last week, but to build on it and use the comments from our presentation to move forward. We are thinking on many different scales of size now and decided to break off into two sub-groups to allow for more prototypes to be built.

At this point the two group system seems to be working because less ideas get shot down with less people and each small group gets excited and takes ownership of their designs. I think this method will be tested tonight when we get together to choose our direction for the next couple of weeks. This could end well or everyone could be too in love with their own designs to leave room for the other half of the team to give input. I'm really excited about the new concepts, but I don't want to give anything away just yet...

Sunday, September 19, 2010

Reflecting on Week 1

Well the first full week of the Fall 2010 semester felt like the longest week of my life, so I wanted to distance myself from it for a while to better understand what went on. First I want to discuss how our team worked together and our roles on the team and then talk about our first presentation and the results.

There were definitely some positives and negatives in our team dynamic (we still need a good name for ourselves), so first I will delve into the plusses. I liked how our team would bounce ideas off each other and build on the previous thoughts. It was also good that we were all able to go down paths we were interested in to test the boundaries and limitations of different approaches that went along with the same theme. One thing that should be improved on for this week is decision making. I'm not sure if it was just that no one wanted to step on any toes or if we just weren't confident in our own ideas, but it took the team far too long to pick a direction. I think this could be helped by thinking apart for a while and coming back to the group with a well thought out idea.

The roles that each person played on the team were dynamic and changed over time, but these are the basic Belbin roles that I think everyone played: Chris-Implementer, Jim-Plant, Joyce-Monitor/Evaluator, Alex-Monitor/Evaluator, Jason-Completer/Finisher, and Me-Team worker. This is just the way I see it and they didn't fit for the entire week.

We gave our first presentation on Thursday and it seemed to go pretty well. We were all a little nervous because our pentagonal hexacontahedron didn't fold up on its own and wasn't a new shape, but I think the possible applications are so varied that this doesn't matter as much. Hopefully, I find the computer connector for my camera and get some pics up soon. I really appreciated the feedback from the instructors and classmates and after reverse brainstorming with Dr. Shteyn we will have many leads to follow for this coming Thursday. Personally I have been thinking about scale a lot more. What could we do with this shape if it was the size of a building or the size of a pea? The shape is so versatile that it actually could be applied on many different magnitude scales.

Anyway, this class makes me think A LOT and it kind of tires me out, so I will let you know what's going on at a later date.

Wednesday, September 15, 2010

Open-ended Nightmares

It may seem that having no firm set of rules for designing something would make it fun and free, but to me it’s more like a bad dream to me…you know the ones where you know there was something you were supposed to do and you can’t figure it out and you can’t wake up either. I may be exaggerating a little (or maybe a lot) and the team seems to have a good supply of ideas, but I feel like my contribution is minimal. It actually makes me uneasy that there is no textbook or lecture slides to fall back on. The amount of ideas and degree of creative thinking of my team members amazes me and make me feel a little guilty that I am not at that level, yet. Hopefully a time will come soon where my expertise (whatever that could be) will come in handy.

Friday, September 10, 2010

Designers, welcome to the Runway

It isn’t every day that I feel like I’m on a reality TV show, but I am now almost certain that I’m being unwittingly filmed. We walked into a room with resources that I didn’t even know the Dude had…a soldering station? It reminded me a lot of the first time the designers on “Project Runway” get taken to Parsons. The instructors then proceeded to explain their philosophies, goals, and pasts to us (I’m not sure which is Michael Korrs, Nina Garcia, or Heidi Klum). Some of their work and ideas are quite fascinating.

During lunch we watched an episode of the show “Prototype This” in which the team tried to make a gecko-inspired superhero suit. The methods they used for prototyping such as laser-cutters and getting 3D models printed were new to me because I am used to having the material be the subject as opposed to the making of an object be a subject in a design. It was nice to see the guys succeed but what was even more interesting were the attempts that failed…I certainly never thought about applying a voltage to Mylar to get myself to stick to a wall.

The video was then followed by a field trip to the Architecture building’s workshops and fab lab. Checking out all the resources that are in that one building was another shock to me and I’m a little jealous of all the hands-on work they get to do. I always thought there would be more hands-on learning in the engineering curriculum…I mean, we have lab courses that get our feet wet, but we don’t ever really prototype and construct in materials science courses.

Once we got back from our tour the parallels to “Project Runway” commenced once more. We were broken up into our teams and given our task and some of our design criteria for our first assignment: using only chip board make a “surface” with at least 9 interlocking parts that is smaller than 3’ by 3’. Wow! Ok, that’s a little open-ended, so then we were told that we would draw 2 more criteria at random (can’t you just see Heidi standing there with her bag full of buttons?). Our team chooses “exposed” and “shapes that cover curved surfaces efficiently (the example given to us was the shapes on a turtle shell).”

The part about the criteria that poses the most interesting problem is the seemingly opposite nature of these last two constraints. How can you make something covered and exposed? Originally the whole group was thinking along the same lines…the surface could expose something at one point in time and then cover it at another. The objects we thought about were the turtle shell, a retractable dome, eyes, etc. We also discussed the shapes and mechanisms of these objects as well as geodesic domes and soccer balls. This is where, I think, our ideas started to become unique and take shape.

When someone tells me to cover a curve efficiently I immediately think polygons and lots of straight lines…you know, get the highest atomic packing factor possible, go with hexagons! But listening to the other members of the group I realize that not only would they not necessarily be the best, but also curved shapes might make a surface more functional and pleasing to the eye instead of the harsh shapes I was thinking of. We discussed different ways of exposing and covering from flipping and rotating to telescoping…this is about when the instructors a.k.a Tim Gunn came over and said something along the lines of “Maybe there don’t have to be two stages in time, maybe it can be covered or exposed at different points in space.” Hmmm. Why didn’t we think of that? Of course this is where they should have added, “Make it work.” but that would have given away the fact that we were actually on a “Project Runway” spin-off show.

This is when the ideas really started to flow, especially after we were told to look up Hoberman’s switch pitch. Of course this is also when we had to start getting ready to leave. We all decided to go home and think about it and to convene Friday and Saturday to discuss and start construction. Honestly though, I felt it was much easier to think together than I have been able to do since we left Design Lab 1. It is really difficult for me to come up with actual design concepts by myself, but I have thought of some possible inspirations such as the World Cup 2010 Jabulani and a mobius strip.

About the Jabulani’s design:
http://www.popsci.com/technology/article/2009-12/science-behind-jubulani-adidass-2010-world-cup-soccer-ball