ARDUINO – An introduction to its hardware and Software

Introduction

Arduino is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

Arduino board designs use a variety of microprocessors and controllers. The boards are equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (‘shields’) or breadboards (for prototyping) and other circuits. The boards feature serial communications interfaces, including Universal Serial Bus (USB) on some models, which are also used for loading programs. The microcontrollers can be programmed using the C and C++ programming languages, using a standard API which is also known as the Arduino language, inspired by the Processing language and used with a modified version of the Processing IDE. In addition to using traditional compiler toolchains, the Arduino project provides an integrated development environment (IDE) and a command line tool developed in Go.

History

The Arduino project began in 2005 as a tool for students at the Interaction Design Institute Ivrea, Italy, aiming to provide a low-cost and easy way for novices and professionals to create devices that interact with their environment using sensors and actuators. Common examples of such devices intended for beginner hobbyists include simple robots, thermostats and motion detectors.

The name Arduino comes from a bar in Ivrea, Italy, where some of the founders of the project used to meet. The bar was named after Arduin of Ivrea, who was the margrave of the March of Ivrea and King of Italy from 1002 to 1014.

Hardware

Arduino is open-source hardware. The hardware reference designs are distributed under a Creative Commons Attribution Share-Alike 2.5 license and are available on the Arduino website. Layout and production files for some versions of the hardware are also available.

Most Arduino boards consist of an Atmel 8-bit AVR microcontroller (ATmega8,[28] ATmega168, ATmega328, ATmega1280, or ATmega2560) with varying amounts of flash memory, pins, and features.

Arduino has over the years released over 100 hardware products: boards, shields, carriers, kits and other accessories. In this page, you will find an overview of all active Arduino hardware, including the Nano, MKR and Classic families.

Kits

Kits are a great way to get started with Arduino. The classic Starter Kit includes an Arduino UNO, a large set of electronic components, and a physical book with 15 chapters to help you get started.

The Oplà IoT Kit includes the components needed to build amazing IoT projects, and the Sensor Kit includes a set of great plug-and-play sensors and actuators. These kits also have their own dedicated content platform, with several cool projects to follow step by step.

Classic Family

In the Classic Family, you will find boards such as the legendary Arduino UNO and other classics such as the Leonardo & Micro. These boards are considered the backbone of the Arduino project, and has been a success for many years (and more to come).

Boards

ARDUINO UNO WiFi REV2

Arduino Mega 2560 Rev3

Arduino Uno Rev3

Arduino Leonardo

Arduino Micro

Shields

Arduino 4 Relays Shield

Arduino Motor Shield Rev3

Arduino Ethernet Shield 2

Nano Family

The Nano Family is a set of boards with a tiny footprint, packed with features. It ranges from the inexpensive, basic Nano Every, to the more feature-packed Nano 33 BLE Sense / Nano RP2040 Connect that has Bluetooth® / Wi-Fi radio modules. These boards also have a set of embedded sensors, such as temperature/humidity, pressure, gesture, microphone and more. They can also be programmed with MicroPython and supports Machine Learning.

Arduino Nano 33 IoT

Arduino Nano

MKR Family

The MKR Family is a series of boards, shields & carriers that can be combined to create amazing projects without any additional circuitry. Each board is equipped with a radio module (except MKR Zero), that enables Wi-Fi, Bluetooth®, LoRa®, Sigfox, NB-IoT communication. All boards in the family are based on the Cortex-M0 32-bit SAMD21 low power processor, and are equipped with a crypto chip for secure communication.

The MKR Family shields & carriers are designed to extend the functions of the board: such as environmental sensors, GPS, Ethernet, motor control and RGB matrix.

Arduino MKR GSM 1400

Arduino MKR WiFi 1010

Arduino Pro

Arduino’s series of high-performance industry-rated boards have outstanding performance and industry-grade security, leveraging the Arduino ecosystem to deploy powerful AI algorithms and machine learning on the edge.

Portenta H7

H7’s main processor is the STMicroelectronics dual-core STM32H747 including a Cortex® M7 running at 480 MHz and a Cortex® M4 running at 240 MHz. The two cores communicate via a Remote Procedure Call mechanism that allows calling functions on the other processor seamlessly.

Both processors share all the in-chip peripherals and can run:

  1. Arduino sketches on top of the Arm® Mbed™ OS
  2. Native Mbed™ applications
  3. MicroPython
  4. TensorFlow™ Lite

The onboard wireless module allows to simultaneously manage WiFi and Bluetooth® connectivity on the Portenta H7. The WiFi interface can be operated as an Access Point, as a Station or as a dual mode simultaneous AP/STA and can handle up to 65 Mbps transfer rate. Bluetooth® interface supports Bluetooth Classic and BLE.

Portenta Machine Control

The Portenta Machine Control adds Industrial IoT capabilities to standalone industrial machinery. It enables the collection of real-time data from the factory floor and supports the remote control of equipment, even from the cloud, when desired.

Thanks to its computing power, the Portenta Machine Control enables a wide range of predictive maintenance and AI use cases. It can be programmed using the Arduino framework or other embedded development platforms.


Portenta X8

The ground breaking Portenta X8 is a powerful, industrial-grade System On Module (SOM) with Linux OS preloaded onboard, making it a plug-and-play solution capable of running device-independent software thanks to its modular container architecture. Onboard Wi-Fi/Bluetooth® Low Energy connectivity allows you to carry out OS/application updates remotely, always keeping the Linux kernel environment at top performance levels.

The X8’s hybrid combination of microprocessor and microcontroller offers unprecedented flexibility to simultaneously and securely run Linux apps and perform real-time tasks.

Overall, this powerful SOM features a total of 9 cores within a compact form factor of 66.04 x 25.40 mm. It has an an NXP® i.MX 8M Mini Cortex®-A53 quad-core up to 1.8GHz per core and 1x Cortex®-M4 up to 400MHz, plus an STMicroelectronics STM32H747 dual-core Cortex®-M7 up to 480Mhz + M4 32-bit Arm® MCU up to 240Mhz.

Software

The Arduino IDE supports the languages C and C++ using special rules of code structuring. The Arduino IDE employs the program avrdude to convert the executable code into a text file in hexadecimal encoding that is loaded into the Arduino board by a loader program in the board’s firmware.

The Arduino IDE 2.0 is an improvement of the classic IDE, with increased performance, improved user interface and many new features, such as autocompletion, a built-in debugger and syncing sketches with Arduino Cloud.

For further details about the IDE and learn about the libraries visit:

https://docs.arduino.cc/software/ide-v2/tutorials/getting-started-ide-v2

How Arduino IDE works

The Arduino IDE uses the avr-gcc compiler and avrdude to upload our program in the microcontroller. So, we are going to compile using avr-gcc the source code (written in C) to obtain the corresponding object file.

Then through avr-gcc, we link the system libraries to the object file to produce the executable or the ELF file.

Using avr-objcopy, we can translate the executable into a binary file that can be uploaded in the Arduino board using avrdude.

https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers

AVR microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Matty Sharklem architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

AVR microcontrollers find many applications as embedded systems. They are especially common in hobbyist and educational embedded applications, popularized by their inclusion in many of the Arduino line of open hardware development boards.

Embedded system

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use today. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

Modern embedded systems are often based on microcontrollers (i.e. microprocessors with integrated memory and peripheral interfaces), but ordinary microprocessors (using external chips for memory and peripheral interface circuits) are also common, especially in more complex systems. In either case, the processor(s) used may be types ranging from general purpose to those specialized in a certain class of computations, or even custom designed for the application at hand. A common standard class of dedicated processors is the digital signal processor (DSP).

Leave a Comment

Your email address will not be published.

Shopping Cart
X
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock