Ya sabemos que la placa arduino, tan utilizada en robótica educativa, hay que programarla para poder gestionar sus entradas y salidas y con ello, poder hacer cosas interesantes.

Una vez programada, lo normal es que comprobemos si todo funciona como esperábamos. Muchas veces no hace lo que pretendemos y enseguida revisamos el código o los bloques y encontramos el fallo. Otras veces no encontramos tan fácilmente el fallo.

Ya hemos visto en otra entrada qué tipos de fallos podemos encontrar cuando programamos y hacemos proyectos. Hemos llamado al proceso de corrección de los errores de un programa (bugs, en inglés) depuración (debugging).

Por todo ello, podemos deducir que sería interesante contar con una herramienta que permitiera ver en pantalla qué es lo que está haciendo un programa.

En programación, esta herramienta suele llamarse «debugger» y el IDE de arduino todavía no cuenta con ella, aunque está en vías de corregirlo. La version IDE pro con debugger (entre otras ventajas, lleva incorporado un depurador de código) está, en el momento de escribir estas, en fase beta.

El monitor serie como depurador (debugger)

En el caso de arduino, podemos utilizar el monitor serie, es decir, el monitor de nuestro ordenador, para ver el comportamiento de nuestro programa.

La palabra serie hace referencia a que conectamos la placa de arduino con el ordenador y a través de comunicación serie, la placa le envía los datos. En concreto, a través de los pines 0 y 1.

Puesto que este canal es el que usamos para subir los programas a arduino, obtendremos un mensaje de error si queremos ver datos y la vez estamos subiendo un programa.

En la entrada dedicada a la corrección de programas ya vimos cómo funcionaba el monitor serie de arduino. Bastaba con inicializar y utilizar la función Serial, para poder empezar a ver datos por pantalla.

De esta manera, por ejemplo, podemos ver por pantalla la distancia medida por un sensor de ultrasonidos y, alejando y acercando la mano, ver si está midiendo de forma correcta.

El monitor serie como registro de datos

He utilizado en más de una ocasión el monitor serie para recopilar datos y después analizarlos. Voy a indicar la forma más fácil de hacerlo.

Aunque no sea muy eficiente, está al alcance de cualquiera y se puede hacer como nos gusta hacer las cosas interesantes: sin añadidos y ya mismo. (La otra opción, que veremos en una próxima entrada, es utilizar un software que permita la grabación de datos a un archivo de forma directa).

¿Cómo hacerlo? Se utiliza la función Serial.println() para que los datos que nos interesan aparezcan en el monitor del ordenador. Usamos el ratón para seleccionar los datos y copiamos. Acto seguido, podemos pegarlos en un fichero de texto plano (con el bloc de notas, por ejemplo):

monitor serie de arduino
Procedimiento rápido para obtener datos

Abrimos el fichero de texto como se muestra (no se puede hacer directamente, hay que importar los datos): Datos -> desde el texto/CSV -> cargar:

monitor serie de arduino
Pantalla de importación de datos desde EXCEL

Si no tenéis office, podéis usar la hoja de cálculo de libreoffice, que es gratuito: Archivo -> abrir -> importación (ver imagen) -> separado por coma (seleccionar)

monitor serie de arduino
Obtención de datos con libreoffice

Una vez que ya tenemos los datos importados a nuestra hoja excel, podemos hacer los gráficos que queramos:

monitor serie de arduino
Representación gráfica de los datos

Por supuesto, este procedimiento es válido para cualquier conjunto de datos que tengáis grabado en un archivo de texto (.txt), teniendo en cuenta los separadores que haya entre datos (coma, punto y coma, espacio, tabulador).

Hemos simulado un conjunto de números. Lo mismo se puede hacer con los datos procedentes de cualquier sensor, sin más que utilizar Serial.println() para imprimir los valores.