Introduction to Arduino: History, Hardware, and Software
Arduino’s open-source, microcontroller-based platform has revolutionized academic and hobbyist spaces, providing a low cost, accessible introduction to engineering and programming.
See our related articles on Arduino:
Arduino is a microcontroller-based platform that consists of open-source hardware, software, and programming tools. The concept of the Arduino ecosystem revolves around simplicity, making microcontrollers more accessible to the general public and great educational aids.
Arduino was created in 2003 by a group of academics at the Interaction Design Institute Ivrea in Italy. The platform was named after a bar in the same town where the academics met to discuss the project. One of the project's goals was to remove the barrier of entry for students who wanted to realize automation ideas but did not have enough resources to purchase expensive controllers or knowledge to build their printed circuit boards.
Figure 1. Arduino is an open-source, microcontroller-based platform. Image used courtesy of Arduino
Arduino has found tremendous success as an educational tool, as many universities worldwide have adopted it as a way to introduce students to control automation. Furthermore, thanks to low costs, Arduino is also very popular among individuals who build projects for personal use or as a hobby. In the next article, we will look at some applications of Arduino and evaluate whether it has potential in industrial settings.
The Arduino ecosystem has several advantages over other microcontroller platforms and PLCs. First, Arduino is relatively inexpensive, with many modules priced at less than 50 USD. Second, it is open source, which means code and libraries are available to everybody free of charge. Last, it is cross-platform and compatible with Windows, macOS, and Linux. Almost all other microcontroller platforms are compatible with Windows only.
On the other hand, Arduino hardware, being microcontroller-based, is not as powerful as PLCs—even some low-cost PLCs available in the market. Also, Arduino is not known for being suited to work in harsh environments. These trends are shifting, however, as Arduino develops the Pro series of modules with hardware, software, and platforms suitable for more extreme industrial environments.
In the next sections, let us look at the components of the Arduino ecosystem.
Arduino hardware is classified into three families: Nano, MKR, and Classic. In addition, hundreds of controllers and accessories have been released over the last several years by the Arduino company and others. Arduino and Adafruit are two of the most recognizable vendors of Arduino hardware.
The Nano family offers the most compact and least expensive boards. These boards rely on energy-efficient, embedded ARM processors that can perform many tasks despite their ultra-compact size. Some boards in this family offer wireless network connectivity, Bluetooth, and IoT functionalities. Most of the boards work with a 3.3 V power supply.
Figure 2. An Arduino Nano 33 IoT board. Image used courtesy of Arduino
The MKR family shares many processing capabilities with the Nano family, but it builds upon some functions, like offering advanced connectivity options. The main processor in this family is the Cortex-M0, one of the smallest 32-bit ARM-based processors available.
The MKR family also introduces the concept of shields. These shields are accessories that can be stacked on the main processor board to add new functions to a project. For example, there are shields for GPS, Ethernet cable connection, temperature measurements, and RS-485 communication.
Figure 3. An Arduino MKR GPS shield. Image used courtesy of Arduino
The Classic family is the most popular, including the Arduino UNO, the most recognizable Arduino board. The Classic family resembles process controllers and employs shields or stackable boards. The Arduino UNO comes with pins to connect up to 14 inputs and outputs and six analog inputs.
Figure 4. The Arduino UNO board. Image used courtesy of Arduino
This family utilizes different versions of the ATmega processor. Some available shields are the motor control shield, the relay shield, and the cable ethernet connection shield.
Designing a project using an Arduino classic board requires careful review of the shields to be stacked. Some shields are higher than others; in some cases, shields block access to other pins and connections. In addition, extensions and other accessories allow the stacking of shields with more room in between.
A modified version of the Arduino platform has been introduced to fill the need for lower-cost development and advancement in the industrial control system space. These controllers are available in modified form factors, including the Arduino Pro Machine Control edition, a robust system built around the Arduino Portenta, which is compatible with industrial voltages and protocols to allow connection with existing systems.
Figure 5. The Arduino Pro Portenta X8. Image used courtesy of Arduino
These boards are also available with operating systems that complement each other, with side-by-side controllers for I/O level devices just like the Classic Arduino line. In addition, these boards contain advanced operating systems that can run application-based programs, usually intended for IoT purposes.
Several boards perform specific purposes, such as machine vision, edge computing, and machine learning.
Arduinos are programmed using the Integrated Development Environment (IDE). The Arduino IDE is available for Windows, macOS, and Linux. The programming language is based on a variant of C and C++; therefore, people familiar with these languages will be able to start coding right away.
The interface of the IDE is very simple and emphasizes practicality. Programmers can create functions and subroutines and call them from the main routine.
Figure 4. The Arduino IDE software interface. Image used courtesy of Ardunio
IDE also has an integrated debugger and supports troubleshooting tools, such as breakpoints.
Another way to program Arduinos is the Arduino Web Editor, an online tool that can be opened using any browser but requires internet access. The code is stored online and can be transferred to the hardware using a dedicated plug-in. The web-based editor helps make the code accessible from any device.
We have covered the history and basics of Arduino and the role it has as an educational tool. In our next article, we will take a look at Arduino applications outside of educational and hobbyist spaces, including its use in prototyping, embedded systems, and in industrial automation.