¿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.
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas

Museo Virtual "Invasión"

    El museo virtual "Invasión” es un proyecto interdisciplinar precioso diseñado e implementado por los departamentos de Geografía e Historia, Biología y Tecnología apoyados por el departamento de Lingua Galega. En él ha trabajado el alumnado de 1ºESO del IES da Illa de Arousa.

Museo "Invasión". Susana Oubiña Falcón (CC-BY)

    Este trabajo se visualiza como una exposición interactiva, en la cual, cada objeto esconde un audio que se reproduce con una maquina que lee lo que se esconde en las tarjetas RFID. Se ha conseguido que figuras relacionadas con Grecia, Mesopotamia, Roma, Egipto y por supuesto las plantas invasoras, cuenten su historia.


Figuras de Crecia, Mesopotamia y Roma. Susana Oubiña Falcón (CC-BY)

Litofanía de una planta invasora. Susana Oubiña Falcón (CC-BY)

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

Una chulada!!!

Maquina lectora y grabadora de audios. Susana Oubiña Falcón (CC-BY)

De forma breve, así funciona el proyecto: (Para saber más, hay que vivir el museo!!!)




    Este proyecto es una demostración de que es posi
ble un trabajo colaborativo entre departamentos de humanidades y tecnológicos.

    La exposición se ha mostrado durante dos semanas en los pasillos de la planta superior de IES. Cualquier alumno/a pudo visitarla y aprender de ella.





Extensión E18-D80NK

El sensor de proximidad fotoeléctrico E18-D80NK te permite detectar objetos sin necesidad de contacto y en un rango de 3cm a 80 cm. Su conexionado es sencillo con los dispositivos arduino. La salida de este sensor es de tipo NPN normalmente abierto (NO): Es decir, cuando detecte un objeto nos proporcionará un 0 y en estado de no detección, un 1. Puede ser alimentado con 5V y trabajar directamente con Arduino.

E18-D80NK frontal. Susana Oubiña Falcón (CC-BY)

La sensibilidad del sensor es regulable mediante un potenciómetro incrustado en el mismo sensor. Al lado del potenciómetro vemos un led que se activa cuando el sensor detecta un objeto. Ambos elementos (potenciómetro y led) nos permiten calibrar y comprobar el buen funcionamiento del sensor.

E18-D80NK parte trasera. Susana Oubiña Falcón (CC-BY)

Los sensores de proximidad fotoeléctricos utilizan como principio de detección el cambio de intensidad de luz. Este sensor fotoeléctrico es de tipo difuso (el emisor y el receptor de luz están integrados dentro del sensor) y no necesita de un espejo fijo adicional (como los de tipo réflex). 

Internamente

Funciona como un sencillo interruptor digital, detecta o no detecta:

  • El emisor emite un haz de luz infrarroja que al impactar sobre un objeto es reflejado.
  • Este reflejo es detectado por el receptor fotoeléctrico y se emite una señal de detección.

El sensor no nos proporciona la distancia a la cual está el objeto detectado; únicamente muestra el LED de detección iluminado ON (estado 0) o el LED de detección apagado OFF (estado 1):

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

Conexión: El módulo se alimenta directamente a 5V de Arduino. Los tres cables pueden tener estos colores:

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

Bajo mBlock5 he diseñado la extensión E18-D80NK que dispone de los siguientes comandos:

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

Muestro dos ejemplos de uso. En ambos ejemplos el circuito eléctrico es el siguiente:
Conexión: Cable negro OUT al pin D2. 

  • Ejemplo 1: Testear la detección o no de un objeto y que nos lo muestre en el Monitor Serie de Arduino Uno. En este script utilizo la extensión Bluetooth Serial.
Extensión Bluetooth Serial
Susana Oubiña Falcón (CC-BY)



Script para testear la detección o no de un objeto por Monitor Serie. Susana Oubiña Falcón (CC-BY)

  • Ejemplo 2: Realizar una acción tras detectar un objeto. Para no complicar el circuito eléctrico usaremos el LED interno de la placa Arduino Uno. El siguiente script encenderá el LED 13 interno al detectar un objeto:
Script control LED. Susana Oubiña Falcón (CC-BY)




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)




Me PM2.5 Sensor

El sensor Me PM2.5 es un módulo idoneo para lograr medir el grado de contaminación del aire de una ciudad, de una habitación, o del espacio que uno prefiera.

Módulo Me PM2.5. Susana Oubiña Falcón (CC-BY)

Resulta que, para medir el grado de contaminación de aire se usan sensores que recogen datos por Materia Particulada (término que se denota por las siglas PM). Ese material no es más que un conjunto de partículas de diferentes tamaños. Y ojo, estamos hablando de "micras".

Ese material particulado respirable presente en la atmósfera de nuestras ciudades, bien sea de forma sólida o líquida  (polvo, cenizas, hollín, partículas metálicas, emisiones de vehículos diesel, entre otras), se puede dividir atendiendo a su tamaño. A groso modo, podemos clasificarlo en dos grupos, que son:
- Las de diámetro aerodinámico igual o inferior a  10 µm o 10 micrómetros, que se las denomina PM10.
- Y la fracción respirable más pequeña, PM2,5, que son aquellas partículas de diámetro aerodinámico inferior o igual a los 2,5 micrómetros. Es decir, 100 veces más delgadas que un cabello humano.

Investigando por la red, recaigo en que las partículas de menos de 2,5 micras (PM2.5), debido a su origen, son las más adecuadas para medir el grado de contaminación del aire que respiramos. Su origen antropomórfico, es decir, de origen humano o derivado de las acciones humanas y por lo tanto, creados por nuestra actividad, así como, su reducido tamaño, hacen de ellas que sean 100% respirables y, en consecuencia, son partículas que tienen un acceso directo a nuestros pulmones.

Pero, curiosamente, son muy pocas las ciudades que miden el grado de contaminación del aire teniendo en cuenta estas partículas. Con el módulo sensor  PM2.5 es muy sencillo realizar esta medición.

Midiendo la concentración de partículas PM2.5 con mBlock. Susana Oubiña Falcón (CC-BY)

Una de las principales virtudes de este sensor es su capacidad para generar una salida proporcional a la concentración de partículas en µg/m³ (microgramos/m3). Esta medida sólo debemos compararla con el valor límite dictado para estas partículas, y me explico:

Digamos que, hay un organismo, se entiende que formado por un grupo de "sabios", que establecen los valores límite de emisiones contaminantes que los humanos podemos "respirar". En las partículas PM2,5 este valor es de 25µg/m³ al que podemos sumar un margen de tolerancia de 27. Es decir, como máximo 52 µg/m³.

Todos asumimos que el aire es invisible, pero ojo, sus efectos para la salud no. La Tecnología pone en nuestras manos sensores que nos proporcionarán datos fiables sobre la calidad del aire que respiramos. Midamos y: Cross the fingers!