How to Build a Simple Robotic Arm From Lego Mindstorms NXT?

by roksraka in Workshop > Science

218340 Views, 217 Favorites, 0 Comments

How to Build a Simple Robotic Arm From Lego Mindstorms NXT?

IMG_3738.JPG
IMG_3739.JPG
Today, I will tell you how I built my robotic arm from Lego Mindstorms NXT.

In fact, I wanted to build a robotic tripod for my camera. I found out, that it's more difficult then it looks. After some experimenting I build this simple robotic arm.

I you want to build it too, you need:
- Lego Mindstorms NXT kit
- a computer
- time...?

There are only two rules you have to follow while building ANY robot:
1. rule: KISS (Keep it simple, stupid!);
2. rule: "The triple-F" rule a.k.a. FFF (Form following function!)

Constructing the Base

IMG_3718.JPG
IMG_3719.JPG
IMG_3721.JPG
IMG_3722.JPG
IMG_3723.JPG
IMG_3724.JPG
IMG_3725.JPG
IMG_3726.JPG
IMG_3727.JPG
IMG_3728.JPG
IMG_3729.JPG
The base is probably the simplest part of the robot to build. It's just a platform from the robot to stand on. You have to make sure, that it's long and wide enough. The center of gravity must be somewhere on top of the base, if possible, in the middle. Else wise, the robot will fall.

The base (in our case) are just a few beams that support the robot. More advanced robotic arms have motors in the base. These motors than move the arm, without moving themselves. Usually, the base has a motor that rotates the arm, but my arm rotates itself.

You can be much more creative with the construction of the robot then I was.

Building the "rotation Module"

IMG_3707.JPG
IMG_3706.JPG
IMG_3701.JPG
IMG_3702.JPG
This is one of my rare robots that are built from modules. My robotic arm has three modules; one of them is the "rotation module".

It's very simple. It rotates the arm left and right and supports the other two modules. It's based on Matthias Paul Scholz's 90 degree join at:
http://mynxt.matthiaspaulscholz.eu/robots/motor90/index.html

Building the "tilt Module"

IMG_3709.JPG
IMG_3708.JPG
IMG_3712.JPG
IMG_3714.JPG
IMG_3715.JPG
The second module is the "tilt module". It's placed on the top of the "rotation module". Basically, we have a large gear (which doesn't turn) and a small gear which is driving around the big one. The gear ration is 1:10. That way, the arm can be more precise.

On top of this module there is a small platform, to which the claw is attached, but more about the claw later!

Attaching the two modules together couldn't be simpler. They are held together by a single shaft/axle, around which the "tilt module" spins. The arm can tilt for nearly 90 degrees, that's a lot!

The Claw Module

IMG_3716.JPG
This is the simplest of three modules. All it does is open and close the most basic kind of claws. This module is attached to the platform on the "tilt module".

I'm really sorry, but I'm afraid that I can't tell you much more about it. Pictures tell everything...

Attaching the Sensors and Wiring

IMG_3732.JPG
IMG_3741.JPG
IMG_3733.JPG
IMG_3734.JPG
IMG_3736.JPG
I used three sensors: light sensor, touch sensor and sound sensor.

The light sensor (Port 3) is located on the claw and lets the robot know, if the ball is there or not (and can recognize the "color" of the ball). The other two sensors are located on the platform of the "tilt module". Touch sensor (Port 1) serves as a sort of a button for me to press while the sound sensor (Port 2) measures the noise level (so I can give the robot commands with a clap for example).

At first, I wanted to include the US sensor as well, but I realized that it's relatively useless. You can still see it on one of the photos, but I removed it afterwards.

Now all that is left to do is the wiring. You must make sure that the wires do not disturb the movement and function in any way. You must also consider wire lengths for each sensor or motor.

Wiring (my robot):
- touch sensor -> Port 1
- sound sensor -> Port 2
- light sensor -> Port 3
- "rotation" motor -> Port A
- "tilt" motor -> Port B
- the claw -> Port C

Attaching the NXT Brick

IMG_3735.JPG
The NXT brick plays the vital role in Mindstorms NXT robotics, so you have to have it somewhere on the robot (or at least somewhere close). In my case only two brick hold together the NXT brick and the robot's base. It's very practical to have it on the base of the robot, 'cuz that makes the robot much more stable.

Decoration and Finishing Touches

IMG_3737.JPG
When you are pleased with how your robot works, you can put some effort into robot's looks. (Just remember the Triple-F rule!) I usually just put some of those odd orange bricks on the robot and that is usually that.
You can be much more creative...

Programming

There are 5 programming languages you can use: NXT-G (default language), NXC (not exactly C), Robolab, Robotc, pbLua and NXJ. I used NXT-G (however I a bit tired of NXT-G and that's why I am trying to run away from Mindstorms...).

You are very free with your programming, that's why I won't talk about the programming any more.

THE END

IMG_3738.JPG
IMG_3739.JPG
IMG_3736.JPG
IMG_3741.JPG
So, that's that! Here is a short video!


http://www.youtube.com/watch?v=VrfNUhzBoww