Introduction: How to Build a Simple Robotic Arm From Lego Mindstorms NXT?
Second Prize in the
Instructables and RoboGames Robot Contest
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
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!)
Step 1: Constructing the Base
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.
Step 2: Building the "rotation Module"
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:
Step 3: Building the "tilt Module"
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!
Step 4: The Claw Module
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...
Step 5: Attaching the Sensors and Wiring
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
Step 6: Attaching the NXT Brick
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.
Step 7: Decoration and Finishing Touches
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...
Step 8: 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.
Step 9: THE END
We have a be nice policy.
Please be positive and constructive.