14 ago 2020

Siempre hay una primera vez: Up To Secure 2011

Corrían los primeros días del año 2011. Los primeros días de enero. Llegué a la oficina de Informática 64 en Móstoles. Comenzábamos un nuevo año. Yo llevaba un año y pico. Todavía compartía el tiempo de Informática 64 con los estudios en la URJC, acabando la Ingeniería Informática, por lo que mi jornada no eran más de 4 o 5 horas. Uno de esos primeros días de 2011, Chema Alonso estuvo buscando a un ponente para una charla en la gira Up To Secure 2011 y llegó a mí. No era para toda la gira, solo para las paradas de Pamplona, Zaragoza y Barcelona.

Cuando uno tiene 24 años recién cumplidos solo piensa en hacer cosas. Al menos es mi caso. El "NO" no entraba en mi vocabulario. Chema llegó y me dijo: "¿Te atreves a dar una charla sobre esto?" Sí. Eran las dos letras que debía decir. No dudé. 3 minutos después sentí muchas ganas por dar la charla, pero empecé a notar cierta presión. Sensación de responsabilidad y de preocupación por cómo dar la charla. 

Tenía dos problemas. El primero, no había interactuado mucho con el malware en Mac y el segundo, quizá aún más grave, no había dado una charla nunca. Lo más cercano a dar una charla era mi presentación de proyecto fin de carrera (plan antiguo) en la Ingeniería Técnica de Informática de Sistemas (nuestro querido ITIS). Y creedme, no nos preparaban para hablar en público. Recuerdo mi paso por la Universidad como un cúmulo de experiencias que ayudan a muchas cosas, pero no a hablar en público. Recuerdo mi primer proyecto final de carrera (luego vino el de la Ingeniería Informática) en el que tenía "tembleque", no organizaba bien la exposición, no mostraba ningún tipo de sentimiento por lo que contaba, y en el que recibí un: "esto está mal, y esto, y esto, y esto...". Son cosas que te ayudan a aprender. La crítica constructiva. Aquella que a muchos les cuesta entender y atender, sobretodo cuando estamos en esa edad, los veintimedios. 

Tenía como dos semanas para preparar aquella primera charla, la cual se convertiría de golpe en 3x1. No tengo mucho recuerdo del tiempo que empleé en hacer las slides, en preparar el tema y todo lo que lleva una charla. Han pasado más de 9 años y medio, pero estoy seguro que le dediqué tiempo, bastante tiempo. 

Lo que si recuerdo fue llegar a Pamplona en un tren. Recuerdo el tren en Móstoles central hasta la estación donde debía tomar el tren a Pamplona. Hoy uno se ha acostumbrado a moverse, a viajar, a tener la suerte de estar aquí y allá, pero aquella primera vez de tomar un tren para ir a una charla fue, sencillamente, especial. Al llegar a Pamplona tomé un taxi hasta el evento. Chema esperaba allí al 'Rookie'. Allí empecé a ver la dimensión que tenía Chema Alonso (lo digo a título personal, le guste a quién le guste o no...). Entendí muchas cosas. Y disfruté, fuera del escenario con la gente y en el escenario dando la primera charla. Aquella que no olvidas. Pasaron los 30-40 minutos y lo disfruté. Salió bien. Solté un gran peso, pero me sentí vivo. Sentí que aquella comunicación con el resto de la gente era, para mí, especial. 

La gira continuó: Zaragoza y Barcelona. En Zaragoza todo fue bien. Quizá mejor que en Pamplona, ya sabía a lo que me enfrentaba y lo disfruté. Al día siguiente tocaba Barcelona. 3 días, cada día en una ciudad, de martes a jueves, y el jueves de vuelta a Móstoles. La noche del miércoles, en el hotel de Zaragoza, decidí tocar la presentación, pequeños cambios, y lo que es peor, toqué la demo. Y no probé. ¡No probé! He cometido muchos errores en mi vida, de los que uno aprende, y aprende para bien. Había una parte de la demo dónde el AV debía limpiar el malware, y yo la ejecuté en aquella habitación. Sin darme cuenta me había quedado sin demo del malware. 

¿Cuándo me di cuenta? En el Cosmo Caixa en Barcelona. Delante de... 200 personas? 300? No sé, había más gente que en Zaragoza y en Pamplona. Llegó la parte de la charla donde debía ejecutar la demo, arranqué el Mac y... "¿Y el malware?" En ese instante, mi cuerpo se quedó en el escenario, pero mi mente viajó en el tiempo hacia la habitación de Zaragoza. Recordé el "epic fail" y me vi desde fuera lanzando el AV y eliminando el malware. "F**k" pensé. ¿Qué hago? En la tercera charla, la última que me tocaba en esa gira Up To Secure 2011, la había "cag**o". En fin, ¿Alguien al rescate? Chema salió para echarme un cable, ya que no sabía bien cómo continuar. 

Bajé del escenario poco tiempo después y me fui a una especie de "plaza" que había allí. Estuve "increpándome" en mi interior. No entendía cómo podía haber cometido ese fallo. Con el tiempo lo entendí. Me confié. Y lo aprendí, claro que lo aprendí. Con el tiempo aprendes a poder salir de situaciones así, de poder prepararlo todo, de saber qué todo puede fallar (y fallará si no lo miras y mimas), que tienes que controlar el mínimo detalle y es algo que se aprende con el rodaje. No te lo dan los libros, no te lo da nadie, lo vives, lo sufres y lo experimentas. Si crees que no fallarás, estás equivocado. Debes fallar para aprender, para evolucionar, para crecer. 

No quiero dejar escapar la oportunidad de rememorar algunas de las slides de aquella charla, la primera vez. 





Han pasado más de 9 años y medio y he tenido la suerte de estar en muchos muchos sitios. Ver con distancia lo que aquel "niño" de 22 años hacia en su presentación del Proyecto Final de Carrera en ITIS (URJC) a lo que he podido ir aprendiendo con el paso de los años y las experiencias vividas me saca, simplemente, una sonrisa. Nostalgia supongo. Ley de vida afirmo. Esperemos seguir con el Rock'n'Roll muchos años más, eso sí, os puedo garantizar que seguiremos aprendiendo, investigando y esforzándonos por sacar lo mejor de nosotros. 

6 ago 2020

Montándonos un (easy) ventilador con Arduino

Hace ya unas semanas, mi amigo Pablo (@pablogonzalepe) me propuso hacer algún nuevo proyecto maker. Aprovechando que estamos en verano y que tenemos tiempo libre, pensé que estaría bien hacer algún proyecto veraniego sencillo con Arduino.

 

Busqué algunos componentes y encontré algunos motores pequeños de corriente continua y algunas piezas de plástico con forma de hélice, por lo que se puede hacer algún experimento para hacer un ventilador pequeño de mano y aprender algo más sobre el uso de motores y microcontroladores.



Realmente puedes pensar que para mover un motor pequeño se podría conectar a una pila e incluso se podría poner un botón para el encendido y el apagado del motor, de tal manera que haciendo un circuito simple analógico tendríamos listo el proyecto, y esto es cierto, sin embargo, vamos a pensar en hacerlo un poco más complejo y más completo gracias a Arduino.

 

Si conoces algo de Arduino puedes pensar en tratar a un motor como otro componente digital más. Para encender poner la salida digital a HIGH y para apagar poner a LOW ¿no? ¿digitalWrite(pin, estado)?¿Y si queremos variar la intensidad? ¿Se podría utilizar la modulación por ancho de pulso (PWM)? ¿analogWrite(pin, valorentre0y255)?.

 

Podría ser tan sencillo como eso, sin embargo, al trabajar con motores no es tan fácil ya que las placas Arduino no tienen potencia suficiente para moverlos. Si has trabajado con impresoras 3D hechas con Arduino, recordarás los pololus para controlar la potencia de los motores paso a paso. En este caso ocurre lo mismo y es necesario contar con los llamados drivers. Uno de los más utilizados es el L298N, que es un módulo muy económico y funcional.


Este componente está formado por un puente H, esto es un componente formado por 4 transistores que permiten invertir el sentido de la corriente de tal manera que se puede mover el motor en ambos sentidos. El L298N además permite controlar dos motores independientes, así como la velocidad de los mismos conectado a los pines PWN.

 

Para el control se tienen 6 pines indicados como IN1, IN2, IN3, IN4, ENA y ENB. Tres son para el control de un motor (IN1, IN2 y ENA) y los otros tres para el otro (IN3, IN4 y ENB). Los pines indicados con INX son para marcar la dirección del giro y los indicados con ENX para la velocidad.

 

Cuando ambos pines IN están en LOW no está declarado ninguna dirección de giro. Se deben alternar, por ejemplo:

 

digitalWrite (IN1, HIGH);

digitalWrite (IN2, LOW);

 

o

 

digitalWrite (IN1, LOW);

digitalWrite (IN2, HIGH);

 

para girar en el sentido contrario.

 

Por último, el pin ENA (para el caso del motor 1) se puede escribir con el control de PWM:

 

analogWrite (ENA, 128);

 

Nuestro ventilador realmente requiere de una configuración muy sencilla ya que únicamente girará en un sentido (¡en un sentido echará aire mientras que en otro lo absorbe!) pero sí utilizaremos el control de velocidad para mover más o menos aire. Y ahora que lo tenemos en un sistema digital, podremos programarlo de mil maneras distintas e incluir algunos componentes desde simples botones para encender/apagar o subir/bajar la velocidad, hasta cosas más complejas como sensores para que únicamente funcione cuando estamos cerca o poner un controlador remoto a través de distintas tecnologías como RF o NFC.

 

Si queremos hacer un ventilador más geek, podemos utilizar un ventilador de ordenador y regular también la potencia. Y si queremos molar todavía más, siempre podremos conectar nuestro ventilador a internet para poder programarlo y manejarlo desde cualquier lugar del mundo… pero esto ya es otra historia que dejaremos para otra ocasión.

 

Siente el espíritu maker y ¡hazlo tú mismo! 

 

Autor: Álvaro Núñez-Romero (@toolsprods), autor del libro Arduino para Hackers: PoCs & Hacks just for Fun (Contactar con Álvaro Núñez)