Archivo de la etiqueta: Shields

Shields Arduino

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Las shields se pueden comunicar con el arduino bien por algunos de los pines digitales o analógicos o bien por algún bus como el SPI, I2C o puerto serie, así como usar algunos pines como interrupción. Además estas shields se alimenta generalmente a través del Arduino mediante los pines de 5V y GND.

En muchos casos nos encontraremos que los shields vienen sin soldar las patillas o en algunos casos sin algunos componentes soldados.

Cada Shield de Arduino debe tener el mismo factor de forma que el estándar de Arduino con un espaciado de pines concreto para que solo haya una forma posible de encajarlo.

Debemos tener en cuenta que cuando instalemos un shield, habrá que leer su documentación que nos dirá si inhabilita algunas de los pines I/O o si usa un bus y que requisitos tiene para su utilización. Generalmente las shields vienen con un ejemplo o una librería para su uso.

En algunos casos los shields pueden tener el pineado que no permite apilar más.

Ejemplo de 25 shields útiles: https://randomnerdtutorials.com/25-arduino-shields/

Todas las shields de Arduino pueden verse en:

Ethernet Shield V1

Web: https://www.arduino.cc/en/Main/ArduinoEthernetShieldV1

Esta shield ha sido retirada en sustitución de la Ethernet Shield V2 https://www.arduino.cc/en/Main/ArduinoEthernetShield

Este Shield es el usado en el curso.

La placa Arduino se comunica con el módulo W5100 y la micro-SD utilizando el bus SPI (mediante el conector ICSP). Esto se encuentra en los pines digitales 11, 12 y 13 en el modelo UNO y en los pines 50, 51 y 52 del modelo MEGA. En ambas placas, el pin 10 es utilizado para seleccionar el W5100 y el pin 4 para la micro-SD. Estos pines no pueden ser utilizados para otros fines mientras la Ethernet Shield esté conectada. El en MEGA, el pin SS (53) no es utilizado pero debe dejarse como salida para que el bus SPI funcione correctamente.

Ethernet Shield 2

Web: https://www.arduino.cc/en/Main/ArduinoEthernetShield

Se trata de una versión mejorada del Ethernet Shield V1 con el chip ethernet W5500 en lugar del W5100. Aporta mejoras a la versión 1 y se usa con la librería ethernet2 en lugar de la librería ethernet. https://www.arduino.cc/en/Reference/Ethernet

Chip W5500: http://wizwiki.net/wiki/lib/exe/fetch.php?media=products:w5500:w5500_ds_v106e_141230.pdf

Arduino Wifi Shield

Web: http://arduino.cc/en/Main/ArduinoWiFiShield

Permite conectar un Arduino a Internet mediante Wifi y hace uso de la librería WiFi Library http://arduino.cc/en/Reference/WiFi. También dispone de un slot para una tarjeta micro SD.

Este shield se comunica con Arduino a través del bus SPI mediante los pines ICSP y usa los pines 4 y 10 al igual que la Shield Ethernet. También hace uso del pin 7 que no puedes ser usado.

Debe tenerse en cuenta que dado que la tarjeta SD y la wifi usan el mismo bus SPI, no pueden trabajar simultáneamente, lo que es un punto importante durante la programación si usamos ambos periféricos. Esta tarjeta también dispone de unos interfaces en placa para actualizaciones de firmware y diagnósticos.

Este shield ya está descatalogado y ha sido sustituido por el Arduino WiFi Shield 101

Arduino WiFi Shield 101

Web: https://www.arduino.cc/en/Main/ArduinoWiFiShield101

Este nuevo shield es una mejora de la anterior wifi shield desarrollada junto con Atmel que usa el módulo WINC1500 y también añade funciones de cifrado hardware gracias al chip de cifrado ATECC508A diseñado para el mercado de IoT. Los pines 5 y 7 son usados por este shield.

Usa una nueva librería llamada WiFi101 https://www.arduino.cc/en/Reference/WiFi101 que también usan otros Arduinos con wifi integrado como el MKR1000. Esta librería es muy compleja y ocupa más del 60% de la memoria disponible en el Arduino UNO, dejando poco espacio para los sketches. Si se van a realizar programas complejos, este shield es recomendable usarlo con Arduino Zero, 101 o Mega.

Arduino GSM Shield V2

Web: http://arduino.cc/en/Main/ArduinoGSMShield

Esta placa sustituye a la GSM Shield V1: https://www.arduino.cc/en/Main.ArduinoGSMShieldV1

Conecta Arduino a Internet mediante GPRS, usando una tarjeta SIM. También permite enviar y recibir mensajes y llamadas de voz (SMSs)

Telefónica presentó la nueva versión del proyecto Arduino GSM/GPRS Shield, un dispositivo que incorpora conexión GPRS/GSM a una placa base de hardware libre, dando como resultado un dispositivo de bajo coste conectado gracias a la tecnología machine to machine (M2M) de Telefónica. ¿El fin? Abrir nuevas posibilidades para que el llamado internet de las cosas pueda prosperar de forma sencilla y económica con la colaboración de Arduino.

Como cualquier otro elemento de Arduino, está disponible la documentación de HW y SW y es open source. Usa los pines 2 y 3 (software serial) y el pin 7 (reset), pero hay una serie de condicionantes para su uso con los Arduinos Mega, Yun y Leonardo debido a que los pines que se usan para comunicar deben tener implementada interrupción en el pin 2.

Para su uso es necesaria la librería GSM Library: http://arduino.cc/en/Reference/GSM

En este caso por el consumo de esta shield, se hace necesario alimentar a Arduino mediante una fuente externa y no desde el USB ya que no es capaz de proporcionar suficiente energía. También es posible hacer llamadas de voz haciendo unas pequeñas modificaciones, añadiendo un micrófono y un altavoz.

Arduino Motor Shield

