Arduino

28.03.2020

What is arduino?

Arduino is an open source electronics creation platform, which is based on free, flexible and easy to use hardware and software for creators and developers.

This platform allows to create different types of microcomputers from a single board to which the community of creators can give different types of use.

In order to understand this concept, you will first have to understand the concepts of free hardware and free software. 

Free hardware are devices, our specifications and diagrams are publicly accessible, so anyone can replicate them. This means that Arduino offers the bases so that any other person or company can create their own boards, being able to be different from each other but equally functional when starting from the same base.

Free software is the computer programs whose code is accessible by anyone who wants to use and modify it. Arduino offers the Arduino IDE (Integrated Development Environment) platform, which is a programming environment with which anyone can create applications for Arduino boards, so that they can be given all kinds of utilities.

History of arduino

The project was born in 2003, when several students from the Institute of Interactive Design of Ivrea, Italy, in order to facilitate the access and use of electronics and programming. They did it so that electronics students would have a cheaper alternative to the popular BASIC Stamp, plates that at that time were worth more than a hundred dollars, and that not all would allow.

The result was Arduino, a board with all the necessary elements to connect peripherals to the inputs and outputs of a microcontroller, and which can be programmed in Windows as well as macOS and GNU / Linux. A project that promotes the 'learning by doing' philosophy, which comes to mean that the best way to learn is by messing around.

The Arduino is a board based on an ATMEL microcontroller. Microcontrollers are integrated circuits on which they can record instructions, which they write with the programming language that you can use in the Arduino IDE environment. These instructions allow you to create programs that interact with the circuitry on the board.

The Arduino microcontroller has what is called an input interface, which is a connection in which we can connect different types of peripherals on the board. The information from these peripherals that connects to the microcontroller, which will be in charge of processing the data that comes through them.

The type of peripherals you can use to send data to the microcontroller depends largely on what use you may be thinking of giving it. They can be cameras to obtain images, keyboards to enter data, or different types of sensors.

It also has an exit interface, which is responsible for carrying out the information that has been processed on the Arduino to other peripherals. These peripherals can be screens or speakers that reproduce the processed data, but they can also be other boards or headphones.

Arduino in Robotics

What you can do, and what you can't do with and Arduino board. 

Robotics is such an exciting and growing field. Many people want to learn how to make robots, but sometimes it is hard to know where to start.

If you are starting from scratch, or if you already know some electronics and programming concepts, learning robotics with Arduino is a good idea. It will give you some good basics that you can use later to build larger robotics projects.

Niryo One is an example of a robot powered by Arduino. Great things can be accomplished with Arduino ! You'll also find more examples of robotics applications on Instructables, an amazing website with some open source tutorials.

In this post we'll show you an overview and some guidelines, about where to start, which board, sensors, motors to use, and what to focus on.

An Arduino board is composed of a microcontroller, some LEDs, a reset button, and many pins that you can use for input/output operations.

With so many pins available, you can easily read data from sensors, or control different motors and actuators. That is what makes Arduino great for learning robotics. It's kind of an all-in-one tool to interface all the hardware you need to control.

But don't think about artificial intelligence, 3D visualization and other heavy algorithms. Microcontrollers are not powerful enough, and it is not the purpose of using an Arduino board. Arduino is mostly used to do input/output operations, and small computations.

Don't worry though, you can still do amazing stuff with just an Arduino board and a few motors and sensors ! There are more than enough resources to learn robotics with Arduino.

And then, if you want to learn deeper robotics concepts and add an intelligence layer to make your system more clever, you can just control your Arduino board from another computer (like a Raspberry Pi board), there are many easy ways to do that.

Many arduino boards

Coosing an arduino board

There are so many arduino boards, and each one has its own characteristics!!

Here I am going to put a little list, but you'll have to do your own research. 

- Arduino Uno

-Arduino Leonardo

-Arduino Mega 2560

-Arduino Esplora

-Arduino Nano

-Arduino Lily Pad

-Arduino Due

-Arduino Yun

Arduino has its own page , here you have the link so you can access it and learn more. 

First of all you have to choose which Arduino board is best suited for your robotics project. Our recommendation : starting with a Uno or a Mega is just fine.

The Uno has an ATmega328P microcontroller and the Mega has an ATmega2560. Their CPU is both clocked at 16 MHz. Uno has 2ko of SRAM while Mega has 8ko. That's pretty small, so think twice before creating huge arrays of variables.

Then, the biggest difference is the interface with hardware components. Uno has 14/6 digital input/output pins while Mega has 54/15. That's why Arduino Mega is preferred for bigger projects, as you can plug more hardware.

And if you like 3D printing, you may know that some shields were created just for the Arduino Mega board, like RAMPS 1.4 shield, which allows you to use 5 stepper motors and power them from an external power source.

At Niryo we are definitely fan of the Arduino Mega + RAMPS 1.4 combination, that we use to power our robot !

So, if you want to learn only the basics, get an Arduino Uno, otherwise we advise you to directly start with a Mega. More Arduino boards are available for different robotics applications. For a very smaller board check out Arduino Nano. If you want ethernet connectivity then Arduino Yun is for you, and fore more advanced calculation you may choose the Arduino Due.

My experience: Arduino and Haptic devices

To have an idea of a real use of arduino application, I  give it to you through this article (wip) , where I talk about Haptic Devices, Robotics in Biomedicine and a  little project on this field using arduino.