miércoles, 28 de octubre de 2015

COMO CREAR UNA CONSOLA SERIE PARA ARDUINO EN 4 PASOS



Todos conocemos la consola serie del ide de arduino, y creo que todos coincidimos que deja mucho que desear sobre todo para aquellos que nos gusta la estética a la hora de mostrar datos. Bien, pues pululando por la red descubrí un lenguaje de programación orientado precisamente a eso, a trabajar con gráficos, es el Processing. Para no enrollarme mucho, aqui expongo la definición de processing según la wikipedia:
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab dirigido por John Maeda. Se distribuye bajo la licencia GNU GPL.
En apenas un par de días se puede aprender processing, y visto el lenguaje, es idóneo para crear una consola mucho mas vistosa que la que trae el propio ide (sin menospreciar el trabajo de los desarrolladores que lo han hecho).
Con este manual se pretende enseñar de forma fácil y en sólo 4 pasos, a diseñar una consola serie para mostrar los datos que entrega arduino (o cualquier dispositivo que se conecte a un puerto serie). Incluso podríamos simular arduino en proteus y mostrar los datos en esta consola. ;)

Esta consola se podrá diseñar desde cero o aprovechar la que os traigo aqui (con código fuente incluido). Vais a ver lo facil que es modificarla o directamente ponerla a funcionar si no quereis modificar nada. Tan solo habrá que especificarle el puerto serie al que está conectado el arduino (paso 4) y la consola comenzará a mostrar los datos simulando una lcd keypad shield (el dibujo es cortesía de zelectro.cc): 


He de aclarar que no hace ni dos semanas descubrí este lenguaje, asi es que a fecha de hoy, reconozco que no estoy muy ducho en este lenguaje. Seguramente haya expertos en processing que sabrán como mejorar esta consola y añadirle mas características. Pero para empezar creo que no esta muy mal del todo.
Personalmente, creo que processing es un lenguaje perfecto para complementar, (no para sustituir, aunque podría) al lenguaje C con el que se programa arduino, siempre que queramos tener resultados visualmente atractivos.
Bueno, no nos enrollemos mas y vayamos al grano, no sin antes especificar que estos 4 pasos solo habremos de realizarlos una sola vez. ;)

PASO 1. DESCARGA E INSTALACIÓN DEL IDE DE PROCESSING 
El ide de processing es muy similar al de arduino, por tanto, es donde va el código fuente. Se puede ejecutar el programa o bien crear un ejecutable para no necesitar del ide (nota 2).
Enlace de descarga (página oficial): https://processing.org/download/ He de aclarar que la donación que piden es voluntaria y yo no tengo relación alguna con dicha página. Es la web oficial de processing. Descargamos, descomprimimos e instalamos.
Si lo abris (aunque no es necesario de momento) os encontrareis una pantalla como la que sigue:

No entraré en programación de processing, ya que para ello he puesto a vuestra disposición en este mismo paquete un manual de programación en processing de más de 200 páginas en español. Para quienes quieran profundizar en este lenguaje. "Processing, un lenguaje al alcance de todos". 
Cerramos el ide (si lo hemos abierto) y pasamos al siguiente paso...

PASO 2. DESCARGAR EL CÓDIGO FUENTE 
Descargamos el archivo "ConsolaSerieVirtual" que incluye el código fuente entre otras cosas aqui ---> http://1drv.ms/1M1SP3b

PASO 3. DESCOMPRIMIR EL CODIGO FUENTE: 
Una vez descargado y descomprimido el archivo, encontraremos una carpeta llamada ConsolaSerieVirtual con varios archivos en su interior:
  1. Carpeta DATA: Archivos internos que necesita processing para ejecutar la consola. Esta carpeta podemos ignorarla.
  2. Carpeta EnvioDeDatosSerial: Esta carpeta contiene el código fuente de arduino como ejemplo para enviar datos por el puerto serie. Imprescindible aquí enviar dicho código fuente a nuestro arduino ya que es el que nos sirve de prueba. Es un simple contador que envía por el puerto serie los numeros del 0 al 1000.
  3. Processing, un lenguaje al alcance de todos.pdf: Éste es un libro para aprender procesing con 233 páginas en español para quien quiera profundizar en este lenguaje.
  4. Archivo ConsolaSerieVirtual.pde: Por último, éste es el archivo principal. Donde va el código fuente de nuestra consola, en lenguaje processing. Aquí es donde vamos a especificar el puerto serie al que está conectado nuestro arduino, de la siguiente forma
    (Paso 4)
PASO 4. ESPECIFICAR EL PUERTO SERIE DE NUESTRO ARDUINO: 
Damos doble click al archivo ConsolaSerieVirtual.pde
Se nos abrira el ide de processing (previamente instalado en el paso 1), que muestra la siguiente pantalla:


Buscamos la linea que esta marcada en el recuadro rojo (línea 11). En ella habremos de sustituir el 3 (puerto COM3 en mi caso) por el número de puerto al que este conectado nuestro arduino.
Una vez modificado dicho valor, ya podemos ejecutar la consola dándole al boton de PLAY (tambien marcado con un círculo en rojo en la figura anterior).
Acto seguido debería aparecer nuestra consola, mostrando los datos que esté recibiendo por el puerto serie.
Y con esto habremos conseguido nuestro objetivo. Una consola virtual mucho mas estética que la original de arduino. :)

NOTAS: 
Nota 1. A partir de aquí, no necesitamos hacer mas todo el proceso. Solo basta con ejecutar el archivo ConsolaSerieVirtual.pde (o exe) y nada mas. A jugar con nuestro arduino. :)

Nota 2. Como bien indicaba al principio de este manual, podemos crear un ejecutable de nuestra consola para no necesitar el ide. Eso sí, si nuestro arduino cambia de puerto, habremos de crear de nuevo el ejecutable despues de volver a modificar el código fuente con el nuevo puerto. Para ello, en el ide de processing, iremos a Archivo, Exportar aplicación... y seleccionamos nuestro sistema operativo. Si seleccionamos Windows (ya marcada por defecto) nos creará dos carpetas dentro de la misma carpeta del ide. Una para windows, versión 32 bits y otra para windows versión 64 bits.


 

2 comentarios:

  1. Hola buenos días, fenomenal blog el que iniciais, me gustaría proponeros que si quereis vincular vuestro blog al mío de Mundodronica en calidad de blog amigo de interés, así podría difundir más vuestros artículos y que llegue a más personas.
    Enhorabuena, y os deseo los mayores éxitos, contad con mi colaboración en lo que necesiteis.
    Saludos cordiales.
    Víctor González (Administrador de Mundodronica).

    ResponderEliminar
  2. Yo tengo un blog sobre ARDUINO UNO y me interesaría colaborar contigo. Saludos

    ResponderEliminar