This project, constructed by Brad Billwiller, uses an Arduino Uno as the interface between a glove and a mechanical hand. Flex sensors on the fingers of the glove change resistance as the fingers are flexed. This change of resistance is detected by the Arduino and the amount of flexion (i.e. change of resistance) determines how much to turn a servo motor (one for each finger). The servos are connected to fingers of the animatronic hand via fishing line and when the fishing line is pulled by the servos the fingers flex.
This project is based on an Instructable from “dschurman” who used a 3D printed mechanical hand. Brad adapted the project to use semi-rigid tubing that was notched at the joints to create the fingers. The fingers were then mounted to a wooden structure to stabilize them.
The flex sensors can be seen in the first picture sewed on to the glove. Each sensor is then attached to the connector board where it creates a voltage divider circuit along with a 10kΩ resistor. The voltage between the flex sensor and the fixed resistor is connected to an analog to digital converter of the Arduino which is then used to determine the amount of flex in the sensor (and therefore how much the finger was bent). The schematic below shows the glove wiring.
The Arduino uses the information about the amount of flex on each finger to control a servo motor that is connected to each finger of the robot hand by fishing line. The servos rotate an appropriate amount so that the bend of the fingers on the robot hand matches the bend of the fingers of the glove. This schematic shows the wiring of the servo motors:
The servos require a 6 volt supply and may draw up to 2.5 Amps of current when they are all in use. Watch the video of the hand in action below and pay attention to the current draw of the power supply behind the robot hand. You will see the current draw jump around a lot as different numbers of fingers are flexed.
Here is a video of the hand in action: