A living plant is a natural thing that we humans can nurture and grow, and which oftentimes evokes a feeling of personal attachment. We carefully plant the seed and tend to it with care. We water the plant, and give the plant food and light. We watch it grow over time, and we take pleasure in its natural life cycle.
Our Physical Computing team (Eric Hagan, Paul May, and myself) decided to use this living organism metaphor as a natural and intuitive interface for our midterm project. We created a “plant” made of fiber optic fibers that grows from a seed when it is watered and given light. When a person plants a seed in a pot, the plant becomes green and sprouts up 10% above the soil. When the person shines light on the plant, it grows up taller. And when the person waters the plant, its tendrils change various colors. In this way, the user can control the phases of a plant’s life cycle through physical interactions and natural gestures that we normally associate with the experience of growing a plant.
We built the guts of the project using two Arduino microcontrollers, three breadboards, 2 9v batteries, and these components:
– FSR sensor to detect “seed” planted on surface
– stepper motor to move / grow the fiber optic “plant”
– 2 photocells to sense light from a can light source and grow plant (triggered the motor to move)
– infrared emitter / detector to sense proximity of watering can and change colors of fiber optic lights
– 2 RGB LEDs and 2 green LEDs to color the fiber optic lights
Our process of physical construction for this project took some time because we were dealing with a stepper motor that we wanted to move the fiber optics up and down incrementally inside of a pot. We used the small PF35T-48 stepper motor to move our fiber optic plant up and down, and to carry the weight of the fiber optic lights. This PF35T-48 stepper motor has 48 steps per revolution (7.5 degrees), runs on 5 volts, and can hold approximately 77 grams of weight. Here is the stepper motor data sheet.
We mounted the stepper motor on a block of wood as a base platform, and then mounted a hollowed threaded rod on top of the motor spoke. Then, we built a second platform made of thin wood with a hole in the center with a nut, so that the threaded rod could move up and down through the nut. After a series of tests, we decided to add a second metal rod attached to both of the platforms for extra stabilization. We also squirted some grease on the threaded rod to make the motor movement more fluid.
Here’s a video to see how our construction of the stepper motor and platform works:
The motor shaft turns by giving power to alternating magnets, which creates an electro-magnetic force that pulls the gear’s teeth to the electromagnet’s teeth. As each electromagnet is turned on and off, the gear rotates a “step”.
We designed the watering can as a self-contained circuit with an Arduino and breadboard wired to a 9 volt battery placed inside of the can, and connected the circuit to an infrared LED emitter at the tip of the watering can. This design enabled the user to act on instinct and make the natural gesture of pouring water into the pot.
Originally, we were going to use a tilt sensor to detect the watering can gesture, but we decided to use an infrared LED emitter instead, because that would allow us to not only detect the action and direction of the pouring gesture, but also the exact positioning of the watering can above the plant in the pot.
We didn’t have enough time to add sounds to our sensors, but we had wanted to add a water pouring sound to the watering can.
I would have also liked more time to focus on the aesthetics of our interactive device, color schemes, and other design features, but we focused most of our energy on improving the construction of the motor platform mechanism, and the coding and logic for the sensors.
Overall, while doing this project I learned a lot about the use of physical materials, how to match the right tools for the materials, and the importance of thoroughly testing your physical constructions under many different conditions and in various environments.