Inspiration
We decided to make something for the useless category. We thought about making something that was fun, worked as a great display item, and was challenging to build. Two of our team members were fascinated with balancing robots and we watched several videos of people making robots that could stand on two legs. To keep it simple enough for the hackathon, we ended up taking inspiration from self-correcting and sustaining machines that we found online.
What it does
What this project does is useless, but at least it's cool. It uses a servo motor to control a beam whose job is to balance a ping-pong ball. The ping-pong ball is to be placed on the beam at any point, and the machine will then try to balance it using a PID algorithm that controls a servo motor. To make it more interesting, the beam uses computer vision that allows users to choose where they want the ball balanced (yet to be integrated) and has a display that would show more useless information such as the temperature and angle of tilt.
How we built it
We used Arduino and C++ to control this project. We used an IMU for the data displayed on the screen and we used a webcam and Python for the computer vision where we needed to track the position of a highlighter on the screen.
For the mechanical part, we used a 3D printer to print most of the parts for the machine. The designs were all done using SolidWorks and we also used several fasteners for the pins and connections. Due to lack of hardware, we improvised and used what we had lying around (boxes, poster boards, etc.).
Challenges we ran into
Learning how to use the display and sensors using the I2C protocol was very challenging because we had to learn it in such a short amount of time. We also struggled to integrate the computer vision outputs with the Arduino over serial communication.
Trying to get the beam to balance involved lots of trial and error. We had to print a lot of prototypes for the base to be strong enough while requiring the least amount of print to save time. The PID algorithm required a lot of trial and error to find reasonably well-performing parameters.
Another major challenge was finding hardware, but we improvised.
Accomplishments that we are proud of
We are proud that we were able to finish this project in a very short amount of time. We were able to design and create everything from scratch and we were able to make something really cool.
What we learned
We learned how to work as a team to create and go through a design process from start to finish in a limited amount of time. We learned how to create ideas by having discussions, multiple prototypes, sketches and communication. We also learned that designing CAD models and 3D printing them can take a lot of time due to unforeseen delays.
What's next?
We are looking forward to finishing this project even after the competition ends. We'd like to integrate the computer vision model into the Arduino and improve the PID algorithm parameters. We would also like to add more sensors and change the design so that it can balance a ball on a 3d surface. Our final goal will be to be able to use what we learned to make something useful that will need some sort of balancing, such as a walking robot.
Log in or sign up for Devpost to join the conversation.