Web: http://arduino.cc/en/Main/ArduinoMotorShieldR3.

Permite manejar dos motores DC, controlando su dirección y velocidad. Está basado en un chip de doble puente H L298:

Como veremos en este curso manejaremos un motor DC con otro integrado de puente H el L293 (http://www.ti.com/lit/ds/symlink/l293.pdf), pero este shield nos facilita mucho su uso.

Este shield usa dos canales y cada canal usa 4 pines, en total nos ocupa 8 pines del Arduino

Un módulo con el mismo puente H pero sin formato shield: http://tienda.bricogeek.com/motores/285-controlador-de-motores-doble-puente-h-l298.html

Arduino 4 Relay Shield

Web: https://www.arduino.cc/en/Main/Arduino4relayShield

Este shield permite usar 4 relés para manejar cargas mayores de las que soporta Arduino. Soporta cargas de hasta 2A a 30V DC

Nuevas Shields Incorporadas Recientemente

MKR Relay Proto Shield

Web: https://www.arduino.cc/en/Main/MKRRelayProtoShield

Con este shield se pueden usar 2 relés son cualquier placa de la familia MKR

Arduino Yun Shield

Web: https://www.arduino.cc/en/Main/ArduinoYunShield

Este shield permite ampliar las capacidades del arduino YUN a cualquier Arduino, es decir, añadir un microprocesador para realizar cálculos más potentes y conexión wifi y ethernet.

Getting started: https://www.arduino.cc/en/Guide/ArduinoYunShield

MKR ETH Shield

Web: https://store.arduino.cc/mkr-eth-shield

MKR IMU Shield

Web: https://store.arduino.cc/mkr-imu-shield

MKR ENV Shield

Web: https://store.arduino.cc/mkr-env-shield

MKR Therm Shield

Web: https://store.arduino.cc/mkr-therm-shield

MKR Can Shield

Web: https://store.arduino.cc/arduino-mkr-can-shield

MKR 485 Shield

Web: https://store.arduino.cc/arduino-mkr-485-shield

MKR Mem Shield

Web: https://store.arduino.cc/arduino-mkr-mem-shield

MKR Connector Carrier Shield

Web: https://store.arduino.cc/arduino-mkr-connector-carrier

MKR RGB Shield

Web: https://store.arduino.cc/mkr-rgb-shield

Otras Shields Oficiales

Shields retiradas

Algunas shields han sido retiradas por versiones mejoradas:

Shields no oficiales

Además de las shields oficiales vistas, existen múltiples shields no oficiales de Arduino (no fabricadas por Arduino) que nos permiten ampliar las capacidades de la placa Arduino. Veamos unos ejemplos:

EmonTx Shield

Web: https://shop.openenergymonitor.com/emontx-arduino-shield-smt/

Wiki: https://wiki.openenergymonitor.org/index.php/EmonTx_Arduino_Shield

Github: https://github.com/openenergymonitor/emontx-shield

Un shield para medir corriente eléctrica bajo el proyecto open energy monitor: http://openenergymonitor.org/emon/

Posee 4 entradas para conectar 4 toroidales abiertos y una entrada para conectar el sensor de voltaje mediante un transformador AC-AC, también tiene la posibilidad de montar un transmisor RF.

Grove Shield

Web: https://www.seeedstudio.com/Base-Shield-V2-p-1378.html.

Un Shield para el sistema grove que facilita la conexión de sensores y actuadores.

Relay Shield

Web: https://www.seeedstudio.com/Relay-Shield-v3.0-p-2440.html

Wiki: http://wiki.seeed.cc/Relay_Shield_v3/

Este shield proporciona 4 relés para manejar dispositivos que no pueden controlarse directamente con las I/O de Arduino. Dispone de unos indicadores de uso de los relés.

En este caso se usan 4 pines digitales para usar cada uno de los relés.

¿Y si necesitamos más de 4 relés?

Shield Relay Driver de 8 canales

Web: http://www.freetronics.com.au/collections/shields/products/relay8-8-channel-relay-driver-shield#.VQxwlo5k6t8.

Este shield permite manejar hasta 8 relés (que no están en el shield) usando solo dos pines de I/O del Arduino. Se comunica con Arduino usando el bus I2C, de forma que apilando varias de estas shields podemos manejar 16, 24 y más relés.

Guía de uso: http://www.freetronics.com.au/pages/relay8-8-channel-relay-driver-shield-quickstart-guide#.VQyBVI5k6t8

GPS Shield

Web: http://www.adafruit.com/products/1272. Con un slot para micro SD donde guardar logs. No es compatible con Arduino Mega ni Due, RTC incluido. Conexión por puerto serie o conexión directa.

Más información en: https://learn.adafruit.com/adafruit-ultimate-gps-logger-shield

Xbee Shield

Webs:

Para comunicación inalámbrica mediante Xbee. Conexión a UART de la MCU o a cualquier otro puerto por software serial. Más información: http://www.seeedstudio.com/wiki/XBee_Shield_V2.0

TFT Shield

Web:  https://www.seeedstudio.com/28-TFT-Touch-Shield-V20-p-1286.html

Wiki: http://wiki.seeed.cc/2.8inch_TFT_Touch_Shield_v2.0/

Pantalla TFT táctil resistiva con un slot para micro SD integrado. Comunicación a Arduino a través de bus SPI.

Bluetooth Shield

Web: https://www.seeedstudio.com/Bluetooth-Shield-V2-p-2416.html

Wiki: http://wiki.seeedstudio.com/wiki/Bluetooth_Shield_V2.0

Comunicación inalámbrica por bluetooth. Conecta con la UART del Arduino o software serial con selector de puerto serie.

Se trata de un shield al que le han incorporado un módulo bluetooth HC-05: http://tienda.bricogeek.com/modulos-bluetooth/800-modulo-bluetooth-hc-05.html

Terminal Shield

Web: http://www.freetronics.com.au/collections/shields/products/terminal-shield-for-arduino#.VQxwn45k6t8.

Shield con borneros y placa de prototipado que nos permite conectar fácilmente cualquier sensor o actuador a un Arduino.

GSM shield

Web: https://www.sparkfun.com/products/13120

Este Shield usa el módulo SM5100B y es similar al shield oficial de Arduino y usa comandos AT a través del puerto serie para manejar la comunicación.

LTE Shield

Web: http://www.gemalto.com/m2m/development/cinterion-connect-shield

Brochure: http://www.gemalto.com/brochures-site/download-site/Documents/m2m-connect-shield.pdf

Tools and documentation: https://developer.gemalto.com/documentation/cinterion%C2%AE-connect-shield-tools-documentation

Uso con raspberry Pi: https://developer.gemalto.com/tutorial/using-connect-shield-raspberry-pi

Otras Shields Interesantes

Existen muchísimos shields que seguro que se adaptan a nuestro proyecto. En cada web de los fabricantes tenemos variedad donde elegir.

Un listado completo donde encontrar cualquier tipo de shield aunque no actualizado desde hace tiempo: http://shieldlist.org/

Para aprender más sobre los shields: https://learn.sparkfun.com/tutorials/arduino-shields

Breakout Boards

Además de los Shield, también tenemos disponibles módulos independientes (breakout boards) para conectar directamente a Arduino:

Y por supuesto tenemos kits de robótica:

También hay Shields para Raspberry Pi llamadas hats:

GrovePi

Y una librería en C++ para manejar las GPIO de Raspberry Pi para los que están familiarizados con Arduino: http://wiringpi.com/

Shields Wemos D1 Mini

La placa Wemos D1 Mini también usa el modelo de shields apilables, existen bastante modelos de shields disponibles.

Placas de Expansión

También hay disponibles placas de expansión de puertos para diversas placas de forma que podamos acceder más fácilmente a sus pines,

Node MCU:

Arduino Nano:

Anuncios

Hardware Arduino para la Educación

Hardware Arduino

Arduino es una plataforma para prototipado de electrónica basada en hardware y software libre y fácil de utilizar. Podemos construir circuitos electrónicos y programarlos con esta placa.

Realmente lo que estamos haciendo es programar un microcontrolador, estos dispositivos electrónicos programables nos rodean en nuestro día a día, en el coche, nuestra casa, el trabajo, etc…

Las principales características que podemos encontrar en nuestra placa de Arduino UNO son las siguientes:

  • El microcontrolador es un circuito integrado programable capaz de realizar operaciones matemáticas complejas a gran velocidad.
  • La alimentación de una placa de Arduino es mediante el puerto USB mientras se está programando. Una vez programado podemos desconectarlo del ordenador y que trabaje de forma autónoma y se alimenta Arduino mediante una fuente de alimentación o pila de 9V.
  • Tanto las entradas como las salidas dotan al sistema de información y realizan diferentes actuaciones.

Arduino contiene la siguiente distribución de pines:

  • Disponemos de 14 pines digitales que pueden ser configurados como entradas o salidas, de los cuales (serigrafiadas con el símbolo ~) pueden ser utilizados como señales digitales PWM 6 pines.
  • Igualmente disponemos de 6 pines analógicos serigrafiadas desde A0 hasta A5 para las entradas analógicas.
  • También disponemos de 3 pines GND para conectar a tierra nuestros circuitos.
  • Y por último 2 pines de alimentación de 5V y 3.3V respectivamente.

Para saber más:

Sensores

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas.

  • Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc.
  • Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad o un sensor capacitivo), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc.

