How do I know if a board fits my requirements?
Things to consider when picking an Arduino board:
- Do I want native keyboard/mouse support? If yes: you'll need the Leonardo (or it's breadboard mountable equivalent) or the TRE (not released, dual MCU board).
- Do I want a small form factor and/or have it breadboard mountable? If yes, choose a board like the Mini/Micro/Nano/etc.
- If you want to make it even smaller, either get a board without USB built in or try using an ATTiny
- Am I computing large numbers with it? If yes: use the Due, Galileo, or TRE (not released yet)
- Do I want video/audio? If yes: TRE is the only way to go as of now (but it's not released yet).
- Do I need a USB host (and not want to have an external shield)? If yes, use the Mega ADK (limited support), Yun, TRE (again, not released yet), or Galileo.
- Do I need WiFi/ethernet built in? If yes; use the Yun, TRE (still, not released yet), Ethernet board, or Galileo.
How many pins do I need (and how many of each type)?
- Digital: simple ON or OFF. Use these for buttons, simple lights, some communication, etc.
- Stay away from the Due if you don't want to mess with 3.3V logic. Most other boards are 5V. You can work around this with either voltage dividers (doesn't always work) or level shifters. As far as I know, you can't really do much if a sensor provides max 5V; level shifters AFAIK only work with digital signals.
- UART Pins: these are the pins that you can use the serial library on. (Note: this doesn't include the software-serial library). One of these on most boards is connected to a USB chip.
- SPI Pins: These are pins which are used by a form of communication (like on the Ethernet shield).
- Inturupt Pins: These can trigger an event when the signal getting sent to the board changes. There are a couple of different settings, but this can be used for near-instant response time when low latency is critical.
- PWM Pins: pins that go on and off to simulate a lower voltage. It does this by turning it on and off very rapidly. This is used often for dimming LEDs and controling the speed of a motor.
- Analog pins: pins that can read a voltage and convert it into a number.
- The Arduino Due has a much higher precision rate, as it has more possible values and it has less voltage, thus much more accuracy.
All of these types of pins can act as a digital pin. All of these, except the analog pins, are under the "digital pin" section of your Arduino board. I didn't go into the technical aspects of the pins; I explained then in the simplest way I could.
- Digital: simple ON or OFF. Use these for buttons, simple lights, some communication, etc.
I left a lot of boards out of this list, but this should give you some things to think about when choosing a board. There's a lot of weird quirks with this list, so it's incomplete, especially with the types of pins. You'll just have to do research and figure out what you need and if a board can meet your needs. Just make sure to not plan two things on the same pin, especially when mixing different shields and sensors! Shields do take up pins.
Shields: they are pretty much compatible with every board except for if the board is 3.3V (newer shields can adapt automatically) OR if it's a breadboard mounted board, like the Nano. There are ways to work around this problem, but it's very difficult.
To start with arduino you need to have some factors in consideration, for example the board you will chose, arduino UNO being the starting board for most beginners, if you are already an experienced programmer in C++ you might want to try more powerful boards. You have a pretty good overview of all of them in this link : http://arduino.cc/en/Main/Products Also there are hundreds of shields out there, you will find some in the link above. Adafruit also has some interesting ones, https://www.adafruit.com/search?q=arduino, you can even find them on ebay, and you can always buy individual sensors, LEDs, buttons etc, and plug them in directly or in a breadboard. Sparkfun has a big variety of very interesting sensors. There is also a lot of open source shields out there, you can check a very simple one i designed myself : http://electropepper.org/projects/prototyping/item/proto-i-os-arduino-v1-0
The usual suggestion I give to people new to Arduino is to get a Starter Kit (either from the store or from a local reseller): it contains an UNO, plenty of sensors and actuators and a projects book.