Arduino - Comunicacion serie con Java y salida a LCD y LED bicolor

A principios de año aproveche la oportunidad de asistir a un curso de Arduino que se realizó en el IES los Viveros de Sevilla.
El curso fue muy productivo e interesante, lástima que en aquellos días yo estaba también preparando la oposición y no pude sacar todo el provecho al curso como me habría gustado, en cualquier caso aprendí mucho y más tarde, cuando me he visto liberado de ciertas obligaciones he continuado aprendiendo y avanzando con Arduino.
Este proyecto los realicé en dicho curso, no es un proyecto final, sino una pruebas para comprobar funcionamiento y costes.

La idea que se pretendía era comunicar una aplicación realizada en Java (con su interfaz gráfica) con un Arduino, este ultimo mostraría información en una pantalla LCD y modificaría los valores de un LED bicolor.

Imagen de la interfaz gráfica desarrollada en JAVA para comunicarme con el Arduino

Imagen de la interfaz gráfica desarrollada en JAVA para comunicarme con el Arduino

Una de las características que eche en falta en el curso fue la falta de reconocimiento que aprecie (por algunos comentarios) hacia los estándares, y en mi camino he aprendido que los estándares (y especialmente los desarrollados por organizaciones tan importantes como la W3C, IEEE, ISO, ANSI, ...) son de una importancia enorme, ya que nos permiten avanzar mucho más rápido gracias a que "no hay que reinventar la rueda". Por este motivo, uno de los requisitos que yo quería que cumpliera este pequeño proyecto era lograr que la comunicación entre el PC y el Arduino se realizará en XML (lo cual se logró, y de manera satisfactoria).

Arduino - Comunicacion serie con Java y salida a LCD y LED bicolor - YouTube.

Respecto a la aplicación en JAVA hay poco que comentar, simplemente es una pequeña interfaz gráfica, a mi me gusta el IDE NetBeans y es el que utilicé, respecto a las librerías para comunicarme por el puerto serie con el Arduino, usé las mismas que utiliza el IDE Arduino 1.0, estas se encuentran en la carpeta "/lib" de dicho IDE.
Por otra parte el XML lo genero con la librería XStream que es una maravilla, muy cómoda, rápida y flexible (no es la primera vez que la uso en mis proyectos ;-)).

El hardware montado es sencillo, en el siguiente esquema de conexiones (creado con Fritzing) faltarían indicar que la comunicación serie se realiza por el propio USB del Arduino.

Esquema del montaje y conexiones del proyecto

Esquema del montaje y conexiones del proyecto

Respecto al código fuente del Arduino, estuve buscando previamente si alguien habia realizado alguna librería o conjunto de funciones que me permitieran trabajar el XML, lo que encontré fue una función que posteriormente edité y modifique para que funcionara como yo quería. Concretamente lo que cambié fue para que detectara correctamente los cierres de las etiquetas XML.

A continuación se puede descargar todo el proyecto bajo licencia Creative Commons.

Creative Commons LicenseEsta obra de Alejandro Lorente está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported.

Esquema de conexiones
Esquema de conexiones
led_PC_y_LCD_con_arduino.fzz
Version: alpha1
7.7 KiB
614 Downloads
Details...
Codigo fuente del proyecto para el Arduino
Codigo fuente del proyecto para el Arduino
mensajePCarduinoLCD.ino
Version: alpha1
6.4 KiB
602 Downloads
Details...
Codigo fuente Java del proyecto
Codigo fuente Java del proyecto
arduinoVentanasXML.tar.bz2
Version: alpha1
78.2 KiB
334 Downloads
Details...