Let's see what an Arduino is first. Arduino is one of the most popular open source I/O boards in the market. The easiness in programmability and the cost effectiveness of the hardware have made Arduino a big success. Most of the Arduino boards are powered by Atmel microcontrollers, which are available from 8-bit to 32-bit and clock speed from 8 MHz to 84 MHz. Arduino can be used for quick prototyping of robots and we can even use it for products as well. The main applications of Arduino in robotics are interfacing sensors and actuators, and communicating with PC for receiving high level commands and sending sensor values to PC using the UART protocol.
There are different varieties of Arduino available in the market. Selecting one board for our purpose will be dependent on the nature of our robotic application. Let's see some boards which we can use for beginners, intermediate, and high end users.
We will look at each Arduino board specification in brief and see where it can be deployed.
Boards |
Arduino UNO |
Arduino Mega 2560 |
Arduino Due |
Processor |
ATmega328P |
ATmega2560 |
ATSAM3X8E |
Operating/Input Voltage |
5V / 7-12 V |
5V/ 7-12V |
3.3V / 7 - 12 V |
CPU Speed |
16 MHz |
16 MHz |
84 MHz |
Analog In/Out |
6/0 |
16/0 |
12/2 |
Digital IO/PWM |
14/6 |
54/15 |
54/12 |
EEPROM[KB] |
1 |
4 |
- |
SRAM [KB] |
2 |
8 |
96 |
Flash [KB] |
32 |
256 |
512 |
USB |
Regular |
Regular |
2 Micro |
UART |
1 |
4 |
4 |
Application |
Basic robotics and sensor interfacing |
Intermediate robotic application level application |
High end robotics application |
Let's see how to interface Arduino to ROS.