Un sensor nos va a poder medir/leer las variables ambientales de nuestro entorno para poder tomar decisiones en función de los cambios en el entorno.

Ejemplos de sensores. Kits Arduino: http://www.robotshop.com/en/37-modules-sensor-kit-arduino.html

Listado de componentes: http://tienda.bricogeek.com/upload/datasheets/SEN-0060/37-en-1-especificaciones.pdf

Actuadores

Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre elemento externo. Este recibe la orden de un regulador, controlador o en nuestro caso un Arduino y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.

Existen varios tipos de actuadores como son:

  • Electrónicos
  • Hidráulicos
  • Neumáticos
  • Eléctricos
  • Motores
  • Bombas

En determinadas ocasiones, necesitamos un “driver” o manejador para poder mandar órdenes desde Arduino.

  • Recordad que los pines de Arduino solo pueden manejar un máximo de 40mA y recomendable usar 20mA de forma continua.
  • Recordar que Arduino solo puede manejar un total de 200 mA de salida. Es decir que la corriente máxima que admite Vcc y GND son 200 mA.

Un actuador nos permite interactuar con el entorno.

Periféricos

Periférico es la denominación genérica para designar al aparato o dispositivo auxiliar e independiente conectado a la unidad central de procesamiento o en este caso a Arduino. Se consideran periféricos a las unidades o dispositivos de hardware a través de los cuales Arduino se comunica con el exterior, y también a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

Ejemplos de periféricos:

  • Pantallas LCD
  • Teclados
  • Memorias externas
  • Cámaras
  • Micrófonos
  • Impresoras
  • Pantalla táctil
  • Displays numéricos
  • Zumbadores
  • Indicadores luminosos, etc…

En ocasiones para usar un periférico con Arduino, necesitamos un “driver” o manejador para poder mandar órdenes desde Arduino.

Shields Arduino

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Existen miles de shields en función de lo que necessitemos: http://shieldlist.org/

Shields Educativos

Uno de los problemas que se encuentran a la hora de impartir un curso de electrónica y programación con Arduino en los colegios es la dificultad de comprobar los montajes de los circuitos de los alumnos. Sobre todo cuando se trata de los más pequeños.

Existen shields educativos que facilitan el trabajo en el aula. Son shields que o bien permiten conectar y listo o bien tienen varios componente integrados que evitan hacer cableados y no tener que saber de electrónica.

