For this week’s assignment, I took a look at Iris De Vericourt’s Carnaval Animal, simply yet beautifully executed popup book of six animals. As a whole, the book primarily utilizes the shaped ___ and box supports to animate its pop-ups.
The first character of the book is a fox
Head : The head consisted of a shaped v-fold with box supports protruding out of it. The ears are are actually just one piece of paper coming up from the underside and sliped into a slit in the head. Body : The body is made out of two shaped ___ with legs created in the same fashion as the ears, (slit with v-shaped legs protruding out)
Tail: A shaped ___ mecanism.
Head: The main two parts of the head is created with ____ with ears attached as v-shaped box supports.
Body: The body is also created with ____ with arms also created in that same fashion but with embedded v-folds. Again the legs are created in the same fashion as the fox’s ears and legs.
Tail: The tail is a a shaped ____.
Head: The head is made out of two v-foldswith the ears attached with box supports
Body: The body looks a bit confusing but it’s again just the same mechanism with a box support with a v-fold for the wings.
Tail: The tail is made out of the same mechanism with accordion folds
Body: Same mechanism but layered on top of one another. The arms are made out of a box support
A few weekends ago on Dec 3rd, I participated in my first hack day for the Farm Bill / International Open Data Hackathon, organized by the folks over at Food+Tech Connect, and Gojee (one of my favorite recipe discovery sites). For those unfamiliar with the Farm Bill, it’s a piece of legislation that affects the farming and agriculture industries, specifically on what is grown and promoted in our country.
It’s revisited every 5 years and will be enacted in 2012. Rebecca Klein and Destin Joy Layne, from The Johns Hopkins University Center for a Livable Future (CLF) and the GRACE Foundation respectivly, asked us to come up with a tool that would use the social graph to bring more awareness and participation to Meatless Monday. It is a day dedicated to eating a vegetarian diet to encourage a healthier lifestyle, and more importantly to reduce our individual carbon footprints. With Niles Brooks and Joe Merante as the developers, and Jill Peterson and I as the designers, we created Meatlessly, a mobile application to encourage you to participate for the long haul in Meatless Monday . It reminds you and keeps track of your participation, and allows you to seeing what others are also doing on that day. We included a point system to make it a little bit more fun, lightweight, and perhaps competitive when you see how well you fair against your friends.
Let’s take Daniel as an example user. He is 34 years old and is a software developer. He enjoys leading an active lifestyle as a climber and biker, and eats a healthy well-balanced diet including meat. He heard about Meatless Monday and decided that it’s a cause he could get behind, but needed some help getting started. He downloads the Meatlessly app onto his phone.
Every Monday at 9am in the morning, the application alerts Daniel. It’s a small friendly nudge to help him start his day on the right foot, beginning with his first meal of the day. Once the application is opened, he is prompted with a “participate” button. By clicking on it, he is actively acknowledging and agreeing to join all the other Meatless Monday-ers to eat a vegetarian diet that day. It’s based on an honor system. Daniel clicks on it, which simultaneously updates his Twitter and Facebook status to let others know about his participation.
For every week that he goes Meatless Monday, he earns one point up to 52 points for 52 weeks in the year. For the purposes of the short hackathon, this page only shows Daniel’s score. If we were to build this out further, we would like to have milestone badges and more in-depth statistics, and to show how well he fairs against his friends.
In the feed, Daniel would be able to see status updates, restaurant check-ins, and shared photos of dishes and recipes from both his friends and other Meatless Monday-ers. He feels encouraged to see the peer support and what others are doing for this same cause. He can click on each status update for a more information.
Since Daniel is feeling a bit lazy today and does not want to cook dinner, he can use the search functionality to find nearby “Meatless Monday Approved” spots. It’s convenient and he doesn’t have to have a headache over where he can eat while maintaining his meatless promise.
Niles and Joe built what we currently have live today on on Meatlessly.com. After authenticating using your twitter handle, you are brought to a page that gives you a single key action to take that day to participate in Meatless Monday. In this case it’s eating an avocado sandwich. The second feature is the feed which is currently populated with tweets that meet two criteria 1) they have keywords such as with #meatless, #mm, or #meatlessmonday and 2) they are registered users of Meatlessly.com.
What has been built so far is only a very small part of what we had envisioned. We were super excited to have won second place at the Hackathon. We’d love to get more Meatless Monday members on board with our idea and hope to have the opportunity and support to build the real thing!
For my final project, I collaborated with Alvin Chang and Suzanne Kirkpatrick to build “Channels,” a full body immersive experience of traveling through the waters in the wilderness. From the sounds, water,cat tails, to the boat, our project would physically and mentally transport you to a state of relaxation, to another world, free of tensions. It would allow whoever was using it to interact with something that was physical, natural, and non-electricas. By allowing people to paddle through physical water, we thought would enhance the real experience of traveling traveling down a river.
PHYSICAL INTERACTION
The physical construct consists of a boat and two tanks of water on each side. The passenger can paddle in the tanks, moving through an on-screen three dimensional world that we’ve created.
The paddling gestures mimic realistic movements in the water. For example, by moving your hand in one tank , you can change your direction as you would in a real boat. Paddling with both hands at the same time will move you through the space, while paddling backwards will move you in reverse.
Each individual tank has a flex sensor embedded under the slates of wood. Initially, we considered using flow switches, which provided more complex measurements such as the speed at which the water move. However, for our purposes, we didn’t actually need all this information.S o we found a simpler, cheaper, and more creative solution. We repurposed the flex sensor to an unconventional way of use. By gluing one to a foam block and placing it perpendicular to the water line in a tank, when making movements in the tanks, the water would bend the flex sensor, giving us a value for the speed and direction.
In order for the flex sensors to bend, we needed to increase their surface areas. We taped plastic credit cards to the end of sensors. But they were too light , easily giving way to the water, and did not provide accurate readings. After experimenting with different sizes and materials, we came across plastic spoon heads that seemed to do the job right.
We connected the two flex sensors to the Arduino at Pin 1 and Pin 2 with two 100 ohm resistors. Initially we used ones that were 10K ohm, but notice that it they worked more smoothly with less resistance.
VIRTUAL INTERFACE
Working off of Alvin’s midterm project, we created this extensive virtual world. The environment was created with Open GL, that allowed us to render 2D images into 3D, by adding a Z- dimension. The person in the boat is always centered at origin or what I would consider to be (0,0) coordinates. This is important to keep in mind as I explain how we created our virtual interface.
Taking analog readings from our two flex sensors, we mapped their values to the z and x- axes to give us the speed and direction respectively. As I mentioned before, paddling in one of the tanks , for example the left one, would move in towards the opposite direction, in this case towards the right. This is because we used this very simple function.
Left tank – Right tank = Direction.
If we consider the participant to be at the origin at the coordinates (0,0), and think of the left tank as values that would move you to the left, and the right tank to be moving you to the right, then if you paddle stronger from the left with a value of 6, and paddling at the right at 3, then you would be moving towards the x-axis value of 3 . And you paddle with both hands, at relatively equal strength, you would move in a straight line along the origin points ( 3 – 3 = 0 ).
In this program, the boat is actually stationary, while the objects are moving past the paddler. This gives us the illusion of traveling through the water. Multiple images of the same objects are stored in an array and displayed randomly across the environment. Once appear at a certain set distance along the z-axis, and grow as they move towards us. When they past the origin points, the images reset themselves to be displayed at a distance.
CONCLUSION
I think this project was very much so a success. In terms of physical computing, it was a relatively simple, but we were still able to build a very complex interaction model and experience from it. The virtual world thorough, as we were able to build upon Alvin’s midterm as a platform. The physical construction and the water played an equally important part. From the boat to the branch and leaf aesthetics, we thought about every detail that could give our participants a complete experience.
For our midterm project, Avery Max, Paul Christophe, and I created a media controller that takes one’s heart rate and transforms it in to a visual piece. We wanted to produce something that would capture one’s moment in time, not a photograph, memory, or in writing, but a biology reflection of their state of being. The heartbeat controls a solenoid valve which would drip ink on a blank postcard mounted on a turntable. The more excited the individual, the faster the heart would beat, and the more frequent the ink would drip. Because it is so dependent on the person’s current physical and or emotional state, the piece would be produced slightly differently each time. We expect that one would return to our media controller every so often to see the visual output of their heart beat, and would notice the difference in the art work created by their biology . It is printed on the front of a blank postcard, so this imagery made from the body can be sent as an intimate personal message.
There were three major components to the product: the heart pulse sensor, a solenoid that controlled the drip rate, and a motor which turned the piece of paper in one full rotation every 30 seconds.
HEART PULSE SENSOR
For our heart sensor, we used an infrared LED with a TSL 230 light sensor that converts light intensity into frequencies that we can use to measure heart beats. For our purposes, this means that the more light that is read through the finger tip, the higher the light intensity , thus the higher the frequency that the chip outputs. The less light, the lower the frequency. When the heart contracts and pulses, blood is rushed into the fingers, so the light intensity and frequency is less because the finger is filled with more opaque blood.
We originally used a red LED, which would measure oxygen content in the blood. Oxygen rich red blood cells absorb more of the red wavelength of light, so you can measure oxygen content in that way. But an IR Led is more for general use. It was more appropriate for our purpose to measure the heart pulse rate, and it also gave more accurate readings than the red LED.
Here is an image of what we had built initially.The user would place their finger in the “cave,” where the finger would be placed on top of the light sensor. The IR LED is positioned directly above the light sensor. You can take a look at the second version of this heart sensor below to get an idea how the two components were positioned.
There is some fairly complicated wiring going here, but for the tsl230 chip, most important elements are shown in the diagram below. The S0 and S1 inputs control the how sensitive the light intensity is read by adjusting how many light receptors are active at once. With a higher sensitivity, smaller amounts of light can be read, but this also means that it would have difficulty measuring light at higher intensity levels. Sensitivity for our TSL230 is set to 100x, with s0 and s1 both at HI. s3 and s2 are scaling inputs which divide the output frequency by either y 2, 10, or 100 , nor by none at all. Our scaling was set to 10x with S3 and S2 set at Hi and Low respectively. The output enable (OE) is only used to enable or disable the scaled- frequency output (6), and set to ground. S0 through s3 were the only pins we used for our purposes.
After many days of texting and playing around with the build, we were unable to get clear enough of a heart pulse reading. So we resorted to creating a working prototype with a fake heart pulse. I think it still shows a clear idea of the product we wanted to create. Instead of getting an input reading from the sensor, we now created a false pulse. Once a person places their finger in the contraption, we press the “start button” to simulate a 10 second reading from our machine. At this point, both the solenoid and the turntable motor kicks in.
MOTOR AND TURNTABLE
The motor was used as an output to pin 9, a PWM / analog , and was connected to the the start button input at pin 12. Because we needed the motor and paper to make a full rotation in 30 seconds, we set pin 9 to analogWrite at a strength of 27.
SOLENOID VALVE
While the motor was turning, we activated the the solenoid valve with with a fake pulse. This fake pulse is set to a random number between 60 and 80 , so that we could simulate a different readings for different people. We then set 1/(the heart rate) to get the number of milliseconds between each pulse. We triggered the valve by seeing if from the time we start the reading is larger or equal to the number of milliseconds between the pulses. The solenoid is opening and closing with a delay of 8 milliseconds to give us a drop of ink that would give us an approximately one centimeter (in diameter) splash. Once we see that its longer than 30 seconds, we stop the fake pulse which stops the motor and the valve.
CONCLUSION
The project was definitely a learning experience for us. For awhile we were stuck and bogged down because we could not get our heart sensor to give us an accurate reading. Although not the a permanent solution, the fake heart pulse was the perfect temporary resolution and it let us move on to focus on other parts of the project.
I think we could have spent a little more time solidifying the physical build that connected the three components together. During our presentation, at the last minute we decided to clip our tubing to a ladder at multiple points. In hind sight, I think it may have really affected the pressures in the tubing that affected our solenoid valve. It ended up with ink splattering everywhere rather than small concise drops.
As a whole, it was a very fun project to work on with Avery and Paul. A struggle at times, but I learned a lot from them, and we definitely got a lot of jokes and laughs from working together.
CODE FOR ARDUINO
int inPin = 2; //Interrupt pin, monitoring when pulse goes high
int s0 = 3; //chip config pin
int s1 = 4; //chip config pin
int s2 = 5; //chip config pin
int s3 = 6; //chip config pin
int TOTAL_DURATION_MS = 30000; //30 Seconds, how long we want the experience to be
int control_pin = 13; //Valve control
int button_pin = 12; //Button to start/stop session
int pulseWidth=27; //Strength of motor
int motor_pin = 9; //Motor Pin
unsigned long duration = 75; //ms we read the light sensor for
//Keep track of data from light sensor
unsigned long count;
unsigned long base_time;
//Switch between real/fake pulse data
boolean from_sensor = false;
//For fake heart rate, if we need it
int heart_step = 0;
long pulse_rate = 0;
void setup(){
count = 0;
Serial.begin(9600);
pinMode(control_pin, OUTPUT);
pinMode(motor_pin, OUTPUT);
pinMode(button_pin, INPUT);
digitalWrite(control_pin, LOW);
pinMode(inPin, INPUT);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
//Sensitivity x10
digitalWrite(s1, HIGH);
digitalWrite(s0, HIGH);
//Divide By 2
digitalWrite(s3,HIGH);
digitalWrite(s2,LOW);
//Had to comment this out, millis wasn't working with
//interrupts enabled...mystery...
//attachInterrupt(0, riseDetected, RISING);
base_time = millis();
}
void riseDetected(){
count++; //Add 1 to the count, this is how we get the frequency
}
void loop(){
/*
if (from_sensor){
if (millis() - base_time >= duration){
Serial.println(count);
count = 0;
base_time = millis();
}
}
else{
false_pulse();
}
*/
//Serial.println(digitalRead(button_pin));
if (digitalRead(button_pin) == HIGH){
delay(10000);
false_pulse();
}
}
//Fake pulse rate if we can't get the sensor working
void false_pulse(){
pulse_rate = random(60,80); //set to random pulse between 60-80bpm
heart_step = 60000/pulse_rate; //get the #of ms between each pulse
long base_start = millis(); //Start time (now)
long start = base_start; //Same as now, but we will use it differently later
boolean in_time = true; //Saying we are still within the time limit (since we just started)
analogWrite(motor_pin, pulseWidth); //start the motor runnin'
while (in_time){ //while we are in the alloted time
//Serial.println(millis() - start);
if ((millis() - start) >= heart_step){ //if NOW - TIME-WE-STARTED is >= #of ms between pulses
Serial.println(1);//
trigger_valve();// start valve
start = millis();
}
if ((millis() - base_start) >= TOTAL_DURATION_MS)
in_time = false;
}
analogWrite(motor_pin, 0);
}
void trigger_valve(){
//Serial.println("IN VALVE");
digitalWrite(control_pin, HIGH); //Open Valve at pin 13
delay(8); //8ms works best
digitalWrite(control_pin, LOW); //Close
//Serial.println("CLOSING VALVE");
}
This week, we put together our animation piece of Shel Silverstein’s poem, ”Recipe for an Hippopotamus Sandwich.” After Effects proved to be more difficult and complicated than I thought. At one point, we almost considered resorting to only using Flash. For me, I had the most fun creating the assets from scratch in Illustrator and photoshop, but it was of course exciting to see them come alive in the animation.
Enjoy!
Posted: December 6th, 2010
Categories: commLab
Tags:
Comments: No Comments.
For this week’s commLab assignment, we are taking Shel Silverstein’s poem ” Recipe for an Hippopotamus Sandwich,” and turning it into a short animation. Jen, Jamie, and I created our own assets from scratch on Adobe Illustrator.
Since I’m a novice with the program, I was rather excited that my drawings came out as. Here are some of them below.
Recipe for a Hippopotamus Sandwich By Shel Silverstein
A hippo sandwich is easy to make. All you do is simply take
One slice of bread,
One slice of cake, some mayonaise,
One onion ring,
One hippopotamus,
One piece of string,
A dash of pepper–
That ought to do it. And now the problem ….Biting into it!
Posted: November 30th, 2010
Categories: commLab
Tags:
Comments: No Comments.