Wednesday, September 30, 2009

Heliotropic Fields!


So this week was a bit different in Smart Surfaces as we spent last Friday in class learning Digital Project, a software program that is a pain to work with but kinda cool when it does work.
Sitting in class, making Theo Jansen walking leg machines in Digital Project. Note, watch the Theo Jansen TED talk I linked just above. It's amazing.

Our objective this week,

You are to make a heliotropic field that is responsive to the movement of the sun. Use this project to build on previous work and to refine your understanding of a heliotropic system. Is it possible that the shadow of one cell might affect its neighbor? Is it possible for cells work together to share the available sunlight? The power copy demonstration developed a simple form and framework that uses information from the solar chart. Working with your team, you are to develop a speculative design in Digital Project and a prototype array built with your Arduino materials.

This should be presented as:
  • An animation using screen shots from Digital Project.
  • An operational prototype of 3 working / related cells.
Obviously the digital representation can include a larger field of components and demonstrate their relationships while the Arduino mock-up will demonstrate the operation of a few cells.

So, with that in mind, this is what we're working on. A field of cells that follow the sun using data on where the sun is from Excel and Digital Project. We're also designing something akin to flower petals that open as the day starts to collect sun and close in the evening.


Initial Ideas and Drawings

Assembly of our field.


The field, these are pulled by two servos to follow the sun.

Assembly of the servo connections.

Our field, moving, controlled by the Arduino.

Cutting out the petals for the collectors on the laser cutter.

Our group is meeting again tonight for final set up to get everything working. I'll be taking pictures and posting soon!
Thanks for reading!

Arduino Heliotropic Code

This is the code from our second project, the light source finder. Our code was mostly derived from the Arduino meets Processing project and was pretty much figured out by Michael Mathieu, a senior in MSE.

Just a note for anyone who's never looked at code before, anything inside of or after / is a comment to tell the human reader what it does.

/*
* ap_LDRAiming
*
* Reads an analog input from the input pin and sends the value
* followed by a line break over the serial port.
*
* This file is part of the Arduino meets Processing Project:
* For more information visit http://www.arduino.cc.
*
* copyleft 2005 by Melvin Ochsmann for Malm� University
*
*/
#include
Servo myServo;

// variables for input pin and control LED
int PhotoA = 3;
int PhotoB = 4;
int PhotoC = 5;
int LEDpin = 13;
int pos = 0;

// variable to store the value
int valueA = 0;
int valueB = 0;
int valueC = 0;
// a threshold to decide when the LED turns on
int threshold = 750;
void setup(){

// declaration of pin modes
pinMode(PhotoA, INPUT);
pinMode(PhotoB, INPUT);
pinMode(PhotoC, INPUT);
pinMode(LEDpin, OUTPUT);
myServo.attach(9);
// begin sending over serial port
Serial.begin(9600);
}