Shield Educativo Multifunción

Shield educativo + mblock https://www.prometec.net/blog-shield-educativo-multifuncion/

Echidna

EchidnaShield es un proyecto Open Source dirigido a facilitar el aprendizaje de la programación de sistemas físicos en los últimos cursos de Primaria y en Secundaria. Con este fin se ha diseñado un escudo para Arduino, pensando en su uso con entornos visuales de programación. El escudo está apoyado en una guía educativa con propuestas de actividades para el aula.

Toda la información en: http://echidna.es/

BQ Zum Kit

Web: https://www.bq.com/es/zum-kit

Grove Starter Kit

Web: https://www.seeedstudio.com/Grove-Starter-Kit-for-Arduino-p-1855.html

Grove System: http://www.seeedstudio.com/wiki/GROVE_System

Wiki: http://www.seeedstudio.com/wiki/Grove_-_Starter_Kit_v3

Kit conectar y listo: http://www.electan.com/arduino-shield-kit-modulos-conectar-listo-p-2987.html  

Makey Makey

MaKey MaKey es una placa de circuito impreso con un microcontrolador ATMega32u4 que ejecuta el firmware de Arduino Leonardo. Utiliza el protocolo de dispositivos de interfaz humana (HID) para comunicarse con el ordenador, y puede enviar pulsaciones de teclas, clics del mouse y movimientos. Para detectar un circuito cerrado en los pines de entrada digital, usa switches de alta resistencia para que sea posible cerrar un interruptor incluso a través de materiales como la piel, hojas y play-doh. Usa una resistencia de pull-up de 22 mega ohms. Esta técnica atrae el ruido en la entrada, pero usa promediador para reducir el ruido mediante software, ahorrando dinero en el filtrado por hardware. Hay seis entradas en la parte frontal de la placa, que se pueden unir a través de conectores tipo cocodrilo o cualquier otro método que se te ocurra. Hay otras 12 entradas en la parte posterior, 6 para las teclas del teclado y 6 para el movimiento del mouse, a las que se puede acceder usando jumpers, clips o conectores de tipo cocodrilo de forma creativa alrededor de los conectores.

Más información:

Avanzado de Makey Makey

Firmware de Makey Makey: https://github.com/sparkfun/MaKeyMaKey/tree/master/firmware/Arduino/makey_makey

Repositorio Makey Makey: https://github.com/sparkfun/MaKeyMaKey

Web donde comprar: https://www.ro-botica.com/

Picuino

Picuino es una plataforma de hardware y software que facilita el desarrollo sencillo de proyectos interactivos.

Picuino: http://www.picuino.com/

NanoPlayBoard

NanoPlayBoard es un Shield educacional para Arduino Nano hecha en Almería.

Web del proyecto: http://nanoplayboard.org/

NanoPlayBoard tiene una librería ya configurada en la que está todo el código necesario para llevar a cabo esos experimentos básicos.

Una placa open sourece con muchas posibilidades:

littleBits

littleBits es una empresa con sede en la ciudad de Nueva York que hace una biblioteca de código abierto de electrónica modular, que consiste en juntar piezas con pequeños imanes para la creación de prototipos. El objetivo de la compañía es democratizar el hardware de la misma forma que el software y la impresión se han democratizado. La misión de littleBits es “poner el poder de la electrónica en manos de todos y analizar tecnologías complejas para que cualquiera pueda construir, crear prototipos e inventar”.

El kit de codificación little littlebits Arduino permite a los usuarios comenzar a crear inventos que se comunican con el software (Processing, MaxMSP, etc.), con el apoyo de instrucciones paso a paso, recursos útiles en línea y 8 bocetos de muestra (código prefabricado) incluido. Aprende las habilidades del futuro: codificación, ingeniería y creatividad.

Web: https://www.littlebits.com/

Shields Arduino

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Las shields se pueden comunicar con el arduino bien por algunos de los pines digitales o analógicos o bien por algún bus como el SPI, I2C o puerto serie, así como usar algunos pines como interrupción. Además estas shields se alimenta generalmente a través del Arduino mediante los pines de 5V y GND.

En muchos casos nos encontraremos que los shields vienen sin soldar las patillas o en algunos casos sin algunos componentes soldados.

Cada Shield de Arduino debe tener el mismo factor de forma que el estándar de Arduino con un espaciado de pines concreto para que solo haya una forma posible de encajarlo.

Debemos tener en cuenta que cuando instalemos un shield, habrá que leer su documentación que nos dirá si inhabilita algunas de los pines I/O o si usa un bus y que requisitos tiene para su utilización. Generalmente las shields vienen con un ejemplo o una librería para su uso.

En algunos casos los shiels pueden tener el pineado que no permite apilar más.

Todas las shields de Arduino pueden verse en:

Ethernet Shield V1

Web: https://www.arduino.cc/en/Main/ArduinoEthernetShieldV1

Esta shield ha sido retirada en sustitución de la Ethernet Shield V2 https://www.arduino.cc/en/Main/ArduinoEthernetShield

Este Shield es el usado en el curso.

La placa Arduino se comunica con el módulo W5100 y la micro-SD utilizando el bus SPI (mediante el conector ICSP). Esto se encuentra en los pines digitales 11, 12 y 13 en el modelo UNO y en los pines 50, 51 y 52 del modelo MEGA. En ambas placas, el pin 10 es utilizado para seleccionar el W5100 y el pin 4 para la micro-SD. Estos pines no pueden ser utilizados para otros fines mientras la Ethernet Shield esté conectada. El en MEGA, el pin SS (53) no es utilizado pero debe dejarse como salida para que el bus SPI funcione correctamente.

Ethernet Shield

Web: https://www.arduino.cc/en/Main/ArduinoEthernetShield

Se trata de una versión mejorada del Ethernet Shield V1 con el chip ethernet W5500 en lugar del W5100. Aporta mejoras a la versión 1 y se usa con la librería ethernet2 en lugar de la librería ethernet. https://www.arduino.cc/en/Reference/Ethernet

Chip W5500: http://wizwiki.net/wiki/lib/exe/fetch.php?media=products:w5500:w5500_ds_v106e_141230.pdf

Arduino Wifi Shield

Web: http://arduino.cc/en/Main/ArduinoWiFiShield

Permite conectar un Arduino a Internet mediante Wifi y hace uso de la librería WiFi Library http://arduino.cc/en/Reference/WiFi. También dispone de un slot para una tarjeta micro SD.

Este shield se comunica con Arduino a través del bus SPI mediante los pines ICSP y usa los pines 4 y 10 al igual que la Shield Ethernet. También hace uso del pin 7 que no puedes ser usado.

Debe tenerse en cuenta que dado que la tarjeta SD y la wifi usan el mismo bus SPI, no pueden trabajar simultáneamente, lo que es un punto importante durante la programación si usamos ambos periféricos. Esta tarjeta también dispone de unos interfaces en placa para actualizaciones de firmware y diagnósticos.

Este shield ya está descatalogado y ha sido sustituido por el Arduino WiFi Shield 101

Arduino WiFi Shield 101

Web: https://www.arduino.cc/en/Main/ArduinoWiFiShield101

Este nuevo shield es una mejora de la anterior wifi shield desarrollada junto con Atmel que usa el módulo WINC1500 y también añade funciones de cifrado hardware gracias al chip de cifrado ATECC508A diseñado para el mercado de IoT. Los pines 5 y 7 son usados por este shield.

Usa una nueva librería llamada WiFi101 https://www.arduino.cc/en/Reference/WiFi101 que también usan otros Arduinos con wifi integrado como el MKR1000. Esta librería es muy compleja y ocupa más del 60% de la memoria disponible en el Arduino UNO, dejando poco espacio para los sketches. Si se van a realizar programas complejos, este shield es recomendable usarlo con Arduino Zero, 101 o Mega.

Arduino GSM Shield V2

Web: http://arduino.cc/en/Main/ArduinoGSMShield

Esta placa sustituye a la GSM Shield V1: https://www.arduino.cc/en/Main.ArduinoGSMShieldV1

Conecta Arduino a Internet mediante GPRS, usando una tarjeta SIM. También permite enviar y recibir mensajes y llamadas de voz (SMSs)

Telefónica presentó la nueva versión del proyecto Arduino GSM/GPRS Shield, un dispositivo que incorpora conexión GPRS/GSM a una placa base de hardware libre, dando como resultado un dispositivo de bajo coste conectado gracias a la tecnología machine to machine (M2M) de Telefónica. ¿El fin? Abrir nuevas posibilidades para que el llamado internet de las cosas pueda prosperar de forma sencilla y económica con la colaboración de Arduino.

Como cualquier otro elemento de Arduino, está disponible la documentación de HW y SW y es open source. Usa los pines 2 y 3 (software serial) y el pin 7 (reset), pero hay una serie de condicionantes para su uso con los Arduinos Mega, Yun y Leonardo debido a que los pines que se usan para comunicar deben tener implementada interrupción en el pin 2.

Para su uso es necesaria la librería GSM Library: http://arduino.cc/en/Reference/GSM

En este caso por el consumo de esta shield, se hace necesario alimentar a Arduino mediante una fuente externa y no desde el USB ya que no es capaz de proporcionar suficiente energía. También es posible hacer llamadas de voz haciendo unas pequeñas modificaciones, añadiendo un micrófono y un altavoz.

Arduino Motor Shield

Web: http://arduino.cc/en/Main/ArduinoMotorShieldR3.

Permite manejar dos motores DC, controlando su dirección y velocidad. Está basado en un chip de doble puente H L298:

