Hello everyone,
As promised I have made a full step by step instruction for my university final project!
First of all: sorry for my bad english! If something isn't clear, please leave a comment.
The hand is controlled by Leap Motion + Arduino Uno (Standard Firmata, Nodejs & Johnny Five) + Servo Motors and the hand itself was made with Polymorph. It can recognize each finger and it can move them separately with very good precision and sensibility! This prototype can be controlled remotly too via a normal web server using ajax/json requests. Let me know what you think about it and maybe I will publish a complete tutorial when I will have more time... Thank you!
--- Feedback from NASA ----------------------------------------------------
“ Your hand is very responsive and does a good job of showing how well your gesture control/recognition works. ”
Ron Diftler, Ph.D. Robonaut Project Manager, NASA/Johnson Space Center -------------------------------------------------------------------------------------
Make some little balls of polymorph and put them in the microwave oven, press one small ball of hot polymorph inside a hole and model it using a toothpick to make a hole throught it (see picture). Fishing line and the elastic one will pass through all these wire loops!
Now you have finished the mechanical part of the project and you are ready to give life to your artificial hand :D
Now that we have our hand and all servos implanted on the arm we must use the little breadboard in order to connect all servos to the Arduino Uno and to the battery pack:
Attention! I didn't pay attention to use right colored wires (because I didn't have all required colors!)
Now you have the hand, all servos implanted, connected to the Arduino Uno and the battery back.
Now it's time to prepare software platform in order to program the arduino board. Since Leap Motion sends its data throught a Web Socket, we will use Google Node.js as javascript platform (it's based on Google Chrome js engine) so that we can easily read data via the Web Socket. Then, we should install a Node.js module called "johnny-five" that allow us to program arduino board directly with javascript.
NOTE: I did everything with a Macbook Pro so please don't ask me how to solve problems on Windows systems because I can't really help you! Most of problems can be solved by searching on google.
Please, try to keep this project folders structure and paths because unpredictable errors may happen if not.
This is the last step and the most important one. Now that we have our working artificial hand connected to all servos controlled by Arduino Uno and the developing platform is ready-to-use... We really have to make the software in order to:
Send elaborated data to Arduino Uno in order to move servo motors
Attached to this step there is my full project folder. The script that you should run in Node.js is "/script/app.js" (make sure that leap motion and arduino are connected to your computer, the arduino should be connected to the battery pack and all servos should be attached to the Arduino board too).
Just for a matter of order I have put all core functions inside another file inside "/lib/handToHand.js" that is imported at the very beginning of the "app.js".
I have rewritten all my comments in english so that anyone can understand what's happening and why. If you follow my comments and check the flowchart (see picture) you will understande everything for sure.
If you have any inquiries please leave me a comment!
That's all... Thank you and good luck!
-----------------------------------------------------------------
Alessio Sacchetta Cali
Electronic Engineer
University of Roma Tre