¿Qué es la Tecnología?

¿Qué es la tecnología? Es una buena, pero muy buena pregunta. Para muchos, la tecnología es el avance, para otros es la forma y manera de aumentar la calidad de funcionamiento de un objeto. La verad es que incluye tantos campos que es difícil de concretar. Podríamos decir que la tecnología es la ciencia del arte de hacer las cosas, de como construirlas ordenanadamente, aportando soluciones y mejoras.

Extensión RFID RC522

 Aconsejo el siguiente conexionado para el lector MIFARE MFRC522:

  • Arduino Uno y Nano: SDA(SS) 10, SCK 13, MOSI 11, MISO 12, RST 9, 3.3V
  • Arduino Mega: SDA(SS) 53, SCK 52, MOSI 51, MISO 50, RST 9, 3.3V

Antes de nada debemos descubrir la UID de la tarjeta o llavero RFID. Para ello implementamos el siguiente circuito:


Circuito eléctrico para conocer la UID de una tarjeta o llavero RFID

Abrimos mBlock5, escogemos como dispositivo (en mi caso) la placa Arduino Uno y añadimos la extensión RFID CR522 cuyos comandos son:

Comandos de la extensión RFID CR522. Susana Oubiña Falcón (CC-BY)

Creamos el siguiente script y lo subimos a la placa:
Script para conocer la UID. Susana Oubiña Falcón (CC-BY)

A continuación, desconectamos la placa de mBlock5. Abrimos el IDE de Arduino y conectamos la placa:
Arduino Uno conectada a IDE Arduino. Susana Oubiña Falcón (CC-BY)

Abrimos el Monitor Serie a la velocidad de 115200 baudios y acercamos la tarjeta RFID al módulo RC522. Cuando la detecte, acercamos el llavero. Veremos que nos imprime en el Serial ambas UID:

Visionando la UID de la tarjeta y del llavero. Susana Oubiña Falcón (CC-BY)

Las  UID obtenidas, en mi caso, han sido:
  • Tarjeta: 59e5ca8c
  • Llavero: a7bb88b3
Ahora que disponemos de la UID de acceso a la tarjeta y llavero RFID, vamos a añadir un LED Rojo de 10mm (sin R de protección) conectando su ánodo Pin D7 y su cátodo a GND. 

La idea es que, al acercar la tarjeta de UID 59e5ca8c, se encenderá el LED, pero, al acercar el llavero de UID a7bb88b3 se apagará. El script que realiza este reto es el  siguiente:

Encendido y apagado de un LED por RFID. Susana Oubiña Falcón (CC-BY)

El funcionamiento se muestra en la siguiente tabla:

Demostración. Susana Oubiña Falcón (CC-BY)




Extensión para el Serial y Bluetooth

Sin duda, los puertos serie son la forma principal de comunicar una placa Arduino con un ordenador. Un puerto serie envía la información mediante una secuencia de bits y para ello necesita de, al menos, dos conectores para realizar la comunicación de datos que son, RX para la recepción y TX para la transmisión.

Es importante saber que cada puerto serie está físicamente unido a unos determinados pines de la placa Arduino y, por esa razón, mientras usamos los puertos de serie no podemos usar como entradas o salidas digitales los pines asociados con el puerto serie en uso. Pensar que, por ejemplo, la placa Arduino Uno dispone de un único puerto serie pero hay otras placas que presentan más que uno.

Pero a veces nos interesa crear una comunicación serie en otros puertos (en otros pines de la placa), o incluso una comunicación Bluetooth. La tecnología bluetooth no es una tecnología antigua y es uno de los mejores medios para comunicarnos de forma inalámbrica con Arduino. Los dos módulos más comunes para ello son el HC-05 y el HC-06. La diferencia entre ambos módulos reside en el tipo de comunicaciones que permiten hacer: HC-06 sólo puede recibir (es lo que se denomina un esclavo o slave) mientras que el HC-05 puede recibirlas e iniciarlas (master and server). Por lo tanto, el módulo HC-05 es superior en características técnicas al HC-06.

La comunicación Bluetooth es similar al uso del puerto serie normal; requiere el uso de un puerto serie de nuestra placa Arduino. Por lo tanto, mientras usemos el módulo Bluetooth no podremos utilizar el puerto serie en las placas modelo Uno, Mini, y Nano. La placa Arduino Mega no tiene este problema ya que incorpora 4 puertos de serie.

Además, mientras estemos cargando un nuevo programa en la placa Arduino tenemos que desconectar el módulo Bluetooth dado que la programación se realiza a través de su único puerto serie.

La extensión que se muestra en la siguiente imagen nos ayuda a enviar y recibir datos desde el Monitor Serie de Arduino y además nos servirá para programar un módulo bluetooth (HC-05 o HC-06) de forma sencilla con los dispositivos arduino y así poder implementar aplicaciones móviles:

