If you are starting with the Arduino now, you probably already have an Arduino Uno on your desk, and a few components.

But, did you know that the Arduino is much more than this tiny circuit board and a bunch of components?

I prefer to see the Arduino as an ecosystem. An ecosystem is defined as a biological community of interacting organisms and their physical environment. The Arduino ecosystem is very similar in that it is a community of hardware, software, processes and people, all of which interact. What is the purpose of this interaction? All sorts of things. It could be the construction of a gadget. The achievement of an educational outcome. Or simply the experience and enjoyment of creating something.

In this post, I'd like to have a really quick look at the Arduino ecosystem.

The members of this ecosystem are the bits and pieces that come together when you build an Arduino project.

The Arduino ecosystem is made up of these parts:

1. The Arduino board

2. The Arduino IDE

3. The Arduino core software library ("Arduino language")

4. Third party software libraries

5. Shields

6. Components

The Arduino board

In the beginning, way back in 2005, there was only one board. Rumour has it that it was called the "Arduino" in honour of the place where the idea for an open-source hardware prototyping platform was conceived. Today there are numerous boards, with a wide range of capabilities. Processing, input/output, power consumption, size, and price are various metrics in which modern Arduino boards differ from each other.

The very popular Arduino Uno Rev 3. The red device is a sensor that can measure acceleration

Arduino-official boards are made by companies that work in collaboration with the Arduino team to ensure compatibility. They are the only ones licensed to use the name "Arduino". In return, makers of official Arduino boards pay a fee to the Arduino project.

The very small Arduino Micro

There are also many clones, derivatives and counterfeit boards that while using the open-sourced Arduino software and schematics do not contribute to the project financially. They also are not providing any guarantee of compatibility and quality. I recommend you only purchase an official Arduino board for both peace of mind and for the nice feeling of contribution to the project.

The Arduino IDE

The Arduino IDE, or Integrated Development Environment, is the tool you use to create an Arduino program and upload it to your board. An Arduino program is called a sketch, a reminder that what you are actually doing is prototyping, which in turn means that anything you do is subject to trial, testing, and change.

The Arduino IDE

The Arduino IDE can be downloaded from the Arduino website and it works on Mac, Linux and Windows computers. Its only requirement is the Java Runtime Environment (JRE). Simply download the IDE installer for your computer, and run it. The installer will let you know if you need to download the JRE. Get it from http://arduino.cc/en/Main/Software.

With the IDE installed, you will be able to type, upload to the board, and debug (ie. fix) your sketches. You also use the IDE to communicate both ways with the board: to upload your sketches to the Arduino, and to receive messages from the Arduino.

The Arduino language

When you download the Arduino IDE, you also get the Arduino core library. This library is a collection of functions or methods that allow you to control the various aspects of your board's functionality. For example, if you want to read an analogue value from pin 1, you call the relevant method like this:

analogRead(1);

Awesomely simple! If you want to turn an LED light on, that requires "writing" a digital value 1 to a digital pin. Connect the LED through a resistor to digital pin 13 and use this method:

digitalWrite(13, HIGH);

Apart from methods like these, meant to interact with the environment, the Arduino core library gives you many others. There are control structures, arithmetic operators, mathematics functions and many others. All of them are listed and documented in the references page of the Arduino project's web site.

I will be explaining the use of many of these methods as we use them throughout this course.

Third party software libraries

Lot's of people have contributed to the Arduino ecosystem by writing their own libraries and making them available to others. These third-party libraries often address gaps in functionality that the Core library perhaps does not offer, or it does not offer well. In other cases, these libraries offer alternative ways of doing things.

For example, this library allows you to add infra-red remote control capability to your project. This one implements a web server that can run on your board, which is very useful for remote sensing or remote control applications.

Shields

Very often, certain hardware components are used so widely that eventually a company assembles them together on a printed circuit board so that it is easy to plug into an Arduino board without any wires. These extension boards are known as "shields".

The Ethernet shield is very common. It makes it very easy to add Ethernet and Internet communications to your project. You could just buy the WizNet controller, connector and other parts and create your own Ethernet adaptor, but it would be silly to do that. Remember that our mission is to build prototypes so that we can implement our ideas, not to fiddle around with problems already solved well by others!

Another popular shield is the Arduino Motor Shield through which you can control all sorts of motors, very useful if you want to build a robot, a racing car, or a remote control lawn mower.


An example of a shield. This one provides an LCD screen and buttons

Components

Finally, there are the individual components. These are typically small devices that you plug into your board by using jumper cables and breadboards.

For example, if you want to take temperature and humidity readings, you could use the DHT11 sensor.

If you need to measure distance, then you could use an ultrasonic distance sensor.

An example of a sensor connected to an Arduino Uno. This sensor can measure temperature.

Conclusion

So there you have it. The Arduino is not one device, or one device with a few cables and some software. It is a complete ecosystem. This ecosystem make it so much more effective that so many other alternatives that exist. Understanding how this ecosystem works with help you understand its full power. Learning, experimenting, having fun, even building commercial products is all possible once you become part of it.