Programar fácil con Arduino

Programar fácil con Arduino, entiende cómo funciona el mundo.

  • Blog
  • ¿Quién soy?
  • Podcast
  • Curso Arduino [GRATIS]
  • Curso Domótica [GRATIS]
  • Acceder
Usted está aquí: Inicio / Blog / Arduino / EchidnaShield el Arduino Shield para la educación

EchidnaShield el Arduino Shield para la educación

Luis del Valle Hernández

Si eres nuevo en Arduino o estás aprendiendo, tarde o temprano te encontrarás el término Arduino Shield.

En este artículo y tutorial encontrarás todas las claves para saber qué es un Arduino Shield, por qué son útiles y descubrirás EchidnaShield, un Arduino Shield para educación.

Así que vamos a empezar este tutorial y no te olvides también de escuchar el podcast asociado donde entrevisto a los creadores de EchidnaShield, el Arduino Shield para educación.

arduino shield echidnashield

Indice de contenidos

  • 1 ¿Qué es un Arduino Shield?
  • 2 ¿Qué es EchidnaShield?
  • 3 ¿Quién está detrás EchidnaShield?
  • 4 Caso práctico con el shield de Arduino EchidnaShield
  • 5 Prueba final Arduino Shield Echidna y app Blynk

¿Qué es un Arduino Shield?

Arduino por sí solo es bastante interesante, puedes hacer muchas cosas solo con un Arduino.

Pero cuando quieres comenzar a agregar otro tipo de tecnologías como bluetooth, WiFi, RF, controladores de motor, medir parámetros medioambientales, etc… puede ser bastante complicado.

A la complejidad de la programación se añade la complejidad en la electrónica.

En muchas ocasiones puedes sentirte abrumado por tantas cosas que hay que aprender.

Con respecto a la programación, se suelen utilizar librerías que aportan funcionalidades extra y además, nos ahorran muchas horas escribiendo código.

A nivel de hardware existe el Arduino Shield. Es como una librería pero en hardware.

arduino shield

En español se puede traducir como escudo de Arduino aunque suena bastante mal. Prefiero referirme a este componente como Arduino Shield.

Un Arduino Shield ahorra mucho tiempo conectando y desconectando componentes de la placa. Sobre todo lo veo útil cuando estás aprendiendo programación.

Por ejemplo, si quieres hacer un ejercicio con las sentencias condicionales if de Arduino y unos LEDS, puede que tardes más tiempo en buscar los componentes (LEDs y resistencias) que en programar todas las instrucciones.

En este caso, un Arduino Shield como EchidnaShield puede ser muy útil.

Asociado a cada Arduino Shield suele venir una librería de Arduino. Esto te permite acceder a las funciones de hardware fácilmente.

Puedes ver un ejemplo con el Arduino Shield Adafruit Motor Shield.

Hay un Arduino Shield para todo tipo de cosas: Shield con pantalla LCD, Shield de matrices de LED, Shield Ethernet para conectarse a Internet, Shield WiFi, Shield con relés vamos, prácticamente para cualquier cosa.

Incluso tú mismo puedes fabricarte tu propio Arduino Shield. Tampoco tienes que ser un experto en electrónica pero si que conocer la materia.

Más adelante veremos el ejemplo de EchidnaShield.

Muchos de los Arduino Shield son apilables es decir, puedes poner uno encima del otro. Esto aumenta las funcionalidades de la placa de Arduino.

arduino shield apilados

Por ejemplo, si pones un Arduino Shield para controlar motores y otro ethernet, podrías controlar los motores desde una página web.

Pero ¿todos los Arduino Shield son compatibles con todas las placas de Arduino?

Factor forma de Arduino

El factor forma de un Arduino Shield viene dado por la placa electrónica Arduino.

Cada modelo tiene su propio factor forma. Y no es más que cómo están distribuidos los pines dentro de la placa.

Por ejemplo, el Arduino UNO tiene los pines digitales en una parte de la placa junto con los pines GND, AREF, SCL y SDA.

En el otro lado tiene los pines analógicos y los pines de alimentación.

A parte tiene los pines ICSP (del inglés In Chip Serial Programmer) que también forman parte del factor forma aunque muchos Arduino Shield no lo utilizan.

arduino factor forma

Por otro lado, el factor forma de un Arduino MEGA por ejemplo, es totalmente diferente. Son placas electrónicas que aunque se parecen, tienen capacidades muy distintas.

Lo mismo ocurre con las placas Arduino MKR o las placas basadas en el ESP8266. Cada una tiene su factor forma.

Normalmente cuando se habla de Arduino Shield, se refiere a la placa de Arduino UNO.

Un Arduino Shield tiene que tener el mismo factor forma que el Arduino donde se va a acoplar es decir, que coincidan perfectamente los pines.

Algunos Arduino Shield utilizan todos los pines de Arduino y otros solo utilizan unos pocos pines. Eso dependerá de cada caso concreto.

Pero todos el Arduino Shield tiene que encajar perfectamente en los pines del Arduino UNO.

La comunicación entre Arduino y el Arduino Shield puede ser por I2C, SPI, Serial, interrupciones o entradas analógicas.

Como he dicho antes, hay cientos de Arduino Shield y es imposible verlos todos. Hoy me quiero centrar en EchidnaShield, el Arduino Shield para la educación.

¿Qué es EchidnaShield?

EchidnaShield es un Arduino Shield destinado a la educación en especial a Primaria y Secundaria.

Cabe destacar que es un proyecto Open Source lo que quiere decir que está abierto a todo el mundo tanto para utilizarlo como para colaborar. Estoy seguro que los responsables estarán encantados de recibir cualquier ayuda :)

La idea detrás de EchidnaShield (como ocurre con casi todos los Arduino Shield) es facilitar la tarea de aprender a programar en los últimos cursos de Primaria y Secundaria.

echidnashield

Al estar todo integrado dentro del Arduino Shield, evita que los alumnos tengan que estar perdiendo conectando una y otra vez los mismos circuitos y a su vez, elimina el foco de errores que puede llegar a ser esto.

Por lo tanto, se consigue incrementar el tiempo dedicado al aprendizaje de la programación y a conocer cómo funcionan los componentes.

Está muy orientado a la utilización de la programación visual como Scratch o Snap!. Sin embargo, puede ser programado con el código nativo de Arduino C/C++.

Tiene diferentes sensores y actuadores. A continuación tienes la lista de componentes:

  • Zumbador o Buzzer
  • Joystick
  • Control volumen
  • Jack Audio
  • LED RGB
  • Sensor Luz
  • Conectores para módulo Bluetooth
  • 2 x pulsadores
  • LED Rojo
  • LED Naranja
  • LED Verde
  • Acelerómetro

El EchidnaShield puede funcionar de dos formas diferentes:

  • Modo sensores: funciona como un Arduino Shield normal. Se puede programar con C/C++ o con un lenguaje visual.
  • Modo Makey Makey: en este caso los sensores se convierten en conexiones tipo Makey Makey.

¿Qué es Makey Makey?

Para activar un modo u otro hay un selector que si lo pones en la izquierda se activa el modo sensores y en la derecha se activa el modo Makey Makey.

echidnashield selector modo

A continuación, vamos a ver los diferentes sensores para cada modo de funcionamiento.

Modo sensores

En el modo sensores se pueden utilizar diferentes sensores y actuadores. Cada uno de ellos está conectado a sus pines correspondientes.

echidnashield modo sensores

Estas son las entradas y salidas disponibles en este modo:

ComponentePinTipo
Zumbador o BuzzerD10Salida
Joystick (x)A0Entrada
Joystick (y)A1Entrada
Control volumenD10Salida
LibreD4Entrada/Salida
LibreD7Entrada/Salida
LibreD8Entrada/Salida
LibreA4Entrada
Jack AudioD10Salida
LED RGB (R)D9Salida
LED RGB (G)D5Salida
LED RGB (B) D6Salida
Sensor luzA5Entrada
PulsadorD2Entrada
PulsadorD3Entrada
LED RojoD13Salida
LED NaranjaD12Salida
LED VerdeD11Salida
Acelerómetro (x)D2Entrada
Acelerómetro (y)D3Entrada

