Instructables
Picture of Wireless Controlled Robotic Hand

This is my school project for the 5th year of high school (I'm Italian, we have 5 years of high school).

It consists in an artificial hand controlled by a glove with flex sensors. The artificial hand reproduces the movements of the hand with the control glove, wirelessly. The hand and the glove works both with Arduino.

I just wanted to share my work for everyone interested :)

This guide is still in development, sorry if some parts are not clear, I'll put some 3D images in future.

I'm sharing something about my project on my facebook page: https://www.facebook.com/Gabry295

Step 1: Materials needed

Picture of Materials needed
flexsensor1.jpg
Arduino_Uno_Angle.jpg
0002228.jpg

I bought almost everything from https://www.sparkfun.com/, they have fair prices (I don't mean to advertise!)

Total cost: ABOUT 160$

The materials needed for the control glove are:

  • an elastic glove;
  • LilyPad Arduino board (there are different versions, which usually only have 4 analog inputs, so pay attention and buy the one in the image): it works exactly like the classic Arduino UNO, so you can use even an Arduino Nano, but pay attention to the voltage needed;
  • XBee module: for the radio communication;
  • Shield to connect the Xbee module;
  • 5 Flex sensors;
  • 5 resistors: 47 KΩ;
  • battery pack with 3x1.5 V batteries (Lilypad can be powered from 2.7 to 5.5 V, so 4.5 V it's ok);
  • LilyPad FTDI adapter: to connect the LilyPad board to the PC and load programs with the Arduino IDE (quite optional, because you can use also the Arduino UNO board removing the ATmega chip, but it's tricky to make this kind of connection every time).

-

The materials needed for the robotic hand are:

  • a steel structure for the palm of the hand and wood for the fingers;
  • Arduino UNO board;
  • XBee module;
  • 5 servomotors;
  • a servomotor shield for Arduino UNO: to connect the servomotors I used the Robot_Shield from FuturaElettronica, which has also a switching regulator to power the entire circuit, but you can use any shield made for controlling servomotors. Link: https://store.open-electronics.org/index.php?_route_=Robot%20shield%20for%20Arduino;
  • Shield to connect the XBee module (I made an horrible one, but it's economic and I needed to make one small because of the size of the Robot_Shield);
  • fishing wires;
  • fihing sinkers (to secure the fishing wire);
  • 9 V Battery.

-

Tools needed:

  • angle grinder (mainly to cut wood and steel);
  • axial grinder;
  • welding machine (with electrodes);
  • drill;
  • soldering station and solder;
  • electrician's scissors;
  • pliers;
  • heat shrink tubing.
 
Remove these adsRemove these ads by Signing Up
1-40 of 77Next »
mason1019811 days ago

Hello Gabry. I have a problem. I can't get a connection between my XBees. I made all the connections the same as yours. I also uploaded the code to both arduinos before connecting the RX and TX pins, however when I plug everything in and turn them on, the connection lights on the Arduino Uno are good, but the connection light on the LilyPad stays on for only a second or two, and bending the flex sensors doesn't do anything. I have checked my connections multiple times, and I'm sure its just because I'm not experienced with XBees, but could I get some help? Thank you!

Some of my connections are not shown in the pictures because I took them earlier, but you get the idea. I have the same connections you do. I just organized some of them on a PCB.

IMG_0212.JPGIMG_0213.JPGIMG_0214.JPGIMG_0210.JPGIMG_0206.JPGIMG_0211.JPG
Gabry295 (author)  mason1019810 days ago

Hi, did you use the Series 1 XBee? Did you change something via software in the XBee module? Did you use 9600 baud rate for Seria.begin in the code?

I'm sorry but I can't understand from the pictures if you made any mistake in the connections, because I think that the problem you have is caused by something in the circuit.

At the moment I don't know others solutions, could you eventually take a video?

I am using a series 1 Xbee from Sparkfun. https://www.sparkfun.com/products/11215

I did not change anything in the code. I will take pictures and possibly a video as soon as I can. For the LilyPad XBee, I have the RX connected to the TX and vise versa. For the Arduino Uno, I am using a Seeed XBee shield with the same pin selection shown in the picture on the below website.

http://www.seeedstudio.com/wiki/XBee_Shield_V2.0

As I said, when both Arduinos are powered on, the connections lights on the Arduino Uno's XBee shield are good, and stay good as long as both Arduino's are powered, but the connection light on the LilyPad XBee only stays on for about two seconds or so.

Also, I just want to make sure you know that I have not changed anything having to do with software or code on either the Arduinos or the XBees. I am using the Xbees as they came, and I simply downloaded your codes and uploaded them. Thank you!

Gabry295 (author)  mason101987 days ago

I really don't understand what's the cause of your problem, I'm sorry :/

Try to do some test with the LilyPad using some LEDs, even a PWM just to try if only that board works properly... Because I'm quite sure that the problem with the light on the LilyPad isn't a software mistake. Your problem is only on the XBee side of the glove circuit or also the LilyPad? I could be stupid for you but you may put in the wrong way the XBee on its shield (sometimes I make this mistake and put the XBee module inversely).

I can assure you, the XBee modules are both placed in the correct orientation. They are matched with the guiding marks on the PCBs.

I have tested and confirmed that the Arduino boards both function properly. I do not know about the XBees however, because I do not know how to use them. Is there something that needs to be configured on the XBees? Like I said, I'm just using them as they came.

The only thing I can think of, is that the problem is either the selector pins on the XBee shield of the Arduino Uno (I have attached pictures), or there is something either in the code or in the XBees that needs to be changed. Unfortunately, I do not know how to either of these things.

I have attached a link to a video of me trying to use the project, and the problem occurring. (the video plays best if you just click "download" at the top and watch it after downloading it, because dropbox does not play videos well).

https://www.dropbox.com/s/2379lky1zhi40nb/20141014...

IMG_0237.JPGIMG_0236.JPGIMG_0235.JPGIMG_0233.JPGIMG_0232.JPGIMG_0231.JPGIMG_0230.JPGIMG_0229.JPG
Gabry295 (author)  mason101986 days ago

Firts thing: I really like your glove :D

Anyway, now I'm quite sure that it's a software problem :/ because it's the transmission LED of the XBee LilyPad shield that goes off, and I had something like this problem too...

Try to change the programs and in the glove remove the line:

Serial.write("<");

and in the hand remove:

startPackage = Serial.read();

and this part:

if(startPackage == '<'){

(remember the closing brace)

Tell me if at least the transmission LED stay powered

Please tell me if this is how you want me to change the code:

hand: https://codebender.cc/sketch:45980

glove: https://codebender.cc/sketch:53721

Gabry295 (author)  mason101986 days ago

Exactly! :)

Unfortunately, this did not fix my problem. I am still getting the same problems. :(

Gabry295 (author)  mason101986 days ago
Darn...I don't have any other ideas unless trying to change settings of the XBees via PC. I'm really sorry about that :/

However, after powering on and off multiple times, and also pressing the reset button on the LilyPad XBee, the servo on the Uno started going crazy. I bent the flex sensor and didn't seem to get a legitimate response, it just kept rotating randomly.

Gabry295 (author)  mason101984 days ago

Hi, try to upload this code for the Hand

https://codebender.cc/sketch:55014

I added some "messages" that should be shown in the Serial Monitor.

Open
the Serial Monitor and tell me what it shows to you when you power up
everything. So we can understand better where's the problem.

For whatever reason, after uploading this code, the green connection lights stay on. However, the messages in the serial monitor do not appear correct, and the servomotor is still not responding to the flexing of the fingers. I have attached a video. (again, this video plays better if you download it first and then play it)

https://www.dropbox.com/s/o26rw188k4dhu0x/handtest...

Did you have to change anything on your XBees? if that's what needs to be done I don't think I will be able to do it as I don't know how to modify the XBees. I don't understand why it would not work. I have the same setup as you, and the same code. I'm not sure...
Gabry295 (author)  mason101985 days ago

I didn't change anything on my XBees. And I don't have any idea why your circuits don't work if are the same as mine with the same code... You sholdn't need to re-program the XBees theirselves but in this case I can't find other possible solutions. I never plugged my XBees to a PC, but there are some guides by searchin in Google, just try to set again 9600 as baud rate. I'll try to think about other solutions :/

vilelaig16 days ago

hi Gabry,
Fantastic job! I will try to do it but only a doubt, can i connect the servomotors in the Arduino (UNO) without a servomotor shield or a robot shield?

Gabry295 (author)  vilelaig15 days ago

Yes, you can use the digital outputs to control the servomotors, but you will need to make your own shield with the pins to connect them.

nah8917 days ago

Would it be possible instead of sending the signals from the control glove to an animatronic hand to rather a computer and then a computer model?

Gabry295 (author)  nah8916 days ago

I think it would be possible, but I don't know at the moment how to do something like that. I suggest to use eventually something like an Arduino Leonardo (this is different from Arduino Uno or LilyPad, it can be used like a mouse by a PC).

Hi Gabry, your project is fascinating! Only a doubt...why did you suppose to use a servomotor shield or a robot shield instead to use the PWM outputs from the Arduino Uno board? Thanks in advance for the explanation...

Gabry295 (author)  123mechatronic1 month ago

Thank you!

I decided to use that shield because it has a switching regulator to better use the battery. Anyway that shield uses the PWM outputs to control the servos :)

I could make a DIY board, using the PWM outputs, but since that I found that shield I thought it was more convenient for the presence of the switching regulator and easier to build.

ship.shines1 month ago

Hey, can you please post the code on which arduino of robotic hand is working on ?

Gabry295 (author)  ship.shines1 month ago

Hi, you can download them from the links at the last page!

mason101982 months ago

This this is awesome! I'm planning on starting on one myself but I just don't have the time or resources to make the actual 'hand' part. Are there any places I can get one already made? 3d printed maybe? If you could point me to a site that would be great! Thanks!

Gabry295 (author)  mason101981 month ago

Hi mason, at the moment I don't have enough experience in the world of the 3D printing, I can only suggest you to search about "3D printed hand" and see what interest you more.

Searching on google I found some sites:

http://www.openhandproject.org/downloads.php

http://www.thingiverse.com/thing:18939

http://www.thingiverse.com/thing:287638

I hope you will find a way :)

443892 months ago

could you use a arduino nano for the glove instead of the lilypad arduino?

Gabry295 (author)  443891 month ago

I think there's no problem using the Arduino Nano, it has enough analog inputs and the Tx - Rx pins, that's everything you need

(I took the informations from http://arduino.cc/en/Main/arduinoBoardNano)

justinliu3 months ago

Back again. :D (found out the answer to my two previous questions) I came back with two more, haha.

1. How is the gripping force of the hand? I see that you're using micro servo, and I know that they don't have the most torque. They're very low-profile, however, so I'm wondering how viable weak servos can be for this project. Can it, say, grip a hammer by itself?

2. I looked at your new schematic with the servo and finger and don't entirely understand how you're able to bend the finger with such a small travel distance from the servo. Obviously you managed to do it (seen in the video); I'm just baffled by how that works. The servo, especially because it's so small, doesn't seem to have a particularly long travel distance. How is it that it is able to pull the string down only so much and have the entire finger bend fully?

Once again, thanks so much for answering all these questions everyone has for you and I look forward to your response. :)

Gabry295 (author)  justinliu3 months ago

Hi justinliu :) Sorry for the last question, I'm quite busy in this period... Anyway I'm happy you found out the answer!

Well, for the first question, the hand has enough force to grip an hammer, but not enough to use it... It would be necessary to use a different material for the finger, at first, for example a light metal; second, a different material for the "tendons", something very resistant; third, a different kind of motor, not so plasticky. I only wanted to make something at the lowest possible cost :)

For the second question, I set the fishing wire at the rotor with the right proportions: to close the finger, I turned the rotor until it stops and pulled the wire in the "inner" part of the hand, closing the finger, and then fixed it at the lowest point of the rotor. This means that the wire is pulled of a length equal to the diameter of the rotor, and since that the rotor can cover only 180° then it stops, the finger is properly closed when you reach the final point. The same happen for the other wire, at the opposite. So when the servomotor is rotating one wire is pulled and the other is released. Anyway, the length necessary to close/open the finger isn't so much :)

Tell me if I didn't answered well and you have still any doubts!

(At the moment I lent the hand, so I can't make any video until August... I'll remember to recorder also the grip :D )

M.C. Langer3 months ago

this is awesome!

Gabry295 (author)  M.C. Langer3 months ago

Thank you!!! :D

ymasur made it!3 months ago

Hello Grabri295, congratulation for this good work! I am interested in the construction of the hand; the step 3 is not clear for me. How are the fingers opened? In my realisation (see at the URL

http://yvesmasur.ch/gallery/index.php/Main-LPC/670-main_LPC-paume-index-et-pouce-ecarte-L ) I need back spring. This is difficult to calibrate and to adjust; the motors must pull a lot again it to close the fingers. And I have a segment less on each finger...

668 main_LPC dos complet L.jpg670 main_LPC paume index et pouce ecarte L.jpg
Gabry295 (author)  ymasur3 months ago

Thank you ymasur! :)

I made now these schemes, I hope you can understand better how it works.

You can see the two wires in yellow, pulling one the finger closes and pulling the other it opens. When the servo is in its initial position (0°) the "external" wire is pulled and the finger is open. When the servo rotates it release this wire and pulls the other one. So when the rotor has covered 180° the "external" wire is released and the "internal" is pulled.

I suggest to choose the right lenght of the wire by fixing it at the top of the finger and then making some tries with the servo.

Cattura di schermata (237) - Copia.png
ymasur Gabry2953 months ago
Okay, I see. Very good system, without extra effort for the motors.
Thanks for the explanation.
Gabry295 (author)  ymasur3 months ago

You're welcome! At the beginning I thought about using a back spring too, then I realized that I could pull back the finger with another wire :)

vak_3 months ago

Awesome project!

Gabry295 (author)  vak_3 months ago

Thanks! :D

epicalien3 months ago
Now make it so you can control an arm part with your arm. BTW I love this creAtion
Gabry295 (author)  epicalien3 months ago

If i had time I surely would do that :)

And thank you! :D

1-40 of 77Next »