Arduino-An Introduction

Arduino
Arduino Due Board
Arduino Due Board


According to arduino.cc ( Arduino Official Website),

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Flash, Processing, MaxMSP).The boards can be built by hand or purchased preassembled; the software can be downloaded for free. The hardware reference designs (CAD files) are available under an open-source license, you are free to adapt them to your needs. Arduino received an Honorary Mention in the Digital Communities section of the 2006 Ars Electronica Prix.



Other Definition Includes:

Arduino is a single-board microcontroller designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open source hardware board designed around an 8-bit Atmel AVR microcontroller, though a new model has been designed around a 32-bit Atmel ARM. The software consists of a standard programming language compiler and a boot loader that executes on the microcontroller.
Arduino boards can be purchased pre-assembled or do-it-yourself kits. Hardware design information is available for those who would like to assemble an Arduino by hand. There are sixteen official Arduinos that have been commercially produced to date.

History

In 2005, in Ivrea, Italy, a project was initiated to make a device for controlling student-built interactive design projects that was less expensive than other prototyping systems available at the time. Founders Massimo Banzi and David Cuartielles named the project after Arduin of Ivrea, the main historical character of the town, and began producing boards in a small factory located in the same region as the computer company Olivetti.
The Arduino project is a fork of the open source Wiring platform and is programmed using a Wiring-based language (syntax and libraries), similar to C++ with some slight simplifications and modifications, and a Processing-based integrated development environment (IDE).
Arduino was built around the Wiring project of Hernando Barragan. Wiring was Hernando's thesis project at the Interaction Design Institute Ivrea. It was intended to be an electronic version of Processing that used our programming environment and was patterned after the Processing syntax. It was supervised by myself and Massimo Banzi, an Arduino founder. I don't think Arduino would exist without Wiring and I don't think Wiring would exist without Processing. And I know Processing would certainly not exist without Design By Numbers and John Maeda.
—Casey Reas, Interview by Daniel Shiffman
In September 2006, the Arduino Mini was announced.
In October 2008, the Arduino Duemilanove was announced. It was initially based on the Atmel ATmega168, then later shipping with the ATmega328.

In March 2009, the Arduino Mega was announced. It is based on the Atmel ATmega1280.

As of May 2011, more than 300,000 Arduino units were in use around the world. In July 2012, the Arduino Leonardo was announced. It is based on the Atmel ATmega32u4.

In October 2012, the Arduino Due was announced. It is based on the Atmel SAM3X8E, which has an ARM Cortex-M3 core.

In November 2012, the Arduino Micro was announced. It is based on the Atmel ATmega32u4.



Hardware

An official Arduino Uno with descriptions of the I/O locations
An official Arduino Uno with descriptions of the I/O locations
A 3rd-party Arduino board with a RS-232 serial interface (upper left) and an Atmel ATmega8 microcontroller chip
A 3rd-party Arduino board with a RS-232 serial interface (upper left) and an Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O pins are located at the top and the six analog input pins at the lower right.
An Arduino board consists of an Atmel 8-bit AVR microcontroller with complementary components to facilitate programming and incorporation into other circuits. An important aspect of the Arduino is the standard way that connectors are exposed, allowing the CPU board to be connected to a variety of interchangeable add-on modules known as shields. Some shields communicate with the Arduino board directly over various pins, but many shields are individually addressable via an I²C serial bus, allowing many shields to be stacked and used in parallel. Official Arduinos have used the megaAVR series of chips, specifically the ATmega8, ATmega168, ATmega328, ATmega1280, and ATmega2560. A handful of other processors have been used by Arduino compatibles. Most boards include a 5 volt linear regulator and a 16 MHz crystal oscillator (or ceramic resonator in some variants), although some designs such as the LilyPad run at 8 MHz and dispense with the onboard voltage regulator due to specific form-factor restrictions. An Arduino's microcontroller is also pre-programmed with a boot loader that simplifies uploading of programs to the on-chip flash memory, compared with other devices that typically need an external programmer.
At a conceptual level, when using the Arduino software stack, all boards are programmed over an RS-232 serial connection, but the way this is implemented varies by hardware version. Serial Arduino boards contain a simple inverter circuit to convert between RS-232-level and TTL-level signals. Current Arduino boards are programmed via USB, implemented using USB-to-serial adapter chips such as the FTDI FT232. Some variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, Bluetooth or other methods. (When used with traditional microcontroller tools instead of the Arduino IDE, standard AVR ISP programming is used.)
The Arduino Nano, and Arduino-compatible Bare Bones Board and Boarduino boards may provide male header pins on the underside of the board to be plugged into solderless breadboards.

