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

Un universo de extensiones en mBlock5

Hoy finaliza el primer trimestre del curso 2021-2022. Un trimestre de "locura" en el que impartí un curso relativo al uso de extensiones para objetos bajo mBlock5 y de creación de extensiones para placas Arduino en el mismo entorno.

Ambas, extensiones para objetos y para dispositivos, tienen un potencial enorme en educación: ciencias, IoT, inteligencia artificial, simplificación en la programación de módulos de arduino bajo bloques, etc. Una locura!

Siempre que investigo una temática, la documento. Es la única forma que veo para, pasado el tiempo, poder recordar fácilmente lo que en su momento desarrollé. Y con esta intención nació el pdf "Un universo de extensiones en mBlock5" y que puede verse en el siguiente link: (no se permiten descargas porque utilizo la versión Free)

En este vídeo se define brevemente de qué trata:


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)



Robot Kamibot

Kamibot es un robot coreano muy curioso. Su software para PC [1], llamado Kamiblock, es muy similar en interface y manejo al programa mBlock de la casa Makeblock. Gracias a su módulo bluetooth, puede conectarse con dispositivos móviles (smartphone y tablet) usando cualquiera de las dos aplicaciones que ha creado la casa (disponibles para iOS y Android): Kamibot Controller y KamiBlock. Una de estas aplicaciones es su software (Kamiblock), adaptado a dispositivos móviles; muy útil para los centros educativos:

App KamiBlock modo MapBoard. Susana Oubiña Falcón (CC-BY)

App KamiBlock modo Básico. Susana Oubiña Falcón (CC-BY)

App Kamibot Controller. Susana Oubiña Falcón (CC-BY)
Ejemplo usando el software Kamiblock. Susana Oubiña Falcón (CC-BY)

El cerebro del robot, su placa controladora, presenta un microcontrolador Atmega2560 (compatible con Arduino Mega 2560), muy superior a la de muchos robots de solo 32kb. El robot dispone de 3 motores: dos de continua (DC) para sus ruedas y un servo situado en su tapa superior, que nos servirá para hacerla girar los grados que deseemos. Finalmente, incluye: 5 sensores infrarrojos en su parte inferior (detecta el color negro y el blanco), 1 sensor de ultrasonidos (detecta objetos situados entre 2 y 100cm) y 4 LEDs RGB:

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

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

En cuanto a sus baterias, son recargables, del tipo Li-Po, con una duración aproximada de 90 minutos. Se recargan a través de un cable que se conecta desde el robot a un USB del ordenador.

Este robot presenta dos opciones o modos de programación muy sencillas por bloques (scratch), además de la opción de programación con el software IDE Arduino para los más intrépidos. Estos modos por bloques de denominan Básico y MapBoard. Este último, a mi parecer, muy interesante para Infantil:

Modo básico Kamibot. Susana Oubiña Falcón (CC-BY)
Modo MapBoard. Susana Oubiña Falcón (CC-BY)

Este segunda opción (MapBoard) nos vale para que el robot ejecute las órdenes en un tablero. El diseño del tablero es abierto. Cada docente o estudiante podrá enfocarlo a la temática que quiera, pero, eso si, el robot sólo se moverá por el tablero por encima de las líneas negras que hubiésemos pintado en él. Fijaros en este vídeo de la casa del robot:

Todo programa que se cree y se pretenda ejecutar, se puede o no subir a la placa del robot. Para subirlo o cargarlo en la placa y de esa forma evitar después que el robot trabaje con el cable conectado al PC, debemos realizar los siguientes pasos:
  1. Cambiar el comando de la banderita verde por el comando azul "Kamibot Program".
  2. Ir a la pestaña Editar y hacer clic en Arduino Mode
  3. Finalmente, hacer clic en "Upload to kamibot" y esperar un tiempo para que lo cargue el programa.
Subiendo el programa a la placa. Susana Oubiña Falcón (CC-BY)

De su web, podemos descargar, de forma gratuita, una gran variedad de material. A saber: desde vestimentas para el robot (Conde Drácula, etc) hasta manuales, driver de la placa, software y enlaces a la descarga de sus aplicaciones para móvil y tablet:
Materiales de descarga para el robot Kamibot. Susana Oubiña Falcón (CC-BY)

¿Para qué niveles educativos nos serviría este robot? En mi opinión, para infantil y primaria.

[1] Se está actualizando y muy pronto tendremos la versión en español.