Extensión Bluetooth para mBlock5. Susana Oubiña Falcón (CC-BY)

¿Cómo se usa? Veámoslo con algunos ejemplos:

  •  Ejemplo 1: Recibir información desde la placa Arduino.

Vamos a recibir el valor de un contador enviado desde la placa Arduino. Este valor se incrementa cada segundo. Podemos observar cómo se reciben los valores desde del monitor serial. Cargaríamos el siguiente programa a la placa Arduino Uno:

Recibir información de la placa arduino. Susana Oubiña Falcón (CC-BY)

Desde mBlock, desconectaríamos la placa Arduino Uno y abrimos el IDE de Arduino y la conectamos en un puerto COM. A continuación, abrimos el Monitor Serie a 9600 baudios y podemos ver que recibimos los datos:

Recibiendo datos desde el Monitor Serie. Susana Oubiña Falcón (CC-BY)

  • Ejemplo 2: Enviar información a la placa:

En este ejemplo empleamos el puerto serie para encender o apagar el LED integrado en la placa Arduino. Para ello enviamos un carácter a la placa Arduino, empleando el monitor serial. En el caso de enviar ‘A’ la placa Arduino apaga el LED, y en caso de enviar ‘B’ lo enciende.

Enviando datos a la placa. Susana Oubiña Falcón (CC-BY)

Desde mBlock5, primero desconectaríamos la placa Arduino Uno. Después abrimos el IDE de Arduino y la conectamos allí. El siguiente paso consiste en abrir el Monitor serie en el IDE de Arduino a 9600 baudios de velocidad y comenzar a enviar datos.

Enviando datos desde el Monitor Serie. Susana Oubiña Falcón (CC-BY)

  • Ejemplo 3: Enviando datos desde un móvil a la placa Arduino Uno

Imaginemos que tenemos construido un proyecto físico que dispone de una puerta corredera y que queremos programar su apertura o cierre desde un dispositivo móvil. El proyecto incluye un circuito eléctrico que se compone de un motor de continua, un controlador de motores que puede ser el L9110, un módulo bluetooth como el HC-05 y, por supuesto, una placa Arduino (por ejemplo, la Arduino Uno).

Un posible programa para la apertura y cierre de esa puerta podría ser el siguiente: 

Control Bluetooth de un motor DC. Susana Oubiña Falcón (CC-BY)

Este programa se subiría desde mBlock5 a la placa Arduino Uno (recordar desconectar el módulo BT en la subida). 

Relativo a la App, ésta podría crearse en App Inventor. En mi caso, he creado la que muestro en la siguiente imagen:

App Apertura y Cierre de una puerta. Susana Oubiña Falcón (CC-BY)

El último paso consiste en descargar e instalar la App en nuestro móvil android, enlazar el módulo Bluetooth HC-05 con nuestro móvil y simplemente usarla:

Control de la puerta con el smartphone. Susana Oubiña Falcón (CC-BY)



Extensión para entradas Pull-Up

En Arduino podemos configurar los pines de la placa como entradas, como salidas y como entradas pull up. Son muchos los circuitos en los que necesitamos introducir un pulsador y sabemos que estos deben implementarse sumándole una R que pude estar en configuración Pull-Up o Pull-Down.

Esta resistencia en la configuración de Pull-Up (o Pull-Down) es un elemento que evita un cortocircuito que ocurriría al ser presionado un pulsador o interruptor conectando la parte en la que tenemos tensión directamente a masa. Como la impedancia de un pin de entrada digital de las placas Arduino suele ser de 1MΩ y la norma dice que usemos una resistencia 10 veces menor, usamos una R =10KΩ que nos proporcionará un consumo despreciable y a la vez una corriente suficiente (0,5mA) para que reaccione el chip de la placa (supone una potencia de 2,5mW).

Un pulsador implementado en una configuración Pull-Up, funciona de la siguiente forma: (ver siguiente imagen):

  • Si no pulsamos el pulsador, en el pin de entrada de la placa Arduino tendríamos 5V, es decir, un 1 lógico.
  • Si pulsamos el pulsador, en el pin de entrada de la placa Arduino tendríamos 0V, es decir, un 0 lógico.

Funcionamiento de un pulsador Pull-Up

Pero, lo más importante de todo esto radica en que, el microcontrolador ATmega de las placas Arduino tienen acopladas internamente unas resistencias Pull-Up y estas se pueden usar. Para ello hay que decirle a nuestro microcontrolador a través del software que la entrada en un pin determinado de la placa es una entrada INPUT_PULLUP. En la siguiente imagen se está utilizando una R interna del microcontrolador en configuración Pull-Up.

Conexionado y código arduino. Susana Oubiña Falcón (CC-BY)

