Control an OWI Robotic Arm with Arduino

 by zlite
51LAkVypvAL.jpg
The OWI Robotic Edge Arm is a cheap and terrific 5-degree-of-freedom robotic arm that just costs $37. It's a great kit to build with a kid and won't take more than a couple hours to finish. Out of the box, it can only be controlled manually with a remote control. You can buy a USB control interface for it, but it's a waste of $27. It just lets you add a series of timed moves, but it's not really scriptable, you can't have it loop and because it just uses timing, there's no reliable repeatability.

What you want is real computer control, with closed-loop feedback for precision. Good news: it's super easy to connect an Arduino board to the OWI arm and let it do all the work! You won't even have to take the OWI arm apart or damage it.

Here's a video showing it in action, under fully autonomous Arduino control:


Here's what you'll need.

1) OWI Robot Edge Arm ($37)
2) An Arduino Uno board ($30)
3) An Adafruit Motor Shield ($19.50)
4) One potentiometer and at least three little trimpots ($5)
5) Some perfboard to mount the pots ($5)
6) Some jumper wires ($6) and pin headers ($7.50)

The total should be around $100. But you may have some of this already, and if not, you'll be able to reuse these boards and other parts for countless other projects.
 
Remove these adsRemove these ads by Signing Up

Step 1: Connecting the motors

IMG_5125.JPG
Since the Adafruit Motor Shield only has four motor drivers, we're only going to connect the four OWI Arm joints (not the "fingers"). If you want to control the fingers, too, you can attach a relay to one of the digital outputs on the shield and put microswitches on the fingers to mark "open" and "closed". But I couldn't be bothered myself--the fingers aren't that important.

Just use a little solid (not stranded) wire to attach each OWI motor connector to a Motor Shield output. Strip a quarter inch at each end and plug one end into the OWI Robot Arm motor connectors and screw down the other ends in the Adafruit Motor Shield connectors, as shown here.
WVvan says: Feb 17, 2013. 9:46 AM
A big THANK YOU for the idea about how to mount the pot to sense position. I've been beating my head for the last couple days trying to figure out a similar problem. I'll be using your design. Much better than what I had in mind. Kudos!
bahaa_monier says: Nov 12, 2012. 6:52 PM
Is it possible to use External DC Power 6v ?
i tried to do it but it going one side only ,
i connected the possiteve signal to the + and the possiteve to GND and -
but it not working .
can help please ????
learning curve says: May 5, 2012. 9:14 AM
Hi there, i am just wondering if it would be possible to control the arm without the potentiometer and trim pots? I have got the Arm going with a basic loop BACKWARD, FORWARD , and only one motor at a time (using adafruit DC test) i was hoping to be able to use the serial monitor like you have done as well, is this possible without modification to the arm?
nmered says: Apr 10, 2012. 6:54 PM
Great instructions! I got a sensor-less version of this set-up running. Now I'm looking to control the fingers. You mentioned adding relays and microswitches to the digital outputs. Do you have any hardware specs on these parts? I'm new to electronics in general and am using this project to get in to the basics.
Hole_In_The_Wall_Laboratoy says: Mar 8, 2012. 9:13 PM
Check this one out on youtube. The dude attached a freakin' cam.

http://www.youtube.com/watch?v=3_v7zDarCcM
Datawolf says: Jan 3, 2012. 4:34 AM
Does a shield exist that would enable the control of the 5 motors ?
I would love to program an arduino for the arm to pick up a light, or something like that.
zlite (author) in reply to DatawolfJan 3, 2012. 9:31 AM
Datawolf: I don't know of a 5-motor shield, but you can add a single motor shield (stacked) to the Adafruit one to get five total.

Here's one:
http://www.robotshop.com/dfrobot-arduino-compatiable-motor-shield-1.html
froibo in reply to zliteFeb 21, 2012. 2:17 AM
Just to clarify, by fingers you are referring to the vise, correct? I have yet to get my arm yet, but I would think it would be disappointing if it was not able to grab anything.
Dainbramaged says: Dec 28, 2011. 8:34 AM
What voltage do you supply to the motors using this shield? I thought they run on ~3V but the h-bridge you're using seems to have a min of 4.5V. Do the motors seem to cope ok with this?
zlite (author) in reply to DainbramagedDec 28, 2011. 9:10 AM
Yes, they're fine with that voltage. The stock OWI kit uses four 1.5v batteries in series, so that's 6v. We're running them at somewhat lower voltage (4.5-5v) out of the shield, but there's no noticeable performance difference.
nhecht in reply to zliteJan 8, 2012. 2:02 PM
Actually, the circuit is set up so that only two of the batteries supply power to a motor at the same time, so the motor only sees 3 V. The circuit's "ground" is the middle of the battery string, which is connected to one side of each motor. The hand controller will connect the other motor pin to the pair above the ground for forward motion, and the other pair for backward motion.

I'm running my own Arduino-controlled OWI arm using a 5V supply for the motors, and it seems to be working fine, for now. We'll see how the motors hold up as time goes on.
dustynrobots says: Nov 9, 2011. 8:20 AM
What kind of motors are in the arm as-shipped? If they're servos, as I assume, they already have pots in them. I wonder if it's possible to use the existing pots (if they do actually exist) and something like the OpenServo board from Sparkfun (http://www.sparkfun.com/products/9014) with the Arduino for control, and avoid the additional wiring. Thoughts?
zlite (author) in reply to dustynrobotsNov 9, 2011. 5:50 PM
Dusty: They're not servos. Just standard toy brushed motors with gears. No pots or any other feedback.
dustynrobots in reply to zliteNov 9, 2011. 10:20 AM
oh okay got it - thanks for clarifying!
blinkyblinky says: Oct 31, 2011. 4:28 PM
I have one but...the motors are two slow.
mrrepel says: Oct 31, 2011. 11:26 AM
Looks nice ! Still waiting for my robot arm to arrive. Nice coding,i want to use an old PS2 mouse with rotary encoders. I'll use some of your code :)
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!