Como veremos en este curso manejaremos un motor DC con otro integrado de puente H el L293 (http://www.ti.com/lit/ds/symlink/l293.pdf), pero este shield nos facilita mucho su uso.

Este shield usa dos canales y cada canal usa 4 pines, en total nos ocupa 8 pines del Arduino

Un módulo con el mismo puente H pero sin formato shield: http://tienda.bricogeek.com/motores/285-controlador-de-motores-doble-puente-h-l298.html

Arduino 4 Relay Shield

Web: https://www.arduino.cc/en/Main/Arduino4relayShield

Este shield permite usar 4 relés para manejar cargas mayores de las que soporta Arduino. Soporta cargas de hasta 2A a 30V DC

Nuevas Shields Incorporadas Recientemente

MKR Relay Proto Shield

Web: https://www.arduino.cc/en/Main/MKRRelayProtoShield

Con este shield se pueden usar 2 relés son cualquier placa de la familia MKR

Arduino Yun Shield

Web: https://www.arduino.cc/en/Main/ArduinoYunShield

Este shield permite ampliar las capacidades del arduino YUN a cualquier Arduino, es decir, añadir un microprocesador para realizar cálculos más potentes y conexión wifi y ethernet.

Getting started: https://www.arduino.cc/en/Guide/ArduinoYunShield

Otras Shields Oficiales

Otras Shields de Arduino.org

Arduino.org ha lanzado otras shields que no han sido oficialmente incorporadas por arduino.cc

Shields retiradas

Algunas shields han sido retiradas por versiones mejoradas:

Shields no oficiales

Además de las shields oficiales vistas, existen múltiples shields no oficiales de Arduino (no fabricadas por Arduino) que nos permiten ampliar las capacidades de la placa Arduino. Veamos unos ejemplos:

EmonTx Shield

Web: https://shop.openenergymonitor.com/emontx-arduino-shield-smt/

Wiki: https://wiki.openenergymonitor.org/index.php/EmonTx_Arduino_Shield

Github: https://github.com/openenergymonitor/emontx-shield

Un shield para medir corriente eléctrica bajo el proyecto open energy monitor: http://openenergymonitor.org/emon/

Posee 4 entradas para conectar 4 toroidales abiertos y una entrada para conectar el sensor de voltaje mediante un transformador AC-AC, también tiene la posibilidad de montar un transmisor RF.

Grove Shield

Web: https://www.seeedstudio.com/Base-Shield-V2-p-1378.html.

Un Shield para el sistema grove que facilita la conexión de sensores y actuadores.

Relay Shield

Web: https://www.seeedstudio.com/Relay-Shield-v3.0-p-2440.html

Wiki: http://wiki.seeed.cc/Relay_Shield_v3/

Este shield proporciona 4 relés para manejar dispositivos que no pueden controlarse directamente con las I/O de Arduino. Dispone de unos indicadores de uso de los relés.

En este caso se usan 4 pines digitales para usar cada uno de los relés.

¿Y si necesitamos más de 4 relés?

Shield Relay Driver de 8 canales

Web: http://www.freetronics.com.au/collections/shields/products/relay8-8-channel-relay-driver-shield#.VQxwlo5k6t8.

Este shield permite manejar hasta 8 relés (que no están en el shield) usando solo dos pines de I/O del Arduino. Se comunica con Arduino usando el bus I2C, de forma que apilando varias de estas shields podemos manejar 16, 24 y más relés.

Guía de uso: http://www.freetronics.com.au/pages/relay8-8-channel-relay-driver-shield-quickstart-guide#.VQyBVI5k6t8

GPS Shield

Web: http://www.adafruit.com/products/1272. Con un slot para micro SD donde guardar logs. No es compatible con Arduino Mega ni Due, RTC incluido. Conexión por puerto serie o conexión directa.

Más información en: https://learn.adafruit.com/adafruit-ultimate-gps-logger-shield

Xbee Shield

Webs:

Para comunicación inalámbrica mediante Xbee. Conexión a UART de la MCU o a cualquier otro puerto por software serial. Más información: http://www.seeedstudio.com/wiki/XBee_Shield_V2.0

TFT Shield

Web:  https://www.seeedstudio.com/28-TFT-Touch-Shield-V20-p-1286.html

Wiki: http://wiki.seeed.cc/2.8inch_TFT_Touch_Shield_v2.0/

Pantalla TFT táctil resistiva con un slot para micro SD integrado. Comunicación a Arduino a través de bus SPI.

Bluetooth Shield

Web: https://www.seeedstudio.com/Bluetooth-Shield-V2-p-2416.html

Wiki: http://wiki.seeedstudio.com/wiki/Bluetooth_Shield_V2.0

Comunicación inalámbrica por bluetooth. Conecta con la UART del Arduino o software serial con selector de puerto serie.

Se trata de un shield al que le han incorporado un módulo bluetooth HC-05: http://tienda.bricogeek.com/modulos-bluetooth/800-modulo-bluetooth-hc-05.html

Terminal Shield

Web: http://www.freetronics.com.au/collections/shields/products/terminal-shield-for-arduino#.VQxwn45k6t8.

Shield con borneros y placa de prototipado que nos permite conectar fácilmente cualquier sensor o actuador a un Arduino.

GSM shield

Web: https://www.sparkfun.com/products/13120

Este Shield usa el módulo SM5100B y es similar al shield oficial de Arduino y usa comandos AT a través del puerto serie para manejar la comunicación.

LTE Shield

Web: http://www.gemalto.com/m2m/development/cinterion-connect-shield

Brochure: http://www.gemalto.com/brochures-site/download-site/Documents/m2m-connect-shield.pdf

Tools and documentation: https://developer.gemalto.com/documentation/cinterion%C2%AE-connect-shield-tools-documentation

Uso con raspberry Pi: https://developer.gemalto.com/tutorial/using-connect-shield-raspberry-pi

Otras Shields Interesantes

Existen muchísimos shields que seguro que se adaptan a nuestro proyecto. En cada web de los fabricantes tenemos variedad donde elegir.

Un listado completo donde encontrar cualquier tipo de shield: http://shieldlist.org/

Para aprender más sobre los shields: https://learn.sparkfun.com/tutorials/arduino-shields

Breakout Boards

Además de los Shield, también tenemos disponibles módulos independientes (breakout boards) para conectar directamente a Arduino:

Y por supuesto tenemos kits de robótica:

También hay Shields para Raspberry Pi llamadas hats:

GrovePi

Y una librería en C++ para manejar las GPIO de Raspberry Pi para los que están familiarizados con Arduino: http://wiringpi.com/

Qué es Arduino

Esta conferencia sobre IoT con Arduino fue expuesta el 1 de abril de 2017 con motivo del Arduino Day. Puedes ver el video de la conferencia completa en http://www.innovarioja.tv/index.php/video/ver/1661


Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

Hardware Libre: http://es.wikipedia.org/wiki/Hardware_libre

Definición de Arduino en la web oficial: https://www.arduino.cc/en/Guide/Introduction

Otras definiciones de Arduino:

Arduino es una plataforma abierta que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen sobre los sensores y escriben sobre los actuadores.

En palabras de David Cuartielles: “Actualmente todo lo que nos rodea en la vida es digital (entendido como hacer operaciones matemáticas complejas y comunicar con otros dispositivos), cualquier cosa lleva un microchip, desde el microondas a un coche. Arduino lleva uno de esos microchips y te permite aprender a manejar como funciona el mundo en el que vivimos hoy en día y cómo interactúa el hombre con el mundo digital. Arduino es la puerta hacia tomar control de cómo funcionan las cosas actualmente y en el futuro. Así que encender el ordenador y empezar a programar.

El HW Arduino:

Por otro lado Arduino nos proporciona un  software consistente en un entorno de desarrollo (IDE) que implementa el lenguaje de programación de arduino y el bootloader ejecutado en la placa. La principal característica del software de programación y del lenguaje de programación es su sencillez y facilidad de uso.

El software hecho para Arduino es portable, es decir, el mismo firmware que hemos hecho para un Arduino/Microcontrolador, sirve para otras placas Arduino u otras placas compatibles Arduino como el ESP8266.

Hay otro factor importante en el éxito de Arduino, es la comunidad que apoya todo este desarrollo, comparte conocimiento, elabora librerías para facilitar el uso de Arduino y publica sus proyectos para que puedan ser replicados, mejorados o ser base para otro proyecto relacionado.

La expresión local de la comunidad Arduino son los makerspaces como el UR-maker de la Universidad de La Rioja: http://www.unirioja.es/urmaker/

Para recibir información de los eventos de la comunidad maker de Logroño inscribirse en la lista de correo noticias@aprendiendoarduino.com o mandar un correo a aprendiendoarduino@gmail.com para inscribirse.

En resumen:

Arduino = HW + SW + Comunidad

¿Para qué sirve Arduino? Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado, y convertir la información en una acción como puede ser encender una luz y pasar por un display lo tecleado.

Librerías Arduino

Las librerías son trozos de código hechos por terceros que usamos en nuestro sketch. Esto nos facilita mucho la programación y hace que nuestro programa sea más sencillo de hacer y de entender. En este curso no veremos como hacer o modificar una librería pero en este curso debemos ser capaces de buscar una librería, instalarla, aprender a usar cualquier librería y usarla en un sketch.

Las librerías son colecciones de código que facilitan la interconexión de sensores, pantallas, módulos electrónicos, etc. El entorno de arduino ya incluye algunas librerías de manera que facilita, por ejemplo, mostrar texto en pantallas LCD.

Existen infinidad de librerías desarrolladas por terceros en internet con sus correspondientes forks, que nos ayudarán a conectar prácticamente cualquier dispositivo a los Arduinos de forma muy sencilla.

En este momento hay 883 librerías oficiales de Arduino, listado: http://www.arduinolibraries.info/ y cada semana aumenta.

Programación Arduino

El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es una adaptación que proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC (compilador de C y C++) en los microcontroladores AVR de Atmel y muchas utilidades específicas para las MCU AVR de Atmel como avrdude: https://learn.sparkfun.com/tutorials/pocket-avr-programmer-hookup-guide/using-avrdude

Aunque se hable de que hay un lenguaje propio de programación de Arduino, no es cierto, la programación se hace en C++ pero Arduino ofrece unas librerías o core que facilitan la programación de los pines de entrada y salida y de los puertos de comunicación, así como otras librerías para operaciones específicas. El propio IDE ya incluye estas librerías de forma automática y no es necesario declararlas expresamente. Otra diferencia frente a C++ standard es la estructuctura del programa.

Toda la información para programar Arduino se encuentra en el reference de la web de Arduino: https://www.arduino.cc/en/Reference/HomePage

Aplicaciones Arduino

Desde los inicios de Arduino y el HW Open Source, la industria encontró una forma sencilla y barata de implementar el Internet de las cosas y la Industria 4.0. Con estas herramientas es posible realizar tareas como:

  • Machinery automation.
  • Installation Control. (Thermal, Climate conditioning, Water treatment, Chemical products, Food, etc.).
  • Industrial monitoring.
  • Data acquisition.
  • etc.

Hardware Arduino

Los Arduino y en general los microcontroladores tienen puertos de entrada y salida y puertos de comunicación. En Arduino podemos acceder a esos puertos a través de los pines.

Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:

  • SRAM: donde Arduino crea y manipula las variables cuando se ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
  • EEPROM:  memoria no volátil para mantener datos después de un reset o apagado. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
  • Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias grandes). Donde se guarda el sketch.

Veamos a fondo la placa Arduino Uno:

Especificaciones detalladas de Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno

Microcontroller & USB-to-serial converter ATmega328P & Atmega16U2
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz

Aspectos más destacados de Arduino UNO.

  • No necesita de un cable FTDI para conectarse al MCU, en su lugar usa una MCU especialmente programado para trabajar como conversor de USB a serie.
  • Alimentación: vía USB, batería o adaptador AC/DC a 5V, seleccionado automáticamente. Arduino puede trabajar entre 6 y 20V, pero es recomendado trabajar entre 7 y 12V por las características del regulador de tensión.
  • Puerto Serie en los pines 0 y 1.
  • Interrupciones externas en los pines 2 y 3.
  • Built-in LED en el pin 13.
  • Bus TWI o I2C en los pines A4 y A5 etiquetados como SDA y SCL
  • El MCU ATmega328P tiene un bootloader precargado que permite cargar en la memoria flash el nuevo programa o sketch sin necesidad de un HW externo.
  • Arduino Uno dispone de un fusible autoreseteable que protege el puerto USB de nuestro ordenador de cortocircuitos y sobrecorrientes. Si se detectan más de 500mA salta la protección.

Placas Arduino

Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras necesidades.

Arduino Uno

Web: http://arduino.cc/en/Main/ArduinoBoardUno

Es la placa estándar y posiblemente la más conocida y documentada. Salió a la luz en septiembre de 2010 sustituyendo su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de utilizar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Diecimila. Viene con un Atmega328 con 32Kbytes de ROM para el programa.

Este es el Arduino que vamos a usar en el curso.

Esquematico: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Microcontrolador: http://www.atmel.com/devices/atmega328p.aspx

Planos del Arduino UNO: https://www.arduino.cc/en/Main/ArduinoBoardUno#documentation

Arduino Mega

Web: http://arduino.cc/en/Main/ArduinoBoardMega2560

Es con mucha diferencia el más potente y el que más pines i/o tiene, apto para trabajos ya algo más complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega2560 con más memoria para el programa, más RAM y más pines que el resto de los modelos.

