Monday, December 6, 2010

Tuesday-Wednesday 11/23-4 (8-9 days left)

What we did on Monday laid the groundwork for what we accomplished on Tuesday and Wednesday. We spent almost all of our spare time in the woodshop and metals studio (right up until it closed for break at 5 on Weds.), sanding the edges of and making holes in each panel so that they'd be ready for surface treating.

I also helped Chris out with circuit building after the shop closed. The lights went out in the Arch studios, which was spooky. Because the third floor is haunted. I went home, finished up, and went to bed. Happy Thanksgiving!

Monday 11/22 (10 days left)

Just got back- the plan was that I was gonna work 6-12 (I arrived there with my bags in tow, directly from the airport) but luckily we were overstaffed and I got to leave. To North Campus!
I arrived to find Betsy alone in the Arch studios. Our priority was to ready the panels for stringing on ribbon and painting, which required that we somehow make holes in the top and bottom of each panel and then rinse them clean. Also some of them haven’t been sanded so we need to try and get them done by Wednesday, when the wood shop closes for the weekend.
Betsy and I figured out that the best way to punch holes in the panels would be to poke through them with a hot object, so we cut some copper pieces out of some scrap Betsy had, mounted them in spare handles we found in the metals studio, and then heated them over a blowtorch and poked them through each panel once they were hot enough. We didn’t get a ton of them done, unfortunately, but there was some time yet (and a Heat & Mass Transfer exam in two days).

Thursday 11/18 (14 days left)

We presented our plan and the little progress we have made. Gonna be a crazy coupla weeks. Crit was standard.
We have begun vacuum forming the panels, and they look pretty great- they will need to have the edges sanded down (the band saw is only so precise unfortunately). Should be pretty time-consuming, but they should look awesome.
Looking forward to this weekend, the gang will be working here while I will be out of commission. I hate to strand them like this, but this is my first chance to see my family since September. On the plus side, my mom and I are gonna make this: 

Tuesday 11/16 (16 days left)


            Crisis Mode! We gotta make a plan! Which is why we are meeting.
            We have settled on a final design: we’re going to go with square panels, with the 45 degree rotation. Except they won’t be flat- we are going to CNC a mold onto which we will vacuum-form plastic, creating an undulating surface. The plastic will be cut such that each square will bend on diagonal axis. Here are some pictures:
We think this is a more interesting surface as it lends a third dimension to our surface and will make for more interesting light effects. It also more closely mimics real leaves, which are never completely flat.
We have also settled on stepper motors (one per column of tiles) as the mechanical method of realizing this concept, and will be designing a means of attaching each motor to its respective column. We will work on interleaving, which will allow them to move more smoothly by creating substeps within each predetermined step (there will be 48 in each rotation for the ones we will use). This will address the jerky motion that people took offense at in our first crit of this project.
The top panel of each column will be firmly riveted to the motor (directly or indirectly), and each subsequent panel will be strung along a 3/8” ribbon, which will allow for a natural cascading effect that travels down (and to a lesser extent, back up) each column as it spins. We are still playing around with using one continuous ribbon per column as well as attaching each panel to the next with a short piece of ribbon, as well as surface treatments for the panels. Once we have panels formed and cut we will be able to experiment with those effects.
We have planned out production for this project for the next 2 weeks with objectives for each day. I’ll upload it once someone emails it to me.

Sunday 11/14 (18 days left)

All quiet on the SmartSurfaces front- we were unable to meet as a group this weekend- everyone was tasked with having one concrete direction they want the group to follow before our next meeting, but the architects have a big studio project due early next week, and the rest of us could certainly use some time to focus on other classes (we have other classes?). Hopefully not too much though- not only aren’t they as much fun, but we really need to settle on a direction for this project. We have a lot of ideas and potential forms for this project, but haven’t settled on one for sure. I think John’s description of it was especially apt, so I’ll try and reproduce it here for him and nobody else to read.

“It’s like you guys have all these renderings, and animations, and sketches, and everyone is like, ‘Yeah! You should do that!’”

Now we just gotta choose who to listen to.
Pat's rendering. Our final direction.

Thursday 11/11 (21 days left)

After nearly sleeping through the beginning of class on the A&D couches, I arrived just in time to finish and print our executive summaries and present. We were critiqued for our lack of fluid motion, but the renderings once again went a long way in proving our concept. We left our presentation with plenty of questions. The overwhelming feeling that it left us with was that we needed to choose a direction. We continued throwing ideas around during and after we were presenting to the class, leaving us with further exploration to carry out but little time in which to do so. Talking with John and Karl was helpful, but there’s still plenty of work to be done.

Wednesday 11/10 (22 days left)


          Our meeting Tuesday was only slightly effective, which left Wednesday to build our module. Simon went to stadium hardware in the morning to buy materials for our frame, and he and I built it together. It was slightly less sturdy than we had hoped, meaning the final modules should probably be smaller and more compact. The rest of the design used boards of MDF at the top and bottom to keep our metal rods in place. The rods were attached to gears that threaded with those on the stepper motors. The motion of each rod was actually quite smooth, as Simon was able to get ball bearings on which each rod could rotate. However, the motion of the panels was quite jerky and inconsistent when connected to the stepper motors, whose discrete angular intervals of rotation were amplified by the use of larger gears.
            I worked mostly on construction into the evening, but once the team was assembled in full I was able to help Chris with the Arduino aspect of the project. I was able to write the code that took in information from the PIR sensors and output a signal to the motors to make them rotate. This worked, although we had trouble getting the stepper motors themselves to rotate smoothly. It was definitely nice to do some work with the Arduino this week, as I had been unable to help out much in previous weeks. I’m normally not great at writing programs but this system of hacking and imitating really worked for me- I ran into few problems with the code (which was admittedly simple- here it is)
// Actuate stepper motors based on readings from PIR Sensors
// Dan Connors, Design Team 2
//

#include <Stepper.h>
#define STEPS 100

Stepper stepper1(STEPS, 0, 1, 2, 3);
Stepper stepper2(STEPS, 4, 5, 6, 7);  
Stepper stepper3(STEPS, 8, 9, 10, 11);

int  val1 = 0;                 // storage for analog output of PIR
int  val2 = 0;
int  val3 = 0;
int  pirSensor1 = 0;           // the passive infra red sensors will be plugged
int  pirSensor2 = 1;           // at analog pins 0, 1, 2
int  pirSensor3 = 2;
int THRESHOLD = 5;

void setup() {
  Serial.begin(9600);
 
  stepper1.setSpeed(100);       // motor speed = 30 RPM
  stepper2.setSpeed(100);
  stepper3.setSpeed(100);
}

void loop() {
 
  val1 = analogRead(pirSensor1);   //read values from PIR sensors
  val2 = analogRead(pirSensor2);
  val3 = analogRead(pirSensor3);
 
  while ((val1 >= THRESHOLD) && (val2 < THRESHOLD) && (val3 < THRESHOLD)) {
    stepper1.step(10);             //turn on motor 1 if PIR 1 senses motion
    stepper2.step(0);
    stepper3.step(0);
    val1 = analogRead(pirSensor1); //read values again- keeps motors going
    val2 = analogRead(pirSensor2); //if motion hasn't stopped
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  //repeat for each possible scenario of PIR sensors
 
  while ((val1 >= THRESHOLD) && (val2 >= THRESHOLD) && (val3 < THRESHOLD)) {
    stepper1.step(10);
    stepper2.step(10);
    stepper3.step(0);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 >= THRESHOLD) && (val2 >= THRESHOLD) && (val3 >= THRESHOLD)) {
    stepper1.step(10);
    stepper2.step(10);
    stepper3.step(10);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 < THRESHOLD) && (val2 >= THRESHOLD) && (val3 >= THRESHOLD)) {
    stepper1.step(0);
    stepper2.step(10);
    stepper3.step(10);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 >= THRESHOLD) && (val2 < THRESHOLD) && (val3 >= THRESHOLD)) {
    stepper1.step(10);
    stepper2.step(0);
    stepper3.step(10);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 < THRESHOLD) && (val2 < THRESHOLD) && (val3 < THRESHOLD)) {
    stepper1.step(0);
    stepper2.step(0);
    stepper3.step(0);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 < THRESHOLD) && (val2 < THRESHOLD) && (val3 >= THRESHOLD)) {
    stepper1.step(0);
    stepper2.step(0);
    stepper3.step(10);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }
 
  while ((val1 < THRESHOLD) && (val2 >= THRESHOLD) && (val3 < THRESHOLD)) {
    stepper1.step(0);
    stepper2.step(10);
    stepper3.step(0);
    val1 = analogRead(pirSensor1);
    val2 = analogRead(pirSensor2);
    val3 = analogRead(pirSensor3);
    delay(125);
  }

 
The panels themselves were squares, but to make the module more visually interesting we rotated them 45 degrees in the plane of the surface so that they partially overlapped with those in the neighboring rows. We didn’t have enough acrylic to make the tiles as well as some of the mock-ups we had used, so we spray painted some chipboard. This was less effective, but served our purposes well enough.