BrickEngineer: LEGO Design

LEGO Engineering for LEGO NXT and Robot Enthusiasts

LEGO NXT Motor Wiring


After posting Hacking the LEGO Mindstorms NXT Standard Motor, I received several requests for more information regarding the wiring of the motor.

The NXT cable has six wires. Below I list a table with the wires and their colors:

Color Name
White Motor 1
Black Motor 2
Red GND
Green 4.3 Volts
Yellow Tach01
Blue Tach02

The WHITE and BLACK wires (Motor 1 and Motor 2) deliver power to the motor.
If standard batteries are used, the potential difference will be 9 volts, otherwise the NiMH rechargeable batteries provide 7.2 volts. If the white wire is positive and black is negative, the motor will turn one way. If you reverse the polarity, the motor will turn the other way.

The RED wire is connected to the ground (GND). Note that in the sensors, RED and BLACK are connected to one another. This is not the case in the motors.

The GREEN wire is connected to the +4.3 NXT power supply.

The YELLOW and BLUE wires are connected to the quadrature encoder, also called an incremental rotary encoder.

Basic Rotary Encoder

Square waves from quadrature encoder

As shown in the figure from Wikipedia above, (http://en.wikipedia.org/wiki/Quadrature_encoder) the wires return square wave pulses that are 90 degrees out of phase. If the rising pulse on TACH00 leads the rising pulse of TACH01 by 90 degrees, then the motor is going forward. If it instead lags by 90 degrees, the motor is rotating backwards. One complete square wave cycle corresponds to 2 degrees of rotation. In the diagram above, if TACH00 refers to A and TACH01 refers to B, we can see that the motor is going backwards as TACH00 is lagging TACH 01.

By measuring the frequency of the square wave oscillation, one can compute the rotational velocity. Since one cycle corresponds to 2 degrees of rotation, one cycle per second (1 Hz) corresponds to 2 degrees/sec. If you record a frequency of X Hz, then the rotation rate is 2X cycles/sec.

Note also that by tracking both square waves, you can identify quarter cycles, which gives you a resolution of 1/4 of 2 degrees, which is 0.5 degrees.

The motor speed is controlled by pulse-width modulation (pwm), which works by driving the motor with a variable duty cycle square wave. This effectively turns the motor on and off, fast. The longer it is on, the more torque it will generate and the faster it will go.

These details and more can be found in the excellent book: Extreme: NXT with a sneak peak here.

Additional details can be found in the excellent book Extreme NXT: Extending the LEGO MINDSTORMS NXT to the Next Level (Technology in Action) by Michael Gasperi, Philippe E. Hurbain, and Isabelle L. Hurbain.

Philo uploaded a comment, and reminded me that “Note that there are some internal photos of the NXT motor here: http://philohome.com/nxtmotor/nxtmotor.htm and schematics here: http://www.brickshelf.com/cgi-bin/gallery.cgi?i=1846577

Happy Hacking!

Basic Electronics Supplies for Beginners

I am getting interested in more general robotics projects, but will still be relying on LEGOs for their construction.  The LEGO brick is a bit too limited with its specialized programming languages and limited sensor and motor ports.

So for those interested in some LEGO electronics hacking, here is a list of supplies that will get you up and running fast for about $275… just a but more than the cost of a single Mindstorms kit.  Plus you’ll now get to learn electronics!

First, check out the book:
Making Things Talk: Practical Methods for Connecting Physical Objects

This book explains how to wire, program and interconnect various microcontrollers, some of which are very closely related to those used by the NXT Brick.

Supply List

Item Number Description Quantity Unit Price Total
Amazon.com
  Making Things Talk 1  $19.79 $19.79
Jameco.com
19166 Desoldering Pump 1 $4.95 $4.95
159291 Wire Stripper 1 $10.15 $10.15
161411 Diagonal Cutter 1 $7.49 $7.49
35474 Needlenose Pliers 1 $5.49 $5.49
127271 Mini Screwdriver 1 $1.89 $1.89
681002 Helping Hands 1 $8.75 $8.75
159611 Power Connector 2 $1.79 $3.58
10444 Alligator Test Clip Leads 2 $4.39 $8.78
103377 Header Pins 10 $0.16 $1.60
119011 Push Button (PCB Type) 10 $0.27 $2.70
29082 Potentiometer 2 $1.05 $2.10
242115 LM1117T-3.3 Voltage Regulator 3 $1.39 $4.17
51262 7805T 5v Voltage regulator 3 $0.32 $0.96
38236 2N2222A Transistor NPN 5 $0.41 $2.05
32993 TIP120 Power Transistor 5 $0.45 $2.25
643488 3.3V Zener Diode 5 $0.03 $0.16
35991 1N4004 Diode 5 $0.04 $0.20
152792 LED Yellow 10 $0.17 $1.70
152805 LED Red 10 $0.21 $2.10
153139 LED Orange 10 $0.35 $3.50
156962 LED Green (567 nm) 10 $0.20 $2.00
334529 LED Bargraph Red 1 $1.31 $1.31
334537 LED Bargraph Yellow 1 $1.23 $1.23
334511 LED Bargraph Green 1 $1.28 $1.28
17187 7-segment LED Display 3 $0.88 $2.64
38818 4-switch DIP 4 $0.48 $1.92
38842 8-switch DIP 2 $0.89 $1.78
103166 Resistor Refill 1 $12.95 $12.95
15270 0.1 uF 10 $0.15 $1.53
94161 1 uF 10 $0.12 $1.20
29891 10 uF 10 $0.06 $0.60
158394 100 uF 10 $0.11 $1.08
MPJA
4443 TE Solderless Breadboard 1 $4.95 $4.95
4447 TE Large Solderless Breadboard 1 $22.95 $22.95
7027 TE Jumpers 2 $3.95 $7.90
14213 TE Digital Multimeter 1 $14.95 $14.95
15860 TL Mini Soldering Station 1 $14.95 $14.95
Sparkfun
Wiring Platform DEV-00744 1 $84.95 $84.95
Radio Shack
64-025 Lead Free Solder 1 $3.89 $3.89

Note that the light gray items are optional, and not necessary.

Also, this list does not include some sort of power supply. Pulling one out of an old computer is an easy option. Or rechargeable batteries work well too (in which case you will need battery holders).

Last, there are special items in the book Making Things Talk that you may decide to purchase separately, such as flex sensors, or bluetooth boards, etc.

You can store your electronics in much the same way you store your small LEGO parts. Check out the article on Storage.

Enjoy Hacking!

Smooth LEGO Clutch with Differential

In a previous post, I describe the design of a smooth LEGO clutch.

Here I introduce a version where I have added a differential to the top of the clutch. By rotating the main differential gear in one direction, the clutch will engage and rotate one axle. By rotating it the other direction, the clutch will engage and rotate the opposite axle.

LEGO clutch with differential

It would be straightforward to attach a motor to this system.

Here are the building instructions.

Enjoy,
Kevin

Hacking the LEGO Mindstorms NXT Standard Motor

We are working on interfacing the LEGO sensors and motors to a compact lightweight computer for more sophisticated control. Aret Carlsen brings us a video demonstrating how one can hack into the NXT Standard Motor:

See also quadrature encoder or rotary encoder at wikipedia and the LEGO NXT Hardware Developers Kit (LEGO NXT data sheets). Philo also has the pinout diagram on his page on deriving power from the Motor A port.

Additional details can be found in the excellent book Extreme NXT: Extending the LEGO MINDSTORMS NXT to the Next Level (Technology in Action) by Michael Gasperi, Philippe E. Hurbain, and Isabelle L. Hurbain.

Hacking the LEGO Mindstorms NXT Light Sensor

We are working on interfacing the LEGO sensors and motors to a compact lightweight computer for more sophisticated control.  Aret Carlsen brings us a video demonstrating how one can hack into the NXT Light Sensor:

Additional details can be found in the excellent book Extreme NXT: Extending the LEGO MINDSTORMS NXT to the Next Level (Technology in Action) by Michael Gasperi, Philippe E. Hurbain, and Isabelle L. Hurbain.

Center of Mass of LEGO NXT Motors

I am working on designing a walking machine, but I needed to know the Center of Mass of the LEGO NXT Motors.  When using Newton’s Laws to compute the forces on the system, we can treat the motor as if all of its mass is located at a single point.  The Center of Mass is the location of this point.

Hanging an NXT motor to find its center of mass.

There are several ways to find the Center of Mass of the motor.  The most straightforward way is to hang the motor from an axle placed in one of the holes.  The motor will orient itself so that the Center of Mass lies directly below the axle.  By hanging a mass on a string from the axle, the Center of Mass must lie somewhere along the line defined by the string. 

The Center of Mass Lies along the line defined by the vertical string

After performing this experiment, I placed a small piece of Scotch tape over the string so that I can keep track of where that line is.  I then cut the string off of the axle.

A piece of Scotch tape holds the string in place

Now to find the precise point, we simply perform the experiment again, but place the axle through a different hole.  This gives us a second line.  Since the Center of Mass must be on both the first line and the second line, it is located at the intersection of these two lines.

The intersection of the two strings indicates the position of the Center of Mass

The Center of Mass is very close to being aligned with the holes on the motor.  Below is an MLCAD image of the NXT motor (from Philo).  I have overlayed a Cartesian coordinate system that corresponds to that used to define the 3-D image file.  The origin of this system is at the center of the axle hole on the motors drive axis.  This is perfect for me since I will be rotating the motor and trying to compute the position of the Center of Mass after the motor has rotated through some arbitrary angle.

The dimesions of the LEGO NXT Motor

This image not only helps with identifying the Center of Mass of the NXT motor, but also in understanding the dimensions of the NXT motor overall.

Kevin Knuth
Albany NY

10+1 LEGO Design and Engineering Tips

1. Use only parts that are necessary…no less and no more.
In the course of trying to fortify a LEGO construction, it is extremely easy to get carried away and add too many parts. If you are like me, you have a limited supply of parts.  Using too many parts rapidly depletes your supply and can add significant weight to your creation.  If you are building a robot, this extra weight can really slow it down.

2. Build strong connections
We all know that when stacking bricks to make a wall, you need to stagger the bricks so that the next layer of bricks holds the bricks in the lower layer together by covering up the cracks.  This is one way to build strong connections.  You can do even better by bracing the wall with a beam by pinning it to technic bricks embedded in the wall.  By adding a few carefully chosen pieces, it is possible to significantly strengthen a structure.  Just be careful not to go crazy and violate Tip #1.

3. Be aware of design constraints
Every time you add a LEGO part to your creation, you limit the possibilities of what you can make.  When you have nothing you can make anything.  When you grab a brick, you can now only make things that have that brick in it.  Each part constrains the creation. Be aware of parts or constructs or mechanisms that place too strong of a constraint on your design.  You dont have to get rid of them, but just be aware of the role they play in constraining what you do next.

4. Dont become TOO attached to your creation.
Sometimes we find that we really really like a certain aspect of the construction or a set of parts, but nothing else works. The tendency is to get rid of everything else and then build up around those parts we really like. However, these parts are placing strong constraints on the design… often too strong, which is why nothing else works. The solution is to get rid of the problem. In this case, you have to get rid of the set of parts you like because it is over-constraining the rest of the design. You dont have to destroy it (see Tip #9)… just set it aside, but be sure to remove it from your creation.

5. Be open to new ideas.
There is always more than one way to solve a problem. Be open to new, and seemingly crazy ideas. Sometimes these lead to ingenious solutions. If you suspect that you are having problems similar to those described in Tip #4, take some time out to brainstorm and see if you can come up with a new idea!

6. Build in stages.
Designing a complex structure or mechanism in one step is almost impossible. Break the construction up into stages, and consider each stage separately. Sometimes a given stage will still be too complex. If so, break that construction up into stages as well. Just be aware of the dangers in Tip #4 above. Your solution for one stage might be awesome, but if it doesn’t work well with your solution as a whole… it has to go. Again, if you have enough parts, keep your creations. Otherwise, at the very least preserve their memory by building them in a LEGO Computer Aided Design (CAD) system.

7. Watch for opportunities.
Sometimes we get lucky and we find that a part or a set of parts can serve two or more functions. This is an excellent situation as it saves you both parts, size and weight. Watching out for these opportunities, and taking advantage of them when you can, can really help make an elegant and efficient design. Just be careful not to become too attached to the idea, as you could end up in trouble as described in Tip #4.

8. Study your design.
When you are all finished, take some time to study and test your design. Consider both form and function. When considering form, you are concerned mainly with aesthetics (beauty). What do you like about the design? What dont you like? Is it too big? Is it bulky? Can it be made smaller, sleeker, more elegant? When considering function, you are concerned mainly with its operation and effficiency. Does it do what it is supposed to? Do the parts go together well? Does it vibrate? Do the gears mesh properly? Does it get stuck? Is there too much friction in the system? Could it be smoother? Is it safeguarded against parts breaking in high torque situations? Then consider the big picture. What did you do right? What did you do wrong? If you could do it over again, what would you change?

9. Keep your designs
I have mentioned this tip several times above. If you have enough parts, and enough room, keep your creations. Otherwise, at the very least preserve their memory by building them in a LEGO Computer Aided Design (CAD) system and generate building instructions. That way you can keep a good idea. Who knows if it will come in handy later?

10. Do it over again!
When building mechanisms that require careful consideration of either form or function, you should plan to make several prototypes (a prototype is a first design). Don’t destroy what you just constructed. You may need to refer to it by copying a part of the design that worked well. You may also need to see if you have improved the form or function by comparing it to your first attempt. I personally plan to make at least three prototypes until settling down with a final design.

11. Color coordinate your creation
I dont apply this rule to my first prototypes, but as I settle in on a final design, I work to choose the brick colors carefully. Of course, we do not always have enough parts to do this, but it is worth the extra effort. Colors scattered all over a design leads the eye to seeing it as haphazard rather than elegant. A careful choice of colors can really enhance the form of your creation. You can also use colors to enhance the function by color-coding functional segments of your design. This is maybe better for illustrative purposes (as in a LEGO CAD design), but usually I choose the latter and aim for an elegant coloration.

Kevin Knuth
Albany NY

Content Protected Using Blog Protector By: PcDrome.