Official boards

The original Arduino hardware is manufactured by the Italian company Smart Projects. Some Arduino-branded boards have been designed by the American company SparkFun Electronics.
Sixteen versions of the Arduino hardware have been commercially produced to date:

  1. The Serial Arduino, programmed with a DE-9 serial connection and using an ATmega8
  2. The Arduino Extreme, with a USB interface for programming and using an ATmega8
  3. The Arduino Mini, a miniature version of the Arduino using a surface-mounted ATmega168
  4. The Arduino Nano, an even smaller, USB powered version of the Arduino using a surface-mounted ATmega168 (ATmega328 for newer version)
  5. The LilyPad Arduino, a minimalist design for wearable application using a surface-mounted ATmega168
  6. The Arduino NG, with a USB interface for programming and using an ATmega8
  7. The Arduino NG plus, with a USB interface for programming and using an ATmega168
  8. The Arduino Bluetooth, with a Bluetooth interface for programming using an ATmega168
  9. The Arduino Diecimila, with a USB interface and utilizes an ATmega168 in a DIP28 package (pictured)
  10. The Arduino Duemilanove ("2009"), using the ATmega168 (ATmega328 for newer version) and powered via USB/DC power, switching automatically
  11. The Arduino Mega, using a surface-mounted ATmega1280 for additional I/O and memory.
  12. The Arduino Uno, uses the same ATmega328 as late-model Duemilanove, but whereas the Duemilanove used an FTDI chipset for USB, the Uno uses an ATmega8U2 programmed as a serial converter.
  13. The Arduino Mega2560, uses a surface-mounted ATmega2560, bringing the total memory to 256 kB. It also incorporates the new ATmega8U2 (ATmega16U2 in revision 3) USB chipset.
  14. The Arduino Leonardo, with an ATmega32U4 chip that eliminates the need for USB connection and can be used as a virtual keyboard or mouse. It was released at the Maker Faire Bay Area 2012.
  15. The Arduino Esplora, resembling a video game controller, with a joystick and built-in sensors for sound, light, temperature, and acceleration.
  16. The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU. It is the first Arduino board based on a 32-bit ARM core microcontroller.


Shields


Arduino and Arduino-compatible boards make use of shields, printed circuit expansion boards that plug into the normally supplied Arduino pin-headers. Shields can provide motor controls, GPS, ethernet, LCD display, or breadboarding (prototyping). A number of shields can also be made DIY.


Software


The Arduino integrated development environment (IDE) is a cross-platform application written in Java, and is derived from the IDE for the Processing programming language and the Wiring projects. It is designed to introduce programming to artists and other newcomers unfamiliar with software development. It includes a code editor with features such as syntax highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. There is typically no need to edit makefiles or run programs on a command-line interface.

Arduino programs are written in C or C++. The Arduino IDE comes with a software library called "Wiring" from the original Wiring project, which makes many common input/output operations much easier. Users only need define two functions to make a runnable cyclic executive program:

  • setup(): a function run once at the start of a program that can initialize settings
  • loop(): a function called repeatedly until the board powers off


The Arduino IDE uses the GNU toolchain and AVR Libc to compile programs, and uses avrdude to upload programs to the board.

As the Arduino platform uses Atmel microcontrollers, Atmel's development environment, AVR Studio or the newer Atmel Studio, may also be used to develop software for the Arduino.

References: Arduino.cc, Wikipedia & best of web.