Made by Xuer, Mellisa
Instructed by Viola
· How does your previous Group Project impact or inspire your midterm project?
My previous project stemmed from a real-life scenario, a dinner table scene where someone wasn't participating. During the process of making that project, that specific scene and our unique experience that made the scene relatable served as our drive and guide. I learned from that process that it's important for the project to actually be related to something you care about, just because it will make things so much easier when you actually spend time making it.
What's more, since the last group project was our very first project, the communication within the team can sometimes be a bit rusty. It impacted the efficiency of our teamwork last time to some degree since we didn't actually have a consensus of what we were making last time, so this time I decided to make things very clear before the actual making process.
· What's the story behind Childish Radish?
I was at a loss what to make for the project as I browse through the guideline before meeting with Melissa. From my experience with the last project, and also the gentle reminder on the guideline, I decided that it had to be something that related to my own experience. The soft rustling of the leaves and my parents' conversation regarding our neighbor's beautiful garden remind me of this experience I had. My parents were terrible at keeping things alive, especially plants. While plants in our neighbor's garden were thriving, ours had to be changed at the end of each season, to a point that I found it cruel to keep buying new ones and I had to stop them. Similar things happened to a little turtle they had before I was born (may its little soul rest in peace in the turtle heaven.) So I wondered why my parents did a good job looking after me but not with the plants and little turtle. It occurred to me with our experience with interaction this semester that there weren't any valid interaction between my parents and plants. There's no such 'input' proposed by Igoe, but only the plants dying serving as 'output'.
A lot of people tend to ignore the fact that plants are living things, since they don't interact as humans do, they don't start a conversation randomly and they don't walk around. However, they are living things and they make valid interaction with each other, just not in the way we do. This inspired me to make something that looks like a plant but is able to interact with people, just to remind us that plants are lives too, and they also need respect and care.
· What is the significance of your midterm project and its interaction?
During our meeting, after hearing my ideas, Melissa showed great interest too. She described this phenomenon that kids tend to treat everything around them with equal respect and care because they have the belief that all things around them have souls. After some research, we figured that similar thoughts are called Animism. The interaction we wanted for our project are the type of interaction that can arouse people's empathy and care. But also, we want to stress the point that plants are different from us, so the interaction must be different from interpersonal ones, and the way we design it would be intermingling the inputs and outputs. For example, a sound input would be connected with a motion output. Our definition of interaction here would be an activity that communicates certain information among the participants.
Childish Radish is intended for those who tend to forget that plants are living things like my parents. We hope that it can serve as a gentle reminder that plants need our respect and care as well.
image from previous project
image from Google
sketch drawn by Xuer
What materials did you use? Were they ideal?
We used fabric from IMA Studio, metal bar for its skeleton-structure and knitting wool to make it fluffy. What's more, we used cupboard to make its little eyes and leaves.
They were really ideal to us, since the wool is able to present a fluffy texture and the metal skeleton was perfect for hiding the Arduino board and wires. And the fabric on the outer side is soft too.
What are the interaction you decided ? And why did you design them?
We designed 3 routes of interaction. First, given light, we wanted it to give sound output. Second, given sound input, we want it to give motion output by wiggling its leaves, and third, with pressure input, we want it to give light output.
We made some adjustment in the end to the 3 routes, but as we design it, we focused on Childish Radish's feelings and we see output as ways of expressing them. For example, light would serve as snack to Childish Radish, so it should make a higher-pitch sound to express its joy like laughter. Saying something to it would serve as greeting and Childish Radish would greet back by wiggling its leaves. And in the end, with pitching, Childish Radish would blush to indicate it's getting shy.
At the very beginning, Melissa went to take care of the construction of the hardware, the radish. At the same time, I went to pin down how each of the sensor and output device can be used and test the range of each sensor, and then took care of the wiring.
Melissa's making progress went smoothly and she did an amazing job.
running into obstacles
I ran into obstacles as I found out that Piezo, the sound&vibration input sensor we selected is more of an vibration sensor, so when we spoke to it, Piezo can detect almost nothing. After asking Viola, we got the information that a mic sensor would be much more suitable in this scenario, so we switched to that. We didn't really learn about how to use mic sensor so we went to google it and referred to this page.
As we pin down the actual design that we would stick to, we had two major problems, one with our code, the other with the mic sensor. Under the instruction of Viola and Kelvin, we were able to conquer them.
As I finished wiring we moved to the coding part, where we each took care of one or two of the three routes and then put all that we wrote together. We made a huge mistake there. As we opened the Serial Monitor, everything was a hot mess. We had three input printed out at the same time and every input sensor would react but none of the output was working. Melissa and I froze for some time and enjoyed some good headache. Luckily, our dearest Viola came to rescue us. She told us that it was not a good idea to put everything together at the very beginning, instead we should make individual sketch for each of the route, and see if the input and output are wired and also coded correctly. It was a long process and a true testimony for our patience, but we made it in the end.
During this process, apart from paying attention to the technical issues, I also played the role of emotional support for my teammate. When we tried to take care of the second and third routes, it was almost past 1 a.m., and my teammate was on the edge of breaking down. We both had a long day so I understand her feelings. She proposed that we should cut off Route 2 and 3. I was honestly about to panicking when I heard this, but I tried my best to stay calm and ordered boba tea and fried chicken to lure her into continuing to work. We ended up in the auditorium singing but it worked perfectly.
we soldered the LEDs to make the blush of Childish Radish
Midnight bubble tea for comfort
The second major problem we encountered was with the mic sensor. At this point, we tried to use the mic sensor both digital input and analog input, but it seemed that the reading kept waving. It could be over 600 at one point and 507 when it's plugged in again when the environment stayed the same. When we consult Kelvin, he told us that there's a potentiometer inside mic sensor, and we should try playing with it and find the right spot. After trying, we did find the right value, and when the servo was responding, we almost broke into tears.
How we fixed LDR on the leaves.
What we had for the user testing session:
Testing the mic and servo (Route 3)
This was the last step of Arduino testing, after which we moved on to put everything together.
We got a lot of feedback from user testing. There were three advice that we found to be particularly helpful, 2 of which we tried to implement to improve the project, however the remaining one we didn't have time to do it.
The two implemented ones are making the motion of the leaves more obvious and extending the mic sensor so that people can more easily see the motion of the 'leaves.'
The advice that we weren't able to implement was that we should use the big pressure sensor and hide them in Childish Radish's little body, that way when people squeeze it and feel its fluffiness, it's able to react.
In the end, Melissa and I did some final touch-up to the project and I made a little flowerpot for it.
The goal of making Childish Radish is to remind people of the fact that plants are lives too, and we should respect and care for them although there's no common ways of interaction between us and plants. I think what we have achieved it to some extent because everyone was saying how cute it looks, so it definitely aroused our sympathy for the little plant here. Our definition of interaction here would be an activity that communicates information among the participants, especially their feelings and emotions. These abstract and objective things are reinforced in the process of interaction. The ultimate interaction here we are trying to create is something that build a mutual understanding of abstract feelings like sympathy. I would add the big pressure sensor if we had more time. I learnt that even if it's something very complicated, if you break it into tiny little pieces, you will be able to finish it. My takeaway would be that do not fear things unknown to you.
The full code:
#include <Servo.h>
int micPin=3;
Servo myservo;
int sound_input;//range 30--1023
int pressure_input;
int ledPin = 12;
int servoPin=4;
int light_input;//range 780--1023
void setup() {
pinMode(micPin, INPUT);
Serial.begin (9600);
myservo.attach(4);
pinMode(ledPin, OUTPUT);
pinMode(8,OUTPUT);
}
void loop() {
int sensorReading = analogRead(A0);
// print the sensor reading so you know its range
Serial.println(sensorReading);
// map the analog input range (in this case, 400 - 1000 from the photoresistor)
// to the output pitch range (120 - 1500Hz)
// change the minimum and maximum input numbers below depending on the range
// your sensor's giving:
int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
// play the pitch:
tone(8, thisPitch, 10);
delay(1); // delay in between reads for stability
sound_input = digitalRead(micPin);
Serial.println(sound_input);
if (sound_input == HIGH){
myservo.write(30);
delay(200);
}
else {
myservo.write(0);
}
pressure_input = analogRead(A1);
delay(10);
if (pressure_input >= 400){
//Serial.println("light turns on");
digitalWrite(ledPin, HIGH);
} else {
//Serial.println("light turns off");
digitalWrite(ledPin, LOW);
}
}