Fast Resistor Sorting with LEGO
Still got that container on the bench with a pile of unsorted resistors left over from projects, or perhaps have purchased a mixed-lot of assorted resistors to begin with. Resistors have colour bands printed on them, rather than numeric values, which makes them more difficult to sort in you don't know the resistor colour-code of pat (if they still teach it?). Or like me your eyes ain't what they used to be! Either that a 1/4 watt resistor has shrank by a factor of 4+ in the last 30 years or so….
There are a number of common approaches to organising resistors:
- Memorise the colour bands and determine the resistance in your head
- Or, use a tool with printed colour wheels to calculate the resistance
- Or, browse to an online resistance calculator and click on the colours
- Or, connect the resistor to a multimeter to measure the exact value, and then mentally round to the nearest standard resistance
All of these methods are satisfactory, but time-consuming. So, David Cook created a device built from Lego bricks and Minifigs, that measures the resistance, displays the standard value, and speaks the resistance using text-to-speech (TTS).
A resistor is placed in the hands of the minifigure for measuring. Wires have been threaded through the arms to make electrical contact with the resistor. The meter also has a slot for placing AA or AAA batteries, to measure their voltage. A metal wrench from a doll-house connects to the top of the battery. A USB cable comes out the side of the case to connect to a personal computer.
A microcontroller inside the meter communicates the measured values to a .NET application running on the PC. In fact, the .NET application is actually in charge. The application issues a series of commands (turn on a specific known resistor, set the gain, read the analogue value) to the microcontroller, and then switches known resistors to narrow down the actual value of the resistor being measured.
This process repeats over and over, until approximately the same value has been calculated twice in a row. At that point, the application displays and speaks the results.
If the user removes the resistor or battery from the device, the application sees a change to an extreme value (very high resistance or very low battery voltage), and stops updating the screen so that the user can observe that value at their convenience.
The heart of the meter is an Atmel ATmega168. (I could squeeze it into an ATmega88 if necessary.) Rather than performing calculations, this microcontroller executes simple commands from the .NET application, because it is easier to program and debug .NET than embedded C.
The minifigure meter turned out better than expected. For purposes of sorting resistors, it is fast and correct from 10 Ω to 10,000,000 Ω. If it were to display actual values, the accuracy would be similar to mid-range multi-meters, although the measured value bounces around more due to a lack of a low-pass filter.
The minifigures are delightful, and do not suffer physically or aesthetically from the machining. All of the Lego parts can be detached and rearranged; no adhesive was needed.
You could also use Mindsensors Power Meter for NXT which can measure the power consumption of your robot (or any other device) while in operation. It also Measures Current Drawn, Voltage, Power Consumption, and Energy Utilisation. It can also Measure and log on time scale.
Knowing that Ohm's law states that the current through a conductor between two points is directly proportional to the potential difference across the two points, and inversely proportional to the resistance between them. You can easily build your own Resister Sorter using the Mindsensors Power Meter for NXT without the need for a soldering iron and Microcontroller Programmer.