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.

Step 1: Connecting the Motors

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.
<p>I intended to use your example initially. Then i took it the the next level by removing all the limiting factors, like the pots and the plumbers tape. I connected the motor shield to an Arduino Mega 2560 and then inserted an IR remote into the circuit, the outcome was good. The next step is to use one L293D to also control the gripper via the IR remote. Also the Serial Monitor tells you which position the arm is at the beginning of the movement.</p>
<p>Nice mod, I have the same robot arm and I was working on the same feedback lacking problem! I'm still working on it, but as a small enhancement I suggest you this change to the horizontal feedback I made instead of the plumber tape and potentiometer. The tape causes a very limited horizontal movement, so I reversed the logic and put a small trimmer UNDERNEATH the motor, and a Meccano bracket properly bended. Simply cut the extra yellow plastic pin from lower side of the motor, and using hot glue fix a trimmer (with its small perfboard) underneath. I also needed to drill a hole to enlarge it enough to fit trimmer head, then fixed this with hot glue too. I also put 4 rubber feet to the robot base, making enough space for the bracket to freely move. This solution will give a movement of around 180 degrees. Attached here are some picutres to let you/anyone know how I did it. I can now start working on other modding (like replacing the useless LED with an IR sensor, an ultrasonic sensor, etc;-)) Cheers!</p>
<p>Hey, where did you buy the metal brackets?</p>
<p>Since they're regular Meccano brackets, I used them from an old Meccano box. But you could find pretty similar ones from almost any local hardware shop.</p>
<p>Nice. The Meccano brackets are a lot more rigid. And I guess the feet are spread farther apart than the limits of the base rotation?. And it looks a bit tidier and more elegant.</p>
<p>Yep, you have nearly 180 degrees for z-axis, thus a wider arm movement. I tried to fit an optical sensor inside the motor itself, but it's too small to be abe to fit mine...</p>
<p>This is a good product build. I am amazingly impressed, yet I was hoping for alittle clarification as to which motors are conected to which analog inputs on the motor shield for the example code included?</p>
<p>With the DC Cable how many voltage you used for the arduino?</p>
<p>Sorry I dont quite get what the pots are for ?</p>
<p>The motor controller cannot know how far the motors have turned the joint; even if it knows that running it for 2.3 seconds moves it by x degrees, there are too many factors that can mess up the timing. </p><p>The pots will return distinct voltage values for every angle, consistently. For example, when the elbow is at some specific position, say about a third of the way through its travel, the pot will read, say, 1.6523443 volts or something like that. So if the controller is told &quot;drive this motor forward until its pot returns 1.65 volts&quot; it will stop at about the same angle every time.</p>
Ok thank you good explanation in a sense is this getting a motor to behave a bit more liker a stepper motor then ?
<p>Actually, a bit more like a servo, which also has internal pots.</p>
The pots are to give position feedback to &quot;close the loop&quot; on the system. Otherwise it won't know where the arms are.
How exactly is this powered? I was intending on plugging the ardiono into my USB port and jsut using that, but I'm worried there won't be enough current. Could someone please plainly explain how to power everything (shield, arduino and motors)? I'm also worried the shield needs too high a voltage! And i read somewhere that these motors are only rated for around 3v :s<br><br>Thanks for any help! :)
<p>According to the manufacturer (http://www.owirobot.com/robotic-arm-edge-1/) each 3V motor runs at <br>255mA at full tilt -- with no load. And there are five motors. Just <br>being installed in the robot means there's a load, and it will go <br>higher, all the way to the listed &quot;stall current&quot; of over 3 amps. The <br>design is such that the motors cannot continuously stall in this robot, <br>but still -- no microcontroller can deliver that directly even for a <br>split second. You will definitely need a motor controller. I don't <br>even think relays, transistors or MOSFETs will work because you've got <br>to be able to reverse the polarity. By the time you've added all the <br>circuitry to support it you've pretty much built a motor controller, so <br>probably better to just buy one straight away.</p>
<p>Has anyone tried to use these flex sensors for feedback? https://www.sparkfun.com/products/10264</p>
<p>can u plz show the connections clearly ? can we do the same thing using pcduino board?</p>
<p>Hey,<br>I bought OWI kit from amazon. It seems the speed of the motors is a bit slow.<br>Are there any methods to increase the speed of the motors?<br>Something like passing more current. But i doubt more current may burn the motors.</p>
<p>Hello zlite,</p><p>Great project and idea! </p><p>What is the name of the software you are using on the youtube video &quot;simple base movement in action&quot;? I will add the pots and I would like to control it from my PC like you are doing on your video.</p><p>Thanks in advance!</p>
<p>That's just Arduino</p>
<p>Clever idea. Thanks for sharing it.</p>
<p>Hello! Great that you made it! </p><p> Are you using the &quot;Serial Monitor&quot; to control the base with the keyboard? How can I assign the keys?</p><p>Thanks!</p>
<p>Hello! Are you using the &quot;Serial Monitor&quot; to control the base with the keyboard? How can I assign the keys? </p><p>Thanks!</p>
Does a shield exist that would enable the control of the 5 motors ?<br>I would love to program an arduino for the arm to pick up a light, or something like that.
@Datawolf could u program an arduino for my robotic arm to pick up objects with a gripper.?? plz rply soon
Gasp. I wish I had enough time for my own projects !<br>Good luck
Unfortunately I didn't found a shield to drive 5 motors.<br>And even that, I don't have time enough for my own arduino, which is gathering dust in its drawer...
<p>The AVR328P has 6 PWM outputs and 6 Analog inputs (if you don't use the I2C bus), you possibly just want to wire your motor driver yourself instead of using shields.</p>
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. <br><br>Here's one: <br>http://www.robotshop.com/dfrobot-arduino-compatiable-motor-shield-1.html
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.
Is the link for &quot;potentiometer&quot; is good?? I think it's a trimpots and doesn't match to the potientiometer that you use on photographies. Is the good link is that: http://www.adafruit.com/products/562 ???
very good tutorial for&nbsp;<a href="http://www.owirobots.com/store/index.php" rel="nofollow">OWI Robotic Arm</a>. I'm looking forward to find tutorials for&nbsp;other <a href="http://www.intorobotics.com/robotic-arm-kits-for-your-next-project/" rel="nofollow">robotic arm kits&nbsp;</a>
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!
Is it possible to use External DC Power 6v ? <br>i tried to do it but it going one side only , <br>i connected the possiteve signal to the + and the possiteve to GND and - <br>but it not working . <br>can help please ????
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?
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.
Check this one out on youtube. The dude attached a freakin' cam.<br><br>http://www.youtube.com/watch?v=3_v7zDarCcM
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?
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.
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 &quot;ground&quot; 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. <br><br>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.
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?
Dusty: They're not servos. Just standard toy brushed motors with gears. No pots or any other feedback.
oh okay got it - thanks for clarifying!
I have one but...the motors are two slow.
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 :)

About This Instructable




Bio: Founder of DIY Drones and 3D Robotics. Editor in Chief of Wired Magazine, author of the books &quot;The Long Tail&quot;, &quot;Free&quot;, and the forthcoming &quot;Makers ... More »
More by zlite:Control an OWI Robotic Arm with Arduino 
Add instructable to: