What is Arduino?
Close or Esc Key

Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Arduino : What is Arduino

I was surprised to see a twelve year old boy giving life to his electronic gadgets. He was trying his hands on building his own creative toys which involved hard electronics and software skills. My zeal was on its peak to know the magical power inside the young chap. How did he understand the concepts of electronics so early? How did he develop the software? Anxiously I went down and asked him about the magic he was doing. The answer was “ARDUINO” 

 

What is Arduino Development Board
Fig. 1: A Representational Image of Arduino Software
 
What is Arduino?
Arduino is an open source electronics platform accompanied with a hardware and software to design, develop and test complex electronics prototypes and products. The hardware consists of a microcontroller with other electronic components which can be programmed using the software to do almost any task. The simplicity of the Arduino language makes it very easy for almost everyone who has an interest in electronics to write programs without the understanding of complex algorithms or codes.
 
Arduino is intended for an artist, tinker, designer or anyone, interested in playing with electronics without the knowhow of complex electronics and programming skills. Arduino is an excellent designed open source platform. It has specially designed boards which can be programmed using the Ardunio Programming Language (APL).
The presence of Arduino is not only spreading between hobbyists, but it has also expanded its roots in industries and used by experts for making prototypes of commercial products. Arduino takes off the efforts required in complex coding and designing hardware.
 
The open source nature of Arduino has been the main reason for its rapid horizontal growth. Since it is an Open Source project, all the files related to hardware and software is available for personal or commercial use. The development cost of the hardware is very small as against the costly similar proprietary products by the industrial giants. The open source nature doesn’t require any licenses to develop, use, redistribute or even sell the product. But the Arduino name is trade mark protected (Arduino™) i.e., you are free to sell the Arduino board under any other name however in order to sell it under the name “Arduino” you need to take permission from the founders and follow their quality terms.
 
The Software files which includes all the source code library are also open sourced. A user can modify them to make the project more versatile and improve its capabilities. This provides a strong online community support.
 
Concept of Arduino
The root of Arduino goes deep down to the development of Processing Language by MIT researchers. Processing language is an open source language designed to introduce the software development environment for the artistic people without the need of deep knowledge of programming of algorithms. Processing is based on java.
 
In early year of 21st century, designing an electronics gadget was nearly impossible for a common man. The requirement of specific skill set and hefty prices of software and hardware created a full stop in the path of their creativity.
 
In year 2003 Hernando Barragan, a programmer developed an open source electronics development platform with software IDE, where anyone with a small knowledge in electronics and programming could use his project to give wings to their creativity. His focus was to reduce the burden of complexity in designing electronics hardware and software. The project was named as Wiring. The software IDE of the Wiring used processing language to write the codes.  
 
As the program written in C\C++ is named as Project, in the same way the code written in Wiring (even in Processing and Arduino) is termed as Sketch. The name sketch gives a familiar look for an artist.  
The principle idea behind Wiring is that one can make the sketch of their idea on Wiring software and implement it using specially designed Wiring board. You need to write a few lines of codes on the software IDE and then download the program to the onboard microcontroller to see the output.
 
Wiring has predefined libraries to make the programming language easy. Arduino uses these libraries. The predefined libraries are written in C and C++. One can even write his software in C\C++ and use them on Wiring boards. The difference between writing a program in C/C++ and Wiring is that the Wiring Application Programmable Interface (API) has simplified programming style and the user doesn’t require detailed knowledge of the concepts like classes, objects, pointers, etc. While sketching hardware you need to call the predefined functions and rest will be handled by the Wiring software.
 
The basic difference between the Processing and the Wiring is that the Processing is use to write the program which can be used on other computers while Wiring program is used on microcontrollers.
 

History & License

History
Wiring is the predecessor of Arduino. Arduino was developed in lvrea, Italy by Massimo Banzi and David Cuartielles in year 2005. The Project was named after Arduin of lvrea (King of Italy). The project Arduino uses the Wiring language. The concept of Wiring Language was created by Hernando Barragan, and under his supervisionMassimo Banzi and David Cuartielles developed the Project Arduino.
 

 

Open Source License
Arduino is an open source project which is probably the root cause reason for its popularity. Arduino hardware design is an Open Source Hardware, distributed under Creative Common Attribution Share-Alike license. Creative Common, a non-profitable organization has released several copyleft-licenses as free of charge, so that the creativity/ knowledge can be shared to the rest of the world while having the copyright to the authorized person. The originally designed files, like layout and schematics of Arduino products are available as Eagle CAD files.
 
The source code for its IDE and libraries are also available and released under GUN General Public License (known as GPL). The GPL is the first copyleft license for general use. The license is granted for the software to ensure the copyleft freedom.
 

Software

Software
The Arduino hardware uses a microcontroller IC which needs to be programmed to perform any desired task. This program is written in the Arduino software using the Arduino Programming Language (APL). After compiling the program it is loaded into the memory of the microcontroller on the board using a serial or USB connection. The program can be downloaded to the memory of the microcontroller using the Arduino Software itself, thereby avoiding the need of any other external programmer. Writing codes for non professionals is a difficult task. This was the key goal of the Arduino to reduce the complexity in writing codes and allow non-professionals and creative people to foster their thinking with the help of Arduino.
 
The Arduino IDE provides an editor to prepare the sketch of hardware. The Arduino IDE code editor was very skillfully designed. It gives a very distinguished view (in colour and fonts) to the variables, constants, function, etc. of the source code. It includes features like syntax highlighting, brace matching and automatic code indentation. There is no need to manipulate the makefile or go on command line to dump the code into the hardware. The APL itself has a facility to burn the controller in a single click.
 
Sketch written in Arduino Programming Language (APL) goes under minor changes (the automatic generation of function prototype), when you press the compile button. Firstly main() function is added to the sketch and the arduino environment transforms the sketch into C or C++ code. The Arduino IDE uses GNU toolchain and AVR lib to compile the programs. Then it passes to the AVR-GCC compiler, which translate/ converts those C instructions into equivalent machine understandable instructions and creates an object file. The object file is combined with standard Arduino Libraries which provides the definitions of the inbuilt arduino functions. The result of this is a single hex (Intel hex/ .hex) file. This hex file is transferred to the microcontroller. The Arduino IDE uses avrdude to transfer the hex file on the Arduino board either by using USB or serial port of PC.
 

Hardware

Hardware
The Arduino hardware was very skillfully designed to reduce the complexities arising in the circuitry. It has an In System Programmer (ISP), which allows users to transfer the software inside the microcontroller without removing it from the circuit. The basic model of an Arduino board consists of an 8-bit AVR microcontroller along with some other necessary components like a 5 volt linear regulator IC, a 16 MHZ crystal, ceramic resonator, output connectors, direct adaptor input, etc.
 
The IO ports on boards are positioned in a way that it can be easily attached with the interchangeable add-on modules, known as shields. Shields are daughter boards that can be externally attached/ plugged with the arduino boards to extent the board’s capabilities. For example an xbee shield can be attached with the arduino board to establish a wireless communication. A motor control shield can be attached on the top of Aurdino board to run the motors or to provide an ease to control the speed of motors. The Arduino Board can easily interface with external sensors, circuits or other peripherals.
 
Arduino hardware is available in various designs and configurations depending on the use. The different configurations use different AVR chips, Atmega8/168/328/1280/2560. Each board has its own additional feature, like Arduino UNO consists of ATmega328 which communicates to PC via USB using FTDI chip. very comfortable for attaching shields. On the other Arduino NANO uses Atmega168/328 which also uses FTDI chip but is much comfortable to use it on breadboard.
 
Some non-ATmega Arduino boards are also available. These boards don’t contain Atmel’s ATmega controller but are compatible with arduino shield. These microcontrollers cannot be programmed by the standard Arduino IDE but manufacturers do provide some other versions of Arduino IDE which includes the necessary libraries related to the controller. For example Leaflabs Maple based on 32bit arm processor or chipKIT UNO32 based on PIC micro controllers.
 
The earlier version of the arduino board had controller with bootloader which communicated with the Arduino IDE mostly via a Serial port. Later a FTDI chip was introduced on the Arduino board which is a USB to serial converter to allow the communication with the USB port. And today the Arduino boards are available with Atmel’s microcontroller which have inbuilt capacity to communicate with the USB port.
 

Wiring v/s Arduino

Wiring v/s Arduino
Though Wiring is the predecessor of Arduino, the Arduino is more extensively used. The following are the reasons for its wide popularity.  
1)      Most of the Wiring boards are made on Atmel’s ATmega128, Atmega1281 and Atmega2561. All these microcontrollers are available in Surface Mounting Device (SMD) packaging and the prices are quite high. Whereas most of Arduino Boards use ATmega8 or Atmega168 which make them cost effective.
2)      Even though both the projects are open source project, the controllers used in Wiring are Surface Mounting Devices (SMD) while the controllers used for Arduino Boards are through whole device. It is much easier for beginners/non-professionals to fabricate Arduino boards as compared to Wiring boards.
3)      The Arduino design supports the shields. The shields can be directly attached to Arduino boards to enhance their capabilities. The Wiring boards on the other hand with support to shield type architecture which increase the complexity in extending their capabilities. 
4)      Last but not the least the Arduino has a very strong online and offline community support. 
 
With the tremendous growth and fan following in the recent years, Arduino definitely promises a bright future ahead, both in the world of hobbyist and industries. There is still much to be explored to empower Arduino with capabilities to solve the real world problems.

 

 

Comments

Its good

Fine

 

Great!!

sir,

i am making a arduino board (as given in arduino.cc)so i request you to please help me how to prepare a blank atmega8L for it.

very good
]]>]]>