Philo’s website has several tabs corresponding to different topic areas: LEGO® MINDSTORMS™ & LEGO Technic: a variety of interesting projects NXT: details about LEGO NXT components and NXT-specific projects Sensors: detailed information about sensor workings and electronics LEGO Tech Info: LEGO technical information LDraw: tools for LDraw part authors LEGO & Photo: accessories for photographers
My favorite pages are: LEGO® 9V Technic Motors compared characteristics studies the various characteristics of a wide variety of LEGO motors.
http://www.philohome.com/traction/traction.htm studies the capabilities of a wide variety of LEGO wheels.
I have been researching the possibilities for omni-directional or holonomic wheels for LEGO robots. An omni-directional or holonomic wheel is one that can roll not just backwards and forwards, but sideways as well.
New Rotocaster Omni-Directional Wheel
While these are often used on robots with three wheels where all three rotate at different rates allowing the robot to go in any direction,
Three-Wheeled Omni-Wheel Prototype by Xander Soldaat at Bot Bench (click on image to see more)
I am interested in using these on a rover that can employ differential steering smoothly without skidding.
There are several different options that one can consider. LEGO purists may consider making their own omni-directional wheel designs out of only official LEGO parts. Another option is to purchase manufactured omni-directional wheels. These come in two classes: those that are designed to be LEGO compatible, and those that are not LEGO compatible. In the latter case, one would have to construct some kind of coupling mechanism to enable the wheel to connect to LEGO parts.
Here are some of the options that I have found.
Omni-Directional Wheels Constructed from LEGO Parts
In a previous post, Storing Your LEGO Collection, I discussed various options for storing one’s LEGO collection. Several of these options included tackle boxes since they can hold several utility boxes with adjustable partitions, while providing top bulk storage. I have found them to be quite useful in providing portable storage for small to medium LEGO collections.
Plano has come out with a new line of colorful tackle box designs geared for arts and crafts storage. These are the Creative Options
line of Storage Boxes and Organizers. The color scheme is a avocado green base with a purple lid and gold handles. These storage units are excellent for storing small LEGO collections while providing portability.
This includes three 2-3650 and two 3449 utility boxes and a compartmentalized top access storage on lid and large bulk storage area. Its dimensions are 17-3/4-Inch (Length) x 9-3/4-Inch (Width) by 11-Inch (Height).
Geekologie posted an article about a man who made a wearable Boba Fett costume out of LEGOs. Mind you, its not a full costume. The helmet is most impressive, the rest are pieces of LEGO body armor that attach to his outfit.
LEGO Boba Fett Costume
LEGO Boba Fett Helmet
Actually, I am a bit more impressed by the LEGO Darth Vader costume!
Who IS that masked man???
LEGO Darth Vader Costume
If only, it had lights that were controlled by the LEGO Mindstorms Brick, and a Breathing apparatus controlled by the LEGO pneumatic system!
NOTE: WE ARE NOT RESPONSIBLE FOR ANY DAMAGE YOU MAY DO TO YOUR NXT BRICK.
THIS EXERCISE PRESUMES SOME WORKING KNOWLEDGE OF ELECTRONICS.
In this exercise, I will walk you through interfacing a potentiometer (variable resistor) to the NXT brick.
You will need:
– A stripped NXT cable
– A potentiometer with a maximum resistance no more than
– A small piece of wire
– An NXT Brick
This exercise is derived and expanded from a chapter in Extreme NXT by Gasperi, Hurbain and Hurbain.
The NXT monitors the potential difference between the black and white wires with an Analog-to-Digital (A/D) converter. The A/D converter converts this potential difference to a RAW value between 0 and 1023 (10 bits accuracy). This RAW value is given by the ratio
where is the maximum RAW value of 1023, is the voltage used by the NXT A/D Converter, and is the voltage drop between the black and white wires.
The circuit diagram looks like this:
I have a little potentiometer that can turn over a range of about to . Below is a diagram. The resistance between the leftmost and rightmost pins is the maximum resistance of . We will focus on the resistance between the leftmost and center pins, which varies based on the angle through which the potentiometer has been rotated. To keep things safe, we wire the center pin and rightmost pin together. This doesn’t affect the potential difference between the leftmost and center pins.
I will assume that it is a linear potentiometer (a pretty good assumption), which means that the resistance at any given angle is given by
where is the maximum angle of the potentiometer and is the maximum resistance.
Equation (2) says that if the angle then the resistance of the potentiometer , and if the angle then the resistance of the potentiometer is maximum .
Looking at the circuit diagram for the A/D converter, the potential drop across our potentiometer (represented by resistor ) is given by the typical voltage divider relation
We can now substitute (2) into (3) so that the voltage between the black and white wires is determined by the angle of the potentiometer rather than its resistance. Then we can substitute the result into (1) to get an equation for the RAW value
with my particular values, this is
This formula will let us predict the NXT RAW value based on the angle of the potentiometer.
For my potentiometer, I find that a maximum angle of gives me a maximum value of 93. This is less than 7 bits of information, and each RAW value corresponds to . If you want a nice angle detector, you will probably need a potentiometer!
1. Before beginning, you need to cut and strip one of the NXT cables so that you can interface with the wires directly. I have placed a layer of solder on mine, so they can be inserted into a breadboard for easy connecting.
2. Next connect the center and right pins of the potentiometer together with a wire
3. Plug the other end of the NXT cable into the NXT brick.
I wrote a simple NXT-G program to read the sensor and display the RAW value. Notice that the Touch Sensor actually reads the resistance between the wires. So we are just replacing the Touch Sensor with a potentiometer. We will use the raw number output of the Touch Sensor Block, which is represented by the 1010 0101 symbol. We then need to convert it to text so it can be displayed on the NXT LCD panel.
When I try my potentiometer, I find that the RAW value goes from 0 to 95, pretty close to my predicted range of 0 to 93. So it works! Not bad considering I guessed that the potentiometer sweeps through and angle of .
Determining the Angle of the Potentiometer
Now, let’s convert this RAW value to an angle.
In Extreme NXT, the authors worry about the fact that the resulting relationship is nonlinear with respect to the RAW value. As far as I can see, this isn’t a problem. We simply solve (4) above for the angle in terms of RAW. We can output the angle if we wish, but here I’ll take it a step further and demonstrate the resulting equation by controlling a motor so that it maintains an angle equal to the angle through which I have rotated the potentiometer.
I will leave out the algebra. Try it yourself. Solve (4) for angle A:
for my potentiometer, this is simply
which is easy to code in NXT-G.
You can download my code here: Potentio-03.rbt
The motor control is a bit crude, but it works well enough for the demonstration.
Check out the YouTube video to see it in action!
Daniele Benedettelli introduces a MATLAB-based NXC Bluetooth Router. This router relies on connecting a master NXT Brick to a computer via USB. This master NXT Brick then can communicate messages to up to three additional slave NXT Bricks up to a distance of 10 meters from the master. This software would allow one to create small swarms of up to three LEGO robots, which is a nice starting point for investigating distributed robotic systems.
An article at NXTasy.org highlights a three-wheeled robot that moves in one dimension and detects signals from an external beacon that emits ultrasonic bursts. The robot relies on a microcontroller that runs a Kalman filter to perform and maintain spatial localization. The NXT software is implemented using the LabVIEW NXT toolkit