Inspiration
I wanted to do this as a personal project but I thought doing it during a hackathon would be more challenging and actually force me to start the project and see it through.
What it does
It's a small robot that maps its surroundings by first executing a 360 degree rotation on its Z axis, then tilting up 8 degrees on its X axis. It repeats this a few times, then the data gets processed on a computer by our visualizer program which then display the point cloud data.
How we built it
We used an arduino to program the robot. The casings and parts were designed with Fusion 360 and 3D printed. The visualization software was written in C++ with SDL2 .
Challenges we ran into
3D printed parts sometimes had bad tolerances and did not fit together. Some were too thin and broke, some were miss-aligned. The mapping software was hard to get working. Our projection matrix had a few errors in it. The cat kept walking in front of us and distracting us. We wanted to keep it turning non-stop, but we could not get the part that would allow us to do that so we made it reverse its direction every 360 degrees. Did not measure the horizontal distance between the top and bottom halves so it ended up being less space than we wanted Our power supply was too high voltage for our parts and we struggled to adjust the voltage properly but we eventually realized that we could just connect all the parts to the power supply and it would be split properly.
Accomplishments that we're proud of
It works for the most part, and we finished on time. The robot itself looks very cute and the visualization looks pretty cool
What we learned
Double check CAD measurements and use models of the parts when possible instead of using real-life measurements. Do not print on high speed if you want nice looking parts. We learned that you can use diodes to level down voltage and that you shouldn't use voltage dividers when working with motors because the draw under load is different than when it is spinning by itself.
What's next for Ripple
Refactoring all the code and implementing a better visualizer. Feed the data directly from the robot to the visualizer. Small CAD redesign to improve tolerances and leave more space for wires. Soldering the parts we are sure work together so we have less bulky and shorter wires. Rewrite the arduino code to pure C code on an atmega (or an ESP32 if we want to add wifi capabilities) because it would teach us more about embedded programming and let us control the delays and handle the code in a more precise way.
Log in or sign up for Devpost to join the conversation.