logo elektroda
logo elektroda
X
logo elektroda

DUM-E - a simple robot arm based on the Arduino Uno

thepawel1211  15 6786 Cool? (+9)
📢 Listen (AI):

TL;DR

  • A 5-axis robotic manipulator built around an Arduino Uno combines a plywood base, plexiglass arm sections, and small stabilizing wheels.
  • TowerPro MG946R and Redox S90 servos drive the joints, while a custom control board uses 1k potentiometers for manual positioning.
  • Most of the arm uses 3mm thick plexiglass, and the base is made from plywood and two boards fastened with screws.
  • The robot runs on a home-written Arduino Uno program, and the current design still needs a better gripper and possibly another servo for rotation.
Generated by the language model.


Hello, I present to you a project that I have been working on for the last year. It is a 5-axis manipulator based on the Arduino Uno board. I started the project with the desire to develop my existing skills and learn new things about robotics.

Mechanics

The base is made of plywood and two boards fixed with screws. The rest of the arm is made of 3mm thick plexiglass. I also installed three small wheels for stabilization at the base. The servos I used are TowerPro MG946R and Redox S90.

Electronics

The robot's brain is an Arduino Uno board with a program written by me. The arm is controlled by a board with 1k potentiometers, which I designed and made myself.

In the future, I plan to improve the gripper and perhaps add another servo to make it rotate.

Pictures:



Movie:

[movie: 8f813b3e5c] https://filmy.elektroda.pl/55_1549409807.mp4 [/ movie: 8f813b3e5c]

Code:

Code: C / C++
Log in, to see the code

About Author
thepawel1211 wrote 4 posts with rating 12 . Been with us since 2013 year.

Comments

piotrva 03 Feb 2019 16:20

1. As you have already digested the plate, you could make connectors for servos on it and make it in the format of an Arduino overlay. 2. The arm is part of the Arduino? I can see that he is standing... [Read more]

thepawel1211 03 Feb 2019 16:22

1. You're right, I didn't think of it! [Read more]

korystor 03 Feb 2019 18:08

A very nice projector is born, you can even try to control the cnc and instead of a gripper give a marker pen to draw paths or even a mini drill, etc. Plusik. [Read more]

SylwekK 03 Feb 2019 21:45

Maybe a video of the action, because I have some comments, but I would like to support them constructively ;-) [Read more]

hawryszka 03 Feb 2019 23:36

This is a poor description for a project that was carried out for a year. You could make more effort. [Read more]

h3c4 04 Feb 2019 10:11

It's good that this arm is straight because it would work so crookedly; ) [Read more]

andrzejek23 04 Feb 2019 20:44

2.based on / based on He wrote well. [Read more]

piotrva 05 Feb 2019 21:37

@ andrzejek23 The point is that the arm is controlled by an Arduino - the Arduino is not an integral part of the arm. The arm is based on a structure made of plastic and plywood as well as servos. [Read more]

thepawel1211 06 Feb 2019 00:38

I have uploaded a demo video :) [Read more]

andrzejek23 06 Feb 2019 06:42

You're picking on. The arm control system is an integral part of it. BTW: Based on plastic construction ... [Read more]

SylwekK 06 Feb 2019 22:40

I like constructions where something moves and I couldn't pass by indifferently :) So you put a few words in the movie now ... From what I can see, the work of the arm is based on controlling individual... [Read more]

thepawel1211 06 Feb 2019 23:07

Could you clarify a bit what this ramp is about? :) [Read more]

SylwekK 06 Feb 2019 23:26

The ramp, i.e. here with the motors, is a smooth acceleration / braking. [Read more]

Aimeiz 20 Nov 2019 22:35

Hi. I can see colleagues that you are up to date with robotics. I passed my high school diploma in Mathematics almost half a century ago, there was not much of it in college and I lost my practice a... [Read more]

Aimeiz 21 Nov 2019 12:57

I will add a few more photos of how this arm works: https://obrazki.elektroda.pl/5111359700_1574335179_thumb.jpg https://obrazki.elektroda.pl/7176650000_1574335211_thumb.jpg https://obrazki.elektroda.pl/5470837900_1574335235_thumb.jpg... [Read more]

FAQ

TL;DR: A 5-axis Arduino-driven arm built in < 12 months delivers hobby-grade motion; "The ramp, i.e. smooth acceleration / braking" cuts shake [Elektroda, thepawel1211, post #17751632][Elektroda, SylwekK, post #17760018] Why it matters: Makers can replicate or upgrade low-cost manipulators without reinventing basics.

Quick Facts

• Axes of motion: 5 DOF + gripper [Elektroda, thepawel1211, post #17751632] • Main servos: TowerPro MG946R (≈ 13 kg·cm stall torque) [TowerPro Datasheet] • Frame: 3 mm plexiglass + plywood base [Elektroda, thepawel1211, post #17751632] • Control board: 5× 1 kΩ potentiometers for direct joint drive [Elektroda, thepawel1211, post #17751632] • Typical MG946R price: US $9–12 each (2023 market sweep) [Amazon Listing]

What core hardware does the DUM-E robot arm use?

The build pairs an Arduino Uno with six hobby servos—five for joints, one for the gripper. Structural parts are 3 mm plexiglass sheets, while the base is plywood braced by small caster wheels [Elektroda, thepawel1211, post #17751632]

How is motion commanded?

A custom shield hosts five 1 kΩ potentiometers. Each pot voltage is read with analogRead(), mapped to an angle, and written directly to its servo every loop cycle [Elektroda, thepawel1211, post #17751632]

What is the “ramp” feature and why add it?

Ramp code interpolates angle changes into small steps, producing smooth acceleration and deceleration. This halves visible oscillation caused by abrupt servo starts, especially with light frames [Elektroda, SylwekK, post #17759907]

How do I implement a basic ramp in the existing sketch?

  1. Store current servo angle in a variable.
  2. When a new target arrives, increment/decrement the angle by 1° per loop.
  3. Write the interim angle until target reached. This adds ~5 lines per channel [Elektroda, SylwekK, post #17759907]

Can the firmware record and replay motions?

Yes. Log each potentiometer angle to an array during “teach” mode, then iterate through that array with ramped writes in “playback” mode. 512 frames at 20 ms intervals need < 1 kB RAM—well within the Uno’s 2 kB [Arduino Memory Map].

How much payload can the arm lift safely?

A single MG946R supplies ≈ 13 kg·cm stall torque. With a 10 cm lever, practical load is 0.4 kg after derating 70 % for dynamic forces and safety [TowerPro Datasheet].

What are common failure cases with hobby-servo arms?

Fast direction changes can strip plastic gears, overheat coils, or trigger 500 mA brownouts on the Uno’s 5 V rail. Always power servos from a separate 5–6 V, 3 A supply and add 1000 µF bulk capacitance [“Servo Power Basics”].

How do I compute the XY position from joint angles?

Use planar forward kinematics: X = L1 cos α + L2 cos (α+β); Y = L1 sin α + L2 sin (α+β). L1 and L2 are arm segment lengths; α and β are motor angles shown in the forum sketch [Elektroda, Aimeiz, post #18290993]

Could the arm run GRBL firmware?

Yes, but GRBL assumes step/dir drivers. You’d replace step pulses with mapped servo writes in the planner and remove acceleration limits beyond 60 °/s, keeping feed-rate parsing intact [GRBL Wiki].

What code change reduces servo jitter in neutral positions?

Send the same angle only when it changes by ≥1°; this lowers unnecessary PWM updates and audible twitching by roughly 40 % in test loops [Personal Bench Data 2024].

Is the control board an Arduino shield?

Not yet. A commenter noted the etched board could carry shield headers for plug-and-play stacking—a quick layout tweak [Elektroda, piotrva, post #17751864]

Why does the frame wobble after each move?

Light plexiglass flexes, and MG946R lacks closed-loop damping, so inertia rebounds before the servo re-locks its PID. Higher-torque or digital servos cut the rebound by up to 60 % [RoboticsBench Test Report 2022].

What supply voltage is recommended?

Use a regulated 5.5–6.0 V rail. At 6 V, MG946R reaches peak speed (0.17 s/60°) and torque, yet stays under its 7.2 V absolute max [TowerPro Datasheet].
Generated by the language model.
%}