Cheap Servo Based Arm With Position Feedback and Electromagnet Picker

Posted on 15/01/2012 by ekim
Modified on: 13/09/2018
Project
Press to mark as completed
Introduction
This is an automatic import from our previous community platform. Some things can look imperfect.

If you are the original author, please access your User Control Panel and update it.

Hello, I've found many great ideas on LMR and thought about posting a robot arm I worked on. This robot arm is controlled by an Arduino Mega based controller called Spider. It's a pretty cool controller very good for robots you can find details about it her on LMR. I wrote the software in Arduino and Delphi using OpenGL to draw the arm onscreen. The parts are cut on a laser from 3mm red transparent acrylic. It uses 15kg torque cheap servos which I bought from RC-Timer (which is pretty farfetched ...


Cheap Servo Based Arm With Position Feedback and Electromagnet Picker

Hello, I've found many great ideas on LMR and thought about posting a robot arm I worked on.

This robot arm is controlled by an Arduino Mega based controller called Spider. It's a pretty cool controller very good for robots you can find details about it her on LMR.

I wrote the software in Arduino and Delphi using OpenGL to draw the arm onscreen.

The parts are cut on a laser from 3mm red transparent acrylic.

It uses 15kg torque cheap servos which I bought from RC-Timer (which is pretty farfetched to say are 15kg/cm still results are good for the price). The base servo has an hack (again from LMR) where a 4th cable is attached to the pot inside the servo and gives an analog position feedback to the control board.

The joints have pots that turn together with the servo horn which also becomes the other side of the axis for the servo horn.

Thanks to the Arduino Mega based Spider board with lots of extra inputs I made a small remote control as well. The remote control positions get sent to my desktop Delphi program which then reads the position the arm joints are in and moves them accordingly.

In the beginning all motion was sent from the PC but this resulted in sloppy motions, so I wrote the motion code in C in Arduino and now the PC only says go to this position etc. 

The PC has a calibration table in Degrees / Pulse-width / Pot Position. Acceleration and Deceleration is done with Arduino code.

All parts were designed and drawn and assembled in Solidworks. I'll add Solidworks images and files if anyone is interested. A good thing was that after drawing, it was possible to fully simulation the motion before

a) exporting to DXF

b) converting DXF to plotter file (PLT).

c) and finally cutting on my cheap 40w laser which uses some code called moshi (which has broken down now and gives me the opportunity to swap out the control with some real Mach3 :).

Some of the parts had to be bended using a resistant wire to heat the Acrylic up first, to get good bends I designed a template and cut that from acrylic first and later used the template to bend the arm parts.

Also after trying to come up with good base designs which never actually worked they all wobbled a lot. I saw a lazy Susan in some other project and after buying from 15 from ebay :) add that into the base. Now it turns very smoothly, almost no strain on the servo and no wobble either unless the arm stretches out totally horizontal to the surface.

The elecromagnet also has a small pushbutton besides it. This way the robot gets feedback that it actually is touching something.

Pick up objects, knows it's position. Can remember and repeat.

  • Actuators / output devices: Servos
  • Control method: Arduino, hardware remote control, PC based control
  • CPU: ATmega1280 - Arduino Mega compatible controller
  • Operating system: Windows 7
  • Power source: 5V
  • Programming language: Delphi 2009
  • Sensors / input devices: Pots
  • Target environment: Indoor hooked to PC
Flag this post

Thanks for helping to keep our community civil!


Notify staff privately
It's Spam
This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.

You flagged this as spam. Undo flag.Flag Post