I'd like to propose a thread dedicated to inexpensive, easy to use electronics components. The criteria would be that they are easily interfeacable.
This thread would probably be dedicated to both beginners and people looking for a specific tool.
The microprocessors you'll be using will be a full self-contained platform that includes the actual processor. These may also be referred to as microcontrollers.
Generally, they will be a circuit board with lots of "stuff" on them. At the edges you'll have pins. You'll be sticking leads and wires into these pins. The processor will control which pins get voltage, etcetera. Other important things to note are the power input (often done via USB, power jack, or sometimes through a VDC pin) and a connection to your computer (often a USB cable.) You'll generally program it to do whatever you want, then hook up your components and let the program run. Of course, all manufacturers of microcontrollers will include demos and guides.
Here are the popular ones that are well-suited for beginners: (Please search google to find the best prices. These change from time to time.)
Arduino Duemilanove (Italian for 2009)
Illuminato X Machina
These are basically microprocessors that you attach to each other. (http://www.liquidware.com/category/Illuminato+X+Machina) They share power and resources. Definitely not for beginners.
This is a relatively inexpensive magnetic encoder that spits out a shaft position. It has 10-bit analog resolution and 10 & 12-but digital resolution. Should be sufficient for all simple applications.
MA3 Miniature Absolute Magnetic Shaft Encoder (http://www.usdigital.com/products/ma3/)
A motor controller allows you to drive a motor using logic from your microprocessor. Why can't you just wire the inputs up yourself, you ask?
Well, there are two reasons. The first is that most microprocessors have a relatively low-current output. A 5V output at 40mA won't drive much.
The second, much more important reason is that a motor has a coil in it (duh?). Now, coils of wire are called inductors. Inductors resist change in current. This means that when you suddenly stop giving power to the motor, the collapse will cause a back-EMF which will often blow out any electronics attached that are not made to deal with this problem.
So a basic motor controller does two things. First, it protects your processor from getting burnt to hell. Second, it will often provide input for a second power source so that the motor gets powered from a separate battery. It will also usually be designed to handle much larger voltages and currents than a microprocessor (some expensive models handle 15A, 30A, even 60A per channel and as much as 30-60VDC or more.) More expensive non-basic controllers also provide different command styles (analog, RC, etcetera), overvoltage protection, and more.
Ladyada.net: 4 motors or 2 servos or 2 stepper motors (http://www.ladyada.net/make/mshield/)
Tiny Serial controller (http://www.pololu.com/catalog/product/410)
Freeduino-style motor shield (http://www.nkcelectronics.com/freeduino-arduino-motor-control-shield-kit.html)
These are, of course, only cheap models. You'll want to google for hundreds of models and choose based on your budget and their performance. For specialized devices you may have to make your own motor controller or use several at once.
Voltage step up/down and regulators
So one of the very important things you'll realize is that you'll often want to either increase or decrease your voltage, and you'll often want a regulated output.
This is especially important if you're in any sort of competition with rules like you can't use over xxx voltage.
Step-Up MC34063 Based Switching Regulator Adapter
Step-Down MC34063 Based Switching Regulator Adapter
Those two modules will work great for any small project. Incredibly easy to use and solder, or just stick into your breadboard. Cheap. You can usually get them from FCB electronics, or Sure electronics, often from ebay. (As of this writing, 10/19/09, FCB has an ebay store. I've bought a pair of step-ups a few months ago. Cheap and fast shipping and great tool.)
Mintyboost (http://ladyada.net/make/mintyboost/) is a GREAT tool, especially for beginners. Basically there's a bit of soldering (experienced people can do it in a few minutes; a novice should be able to do it in an hour). Then you put it together, throw it in an altoids tin. What you end up with is a charger for your USB-chargeable electronics. It boosts and regulates a pair of AAs (or whatever battery you want, really, that's between about 1-5V, though realistically you want to aim for closer to 2-4.5V) to 5V on a USB cable at a small current that tricks your electronics into thinking they're getting charged by computer.
At some point soon I won't be able to edit the original post any longer and will have to bother a mod to edit it for me. Who should I bother? (Who're the mods for this subforum?)
You might at some point want some external memory. The simple solution is to add EEPROM (Electrically Erasable Programmable Read-Only Memory).
Guide to add EEPROM (http://www.ghettohax.com/2009/02/i2c-eeprom-for-arduino.html) - Atmel's AT24C256B
32 kB from digikey (http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=AT24C256B-PU-ND) - 32 kB from sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=525)
$4.30 microprocessor boards and development kit from TI - HUGE RECOMMEND FOR BEGINNERS. (http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)?DCMP=launchpad&HQS=Other+PR+launchpadwiki-pr)
The unreachability problem that exists in the greedy routing algorithms has been studied for the wireless sensor networks.
Some of the current research work cannot fully resolve the void problem, while there exist other schemes that can guarantee the delivery of packets with the excessive consumption of control overheads.
A greedy antivoid routing (GAR) protocol is proposed to solve the void problem with increased routing efficiency by exploiting the boundary finding technique for the unit disk graph (UDG). The proposed rolling-ball UDG boundary traversal (RUT) is employed to completely guarantee the delivery of packets from the source to the destination node under the UDG network.
The boundary map (BM) and the indirect map searching (IMS) scheme are proposed as efficient algorithms for the realization of the RUT technique.
In order to maintain the network requirement of the proposed RUT scheme under the non-UDG networks, the partial UDG construction (PUC) mechanism is proposed to transform the non-UDG into UDG setting for a portion of nodes that facilitate boundary traversal. These three schemes are incorporated within the GAR protocol to further enhance the routing performance with reduced communication overhead.