What is Arduino?

The Arduino is defined as an open-source electronics prototyping platform based on flexible, easy-to use hardware and software. It’s intended for artists, designers, hobbyists, Arduino enable users to read inputs from a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online. All this and more can be done by a set of instructions programmed through the Arduino Software (IDE), a set of tutorials and projects will be provided to demonstrate this concept.

May be we can rephrase the definition of Arduino saying that it’s a set of electronic components that are integrated or placed on one electronic board (PCB), it has a pins so user can just connect it to the application circuit, a wide range of applications and projects can be done with it. This board can be programmed while it is in the circuit (no need to remove it from the application, this is called ICSP), it is programmed through an open-source software named Arduino; it may be called Arduino IDE.

The Arduino board has been through many developments, but all versions of Arduino board share some basic component, these are:

1-microcontroller chip.
2-power regulation circuit.
3-programming port (may be API, mini USB, FTDI).
4-breakout pins.

Different types of Arduino boards

     Different types of Arduino boards

Arduino board versions:

As stated previously, Arduino has been through many development stages that yielded as a result various Arduino board versions, to shade some insight on these versions, a very useful link on Wikipedia readers can refer to.

Arduino software:

Arduino software is called Arduino IDE, it stands for Integrated Development Environment, it is an open-source software/platform high level programming language that allows user to program, load, monitor and even communicate with the Arduino board, the IDE was build using a variation of the C and C++ programming languages. The program (code) user writes in Arduino IDE is called sketch.

The main advantage of the arduino’s IDE over the other softwares is that it is open-source, this allow user to Build their own codes in an easy way, user can also adjust and even build their own libraries, this allows flexibility, development and innovation, as a result, software is growing through the contributions of users worldwide, each Arduino tutorial will contain a hardware and software part, so for more knowledge about Arduino programming, refer to Arduino tutorials and Get started with Arduino IDE.

The Arduino IDE screen

The Arduino IDE screen

So, in summary, why should I use Arduino rather than other microcontrollers?

There are many other microcontrollers and microcontroller platforms available for physical computing. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, and many others offer similar functionality. All of these tools take the messy details of µC programming and wrap it up in an easy-to-use package. Arduino also simplifies the process of working with µC, but it offers some advantage for teachers, students, and interested amateurs over other systems:

1-Inexpensive - Arduino boards are relatively inexpensive compared to other µC platforms. The least expensive version of the Arduino module can be assembled by hand, and even the pre-assembled Arduino modules cost less than $50.

2-Cross-platform - The Arduino software runs on Windows, Macintosh OSX, and Linux operating systems. Most µC’s systems are limited to Windows.

3-Simple, clear programming environment - The Arduino programming environment is easy-to-use for beginners, yet flexible enough for advanced users to take advantage of as well. For teachers, it's conveniently based on the Processing programming environment, so students learning to program in that environment will be familiar with the look and feel of Arduino.

4-Open source and extensible software- The Arduino software is published as open source tools, available for extension by experienced programmers. The language can be expanded through C++ libraries, and people wanting to understand the technical details can make the leap from Arduino to the AVR C programming language on which it's based. Similarly, you can add AVR-C code directly into your Arduino programs if you want to.

5-Open source and extensible hardware –Arduino is based on Atmel's ATMEGA8 and ATMEGA168 µC’s. The plans for the modules are published under a Creative Commons license, so experienced circuit designers can make their own version of the module, extending it and improving it. Even relatively inexperienced users can build the breadboard version of the module in order to understand how it works and save money.

Using Arduino:

See Get started with Arduino.

Resources:

1-https://www.arduino.cc/en/Guide/Introduction

2-http://www.makeuseof.com/tag/getting-started-with-arduino-a-beginners-guide/

3-https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems