robotic hand controlled by gesture with arduino le

11
http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/ Food Living Outside Play Technology Workshop Robotic Hand controlled by Gesture with Arduino + Leap Motion by acali on April 26, 2014 Table of Contents Robotic Hand controlled by Gesture with Arduino + Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Intro: Robotic Hand controlled by Gesture with Arduino + Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Step 1: Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Step 2: Make the Hand! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Step 3: Attaching all servos to the Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Step 4: Preparing the developing platform and Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Upload: lorddarthvader

Post on 18-Jul-2016

45 views

Category:

Documents


3 download

DESCRIPTION

Robotic Hand Controlled by Gesture With Arduino Le

TRANSCRIPT

Page 1: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Food      Living       Outside        Play        Technology       Workshop

Robotic Hand controlled by Gesture with Arduino + Leap Motionby acali on April 26, 2014

Table of Contents

Robotic Hand controlled by Gesture with Arduino + Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Intro:   Robotic Hand controlled by Gesture with Arduino + Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Step 1:   Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Step 2:   Make the Hand! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Step 3:   Attaching all servos to the Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Step 4:   Preparing the developing platform and Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Page 2: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Intro:  Robotic Hand controlled by Gesture with Arduino + Leap MotionHello 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 canrecognize 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 serverusing 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 -------------------------------------------------------------------------------------

Page 3: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Page 4: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Step 1: PartsParts: (Cost will be about 300$)

x1 Arduino UNO1.x1 Leap Motion2.0.5kg of Polymorph3.About 3m Fishing Line (0.17mm - Spiderwire)4.Some elastic strings5.x5 Servos (TowerPro MG956R)6.x1 Battery 1600mah and 6V (NiMH Venom VEN-1504)7.x1 Small Breadboard8.x1 Hot gun9.Some wires and tools10.

Page 5: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Step 2: Make the Hand!Put all polymorph spheres inside a basin with hot water1.Mix up all the spheres in a unique piece of polymorph2.Divide the big piece of polymorph in some smaller pieces3.In order to make each fingers you have to draw a scheme using your hand (see picture)4.Take a piece of polymorph and put it in a microwave oven for like 30s @ max power5.It will become transparent and easy to model. Be careful because it is very very HOT6.Use hand sketch to adjust the size of the finger and model the piece of polymorph, using some pilers to make all the joints. Joints are the tricky part, they should7.blend just in one direction!Make all five fingers and let them cold down8.Now you have to make the palm of the hand: put a bigger piece of polymorph in the microwave oven9.Model the piece in order to obtain something similar to a hand palm: before it cold down you have to put all fingers inside the warm palm. Be carefull to put all the10.fingers in the right position because once everything is cold, it would be impossibile to fix possible problems!Now it's time for some wire loops. We need to make some wire loops on all fingers (on the front, for the fishing line and on the back, for the elastic line) in order to11.avoid wire intertwine during fingers movements. On each finger you have to make a hole with a hot screwdriver, in between of all joints and on all finger tips (so 4holes per finger, see pictures)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 to12.

Page 6: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

make a hole throught it (see picture). Fishing line and the elastic one will pass through all these wire loops!

Make some wire loops on the hand palm too13.Finally we have to make the arm part, that will host all servo motors. Take a A4 white paper and draw all servo motors shapes (See picture).14.Put a big piece of polymorph in the microwave oven. When it's hot, model it on the drawn schema and use a cutter to make all holes for the servo motors.15.When the arm is cold you will have to put all servo motors inside the holes and seal them using some hot polymorph strips. Be carefull to put all servo motors in16.the right orientation (See picture), two of them will be inverted.You have to attach the arm to the hand by using a hot gun and some extra hot polymorph17.When the hand and the arm are fused together the last step consist of connecting all servo motors with each fingers: you can fuse an extremity of a piece of18.fishing line at the tip of the finger by using a common lighter whille the other extremity can be simply tied on the servo motor (see pictureIt's raccomended to create some wire loops to put on each servos in order to avoid wire interwine while servos will move.19.Finally you can put some elastic line on the back of each finger (see picture), make sure that all elastic lines are well strained: this part will give your hand the20.ability to keep the relaxed position even when the hand is oriented with the palm looking down!

