Robotics and artificial intelligence offer fascinating possibilities, and this project is a concrete example of that. I designed and built a 3D-printed robotic hand, fully controllable via a Python program. This project was part of a year-end assignment during my final year of secondary school in 2023, focused on object-oriented programming. It evolved to include two control modes: a graphical interface and a gesture recognition system using a camera.
Objective
The goal was to create a functional robotic hand capable of performing various movements in response to program commands. To make the experience interactive, I implemented two control modes:
- Manual mode with a Tkinter interface: The user can adjust the position of each finger through an intuitive interface.
- Camera mode with OpenCV: The hand follows the user’s gestures detected in real time by a camera.
Technologies Used
- Hardware: Arduino, servo motors, 3D printing (PLA)
- Software and languages: Python, Tkinter, OpenCV, Arduino IDE
- Communication: Serial port between Python and Arduino
Key Features
- User Interface: A Python application with sliders for each finger, enabling precise manual control.
- Gesture Recognition: OpenCV detects the user’s hand and adjusts the robotic hand’s movements accordingly.
- Smooth Communication: Commands are sent to the Arduino via the serial port, ensuring fast and responsive execution.
Challenges and Solutions
- Latency issue: Initially, gesture recognition had a slight delay. Optimizing video processing and using MediaPipe improved responsiveness.
- Code optimization: A more dynamic approach replaced the initial idea of a predefined movement library, making control more intuitive and fluid.
Conclusion
This project allowed me to explore several areas: programming, computer vision, electronic design, and 3D printing. The robotic hand is fully functional and could be enhanced with sensors or AI to improve gesture recognition.
Source files, videos, and 3D models are available for those interested in exploring the project further. Feel free to contact me to discuss it!