This was my third robot project with the kids. Inspired by a Mark Rober video about a rock-paper-scissors robot that never loses, my kids wanted a robot hand that would never win against them.
After researching all the 3d printable, easy to assemble robot hands out there, I decided to build the beautifully designed InMoov Hand by Gael Langevin.
The hand actuated by 6 MG996R hobby servos and fishing line. I used an ESP32 C3 Super mini connected to a PCA9685 PWM servo driver to control the servos. I can fit the brains right in the forearm of the robot wedged between the servos.
The ESP32 is connected to an iOS app that runs on an iPad. The iPad runs a machine learning model trained by the kids using CreateML and hundreds of sample images of their hands playing rock, paper scissors.
After the kids learned an important lesson that winning all the time is boring, we addd two more play modes to the iOS app: Mimic and Program.
Mimic detects the hand position in front of the camera and tells the robot hand to copy that pose. Detecting the hand pose was made very easy by Apple's built in Hand Pose detector. However trying to mimic that position consistently was challenging. The servos used didn't have the range to curl fingers all the way, the servo response was slow, and the line had trouble staying taut. Needless to say the novelty quickly wore off and this mode only kept the kids entertained for a couple of minutes.
Program was more engaging. With Program mode, the kids could create sequences of finger actions to create custom handshakes, gestures, and hand movements. We even tried to make the robot hand crawl across the floor like a severed zombie limb. I added a loop and bounce mode so the hand can dance and spell out different messages in sign language over and over again.
If you'd like to do the same project with your kids, you can head over to the InMoov web site and download the STL files for 3d printing. Once printed, follow the instructions on the web site for assembly.
You can get the source code to my firmware and iOS app at phmagic/robot-hand.
Tips for those trying at home:
- This project is pretty easy for the kids to assemble, let them help you build the arm and hand.
- The pin needle in between each finger joint (to keep the spring at the right tension) was the hardest part.
- If you can, use a 300º servo, or even 270º for full finger range of motion. I couldn't find the servos recommended by the creator of InMoov so I opted for the 180º.
- I hand soldered a custom board for the ESP32 with just enough pin outs to connect to the PCA9685