Now you have finished the mechanical part of the project and you are ready to give life to your artificial hand :D

Page 7: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Page 8: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Page 9: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Step 3: Attaching all servos to the ArduinoNow 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 batterypack:

Each servo come with 3 wires, the black one for the ground, the red one for the power supply and the yellow one for the PWM (important!) signal1.By following the schema in the picture, you should connect all servos wires in the breadboard2.Now it's time to use some wires to connect all grounds and all power supplies (just follow the schema)3.Attention! I didn't pay attention to use right colored wires (because I didn't have all required colors!)

Take a common ground and connect it to the Arduino Uno ground input4.Take another common ground and connect it to ground contact of the battery pack5.Attention! Don't connect the common power supply to 5V input of the Arduino Uno (as showed in the schema), you have to connect this to the battery pack!6.Finally you have to connect all servos yellow wires to a PWM digital input on the Arduino Uno. I have used ports 3, 5, 6, 9 and 10. Attention! Try using these ports7.because when we will come up with the code, I will assign servos variables to those digital ports!

Now you have the hand, all servos implanted, connected to the Arduino Uno and the battery back.

Page 10: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

Step 4: Preparing the developing platform and Leap MotionNow 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 asjavascript 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 besolved by searching on google.

Plug in Leap Motion and install its software. At the end you should be able to see an icon somewhere, that allows to open the AirSpace software and Leap Motion1.configurations.Inside Leap Motion configuration you should set "Precision" and make the "Recalibration" tutorial. Please note: Leap Motion surface should be very clean!2.Now that Leap Motion is connected, installed and working we have to install Node.js so go to http://nodejs.org and click on the "Install" button (it's possible that3.first you need to download and install XCode in order to install nodejs, I already have it installed so I can't be sure). You can check Node.js successful installationby going on Terminal and type "node" and press "enter". If nodejs console show up starting with a ">" then you are ready to go. If you have some problems withthe installation, please search on google some tutorial because there are a tons!Now you have to install some nodejs modules (using npm install syntax). Again, check on google how to install a module it's very easy btw! Needed modules are4.the following:

Page 11: Robotic Hand Controlled by Gesture With Arduino Le

http://www.instructables.com/id/Robotic-Hand-controlled-by-Gesture-with-Arduino-Le/

gl-matrix: matrix and vector library1.johnny-five: arduino library2.underscore: javascript support library3.ws: websocket library4.

Install LeapJs SDK for Node.js check this url: https://developer.leapmotion.com/leapjs/welcome5.I have installed everything inside a project folder called "Tesi". Inside this folder I have 3 folders:6.

"lib" containing the "lib" folder of LeapJS: check on github https://github.com/leapmotion/leapjs1."node_modules" containing all 4 modules folders2."script" containing my script3.

Please, try to keep this project folders structure and paths because unpredictable errors may happen if not.

Related Instructables

Robotic Handcontrolled byGesture withArduino + LeapMotion (video)by acali

Soft Robots:Making RobotAir Muscles bymikey77

Soft Robots:Make AnArtificial MuscleArm AndGripper bymikey77

Controlling a 3Dprinter withhand gesturesby ElectricSlim

3D-PrintedBiologically-InspiredRobotics byrandofo

Interactiverobotic handusing arduino...(video) byPraveen SwamyGhongde

Advertisements

Comments

6 comments Add Comment

 msfern says:  May 1, 2014. 10:24 PM  REPLYFantastic, will definitely give it a try.

 coppe says:  May 1, 2014. 7:20 PM  REPLYtech advances like 3D printers and people like you might some day make life better for people who can't afford brand prosthetics, I'm an Orthopedic surgeon,and I can see this being a great solution for people with a low income and severe limb losses, great project, congratulations.

 darthvadersbro says:  May 1, 2014. 5:31 PM  REPLYMan. This thing is incredible

 acali says:  May 1, 2014. 6:13 PM  REPLYThanks!

 audreyobscura says:  May 1, 2014. 3:54 PM  REPLYThis is awesome!

 acali says:  May 1, 2014. 4:54 PM  REPLYThank you Audrey :)