What Is the Arduino?
Massimo Banzi and David Cuartielles designed the Arduino platform in 2005, creating a low-cost prototyping system to use in education. The hardware design and software source code is available as open source, allowing anyone to build or customize their own Arduino project, which is one of the main contributing factors toward its popularity. Arduinos are self-contained after they've been programmed, with all the necessary circuitry needed to operate on the Arduino board, and require nothing more than a power supply to function.
Programming the Arduino
The Arduino software is based on the Wiring project, which itself is based on the Processing software. You can use the Arduino IDE for the complete development cycle, from writing the code to programming the microcontroller. Older Arduino versions, such as the Arduino Duemilanove, use a FTDI USB-to-serial converter chip, allowing a connection to the computer through USB. Newer versions such as the Arduino Uno use an Atmega 8U2, programmed to act as a USB-to-serial converter. The Atmega microcontrollers at the core of the Arduino arrive programmed with a bootloader, allowing you to reprogram the microcontrollers through USB without the need for a chip programmer.
Connecting the Arduino
Because the main Arduino platforms, such as the Arduino Uno or Mega boards, connect to the host computer through USB, a standard A to B type USB cable is required. This is the same type used to connect printers or other peripherals to the computer. Arduino boards with a smaller form factor, such as the Arduino Nano use a mini USB connector, the same as the type used on mobile phones and other handheld devices. Some boards such as the Arduino mini have no on-board serial to USB conversion, so require a serial-to-USB FTDI cable for programming.
Arduino USB
If you connect the Arduino board to your computer using a USB cable, the 5-volt supply from the USB connection powers the board. If you are using the Arduino on its own, you must provide an external power supply of between 7 and 12 volts DC from a wall wart (a power-supply brick with male plug that plugs directly into a wall outlet) or similar. The Arduino board also uses the USB connection for serial communications between the computer and the microcontroller. The Arduino Serial library allows you to send or receive data through the connection, which is useful for debugging purposes allowing you to display the contents of variables and similar, so you can see if the code is behaving as you intended. You can also use the serial connection to receive input from the user or from software running on the host computer.