Desarrollando… frikadas

Hace tiempo que llevo trasteando con un cacharro llamado Arduino. Es una placa base con un microprocesador y varios componentes que se puede programar a través del puerto USB del ordenador. Es decir, que no se necesita material o equipos especializados para programar un autómata que haga cualquier cosa que se te ocurra. Esta tarjeta tiene varios pines donde se pueden (y deben) conectar componentes electrónicos y con la programación se define qué datos se toman, qué se hace con ellos y qué se envía a los sensores o componentes. Si no os hacéis una idea, estos son algunos ejemplos.

Ideas, ideas

Cuando empecé con el cacharrito, comencé a seguir un manual que tenía ejemplos sencillos: un semáforo de LEDs con un botón como el que hay que pulsar para que se ponga rojo; otro en el que tienes una rueda (potenciómetro) que según la giras, va cambiando el color de los LEDs… Cosas sencillas para ir aprendiendo.

Pero a mí siempre se me quedan pequeñas y pienso más en aplicaciones prácticas. Y como me pongo a ello demasiado pronto, siempre me meto en camisa de once varas. Y así me ha pasado.

Decidí que ese sistema era un buen entorno en el que desarrollar medidores de variables físicas. Es el efecto secundario de haber estudiado mi carrera. El primero que me propuse es un medidor de temperatura. Esto viene desde que estudié física de la atmósfera en la carrera, que me pareció muy interesante (aunque no lo suficiente como para hacer esa especialidad). Hice varias pruebas, busqué información y demás y trasteé lo que el curro de aquél momento me dejaba, que era casi nulo.

El caso es que según trabajaba en eso, pensé en otro proyecto mayor. La verdad es que como es bastante ambicioso, nunca llegué a escribir de esto en el blog anterior, por si quedaba en nada y porque era muy básico lo que tenía. Pero ahora hablaré de él para animarme a mí mismo y forzarme de alguna manera.

Proyectos en marcha e ideas futuras

De momento, el proyecto más ambicioso que tengo en mente -y en marcha- es diseñar una sonda estratosférica en la que vayan montados varios sistemas Arduino que tomen medidas de diferentes magnitudes atmosféricas. Lo complicado es el diseño de esos medidores. Principalmente, porque hay que hacer muchas pruebas y comprobar que va a funcionar correctamente. Creo que es posible, pero no descarto la posibilidad de encontrarnos con problemas más graves y haya que cambiar algún sistema.

Por el momento, aquello que va más avanzado es el termómetro. No es gran cosa lo que he hecho, porque básicamente está todo en Internet. Lo que hay que hacer es adaptar el código que uno encuentra y comprobar que funciona todo correctamente. Pero hay que empezar por algo humilde. En cualquier caso, de esta parte se encargará un amigo mío de la época de la facultad y con el que trabajé en El Hormiguero. Mi parte será la del guardado de datos en SD, así que a ver cómo sale. Iré poniendo las cosas que voy sacando por aquí, aunque sean cosas parciales y sin acabar.

También tengo una tarjeta MakeyMakey. Es una tarjeta basada en Arduino -recordad que es hardware libre- que funciona como si fuese un teclado. Pero lo mejor es que miréis en la página para haceros una mejor idea de cómo funciona. Es bastante divertido. Pero lo mejor es que puede usarse como una Arduino programándola igual -con algunos detalles especiales- y es algo con lo que empecé a trastear. Los resultados fueron desastrosos, pero al menos demostró que se puede hacer -aunque en este caso, lo hice mal-. Quizá, si hago algún proyecto curioso con su uso habitual (como teclado) pondré también cosas por aquí.

También trasteé con unas librerías que permiten hacer funcionar Arduino con Matlab. Este es el proyecto que más me interesa porque Matlab permite hacer un montón de cosas para prototipar sistemas. No soy un experto, pero he visto todo lo que es capaz de hacer, y pensar en usarla junto con Arduino me parece la leche. En concreto, hay dos posibilidades para hacer esa conexión. Arduino se comunica con el ordenador por el puerto serie y Matlab puede acceder a ese puerto serie para recibir y enviar datos o señales.

Una posibilidad que es usando un paquete para Matlab -disponible en la web de Mathworks– que trabaja a través del puerto serie. También hay que cargar un programa en la Arduino. De esta forma, podemos controlar de forma interactiva la tarjeta a través de Matlab; es decir, podemos activar pines, encender y apagar LEDs, mover motores… todo lo que pueda hacer la tarjeta, pero de forma interactiva. Esto es genial para prototipar circuitos y proyectos. Así evitamos tener que ir ajustando parámetros y recargando constantemente el programa en la memoria de la tarjeta. Simplemente vamos modificando parámetros a través de Matlab y graficando los datos. De esta forma, podemos saber qué valores del parámetro o parámetros son los correctos. Aunque ahí se ha quedado la cosa de momento.

La otra forma de hacer esto es más simple, o más “a las bravas”: consiste en crear un script en Matlab que escriba y escuche en puerto serie por el que se comunica Arduino. A la vez, el sketch cargado en Arduino está escuchando para recibir los comandos desde Matlab. Cuando reciba alguno de estos comandos hará cosas como comenzar a tomar datos, periodo de tiempo entre medidas y cualquier cosa que necesitemos, como volcar los datos guardados al puerto serie para que Matlab pueda recogerlos. Por supuesto, toda esta comunicación dependerá de lo que queréis hacer. Aquí hay un ejemplo práctico de donde saqué el código para el programa que estaba picando yo, GeekyTheory. Una gran página de la que hay una burrada de cosas para aprender y trastear.

Hay otras ideas en recámara, como un sensor de movimiento que dispare una cámara digital cuando detecte algo. Tengo una cámara vieja medio desmontada y algo de código que saqué de la web donde ví un proyecto parecido. Pero es algo que irá saliendo poco a poco.

Seguiré informando de estas frikadas desde Praga, ya que probablemente tenga bastante tiempo libre por allí, sobre todo al principio.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s