Arduino
Es un proyecto opensource que se inició por parte de unos estudiantes en la universidad de Ivrea, El equipo de desarrollo de la placa está formado por seis estudiantes principales: Massimo Banzi, David Cuartelles, Tom Igoe, Gianluca Martino, David Mellis y Nicolas Zambetti.
El proyecto surge como una queja de Massimo sobre lo dificil que es encontrar placas con micro controladores baratas y sencillas de utilizar. Durante una visita del ingeniero español David Cuartielles a la universidad Italiana, Massimo discutió con David esta situación lo que les llevó a tomar la decisión de realizar ellos mismos un diseño para resolver este problema. Tan solo le llevó dos días a Mellis finaliar el código para la placa, y 3 días más diseñar la placa que llamarían Arduino.
La plataforma Arduino
Arduino se ha convertido en la plataforma más popular en la actualidad en todo el mundo. Ha evolucionado en diferentes versiones, desde la primera versión Arduino UNO (en la que trabajaremos nosotros) hasta sistemas más actuales especializados en proyectos de Internet of Things o incluso Wearables (por ejemplo relojes inteligentes).
Arduino es un proyecto Open Source de hardware que proporciona diferentes interfaces de tipo digital y analógico. El sistema se desarrolla sobre lenguaje C y se proporciona una herramienta de desarrollo (IDE) a través de la que se escribe el código, se compila, sube a la placa y ejecuta.
Versiones Arduino
Para nuestros proyectos y laboratorios utilizaremos principalmente la placa Arduino UNO aunque es posible que en algún caso alguna de las prácticas se realicen sobre el modelo denominado Arduino 101.
Arduino UNO: es la placa inicial del proyecto y es razonablemente simple. Se basa en el procesador de Atmel ATMEGA328P. Este procesador nos permite disponer de 14 pines de entrada y salida que nos permitirán conectarnos con el mundo exterior, de estos 14, 6 de ellos proporcionan una salida de tipo PWM (ya veremos para que sirve y como se configura.
Las características principales son:
Microcontrolador | ATmega328P |
Voltaje | 5V |
Voltaje entrada (recomendado) | 7-12V |
Voltaje entrada (límite) | 6-20V |
Pins I/O digitales | 14 (6 de ellos con salida PWM) |
Pins digitales PWM I/O | 6 |
Pins entrada analógicos | 6 |
Tensión DC por Pin I/O | 20 mA |
Tensión DC por Pin 3.3V | 50 mA |
Memoria Flash | 32 KB (ATmega328P) 0.5 KB usados por el bootloader |
SRAM | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
Velocidad de Reloj | 16 MHz |
Las características principales son:
Microcontrolador | Intel Curie |
Voltaje | 3.3V (5V tolera I/O) |
Voltaje entrada (recomendado) | 7-12V |
Voltaje entrada (límite) | 7-20V |
Pins I/O digitales | 14 (4 proporcionan salida PWM) |
Pins digitales PWM I/O | 4 |
Pins entrada analógicos | 6 |
Tensión DC por Pin I/O | 20 mA |
Memoria Flash | 196 kB |
SRAM | 24 kB |
Velocidad de Reloj | 32MHz |
Otras características | Bluetooth LE, 6-axis accelerometer/gyro |
Como podéis ver las principales diferencias las encontramos en el procesador y la tecnología que usa cada uno de ellos. Es relevante hacer notar que el UNO funciona con una tensión de 5V y el modelo 101 usa 3,3V. Esto será muy relevante a la hora de elegir nuestros sensores, si os fijáis un dato importante que se da es el voltaje de funcionamiento de entrada, esto hará que cuando elijamos nuestros periféricos tengamos que tener cuidado o acabaremos quemándolos.
La segunda gran diferencia la encontramos en la velocidad de reloj, si os fijáis el 101 corre al doble que UNO (32Mhz frente a 16Mhz), así que nos dará un mayor rendimiento que el primero y nos permitirá ir a aplicaciones que requieran mayor capacidad de procesamiento.
Por último a destacar es la capacidad de memoria SRAM y Flash, una para ejecutar nuestro código y otra para almacenarlo. UNO es muy inferior (p.ej. 2K de SRAM frente a más de 10 veces el 101 con 24Kb).