Si nos fijamos en mBlock5, el software no disponemos de un comando específico para estas entradas pull-up. Por lo tanto, tenemos dos opciones:

  • Implementar la R pull-up en nuestro circuito (usando una R de 10KΩ) y usar los comandos que dispone mBlock5 para una entrada normal: por ejemplo, el siguiente programa encendería el led 13 de la placa arduino uno cuando presionemos un pulsador conectado a una entrada pin 2.

    Ejemplo con código. Susana Oubiña Falcón (CC-BY)

  • O diseñar nuestra propia extensión para configurar este tipo de entradas. 
Esta extensión presenta un único comando: la verdad es que es más que suficiente

Comando de la extensión Pull_Up. Susana Oubiña Falcón (CC-BY)

Para una placa Arduino Uno, podemos probar el siguiente ejemplo:

Ejemplo de activación de un pulsador Pull-Up en el pin 2. Susana Oubiña Falcón (CC-BY)

Fijaros en el código Arduino de la derecha:
Programa con código arduino. Susana Oubiña Falcón (CC-BY)

 
Lo comprobamos con nuestro circuito. En las siguientes imágenes observamos que funciona correctamente:
Pulsadores en acción. Susana Oubiña Falcón (CC-BY)




Extensión para tira de LEDs RGB (NeoPixels) WS2812

Sobra decir que cuando me pongo a crear una extensión para mBlock5, es por necesidad.

Siempre es un reto que tiene gran importancia, bien sea para un proyecto específico o incluso algo más general. Sin adentrarme en razones, el caso es que aquí está:

Extemnión para una tira de LEDs RGB direccionable del tipo WS2812 bajo mBlock5. 

Los comandos que he diseñado se muestran en las siguientes imágenes:

Extensión Tira LEDs RGB WS2812 Susana Oubiña Falcón (CC-BY)

Comandos de la extensión Susana Oubiña Falcón (CC-BY)

La extensión puede usarse tanto con la placa Arduino Uno como con la placa Arduino Nano. 

Relativo a su manejo veo importante hacer un inciso para que los programas que se creen con ella sean correctos: 

  • El comando "Mostrar" es el que da la orden para que los diferentes LEDs se iluminen en los colores programados. Es decir, si queremos que el LED número 1 se ilumine en "verde", por ejemplo, debemos despues incluir el comendo "Mostrar" que es el que dará la orden de esa iluminación.
  • Importante: El primer LED de la tira de LED es el número 0. Por ejemplo, si disponeos de una tira de LED de 300LEDs, podremos programar desde el LED 0 al LED 299.

Ejemplo: Supongamos que disponemos de una tira de LEDs RGB de 60pixels/metro WS2812. Si nuestra tira de LEDs tiene 5m, entondes dispondremos de 5x60=300LEDs para iluminar a nuestro gusto. A continuación muestro nuestra tira de LEDs de 5m y un ejemplo muy sencillo de programación.

Tira de 5m de LEDs RGB WS2812b impermeable IP67 a 5V DC

Ejemplo de programación Susana Oubiña Falcón (CC-BY)


Extensión para pantalla OLED 128x64 con mBlock5

Este curso académico tan particular nos ha llevado a adquirir una gran cantidad de componentes electrónicos. La idea es que cada alumno/a disponga de su kit individual, sin compartir.

Para visionar los datos necesitábamos una pantalla y, por precio, decidí comprar una pantalla OLED I2C de 0,96 pulgadas con una resolución de128x64 píxeles y cuyo controlador es el chip SDD1316.

Están disponibles en un sólo color (blanco o azul) o en dos colores (amarillo y azul).

Pantalla OLED de 4 pines 0,96 pulgadas

El problema con que me encontré, a la hora de programarlas con mBlock5, es que la extensión que vi no funcionaba con las pantallas que compramos. Quizás esté desarrollada para otro controlador...no lo sé, pero el caso es que no funcionaba.

Con ayuda de Samuel que me introdujo en la creación de extensiones (la red es generosa) he conseguido solucionar este "desaguisado" y, aunque me gustaría desarrollar un comando más en la extensión que permitiera dibujar una bombilla encendida y una apagada (a ver si sale!!!), la extensión actual es bastante funcional para el uso que necesita mi alumnado y se ha creado para ser utilizada con la placa Arduino Uno:

Los comandos implementados son los siguientes:

Extensión OLED 128x64. Susana Oubiña Falcón (CC-BY)

La extensión permite introducir texto y moverlo horizontalmente por la pantalla (scroll). Además, con ella podemos dibujar puntos, rectas, rectángulos y círculos.

Un ejemplo de uso de la misma puede verse en la siguiente imagen:

Ejemplo de programación. Susana Oubiña Falcón (CC-BY)

Su resultado, tras subirlo a mBlock5 en una placa Arduino Uno es:

Visionado de la programación del ejemplo. Susana Oubiña Falcón (CC-BY)   

En la siguiente imagen observamos ya un programa real y en él se ve que nuestra pantalla ofrece la medición de temperatura del sensor DHT11 (en ºC):
Midiendo la T en ºC con el DHT11. Susana Oubiña Falcón (CC-BY)

Actualizo este post con la extensión ampliada a un nuevo comando: representar una bombilla encendida y una apagada. 
Programa ejemplo para dibujar una bombilla encendida y una apagada. Susana Oubiña Falcón (CC-BY)

El resultado es el siguiente:
Visualización. Susana Oubiña Falcón (CC-BY)






Museo interactivo "Ahora hablamos nosotras"


   El museo interactivo “Ahora hablamos nosotras” es un proyecto interdisciplinar desarrollado por el departamento de Griego, Plástica y Tecnología y vinculado al PDI de la biblioteca escolar, Bibliomedia.
Ahora hablamos nosotras. Susana Oubiña Falcón (CC-BY)

   Nuestro objetivo era reivindicar la actualidad clásica, a través de las mujeres en la mitología, y crear un museo dinámico e interactivo, uniendo lo artístico con lo tecnológico. Este proyecto es una demostración de que es posible un trabajo colaborativo entre departamentos de humanidades y tecnológicos.

   El departamento de Plástica diseñó la ubicación de las 4 secciones del museo de forma circular, aprovechando el espacio y amplificado la sensación de "visita al museo" que el alumnado disfrutará. Sin duda, las cajas de TV que dan cobijo a cada representación del museo son un gran acierto. Muy original!

Parte frontal del museo (en ella se obserban 2 colecciones). Susana Oubiña Falcón (CC-BY)
 
Parte trasera (Se observa la tercera colección). Susana Oubiña Falcón (CC-BY)
 
Parte trasera (Se observa algunas imágenes de la cuarta colección). Susana Oubiña Falcón (CC-BY)

Parte trasera (Se observa algunas imágenes de la cuarta colección). Susana Oubiña Falcón (CC-BY)

   El objeto tecnológico estrella de nuestro museo se llama Museum in a Box y fue diseñado para facilitar la creación de museos en miniatura, de una forma interactiva. Cada caja contiene una Raspberry Pi, un amplificador, un altavoz, un lector NFC y un cuadro luminoso para indicar el progreso. También dispone de un jack que usamos para conectar un altavoz externo y de ese modo, conseguir un sonido más alto.

   La idea es muy sencilla: Depositamos encima de la caja el objeto que queremos que hable (una figura 3D, una tarjeta o una postal). Ese objeto dispone de una pegatina NFC en la cual, previamente, se le ha introducido un audio. El contenido de esa tarjeta es leído por el lector NFC y tras ser amplificado podemos escucharlo gracias a su altavoz. 

   En nuestro caso hemos impreso 33 representaciones en 3D (figuras y litografías) y ellas conforman las 4 colecciones que hemos subido a la web de Museum in a Box y que hemos llamado “Ahora hablamos nosotras”. Cada figura 3d que veis en el museo cuenta con un Tag NFC y al colocar esta figura encima de la caja (Museum in a Box), el lector NFC detecta el audio que ha creado nuestro alumnado de Griego y el audio se reproduce maravillando al visitante del museo. Por lo tanto, cada figura interactúa con el visitante de la exposición y le cuenta su historia.

Tetis (Figura y litografía en color). Susana Oubiña Falcón (CC-BY)

   Nuestro museo se ha subido a la web de Museum in a Box en forma de 4 colecciones (cada colección la limita su web a nueve objetos) y se ha compartido convirtiéndose cada figura en un objeto accesible a los demás usuarios "pilotos" de las cajas que están repartidas por todo el mundo. Es decir, cualquiera que disponga de una caja, bien sea en Europa, en América, en Asia, en África o en Oceanía, podrá disfrutar de nuestro museo. De la misma forma, nosotros podemos acceder a las colecciones que otros han compartido y aprender y disfrutar de ellas. 

Una de nuestras colecciones en la web. Susana Oubiña Falcón (CC-BY)

Rea en la Web (el link lleva a un poster interactivo). Susana Oubiña Falcón (CC-BY)

   El alumnado de Griego ha hecho un gran trabajo reflejando la documentación que aportan a través de posters interactivos que son accesibles desde la web de Museum in a Box para todos los "pilotos" y que en la exposición son accesibles a los usuarios del museo a través de códigos QR.

   Sólo resta dar las gracias al "piloto" Salnés Campus y a los creadores de Museum in a box, por confiar en nosotros. Thanks!

   En el siguiente video poéis ver qué cuentan algunas imágenes de este gran museo interactivo: