Robot demo with three plants

How to use: Use the app to make the map of the field, let the robot go to each position, dig holes for plants at each stop, and let the robot cycle through them.

APP

I used python for the algorithm, and the pygame library for the UI. To upload info from the app to the robot, I used the subprocess library to connect to the port of the arduino. Additionally, the robot has arduino code that interprets the app info and runs the robot's motors and such. Link to app


In this app, the user inputs the dimensions of their plot of land. The algorithm uses a hexagonal circle-packing algorithm to fill the plot (minimizing water runoff potential by maximizing root zone space). These circles represent the seed spacing of each plant. After, the user can pick three plants in the plant menu, which guides them to select ones that are biologically compatible on a farm. Once selected, the app distributes them across the plot such that there is maximum nutrient exchange (maximizing biodiversity). Finally, the user plugs in the robot to the computer and presses upload.


ROBOT
I couldn't find strong enough motors to carry the heavy wooden frame and water tanks, so I had to make high-torque converters. Planetary gears worked well because they stacked torque on each stage. I designed 3D printed 4-stage planetary gears, where each stage connects to the next to multiply the torque by 5, resulting in a torque factor of 625. 


The robot uses an arduino, 4 dc motors, a gyroscope, and 2 water pumps. It interprets the app's directions through this arduino C++ code: Arduino Code

The robot directions look like this: "a900f1000a450b1500", where the letter says what kind of movement and the number after it says how much.