Modo Makey Makey

En el modo Makey Makey están activas algunas entradas y salidas y además, las entradas específicas de Makey Makey.

echidnashield modo makey makey

Las conexiones Makey Makey que se pueden utilizar son las siguientes.

echidnashield conexiones makey makey

A parte también puedes utilizar las siguientes entradas y salidas:

ComponentePinTipo
Zumbador o BuzzerD10Salida
Control volumenD10Salida
LibreD4Entrada/Salida
LibreD7Entrada/Salida
LibreD8Entrada/Salida
Jack AudioD10Salida
LED RGB (R)D6Salida
LED RGB (G)D5Salida
LED RGB (B)D6Salida
LED RojoD13Salida
LED NaranjaD12Salida
LED VerdeD11Salida

¿Quién está detrás EchidnaShield?

equipo echidnashield

Seguro que te acuerdas de algún profesor de tu infancia. Ese que hacía que las horas pasaran volando y que cuando te querías dar cuenta, sonaba la sirena para el recreo.

Recuerdo que mi padre siempre me contaba la misma historia. Su profesor favorito era Don Anselmo al que apodaban el francotirador.

No se lo llamaban por haber estado en alguna guerra o pertenecer a los cuerpos de élite del ejército.

El apodo viene por la puntería que tenía al tirar el borrador de la pizarra a todo aquel que pillara distraído o hablando.

Los profesores que hay detrás del EchidnaShield no serán recordados por su puntería o por sus destrezas con el borrador o la tiza. Pero estoy seguro que muchos alumnos suyos los recordarán como su profesor favorito.

No cabe duda que detrás de este Arduino Shield hay mucho trabajo y horas invertidas.

Por eso quiero dar las gracias a Jorge Lobo, Xabier Rosas y José Pujol, 3 profesores que me hubiera encantado tener en el colegio o instituto.

Sin ellos este proyecto no hubiera visto la luz.

Jorge Lobo

Profesor pionero en la introducción de robótica educativa e impresión 3D en primaria.

@lobo_tic

Xabier Rosas

Profesor de Ciclos Formativos de electrónica, desarrollador del proyecto Escornabot.

@xdesig

José Pujol

Profesor de Tecnología. Trabaja con Programación y Robótica en Secundaria. Desarrollador de Kiwibot.

@jo_pujol

Caso práctico con el shield de Arduino EchidnaShield

En esta última sección voy a mostrar un caso práctico con el EchidnaShield.

Si me sigues de hace tiempo sabrás que soy bastante apasionado con todo lo que tiene que ver con el IoT.

Es complicado conectar un Arduino UNO a Internet para enviar y recibir datos a no ser que utilices un Arduino Shield Ethernet o WiFi.

Pero ese no es el objetivo de este tutorial. El objetivo es utilizar solo el EchidnaShield.

Una posible solución sin utilizar otro Arduino Shield es a través de la plataforma Blynk.

A continuación vas a ver paso a a paso cómo configurar el hardware y software para utilizar Arduino, EchidnaShield y la plataforma Blynk.

Material y circuito eléctrico

El material que vamos a utilizar para este caso práctico va a ser el siguiente:

  • Arduino UNO
  • EchidnaShield
  • Servomotor SG90

El circuito es muy sencillo. El Arduino Shield EchidnaShield se conecta a la placa Arduino UNO y el servomotor se conecta al pin 4, a la alimentación 5V y GND.

circuito echidnashield servomotor

Los pines donde he conectado el servomotor ya están preparados para que con un servo SG90 puedes conectarlo fácilmente. Dispone de la conexión a 5V, GND y datos.

Instalar librería Blynk

El siguiente paso es instalar la librería Blynk en el IDE de Arduino. Puedes hacerlo de múltiples formas.

La recomendada es a través del gestor de librerías. Abre la opción del menú que está en Programa>Incluir Librería>Administrar Bibliotecas.

En la nueva ventana que se abre busca por la palabra Blynk.

Instala la librería que pone Blynk by Volodymyr Shymanskyy.

Esto, como siempre, instala el código de la librería junto con los ejemplos. Pero a parte, instala otros archivos que luego veremos.

Ahora vamos a configurar la app Blynk.

Configuración app Blynk con Arduino Shield EchidnaShield

La app Blynk la puedes descargar tanto para Android como para iOS.

Una vez la tengas instalada, tendrás que darte de alta en la plataforma. Sigue los pasos que te indica la app.

En el siguiente vídeo te explico cómo puedes configurar el proyecto que vamos a utilizar en este ejemplo.

Cuando has finalizado la configuración, aparece en la parte de arriba que no tiene conexión. Eso es debido a que todavía no hemos cargado ningún código a la placa.

Código app Blynk de Arduino

Una vez que tenemos la app Blynk configurada, ya sólo hace falta programar el Arduino que tiene el Arduino Shield EchidnaShield.

En la app Blynk hemos configurado los pines de los 3 LEDs (rojo, naranja y verde) y el LED RGB con los pines para acceder a cada color.

También hemos configurado un pin virtual V0.

Todo eso se traduce en el siguiente código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Importar librerías
#include <SoftwareSerial.h>
#include <BlynkSimpleStream.h>
#include <Servo.h>
 
// Aquí tienes que poner el Auth Token que tendrás en el email o
// que puedes obtener de la app
char auth[] = "PON-AQUI-TU-AUTH-TOKEN";
 
// Objeto clase Servo y pin servo
Servo myservo;
byte pinServo = 4;
 
void setup()
{
  // Iniciar comunicación serie
  // No eliminar porque hace falta para comunicar con la nube de Blynk
  Serial.begin(9600);
  
  // Inicar clase
  Blynk.begin(Serial, auth);
 
  // Configurar pin del servo
  myservo.attach(pinServo);
}
 
// Función que se ejecuta cada vez que cambia un valor
// en el pin virtual V0
BLYNK_WRITE(V0)
{
  // Obtener el parámetro que se envía desde la app
  // se convirte en un int
  int pinData = param.asInt();
 
  // Mover servo los grdos indicados
  myservo.write(pinData);
}
 
void loop()
{
  // Compruebe llamadas desde la app
  Blynk.run();
}

El código es bastante sencillo.

Lo primero que tienes que hacer es poner tu Auth Token el que aparece en la app Blynk y que te habrá llegado a través del email. Es en la línea 8.

En la parte de arriba del código se importan todas las librerías necesarias para este ejemplo práctico.

Necesitamos un objeto de la clase Servo que se llama myservo para mover el servomotor. También almacenamos en una variable el pin donde está conectado el servomotor, el pin 4.

En la función setup() iniciamos la comunicación serie con Serial.begin(9600).

No quites la línea de Serial.begin(9600) ya que en este ejercicio, la comunicación con la plataforma en la nube de Blynk se hace a través del puerto serie.

Para iniciar Blynk hay que llamar a la función Blynk.begin(Serial, auth) con dos parámetros.

La instancia a la clase Serial y el Auth Token.

Para finalizar esta función configura el servomotor llamando a la función myservo.attach(pinServo).

La siguiente función es una función callback que se llamará cada vez que cambie el pin virtual V0 que hemos configurado en la app Blynk como un slider.

Solo se ejecutará cuando desde la app se cambie el valor del slider. Como has visto en el vídeo, el valor puede ser de 0 a 180 que coincide con el valor del número de grados del servomotor conectado al Arduino Shield Echidna.

Este valor se obtiene de param, un parámetro que se pasa a la función. Para utilizarlo hay que pasarlo a un int y para ello se utiliza la función param.asInt().

Se utiliza el valor de ese parámetro para mover el servomotor con la función myservo.write(pinData).

Por último la función loop() sólo ejecuta una función, Blynk.run() que comprueba la comunicación entre el Arduino Shield EchidnaShield y la app Blynk.

Carga el código a la placa pero todavía no funcionará.

Sólo nos queda una cosa y es comunicar EchidnaShield y Arduino con la plataforma Blynk.

Configurar app Blynk a través del USB

Una de las ventajas de la plataforma Blynk es que puede funcionar a través de la red o a través de un puerto USB.

Este último caso requiere de que Arduino esté conectado a un ordenador ya sea Windows, Linux o Mac.

En cualquiera de estos 3 casos, el ordenador funcionará de pasarela (gateway) para comunicar el Arduino Shield Echidna con la plataforma en la nube Blynk.

Lo hace a través de un script que puedes encontrar dentro de la carpeta de la librería que se ha descargado al instalarla.

Normalmente la carpeta de la librería Blynk la encontrarás en documentos/Arduino/libraries/Blynk aunque dependerá de cada sistema operativo.

Ahora dependiendo el sistema operativo que utilices tendrás que hacer una cosa u otra.

En Windows

Abre una línea de comandos y entra en la carpeta de scripts de la librería Blynk. Debes utilizar el comando cd.

En mi caso sería algo así.

1
cd c:\Users\Luis\Documents\Arduino\libraries\Blynk\scripts

En el tuyo deberás sustituir el usuario y comprobar donde está la carpeta Blynk.

Una vez dentro de la carpeta ejecuta el archivo blynk-ser-bat con los parámetros -c COM4. COM4 es el puerto donde está conectado el Arduino. Si es otro sustituyelo por el que corresponda.

El comando sería el siguiente.

1
blynk-ser.bat -c COM4

Obtendrás un resultado parecido a este.

configuración blynk usb

Se quedará ahí esperando. Este mensaje indica que ha conectado con la plataforma en la nube de Blynk.

No cierres la línea de comandos ya que si lo haces, se perderá la comunicación con la plataforma en la nube y dejará de funcionar. Para salir de este modo, cierra la línea de comandos o pulsa CTRL + C.

Mientras esté en este modo con la línea de comandos, no podrás subir ningún código a la placa ya que la comunicación serie estará ocupada. Debes cerrar o cancelar este modo para subir un nuevo código a la placa.

Ahora ya podrías abrir la app Blynk y verás como puedes controlar los LEDs de colores, el LED RGB y el servomotor.

En Linux y Mac

En Linux y Mac es muy parecido a como se hace en Windows.

Abre un terminal y navega hasta la carpeta Scripts dentro de la carpeta de la librería Blynk.

1
cd User$/Documents/Arduino/libraries/Blynk/scripts

No debes cerrar la ventana del terminal con el script en ejecución. Antes debes pararlo con CTRL + z

Una vez dentro, ejecuta el archivo blynk-ser.sh

1
user:scripts User$ ./blynk-ser.sh

En algunos casos es posible que necesites realizar lo siguiente

1
user:scripts User$ chmod +x blynk-ser.sh

También es posible que necesites ejecutarlo como root con sudo.

1
user:scripts User$ sudo ./blynk-ser.sh

Prueba final Arduino Shield Echidna y app Blynk

Si todo ha ido correcto, ahora podrás controlar desde el móvil el Arduino Shield Echidna a través de la app Blynk.

Con esto doy por finalizado este tutorial. Cualquier duda o pregunta la puedes dejar en los comentarios de este artículo.

Agradecer de nuevo a Jorge, Xabier y a José por su colaboración en este podcast y artículo por ofrecernos su tiempo y trabajo de forma altruista.

Esta es la gasolina que mueve la movimiento Maker.

integraciones de Home Assistant

Integraciones de Home Assistant

En este tutorial voy a hablar de las integraciones de Home Assistant pero antes déjame contarte la historia de Jack, un norteamericano de bien, de los … [+ info...]

dispositivos inteligentes para el hogar

Tipos de dispositivos inteligentes para el hogar

En este artículo voy a hablar de los dispositivos domóticos o dispositivos inteligentes para el hogar que pueden ser integrados dentro de Home … [+ info...]

osciloscopios

Osciloscopio para proyectos con Arduino

Una imagen vale más que mil palabras. Seguro has escuchado esta frase alguna vez y es probable que en la mayoría de las ocasiones lo que dice sea … [+ info...]

Copyright © 2023 · Programar Fácil · Aviso legal

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando, consideramos que acepta su uso.Aceptar Política de privacidad y cookies
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR