Trasteando con Arduino. Reto 3 del Mooc del INTEF – Cultura Maker

Abordamos en esta entrada la realización del Reto 3 del Mooc Cultura Maker. Para llevarlo a cabo vamos a trabajar con otro de los elementos asociados a todo buen Maker: un kit de Arduino.

La idea que he querido llevar a cabo es la de construir un sensor de temperatura, utilizando para ello un sensor LM35 (en el kit real, ya que en el simulador uso un TMP36), un display LCD 16×2, un potenciometro y, como no, la placa controladora Arduino compatible (del fabricante GEEKCREIT).

Inicialmente, he trabajado el desarrollo en el simulador que ofrece la aplicación web de AutoDesk y que también usamos para la gestión de los objetos 3d a imprimir en el reto anterior: Tinkercad. AutoDesk ha decidido migrar parte de su antiguo simulador 123d.circuits.io a su aplicación de diseño Tinkercad. En concreto, se ha migrado la parte de Arduino y compatibles.

El diseño en el simulador es el siguiente:

Captura de pantalla 2018-02-17 a las 18.53.57

Este diseño, además de la simple medición de temperatura a través del sensor TMP36, incorpora una modificación: dispone de un interruptor que permite cambiar la escala de medición, pasando de grados Celsius a Farenheit y viceversa simplemente pulsando dicho interruptor.

El código del programa es el siguiente:

#include <LiquidCrystal.h> // Llamada a la libreria del Display LCD
#define sensor A0 // Pin conectado al sensor de temperatura TMP (A0)
#define switch A1 // Pin conectado al conmutador de conversión (A1)
int Vin; // Lee el valor a través del pin del Arduino
int Vin1; // Lee el valor del interruptor
float Temperature; // Recibe el voltaje con el valor convertido a temperatura
float TF; // Valor en º F
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pins conectados del panel LCD

void setup() {
lcd.begin(16, 2); // Inicializamos el display LCD a 16x2
lcd.print("Temperatura: "); // Enviamos el texto al LCD
}

void loop() {
// Leemos el pin A0 y almacenamos el valor en Vin
Vin = analogRead (sensor);
Vin1= analogRead (switch);
// Convertimos el voltaje en temperatura ºC 
Temperature = (500 * Vin) / 1023;
// Comprobamos el estado del interruptor (0- Celsius, 1- Farenheit)
 if (Vin1==0){
 TF=Temperature;} // Temperatura en Celsius
 else{
// Conversión de Celsius a Farenheit
 TF = ((9 * Temperature) / 5) + 32; // Conversión de °C a °F
 }
lcd.setCursor(0, 1); // Movemos el cursor del LCD a la siguiente línea
lcd.print(TF); // Mostramos la temperatura por el LCD
 if (Vin1==0){
 lcd.print (" C "); // Escala Celsius
 }
 else{
 lcd.print (" F "); // Escala Fahrenheit 
 } 
delay(1000); // Esperamos un segundo para volver a capturar la lectura del sensor
}

La posibilidad de probar el simulador a través de este enlace:

https://www.tinkercad.com/things/l1tGyaf2LhS-sensor-temperatura-con-cambio-de-escala/editel?sharecode=GonIb7CX0do2DlzZ663bsI-h_WOnv51UJTRwTvi2RTw=

Hasta este punto, prácticamente no hubo ningún problema. La odisea empieza en el momento de pasar el diseño al circuito real.

Mi compañero Alejandro me presta su kit de Arduino todavía por estrenar para que pueda llevar a cabo este pequeño experimento.

Invierto la mañana y la tarde de un domingo para preparar y montar el sencillo diseño. Dada mi ignorancia previa, realizo varios intentos de montaje con los componentes originales del kit, sin realizar modificación alguna. Por ello, utilizo la pantalla LCD, que no dispone de pines conectados, realizando la conexión de la misma mediante el juego de pines «sueltos» y sin soldar para engarzarla a la «breadboard». Evidentemente (como averigüé a posteriori) aquello no funcionaba.

Varias consultas a Google me llevaron a la conclusión que debía realizar la soldadura de los pines a la pantalla LCD si quería que aquello tomara cuerpo y se pusiera en marcha.

Otro largo rato de escaso pulso y soldaduras regulares consiguieron llevarme a una pantalla LCD con sus 16 patas soldadas.

Me quedaba todavía algo de tarde dominical y me dispuse a intentar finiquitar el tema. Pero… nada. Montaba y desmontaba el circuito y lo único que lograba era iluminar la LCD sin mayor actividad. Aquello no funcionaba: ¿podría haber estropeado la pantalla al realizar las soldaduras? (Posiblemente, pensaba para mí)

Después de intentarlo unas cuantas veces más, y viendo como se me acababa el domingo, decidí aparcarlo. El lunes lo consultaría con uno de mis alumnos: Eddie, experto y gran aficionado al mundo Arduino. Es más, me dije, le pasaría la LCD para que la probase y despejar la incógnita de su funcionamiento.

Ese lunes comentamos el problema. Eddie no sólo se llevó la pantalla sino que, para más garantías, me solicitó llevarse el kit completo. Se lo pasé encantado. Si alguien podía dar con ello, ese era él.

El martes llego la solución: la pantalla funcionaba perfectamente (¡menos mal!¡no he perdido del todo la habilidad con el soldador!). El problema venía de un componente insospechado: la «breadboard».

Después de probar varias cosas, Eddie pudo notar que había algo que no terminaba de funcionar como debía. Tras utilizar un polímetro para testear varios componentes, se puso a comprobar la «breadboard». Para su sorpresa, y la mía después, las dos líneas de continuidad que se usan para voltaje y tierra estaban «cortadas» en la mitad de la placa. Necesitaban puentearse para obtener esa continuidad. Ese era el problema real.

Descubierto esto, he podido llevar a cabo el diseño real y, realizando una leve modificación al mismo (no dispongo de interruptor y, por tanto, solo presento la temperatura en grados Celsius), he conseguido ejecutarlo.

Este es un pequeño video del diseño real y dejo a continuación el código utilizado:

 

#include <LiquidCrystal.h> // Llamada a la libreria del Display LCD
#define sensor A0 // Pin conectado al sensor de temperatura TMP (A5)
int Vin; // Lee el valor a través del pin del Arduino
float Temperature; // Recibe el voltaje con el valor convertido a temperatura
float TF; // Valor en º F
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pins conectados del panel LCD

void setup() {
lcd.begin(16, 2); // Inicializamos el display LCD a 16x2
lcd.print("Temperatura: "); // Enviamos el texto al LCD
}

void loop() {
// Leemos el pin A5 y almacenamos el valor en Vin
Vin = analogRead (sensor);
// Convertimos el voltaje en temperatura ºC 
Temperature = (500 * Vin) / 1023;
lcd.setCursor(0, 1); // Movemos el cursor del LCD a la siguiente línea
TF=Temperature;
lcd.print(TF); // Mostramos la temperatura por el LCD
lcd.print (" C ");
delay(1000); // Esperamos un segundo para volver a capturar la lectura del sensor
}

Ha resultado un reto apasionante, a pesar de los tropiezos. Confío en poder realizar algún proyecto más y, a ser posible, compartirlo y ejecutarlo con los alumnos.

Reto 1 – Unidad 2 – Mooc «Competencia Digital para docentes»

Para llevar a cabo la propuesta de resolución para el reto 1 de la Unidad 2, en el que se nos pide relacionar las áreas y competencias del Marco Común, he utilizado la herramienta Genial.ly. A continuación dejo el enlace a la presentación sobre las citadas áreas del Marco Común de Competencia Digital Docente:

https://www.genial.ly/58d95be66da42e1d406ebfc1/competencias-digitales-para-docentes-2017

Espero que os guste.

Reto 3 – VRMooc – Panorámica 360º

datcenter360

De nuevo toca resolver un reto. En esta ocasión me ha llevado más tiempo de lo esperado. He intentado trabajar con distintos recursos y herramientas, cambiando varias veces la idea del producto que pretendía presentar.

Inicialmente, quería crear un recorrido virtual por varios data centers (CesGa, Google DataCenter) mediante la herramienta Presence pero, finalmente, no ha sido posible terminar de crear el recorrido virtual. Dicha herramienta y su configuración han resultado algo complicadas de utilizar y, sobretodo, de ejecutar satisfactoriamente. La idea era ofrecer a los alumnos una forma de ver las distintas infraestructuras del interior de los datacenter para que, de esta manera, pudiesen trasladar lo aprendido de forma teórica en el aula, a través del módulo de Redes Locales, sobre un entorno real al que llegamos vía tecnología VR.

Dado que esto anterior no ha podido ser, he optado finalmente por utilizar una fotografía panorámica de temática sci-fi, vinculada al entorno tecnológico-informático, y basada en la saga cinematográfica de Matrix. Dicha saga contiene numerosas referencias a contenidos que se asocian al currículo del CC.FF. de SMR y, aprovechando la vertiente del entretenimiento, ligamos el visionado de la imagen, el texto en inglés y los distintos actos que se representan para abrir un debate al respecto.

La imagen utilizada como base se ha obtenido de la web www.wpanorama.com, siendo de licencia gratuita y de libre descarga (licencia cc BY) y se denomina «matrixpano«.

Las distintas piezas de sonido se han descargado de la página dig.ccmixter.org, y son las siguientes:

  • Connected.mp3, de ghost4fire y con licencia CC de tipo BY,NC.
  • A scene befor fire.mp3, de Jeris y con licencia CC de tipo BY,NC.
  • Sawmill.mp3, de gurdonark y con licencia CC de tipo BY.

Me queda pendiente, por tanto, elaborar una creación propia intentando utilizar los recursos de los que dispongo. Dichos recursos pasan por el uso del teléfono móvil, que ya he probado mediante diversas apps. De ellas he terminado por seleccionar Panorama360, pues parece la que mayor manejabilidad y sencillez ofrece, a pesar de lo «difícil» del encaje de las partes del panorama. Otra opción que no descarto es la de usar la opción de la propia cámara para captar fotos panorámicas.

Finalmente, aquí os dejo el resultado final de este reto:

Matrix Space

Enlace (por si no funciona el de arriba): https://roundme.com/tour/121277/view/307625/

MOOC – Uso Educativo de la Narración Digital. RETO 2

Por fin puedo acabar de desarrollar una propuesta como solución al reto 2 de este MOOC.
Mi intención es preparar una breve historia a modo de introducción para usarla en un curso sobre lenguaje de programación Java. En ella se desarrolla la narración correspondiente al discurrir que originó el proyecto del que nacería este lenguaje de programación: el denominado «Green Project» (Proyecto Verde).
Ha resultado una tarea costosa, ya que llegar a sintetizar los aspectos de una historia de este tipo para conformar una narración sencilla e interesante, implica un arduo trabajo de resumen y concreción.
Por otra parte, la elaboración de la rúbrica también ha implicado un tiempo de desarrollo considerable, ya que también he intentado minimizar el número de aspectos y elementos a valorar, llegando a tratar el conjunto de todo el tema transmedia/multimedia como un único ítem y, de esta forma, facilitar la valoración al corrector.
A continuación cuelgo los distintos documentos que se solicitan en el reto.
Espero que os guste.

Guión técnico:

Guión técnico «The Green Project«
https://www.scribd.com/embeds/288857267/content?start_page=1&view_mode=scroll&show_recommendations=true
Storyboard:

https://www.scribd.com/embeds/288857320/content?start_page=1&view_mode=scroll&show_recommendations=true

Rúbrica:

https://www.scribd.com/embeds/288857180/content?start_page=1&view_mode=scroll&show_recommendations=true

Trabajando con Vyew

De cara a mejorar el proyecto en el que me he comprometido con mis alumnos de 1º de SMR, en el que realizamos el aprendizaje de programación orientada a objetos con Java, vamos a realizar una serie de pruebas de la herramienta Vyew.
Como tal, Vyew es una herramienta web gratuita que ofrece funcionalidades de pizarra compartida on-line, uso de webcam y audio para videoconferencia, chat, pantalla compartida, …
Después de realizar una pequeña prueba en el aula, vamos a ponerla en marcha este próximo sábado en la siguiente sesión.

Seguiremos dando más detalles.

Remix 2010

Finalmente, el pasado jueves 16 de diciembre, pude asistir al REMIX 2010. Este es un evento de Microsoft, en el que se mostraron las últimas novedades de la firma, enfocadas al mundo del desarrollo web, entre otros.
Destacar la KeyNote llevada a cabo por Joe Wilson (DPE Lead Western Europe) y el speech de David Salgado con su entretenida presentación sobre WebMatrix, una novedosa herramienta de desarrollo web.
Actualización (20/12/2010): David Salgado comenta en su blog la jornada de REMIX 2010

Taller técnico sobre DNI-e

Hoy he podido asistir a un taller técnico sobre el DNI-e, promovidodnie_logo por el INTECO sobre desarrollo de servicios en torno al mismo.

Estructurado en cuatro ponencias y un taller práctico, esta jornada ha sido de un carácter eminentemente técnico. Destaco de las mismas la charla, escasísima, realizada de un modo muy ameno y comprensible por Santiago Suárez, de la oficina técnica del CNP. En ella se han presentado unas pinceladas sobre las posibilidades que ofrece el DNI-e.

Por otra parte, el taller práctico ha proporcionado una visión objetiva sobre el uso de las funciones, librerías y drivers más actuales para la gestión y desarrollo de aplicaciones que utilicen el DNI-e.

Para aquellos que tengan interés en el tema y no tengan posibilidad de asistir a la última sesión de estos talleres (Sevilla, 16 de Junio), disponéis de este enlace para acceder a cursos del INTECO on-line.

A modo de introducción, ahí va una imagen con los detalles puramente físicos de la tarjeta de identidad “inteligente”:

dnie_descrip_p

Scrum y Extreme Programming en el OpenSegovia de la mano de Agilismo.es

He tenido la ocasión de disfrutar de tres estupendas jornadas vinculadas a la informática este pasado fin de semana.
El lugar: Segovia. Los promotores: la UVa y el colegio de Ingenieros Informáticos, entre otros.
En estos momentos, dentro de mi periplo universitario (como alumno de Ingeniería Informática), me encuentro peleando con varias asignaturas vinculadas a la planificación y a la gestión de proyectos informáticos. Una de las últimas tareas que he tenido que realizar me llevo a investigar sobre la metodología SCRUM, la cual me asombró gratamente.
Casualmente, a través de un amigo vinculado al Colegio de Ingenieros Informáticos, me llegaron nuevas sobre las jornadas de SCRUM que se impartirían a modo de talleres en el OpenSegovia.
Sin dudarlo, me apunté y allí estuve durante la tarde del pasado viernes y la mañana del siguiente sábado.
Ha resultado ser una experiencia muy interesante. El enfoque ofrecido por Xavi Gost y José Manuel Beas sobre como se puede aplicar SCRUM, combinándolo con todo un conjunto de métodos y formas de actuar sobre la gestión de un proyecto informático, me han mostrado que existe un sistema más eficaz y mucho más ágil, dentro del mundo de la gestión de proyectos informáticos, que los que he tenido oportunidad (y obligación) de seguir en diversas ocasiones.
Sus directrices basadas en la focalización del proyecto en las personas, en centrar el desarrollo sobre lo que verdaderamente pide (y necesita) el cliente, manteniendo las cosas lo más simples y sencillas posibles, muestran que el mundo del desarrollo de aplicaciones puede funcionar muchísimo mejor sin llegar a burocratizar tanto la gestión de proyectos.

Desde aquí doy las gracias a ambos, Xavi y José Manuel (agilismo.es), por mostrarme nuevas y maravillosas oportunidades. Espero ser capaz de transmitirlas también a mis alumnos, enseñandoles que, por encima de todo lo demás, los componentes de un equipo son las piezas más importantes del mismo y que deben estar a gusto para que el equipo funcione.

Os muestro a continuación, un pequeño albúm con algunas fotos de los talleres:

OpenSegovia2010