A. Project Title: Peony From Home
Student Name: Bei Chen Li (Benjamin)
Instructor Name: Andy Garcia
B. Context and significance
For the previous group project, we made a flying cup on which we utilized two servos to control the wings. When we moved our heads, the accel sensor monitored and the wings would shift as well. We found that the servo was extermely practical that it could not only generate circular movement but also linear movement so that we would difinitely use for upcoming project. We were inspired that we could turn our actions into the movement of our project. Initially, we wanted to make around 6 flowers to establish a garden.However, after we watched a youtube video we found that it might be too ambious and complicated. Instead, we decided to make it just one flower.We were inspired by the video, and we realized that we could fix the petals onto a hemisphere and achieve the opening and closing of the flower by changing the shape of the hemisphere. Of course, we made many innovations based on this idea. We intend to shape this flower like a peony. Firstly, my second hometown is Luoyang City in Henan Province, where the peony is the city flower, and mid-March is the season when peonies are in full bloom. Additionally, there are peonies planted in the backyard of Isa’s house. Therefore, we unanimously decided to make it in the shape of a peony. Instead of making a pure white flower like the one in the video. We decided to make a more colorful flower. Hence, we added pink and green petals outside the flower. Our targeted audiences are those who love plants but don’t have access to take care of them. We hope that they could master how to take care of a flower by interacting with our project.
Original sketches:
C. Our project could be divided into four parts. The main part is the flower and three game pieces are watering can, fertiliser and the sun. Users are supposed to activate all of these three pieces so that the flower will bloom.Our criteria is that users are supposed to figure out how to activate these three game pieces themselves. Also, they are not supposed to activate these game pieces without any difficulties.
Users are supposed to lean the watering can to” pour the water” into the flower pot. Also,they have to find a right amount of water by changing the value of slide potentialmeter. For the sun, they have to activate it by clicking the button for 3 times quickly. Also, they need to move fertilise to the root of the flower so that the reed sensor would detect the magnet. Eventually, the flower will bloom. Another option was that the user simply click the button on the sun and the sun will be activated. However, we declined it because we thought it was not difficult enough.
D. The most crucial part is to control and trigger the flower and let it move as codes requires. Initially, I tried the stepper motor. However, it was not strong enough because the hemisphere just slightly moved less than one inch. Then I tried servo andn it was not strongly either. Fortunately, profesor Andy gave me a super powerful servo of which the strength is 35kg. The power issue was solved. Then, we need to find a string or wire to connect the flower and the servo together. Isa found one but it was so weak. It was going to break after several times. I chose to use the wire instead of the string. It turnd out that my choice was right.
For the hemisphere, I bought a baby basketball and baby soccerball. I cut the soccerball into two parts to make it as hemisphere. Also I tied the wire on the servo as it was a strength-consuming work. For the joint-developed part, we worked on the code together. We set each condition by doing countless experiments. What’s more we made the hardware part especially the petals together.
When it came to user test, many users were attracted by our design. However, they also were confused by those game pieces. It took them so much time to figure out how to activate these game pieces. Many of them points out we might add some effect to remind them they have activated the game pieces. For the fertiliser, they said they wanted to pour the fertiliser into the flower pot instead of putting the whole bag into it. Therefore, we added a tilt sensor at the corner of the fertiliser bag. Furthermore, we added different color LED to each game piece. Blue LED for watering can,green LED for fertiliser and yellow LED for the sun. However, we still kept randomization because the main goal of our project is to let the user figure out how to make the flower bloom themselves.
Full code:
// fertilizer: have reed sensor connected
// water: sliding potentiometer + tilt sensor
// sun: button (req: press 3 times)
#include <Servo.h>
Servo myservo;
// fertilizer
int reedSensor;
int fertTiltSensor;
// water
int sliderPin;
int waterTiltSensor;
//sun
long sunButtonStartTime;
int val;
int prevVal;
int buttonPressCount = 0;
bool fertilizer = false;
bool water = false;
bool sun = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo.attach(9);
// fertilizer
// reed switch
pinMode(3, INPUT);
// tilt sensor
pinMode(10, INPUT);
// white LED
pinMode(11, OUTPUT);
// water
// tilt sensor
pinMode(A0, INPUT);
// sliding potentiometer
pinMode(7, INPUT);
// blue LED
pinMode(12, OUTPUT);
// sunlight
pinMode(LED_BUILTIN, OUTPUT);
// yellow button
pinMode(2, INPUT);
}
void loop() {
reedSensor = digitalRead(3);
sliderPin = analogRead(A0);
waterTiltSensor = digitalRead(7);
fertTiltSensor = digitalRead(10);
val = digitalRead(2);
if (reedSensor == 1 && fertTiltSensor == 1) {
fertilizer = true;
Serial.println(“Fertilizer applied”);
digitalWrite(11, HIGH);
} else {
fertilizer = false;
Serial.println(“Fertilizer not applied”);
digitalWrite(11, LOW);
}
if (sliderPin > 255 && sliderPin < 355 && waterTiltSensor == 1) {
water = true;
Serial.println(“Watered”);
digitalWrite(12, HIGH);
} else {
Serial.println(“No water :(“);
digitalWrite(12, LOW);
}
if (prevVal == LOW && val == HIGH) {
buttonPressCount ++;
Serial.print(“Button pressed: “);
sunButtonStartTime = millis();
Serial.println(buttonPressCount);
}
if (buttonPressCount == 3) {
sun = true;
}
// if button is pressed a 4th time, the sun deactivates again
if (buttonPressCount > 3) {
buttonPressCount = 0;
sun = false;
digitalWrite(LED_BUILTIN, LOW);
Serial.println(“Sun not activated”);
}
if (sun == true) {
// yellow LED shines
digitalWrite(LED_BUILTIN, HIGH);
Serial.println(“Sun activated”);
}
if (fertilizer == true && water == true && sun == true) {
// move to different state so flower bloom will not be interrupted
// even if any of three values go back to false
bloomState();
}
prevVal = val;
delay(100);
}
void bloomState() {
//servo motor moves
Serial.println(“!!Flower bloom!!”);
digitalWrite(LED_BUILTIN, HIGH);
myservo.write(0);
delay(5000);
myservo.write(180); // rotate the motor counter-clockwise
delay(5000);
}
E.
The goal of our project is to let the audiences figure out how to make the flower bloom. The definition of interaction for our project could be viewed as the mechanism will generate movement when you do a set of actions properly. It still took a long time for audiences to figure out how to activate these game pieces. They were confused by some steps. If we have more time, we could add more guidance to our project to make it more straightforward. As a project maker, we need to put our feet into audiences’ shoes. We were too ambitious because we thought it was easy for them to figure out. Thanks to this experience, we might consider the project from different angles next time.
F.
G.
Images:
Watering can:
Sun:
Fertiliser:
Petals:
Flower:
Whole project:
Material list:
Sun:
Yellow LED
Yellow button
cardboard
Watering can:
cardboard
slide potentialmeter
tilt sensor
blue LED
Fertiliser:
fabrication bag
nutrition soil
magnet
tilt sensor
reed switch
Flower:
Plastic tube
cardboard
strings
wires
DIY petals
servo motor (35kg)
Diagrams:
Sun:
Fertiliser:
Videos:
Sources cited:
Servo:
http://www.spt-servo.com/Product/3918565933.html
Interactive touch flower
Interactive Touch Flower Prototype (touch me not)
*Organza flower tutorial* (This video guides us how to make petals)
https://www.youtube.com/watch?v=hWazhI8t2wQ&t=187s