Inspiration

Our team noticed a lack of accessibility in plant care in our local community, particularly for individuals with disabilities, busy schedules, and seniors who are enthusiastic about plants. While self-watering plant beds exist, they are limited in their mobility and ability to care for plants of various types and sizes. By recognizing these issues and developing the PWR, our team is providing a valuable solution to improve people's lives and make plant care more accessible and convenient for all. Whether it's for individuals with mobility limitations, busy schedules, or simply a love for plants, the PWR is designed to make plant care easy and enjoyable for everyone.

What it does

Introducing the PWR, or Plant-Watering Robot - the ultimate solution for effortless plant care. Our team has designed and built an automated robot that takes the hassle out of watering your plants. Whether you're busy, forgetful, or have limited mobility, the PWR knows where your plants are and delivers the perfect amount of water automatically. We believe that everyone deserves access to healthy, thriving greenery. That's why we've created the PWR - to empower people of all abilities to enjoy the beauty and benefits of plants.

How we built it

Hardware:

We had a base for a robot, that we redesigned to suit our purposes. We designed a system to dispense water, using a water bottle, and surgical tubing. When the cap is open, air will seep in and the water would flow through the tube. When we close the cap tight, air can not enter the water bottle, and it will stop the flow of water. To make this mechanically function, we attached a servo to the cap of the water bottle so we could easily control the water flow whether the bottle is open or not.

Software:

Using the FTC SDK provided by FIRST, we were able to control our robot efficiently. We structured our code to have different classes for each module of the hardware. For example, we have a chassis class to control the chassis, and a water dispenser class to control the water dispenser. We also have a Robot class that collects all the methods from the other module classes into one file, so that our PlantWatering file only has to import the robot class, and not every module class.

In the PlantWatering files, we use a switch case statement to control the steps our robot takes. We first move to the plant, then we deliver the water, and if there is another plant we will move to that, deliver the water, and then move back to the start position.

To accurately move to the plant, we first set an X and Y distance of how far away the plant is. From this, we can calculate our target encoder position to read those coordinates. We can then start running the motor, and get the current position of the motor as it runs. Once the current encoder position is equal to the target position, we stop running the motor.

Challenges we ran into

After deciding to make a Plant Watering Robot we needed to decide how we were going to pump/dispense the water into the pot. At first, we planned to make a peristaltic pump, however, we ran into many issues with the water flow. After many prototypes, we changed our design into something more simple, a system that uses air flow to push water through surgical tubing! Since we are using a servo to turn the bottle cap, it is important that the servo doesn’t move. We were having problems ensuring the servo stayed in place, but we soon fixed it with zip-ties and a little bit of duct- tape. We ideally planned to use a camera to detect and locate the plant that we have to water. However, unfortunately, we were unable to access the CSV file in our editing software, Android Studio.

Accomplishments that we're proud of

We are proud of our iterations in software and hardware, in particular we are proud of our code as we had to code a couple different mechanisms in order to successfully deliver the water to the plant. F e, we had to code the chassis to navigate the space, and we had to code the servo motor to open and close the cap of the bottle, in order to allow water flow.

What we learned

Along the way, we learned valuable tricks such as programming a servo motor, coding a robot for steady movement, and a way to distribute water in a simple and effective way. We were able to use the SDK provided by FIRST to maximize our robot's potential.

What's next for PWR (Plant Watering Robot)

Our goal is to make plant care accessible and effortless for everyone. We're constantly working to improve the PWR, and our vision for the future is to implement advanced plant recognition technology. With this feature, the PWR will be able to detect the type of plant and arrange a customized watering schedule per day or per week, ensuring that each plant receives the exact care it needs.

We're also planning to add elevation capabilities to the PWR. With attached sliders, the PWR will be able to reach plants that are placed on shelves or other elevated surfaces. This feature will not only make plant care more convenient for our customers, but it will also ensure that every plant in their collection receives the same level of care and attention.

Built With

Share this project:

Updates