void loop(){
// read the value on analog input
valueA = analogRead(PhotoA);
valueB = analogRead(PhotoB);
valueC = analogRead(PhotoC);

// if value greater than threshold turn on LED
if (valueA <>

// print out value over the serial port
Serial.print(valueA);
Serial.print(",");
Serial.print(valueB);
Serial.print(",");
Serial.print(valueC);
// and a signal that serves as seperator between two values
Serial.print(";");
// Checks if right is greater than left, if so move to right.

if (valueB > (valueC +20))
// +20 is the deadzone, so it wont jiggle back and forth.
{
if (179 > pos)
pos++;
myServo.write(pos);
}

// Checks if left is greater than right, if so move to left.
if (valueC > (valueB +20))
// +20 is the deadzone, so it wont jiggle back and forth.
{
if (pos > 1)
pos -= 1;
myServo.write(pos);
}

// wait for a bit to not overload the port
delay(10);
}

The code includes a serial input that we used to judge whether or not our solar detection was working properly in a numerical sense. By slowing the program down to a delay of 250, we were able to tweak the code in order to ensure that the readings were proper, and that we could utilize the changes in direction properly.

The biggest issue for our group was ambient lighting, which we were able to counteract with a shade of sorts Allison and I made while in design, but in final display we could not, because of the amount of ambient light in the presentation area rendered our shade useless. We set our thresholds slightly too high for the situation that we were in, but it worked amicably for the purpose of presentation.

Thanks for reading.

Week 2 and Heliotropic Systems

A quick update on week 2-3. We've moved along with arduino learning how to program it using photocells and servo motors to follow a light source, which is quite cool actually, I'm still at the "gee-whiz! It moves!" stage of physical computing. I really think they should teach physical computing in Physics 240 (electromagnetic phyics and includes circuits) and Engin 101 (programing). Learning how to manipulate code to actually have a physical result is much more enganing than the same old compile, run, debug, compile, run, "hello world!'.

Anyway, all of this is leading into heliotropic systems (following the sun, like sunflowers).

Our light source tracker!

The bread board and all the wires inside the base.

We had two servo motors moving our contraption. One on the horizontal (x-axis) making it rotate and follow side to side and the other on the vertical (y-axis) following up and down.

For a quick video of it mostly working (too much ambient light, we set our light threshold a bit to high). Check out my group member, Damien's, flickr site here. Her blog can be found here.

Friday, September 18, 2009

Day 2. Lots o' Arduino!

Just got back from day 2 of Smart Surfaces (it's a weekly, all day Friday course). It was a fun day, quite interesting and all new for me. We worked with Arduino over the course of the week on our own and then today learned some slightly more advanced things.

We started with LDR cells (photoresistor cells).


LDR lessons here.

The arduino and breadboard for the LDR circuit.

We then moved on to H-bridges. An H-bridge is an electronic circuit which enables a voltage to be applied across a load in either direction. These circuits allow DC motors to run both forwards and backwards. H-bridges are generally used to reverse the polarity of a motor, but can also be used to 'brake' the motor, where the motor comes to a sudden stop.


HBridge lessons here.

The h-bridge set up.

Finally we moved onto servo motors.


Servo lessons here.

The servo motor set up.

All this learning was set up towards our exercise for the day, making photoresistor cells follow a light source. Our team used the photo cells, and the servo motors to accomplish this goal. We didn't really use the h-bridge because we only had an hour to accomplish the whole thing. I don't have any picture even because we were working so diligently. Our homework this week though is to get back together and perfect our designs so I'll have pictures once were done with that. This class is so interesting and actually quite fun!

Last week I had commented on the different knowledge basis that the different students had and today it was apparent again. One of the engineering students (whose name now escapes me, sorry!), knew what to do with the coding side and really was the director for our team today on the electronic side of things. I helped to put together some circuits and build the base that our servo motors moved on and the housing for our photo cells to thus follow light from. It was fun!

I'll have more later, once we meet again.

Just a point, for anyone remotely interested in this or any interdisciplinary work on design, engineering, check out the Smart Surfaces website. It's so much more than a simple course site.

Thanks for reading!

My workspace for the day. Glamourous, I know.

Arduino and making LED's blink! It's all so exciting!

Well, we've learned basic Arduino. Made a LED light up and blink! We used these lessons, here, if anyone is interested and we had the basic Arduino starter kit.

An Arduino board.

And then we had some fun with the RGB LED's. Video is below. I'll post more about my thoughts on this later. In the mean time, I'm getting some sleep!





Final hook ups.

Thanks for reading!

Wednesday, September 16, 2009

Day 1

Well, this is going to be a really interesting course.

I won't go into every detail but, like I had thought, it was interesting working with students from other disciplines. Well, actually, the architects in the course had methodologies pretty similar to the designers. A very hands on, try it and make prototypes, it's ok to fail while you work out the final design kind of thinking. It was cool to see and it makes total sense that both the architecture school and the art & design school share a building. The engineering prof, Max Shtein, made an interesting point about the disparity of knowledges that the different disciplines had, say he started talking about 1, 2 and 3 point perspective, only 2/3rds of the class (designers and architects)would really understand what he was talking about. But if he asked us to differentiate some equation, probably only 1/3rd (engineers) would know what to do. ( Wonder if can do that anymore, doubt it).

On an unrelated note, go to Professor Shtein's page (link on his name) and check out his picture, looks like a high school yearbook photo. Love it.

We had a mini one day exercise where we were split into teams (2 engineers, 2 designers, and 2 architects)and we had to move sand from location to location (using gravity) leaving a certain amount of sand at each location. It was actually quite fun, and used materials that we creative types are quite familiar with, cardboard and duct tape primarily. The sand started up high and worked it's way down to the different locations. We were judged on things like efficency, durability and spectacle. We went big on the spectacle part. We made a sling shot to shoot the sand up to a funnel that divided the sand out and moved it through tunnels to the different locations. It was awesome. So much potential for failure, but so cool.


Testing the angle sand would slide down cardboard at.

Matt and I were responsible for the slingshot, we tested the tension needed to throw a cup full of sand 4 feet. Answer, quite a bit.

Building the sand holders, like 5 minutes before we presented. It was tight, but worked!

So our design worked, but we were penalized for having to much human interaction. Basically we ran out of time to build a support structure for our funnel and tunnels and had to hold it up ourselves. Out of the 4 teams, ours was actually the only one that really worked and successfully got the sand to each location. I think that was because, besides the slingshot, we actually kept our design simple. Since we were working with cardboard, we kept the whole thing simple with minimal moving parts and thus, once the sand was in the funnel there was less of a chance for cascading failure. You know, once we got past the whole flinging sand thing.

We are now moving on to Arduino, a computer processing language I think. I've had no experience with this at all and I'm a bit nervous/excited. We have to make LED's light up for homework. Here we go!

Thanks for reading!

Welcome to Smart Surfaces! Now, what is it?

Smartsurfaces offers a collaborative, project-based learning experience in which artists, designers, architects and engineers come together to build physical systems and structural surfaces that have the capability to adapt to information and environmental conditions. The course operates as a multidisciplinary, hands-on think-tank where participants pool their knowledge and skill sets to work together to produce environmentally sound and socially responsible projects. Public exhibition of these funded projects provides an opportunity for participants to present their work to a wider audience and to review their achievements. Projects make use of the resources available to all participating university units, such as: parametric modeling, digital fabrication, networked sensors, micro-controller programming, and energy harvesting using solar cells and nano-structured materials. This course is a collaborative endeavor led by three professors who will advise and contribute to all team projects. Teams will make use of visiting lecturers, specialists, site visits, and relevant stakeholder organizations. (From U of M Art & Design Fall 2009 elective courses)

I'm extremely proud to be in this course and I'm excited to be working with students from other disciplines. It will be quite interesting to work with engineers again specifically, I spent 3 years working on a B.S. in mechanical engineering here at Michigan before I realized that I absolutely hated engineering and was miserable. I then transferred over to Michigan art & Design to study product design. I realize now that I really disliked the engineering way of thinking about anything. A formulaic, only one answer way of thinking. Now this is perfect (and needed) on say, making sure a building stays up, or a plane doesn't fall apart. It just wasn't for me. Either way, it will be interesting collaborating with the other students.