Esquematico: http://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Microcontrolador: http://www.atmel.com/devices/atmega2560.aspx

Planos del Arduino MEGA: http://www.arduino.cc/en/Main/ArduinoBoardMega2560

Arduino Leonardo

Web: http://arduino.cc/en/Main/ArduinoBoardLeonardo

La diferencia de este arduino con el resto es que trae un único MCU ATmega32u4 que tiene integrado la comunicación USB, lo que elimina la necesidad de un segundo procesador. Esto tiene otras implicaciones en el compartimento del arduino al conectarlo al ordenador, lo que no lo hace apto para iniciarse con él.

Microcontrolador: http://www.atmel.com/devices/atmega32u4.aspx

Arduino Micro

Web: http://arduino.cc/en/Main/ArduinoBoardMicro

También basado en el ATmega32u4 pero mucho más compacto.

Ejemplo de placa para uso de Arduino pequeños: https://spiercetech.com/shop/home/17-arduino-nano-30-controller-terminal-breakout-board.html

Arduino 101

Web: https://www.arduino.cc/en/Main/ArduinoBoard101 es el sucesor del Arduino UNO con procesador Intel Curie Quark de 32 bit diseñado para ofrecer el mínimo consumo de energía, 384 KB de memoria flash, 80 KB de SRAM, un sensor DSP integrado, bluetooth de baja energía, acelerómetro y giroscopio de 6 ejes.

Genuino MKR1000

Web: https://www.arduino.cc/en/Main/ArduinoMKR1000 version para IoT con procesador Atmel ARM Cortex M0+ de 32bits ATSAMW25 que es el mismo procesador que Genuino Zero pero con wifi integrado, chip de cifrado y antena integrada.

Un listado con todos los Arduinos puede verse en: https://aprendiendoarduino.wordpress.com/2016/09/25/novedades-arduino/

Shields Arduino

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Las shields se pueden comunicar con el arduino bien por algunos de los pines digitales o analógicos o bien por algún bus como el SPI, I2C o puerto serie, así como usar algunos pines como interrupción. Además estas shields se alimenta generalmente a través del Arduino mediante los pines de 5V y GND.

En muchos casos nos encontraremos que los shields vienen sin soldar las patillas o en algunos casos sin algunos componentes soldados.

Cada Shield de Arduino debe tener el mismo factor de forma que el estándar de Arduino con un espaciado de pines concreto para que solo haya una forma posible de encajarlo.

Debemos tener en cuenta que cuando instalemos un shield, habrá que leer su documentación que nos dirá si inhabilita algunas de los pines I/O o si usa un bus y que requisitos tiene para su utilización. Generalmente las shields vienen con un ejemplo o una librería para su uso.

Ethernet Shield

Web: http://arduino.cc/en/Main/ArduinoEthernetShield

La placa Arduino se comunica con el módulo W5100 y la micro-SD utilizando el bus SPI (mediante el conector ICSP). Esto se encuentra en los pines digitales 11, 12 y 13 en el modelo UNO y en los pines 50, 51 y 52 del modelo MEGA. En ambas placas, el pin 10 es utilizado para seleccionar el W5100 y el pin 4 para la micro-SD. Estos pines no pueden ser utilizados para otros fines mientras la Ethernet Shield esté conectada. El en MEGA, el pin SS (53) no es utilizado pero debe dejarse como salida para que el bus SPI funcione correctamente.

Para su funcionamiento usa la librería Ethernet: https://www.arduino.cc/en/Reference/Ethernet

Arduino WiFi Shield 101

Web: https://www.arduino.cc/en/Main/ArduinoWiFiShield101

Este nuevo shield es una mejora de la anterior wifi shield desarrollada junto con Atmel que usa el módulo WINC1500 y también añade funciones de cifrado hardware gracias al chip de cifrado ATECC508A diseñado para el mercado de IoT. Los pines 5 y 7 son usados por este shield.

Usa una nueva librería llamada WiFi101 https://www.arduino.cc/en/Reference/WiFi101 que también usan otros Arduinos con wifi integrado como el MKR1000. Esta librería es muy compleja y ocupa más del 60% de la memoria disponible en el Arduino UNO, dejando poco espacio para los sketches. Si se van a realizar programas complejos, este shield es recomendable usarlo con Arduino Zero, 101 o Mega.

Arduino Motor Shield

Web: http://arduino.cc/en/Main/ArduinoMotorShieldR3. Permite manejar dos motores DC, controlando su dirección y velocidad. Está basado en un chip de doble puente H L298:

Este shield usa dos canales y cada canal usa 4 pines, en total nos ocupa 8 pines del Arduino

Un módulo con el mismo puente H pero sin formato shield: http://tienda.bricogeek.com/motores/285-controlador-de-motores-doble-puente-h-l298.html

Nuevas Shields Oficiales

Arduino.org ha lanzado otras shields y nuevas versiones de las ethernet y GSM. Todas las shields de arduino.org en http://www.arduino.org/products/shields

Grove Shield

Web: http://www.seeedstudio.com/depot/Grove-Base-Shield-p-754.html. Un Shield para el sistema grove que facilita la conexión de sensores y actuadores.

Relay Shield

Web: http://www.seeedstudio.com/depot/relay-shield-v20-p-1376.html?cPath=132_134. Este shield proporciona 4 relés para manejar dispositivos que no pueden controlarse directamente con las I/O de Arduino. Dispone de unos indicadores de uso de los relés.

En este caso se usan 4 pines digitales para usar cada uno de los relés.

Existen muchísimos shields que seguro que se adaptan a nuestro proyecto. En cada web de los fabricantes tenemos variedad donde elegir.

Un listado completo donde encontrar cualquier tipo de shield: http://shieldlist.org/

Breakout Boards

Además de los Shield, también tenemos disponibles módulos independientes (breakout boards) para conectar directamente a Arduino: