Multiply the robotic arm and electronics

Posted: August 17, 2010 in Electronic, Mechanical

Since I build my robotic arm and the electronics, there has been some progress. 2 friends of mine are busy with the programming, the are making a program in JAVA to control the robotic arm. I have been busy with making more arms, a friend and I did go to a Fablab in utrecht. There we made 8 robotic arms from hardboard 4mm on a lasercutter, it only took about 6 minutes to make one! Below a picture of the lasercutted arm:

I really want a lasercutter now! :p its such a usefull and fast tool! Below a movie of the lasercutting:

But since we now all got our own robotic arm, we wanted to test it. I already did some testing but I found a problem in my circuit board shield, the arduino was not able to supply the current for 7 servo’s (which is quite logic…). And since I did not include a external supply header in my PCB we decided to make a new arduino shield, so there we go, a new fresh DIY PCB:

The circuit has the following features:

External feed option
Power-on LED
3 switches or 3 LEDs
IR receiver module plugin
Controlling of 7 servo’s (6 steering signals)
Analog read of the potentiometers of 6 servo’s
2 extra i/o pins

With this shield we are able to control and read the servo’s and also use some switches and LEDs for a friendly interface. Here’s how the arm looks now:

Now the mechanic and electronic part of this project is finished, and we just wait for the JAVA programming to be ready. I already made a little program in the arduino microcontroller itself and tested it for a few hours and it all works now properly. The project is not going really fast because I got a lot on my mind, but it is going in the right direction!

I hope you like it, here below is the schematic and board in eagle layout downloadable:
Download!

Comments
  1. Chris Lewis says:

    Great work there,

    Any chance of a printout of the laser cut pieces for the robot?

    Regards Chris Lewis

  2. karan says:

    i have made your robotic arm and its great. But you made a mistake. if u want to make robotic arm with inverse kinematics and also control servo using the arduino libery , for that arduino is not that fast .If u do heavy trigonometry in IK and also try to drive servos the steps are not simultaneous ( for ex 1 servo move then other etc.) So use renbotics servo shield

    http://www.circuitsathome.com/mcu/programming/robotic-arm-inverse-kinematics-on-arduino

    its work great.Again thanks for diagrams

  3. yassir says:

    Great work !!!! please can you send me the programe arduino to commande this robotic arm

  4. Steven Haages says:

    hey jan-jaap
    alles goed?
    ik ben je robotarm na aan het maken maar ik kom er niet aan uit zoals je elektrische schema’s op de site staan ik heb ze geopend met eagle maar ik snap er eigenlijk niet zoveel van zou je me daar misschien wat meer uitleg over willen geven

  5. Steven Haages says:

    bijvoorbeeld de symbolen voor het sturingsschema en op de printplaat
    het is eig een rechthoek met bolletjes erin en ik kom daar dus niet zo aan uit
    mvg steven

  6. Steven says:

    hey janjaap mag ik vragen welke condensatoren je hebt gebruikt?

  7. cristich says:

    could you please tell me what servos did you use?any other details are welcomed

  8. I see these servos are different from the ones on thingiverse. These have 4 pins, those 3.

    • jjshortcut says:

      Yes that might be a bit weird but the 4th pin I use for reading the voltage of the potmeter inside the servo. I just soldered those myself so there just normal 3 pin servos but I modified them.

      • Please tell me what are the 3 buttons and 3 LEDs on the board for. And if I have the arduino connected to the computer and I plug in a 9V battery on your shield will there be any problems ?
        What are the jumpers for?

        Thank you very much!

      • jjshortcut says:

        Hi, the 3 leds and buttons are for user input and output, the jumpers are to connect a led or a button to a pin. Also, it will be no problem to use a 9 volts battery (but it probably will be empty soon..)

      • Onur says:

        4 What happens at dawn connect the pin of the program I’m working properly.

  9. Chris Lewis says:

    For those non-programmers like myself I used a PIC processor using 5 servo outputs to drive the arm. I wrote the program is basic and it works fine. I have a photograph if you send me your address to chris@nbtv.org

    All the best for the new year.

    • preeti says:

      Hello sir….
      Greetings of the day….
      This is preeti from India … I have done the arm following jj’s instructions………. But facing few problems…..the first is arm is unable to stand… so any tricks to over come this problem???? second I dono java so can u plz help me out with the code for controlling arm in some basic language as c…. it would really be the great help from ur side… do mail me the details at yargolnagaveni02@gmail.com ….. I will be waiting for ur response…
      Thank you…

      • jjshortcut says:

        Hi,
        If your arm is unable to stand, you could screw it to a plate or something, like I did in the video. About the programming, you can program the arm on an Arduino which is very easy to learn and use. I did not made a userinterface for the arm so I can’t help you at that point.

      • preeti says:

        ya sir thats fine but u said u used springs somewhere can u let me know were u used those and y????

      • jjshortcut says:

        Yeah, because my servos do not have very much torque I used a spring at the back of the “elbow” to the rotating plate.

      • preeti says:

        hi i am still unable to follow …. so can u help me in controlling the arm in basics as i dono java…. plzzzzzzzzzz

  10. Could you please upload the Whole_robotic_arm_drawing_sheet.eps file with at least one dimension so I can scale the rest of the parts?

    Thank you.

  11. steven says:

    Hey janjaap🙂
    mag ik vragen welke componenten er rechtboven op je printplaat zitten ?
    het zijn die 3 zwarte🙂 ik moet namelijk een schema uittekenen en dat wil ik via jouw printplaat doen
    mvg Steven

    • jjshortcut says:

      Ik denk dat je de jumpers bedoeld, er zijn er daar 3 van, de stand van de jumper bepaald of de led of de drukknop gebruikt word. Het schema en board kun je gewoon downloaden trouwens.

  12. Sorry to bother you again, but I have 3 last (i hope) questions.
    – What capacity does C1 have?
    – What kind of diode do I have to use?
    – What’s with the tsop1740 ir sensor ?

    Thank you🙂
    P.S: I got the arm cut. Tomorrow I’ll get the servo’s and bearings.

    • For the caps i picked a 470uF 16V and for the diode 1n4001 but I’m not sure due to my lack of electronics skills.😦

    • jjshortcut says:

      Hi, C1 has a value of 47uF 50V, the 50 volts doesn’t matter that much and de cap is just for stabilize the supply so that value also doesn’t matter much.

      I used a 1N4007 diode, but a Schottky diode is more common because those have a lower voltage drop.

      The TSOP1740 is a IR receiver was added to make the robotic arm controlled by a universal remote.

      Nice that your arm is almost ready, I would love to see a picture or something when it’s finished🙂

      Oh, and yeah a 470uF 16V and the 1N4001 will do..

      • preeti says:

        hey even help me with the arm ya… i am not able to follow with the only information u provided…..

  13. preeti says:

    hi,,,, hey even i am doing the roboic arm for my final year project…… so plz who ever have done with this arm plz help me out in the same………..plz post me all the cuttings,drawings and all other related information to preeti.toshniwal14@gmail.com…….. i hope u all will help me…….. jj plz do it as soon as possible…..

  14. preeti says:

    hi jj……
    as i already said i did arm but its not standing properly…. i tried my best to make it stand but all in vain….. so wanted ur help… i am thinking to replace the arm and shoulder by some thicker wood so that it can handle the weight of gripper…….. what u say ??? will this work out??? else if there is any other alternative then do let me know as soon as possible…… plzzzzzzz

  15. preeti says:

    oops a mistake.. i meant shoulder and elbow part by thick wood……

  16. preeti says:

    i have fixed it as u did but still the gripper part always falls …….. what can be done.??????? do post soon…………

    • jjshortcut says:

      I’m not sure what you exactly mean, is the gripper falling of the wrist? Or what?

      • preeti says:

        hi… is it that the arm always fall when there is no supply to it???? i mean to say is my arm is just falling when it dont have supply…what can be done????

      • jjshortcut says:

        The arm lowers due its own weight I’m not sure what you could do to overcome this problem, but normally when you use the arm it’s powered right?

  17. nks says:

    Nice work !!!! please can you send me the programe arduino to commande this robotic arm and the circuit schematics.
    Thanks.

  18. nks says:

    Thank you very much!

  19. Hi again. I have some problems with the electronics. Could you be kind enough to help?
    I’ve loaded up your program and nothing happens. Switched the jumpers, pressed the buttons, nothing.
    With the servo connected like in the images below, the white LED blinks for a few seconds then stops. If I reverse the servo, nothing happens.
    http://imageshack.us/photo/my-images/442/p11021214450002.jpg/
    http://imageshack.us/photo/my-images/208/p11021214450001.jpg/


    (There’s a open connection under the leds. I fixed that. No results.)

    Thank you.

    • jjshortcut says:

      Hi,

      It’s been a while since I used the uploaded program, but it works by pressing keys and learn in the positions of the servos, that way you have to use the 4th pin connected to the middle pin of the potentiometer inside the servo. To try the shield, just use the example program (servo sweep) and set the right pin.

      Oh and you probably have connected the servo the wrong way. Orange wire has to go to the other side..

      • Found the bug and a 5V@2A PSU.

        The diode was backwards, as it’s in your picture. I made a mess on the circuit board with the solder…. I had to solder the diode on the other side because the holes got filed with lead. I’m going to school the next week to fix that.
        I’m on the right track. The arm is 70% finished. I have to glue the parts, make the wrist bearings and find some screws. In Romania is very hard to find screws under 2.5mm and pin headers. You have to take stuff apart.

        Thanks🙂

  20. Daniel Gonzalez says:

    Hi,sir.
    My name is Daniel. I’m a costarrican high school student. In my high school we do a scientific fair and I want to now if you can led me to do your proyect.If you can help me, please send me a e-mail to acratey@gmail.com

    • jjshortcut says:

      Hi,
      I’m not sure what your idea is but of course you can make this project! If you need help, just ask.

      • Daniel Gonzalez says:

        Hi,sir
        I have some questions to ask you:
        What is the hardboard size? For example:13cmx20cm
        How do you do it with a radio transmitter?
        Does the mini servo gripper use any additional gear to be moved?

      • jjshortcut says:

        Please first have a good look at the drawings, from those you can get the dimensions and how it works with the gripper. For controlling the servos I just used a rc remote control.

  21. Steven Haages says:

    hey jan-jaap
    ik heb gezocht naar dezelfde arduino (duemilanove) maar hij is niet meer verkrijgbaar
    weet je misschien een alternatieve arduino die ik kan gebruiken voor de sturing van mijn arduino

  22. steven says:

    hallo,
    is het je programma ook downloadbaar?
    mvg steven

  23. The TSOP sensor power pins are switched. You might want to tell people somehow before they smoke circuit elements.
    http://imgur.com/Y13Hw

  24. zak says:

    hi….im zak and im interested to know teach in function of the robot… can u guide me how the teach in function work…and what circuit should i make for this function

    • jjshortcut says:

      The teach in function works by reading the potentiometer inside the servo’s, this is the feedback of the position of the servo’s. This way you can set a posistion of a servo, do an ADC and convert/map this value to a position and control signal of the servo. I made a small program which can do this for all servo’s, controlled by the buttons on the shield; http://www.mediafire.com/?rjmw3mwecw7mu0e

      • zak says:

        thanks for your reply. i still have some question, how the connection between potentiometer inside servo to arduino? “ADC and convert/map this value to a position and control signal of the servo” alrready written in your programming? and last what the function of the button on the shield?

      • jjshortcut says:

        For reading the position of the servo: http://forums.trossenrobotics.com/tutorials/how-to-diy-128/get-position-feedback-from-a-standard-hobby-servo-3279/

        I think I mapped the value in the program yes, you should be able to find it. And I used the buttons to record the servo positions and play-back the positions.

      • zak says:

        in http://forums.trossenrobotics.com/tutorials/how-to-diy-128/get-position-feedback-from-a-standard-hobby-servo-3279/ . tutorial mentioned if the voltages measured on the servo potentiometer were well below 5v. An external voltage reference can correct this. A simple voltage divider from 5v to the Aref pin on the Arduino will work. since this project use 7 servo. what should i do?

      • jjshortcut says:

        This can make indeed a more accurate teach-in function, but first you have to check what the max. voltage is of the servo output. If it is much below 5 volts you can use an external voltage reference, but remember that you only have 180 segments to control the servo, so it wouldn’t make sense if you measure a max. voltage above 0.88

        (The arduino has a 10-bit adc, so 5 volts is 1024, 0.88v would be 180, but you probably will be way over that value so it makes no sense using an external voltage reference above 0.88v)

      • zak says:

        hye. for this project i want to add SHARP IR 2Y0A21 sensor at the gripper as an object detector. IR sensor will detect the object and give command to robot arm to work but if IR sensor not detect the object the robot arm will not move. As I see all the analog input has occupied with servo feedback, how i want to connect IR sensor to arduino? what pin i should use?

      • jjshortcut says:

        You could grab a bigger microcontroller with more ADC pins, otherwise it’s not really possible to use a simple arduino uno..

  25. I have some issues with the software.
    I wrote a program to control the servos from pins 13 and 12. The problem is the IR is getting buggy from some reason. When I control the servo from pin 13 is kinda ok(still shaking or not responding but controllable) but when I connect the other 2 servos on pin 12 everything goes wild. I don’t receive any new values or any values at all from the IR.

    I don’t have an experience working with servos but shouldn’t a servo shut down after you write a value? Mine are staying turned on, making a weird noise and not moving.

    http://dl.dropbox.com/u/17102970/proiect.pde

    Thanks

    • jjshortcut says:

      Do you use a power supply? Or just the usb cable for supply the servo’s? 1 (small) servo can be supplied by the usb cable, but 2 of more are not likely to work since they consume to much amps. So you have to supply the arduino with a wall adapter or something else besides the usb cable. All 7 servo’s might take at peaks a few amps.

      Another thing on the servo’s, when you control them by the arduino they are powered all time. This is because the arduino continue sends the control/PWM signal (otherwise the arm would fall down). The noise of the servo’s could come of the weight of the arm, and the controller inside the servo trying to reach the position of the given control signal.

      • Yes I have a power supply. It’s +5V 2A wall adapter. Is it too small for 2 standard servos? This might explain the IR problems.

        Thanks.

      • jjshortcut says:

        Not sure what servo’s u use but a peak may be more than 2 amps, it heavily depends on what quality of wall adapter, also you say +5v, the jack-plug is for recommended 7-12v, check the arduino site; it says

        “The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts. ” (http://arduino.cc/en/Main/ArduinoBoardUno)

        That might be the problem…

      • Thanks for the info. I’ll got to school tomorrow and try with a lab psu.

  26. Rex says:

    Cool arm. Thanks for sharing. Each segment of the arm has two sides. Can you explain how the side without the servo output connects to the back of the Servo. This might seem like a silly question, but I’ve been wondering how these types of connections work on the backside of the servo when the servo itself is part of the joint.

    • jjshortcut says:

      One of the parts is a servo bearing, this is a plastic part. Look at the thingiverse drawings, there you will find 2 pieces with are used as bearings and are glued or taped to the back of the servo.

  27. Rex says:

    Thanks for your answer above and for all the help you have provided people with this project.

    The written plans and parts list on thingiverse call for 45mm spacers, but it appears from looking at the drawings that the project really needs 47mm spacers along the lower part of the arm and between the two tandem servos. The distance between the two rows of tab slots on the uppermost base plate is 47mm. Is this correct or am I missing something? If I’m right and the build actually needs 47mm spacers, do you have and suggestions on where to find this size spacer (standoff)? I’ve been trolling the internet but can’t find them anywhere. Unfortunately, I already sent my plans off to a laser cutter or I could have tweaked them to fit the 45mm dimension (which seems to be a more common standoff).

    • jjshortcut says:

      Hi, I think you won’t be able to find spacers 47mm therefore I used 45mm.. you could use washers to make that extra 2mm. I did this, also because mine is made of wood and the washers help to share the pressure of the screws onto the wood.

  28. Gokhan says:

    Hi, I am student. My project is the design of the robot arm, I liked it. I want to make your project, and I would like to share your project ,on my website. However, in my language. If you let me? I congratulate you, really.

  29. ian anchores says:

    hello. if you dont mind sir. can you give some idea? i need other application of robot arm gripper for my thesis. thanks!😀 More power to you.

  30. I’ve tried setting offsets on my Mill but I’m pretty new to all this and having some trouble still.
    As time moves on I’m sure practice will pay off, but for now is there any chance you could help me with a drawing for a 1/8″ bit on a three axis Mill using Mach3?
    Any and all help really appreciated.
    Rob
    my email is crob.09@live dot ca
    Also I posted the same comment on “thingiverse.com”

    • I forgot….
      The bed size of my machine is smaller than yours, is it tricky to get the components on separate sheets?
      The bed on my machine is 200mm sq, and that’s pushing things. Ideally the operating size is 130mm for the X-axis and 200mm for Y.
      Again hope you can help, if I need to cut the longer parts by hand I will, just need some help with the smaller parts.
      Thanks again and hope you can help.

  31. André says:

    Hi can you please tell me what the torque on your servos is please.

    Thankyou very much.

  32. lokesh says:

    Hey JJ,
    I’d like to incorporate some features of this robotic arm to my Final year Search and rescue robot project. Could I get some of you details like your full name so I could add it to my references.

    Thank you

  33. RAIYANI NILESH says:

    can i get the all type of calculation of this robotic arm?

  34. Dilupa says:

    do you have any drawings/design files of the robot arm? I want to build one and currently looking for a good design.

  35. FH says:

    I feel surprised to see the items puchased were very well utilized
    and very serious in building the robotic arm.
    it is very encouraging and motivating job.
    I never see a website which is so practical.

  36. Onur says:

    Ardunino ve diğer pcb birleşiminin fotoğrafını .Ve uzaktan kumanda sisteminden ayrıntılı bahsedermisiniz.Görsel bilgi lütfen. RF alıcı verici devresimi kullanıyorsuz

  37. Apozas says:

    The link for de DIY PCB is not function, pleas helpme

  38. […] A quick model to figure out the proportions, and the structure. First arm Attempt. I found an open source robotic arm. 

I first edited the file to fit mg995 motors, and mg90s. I choose them because of their metal […]

  39. Hii! i need to know if you still have the schematic?

  40. Apozas says:

    This project is great, but the link for de PCB in eagle is not function any more, please upload againt this file thanks.

  41. […] A quick model to figure out the proportions, and the structure. First arm Attempt. I found an open source robotic arm. 

I first edited the file to fit mg995 motors, and mg90s. I choose them because of their metal […]

  42. rutinario says:

    prodrias subir el esquema el DOWNLOAD esta inactivo

  43. Hoai Phuong says:

    Hi JJ,
    When I click on the download button on your link, it leads me to another download page and said: “The file link that you requested is not valid. Please contact link publisher or try to make a search.”. Can you re-upload the file?! Thanks so much!
    p/s: I’m also using your project for my bachelor thesis so am I allowed to put your name in my thesis?

  44. kieran says:

    what type of servos where used?

  45. kieran says:

    Hey Where can i download the schematic diagram of the servo shield? thanks

  46. Ty Tower says:

    The file link that you requested is not valid. Please contact link publisher or try to make a search.

    Thats what I got when I looke to download the eagle files ?

  47. Andrew says:

    Please fix the file link!

  48. amidar says:

    Hello, eagle files are not available anymore. Please fix the link, reupload to somewhere else.

  49. Karan says:

    Kindly re-upload the schematic of servo shield.

  50. Fernando says:

    I tried to get the PCB Shield and the link is down, I think I could copy watching the photos here, but why the shield have 4 wires to Servo? It can be controlled with only 3 wires? I want to make the shield but my protype material is running out and I dont want to waste a little, I need to do other stuff. if you still have the pdf artwork shield please send it to me, I will appreciate a lot.

  51. fungky says:

    hallo jj..

    this link for eagle schematic out of date.
    can you reupload?

    http://www.2shared.com/file/CSxqHrky/Arduino_robotic_arm_shield_v3.html

    thanks

  52. fungky says:

    can you share eagle schematic to my email on
    fungkyking01@gmail.com

    thanks

  53. Atta Ur Rehman says:

    Hi there,
    Sir i have build the Gripper and i may need the arduino code to test it.
    Kindly send me a link or email me the code

  54. Klemen says:

    Hi
    Have you finished the JAVA program?
    I would really love to make an arm like this but i’m not that good at programming

  55. Rangga says:

    Nice gripper.. I want to make that gripper too. Can you send that design on my mail please… :3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s