Interface
Java - Arduino
ING. PATRICIO AVILA, MBA, PMP®
No se puede programar Arduino
utilizando el lenguaje Java
Arduino y Java son dos entes independientes.
Arduino es una plataforma de hardware libre con su propio
lenguaje, mientras que Java es un lenguaje de
programación de alto nivel.
Sí se puede crear programas en Java que le envíen
instrucciones a Arduino entregándonos el control de
circuitos electrónicos desde una interfaz en la computadora.
Arduino se comunica con la
computadora por medio de
comunicación serial
Esta es la forma más sencilla de comunicación que existe entre
Arduino y la computadora, ya que aprovecha el puerto USB por
medio de un convertidor USB-Serie.
Se implementa con las librerías adecuadas.
Existe una librería especial para
Arduino en Java
La librería Arduino para Java es una compilación de código que
facilita mucho la comunicación Arduino-Java, Java-Arduino
([Link]
Para poder lograr esta comunicación, es necesario instalar los
drivers de la librería RXTX
([Link] ya
que la librería Arduino depende de la comunicación serial que
posibilitan estos drivers.
Al crear un programa en Java y
establecer comunicación con Arduino,
se está remplazando el Monitor Serial
por una interfaz gráfica
¿La ventaja de las interfaces? Tenemos botones gráficos
estilizados, lo que hace nuestros proyectos más interesantes,
interactivos y profesionales.
Para cada tipo de comunicación
existen métodos especiales
Se pueden dar tres tipos de situaciones…
Cuando se necesita transmitir datos de Java a Arduino
Cuando se necesita transmitir datos de Arduino a Java
Cuando se necesita enviar y recibir datos entre Arduino y Java
Para esto, la librería Arduino para Java posee tres tipos de
conexiones: ArduinoRX(), solamente para recibir datos en
Java. ArduinoTX(), solamente para transmitir datos en Java
ArtuinoRXTX(), para transmitir y recibir datos en Java.
Los tres métodos tienen parámetros que se deben
establecer a la hora de utilizarlos.
En todos hay que establecer el puerto COM al que está
conectado Arduino (ejemplo: «COM6»), el baudRate (que
debe ser igual al establecido en el [Link]() en
Arduino), un timeOut (tiempo de espera entre el inicio de la
conexión y el envío/recepción de datos) y en algunos casos
un SerialPortEventListener para detectar cuando se han
enviado datos de Arduino a Java.
Java “escucha” cada vez que Arduino
le envía datos
Cuando es necesario enviar datos de Arduino a Java, se utiliza
un SerialPortEventListener, el cual requiere de la
implementación de un método abstracto, SerialEvent().
El SerialEvent() se ejecuta cada vez que se recibe un dato en el
Puerto Serie. Usando el método ReceiveData() obtenemos estos
caracteres.
También existe el método MessageAvailable() que devuelve un
valor true cuando se haya finalizado la recepción de cualquier
mensaje enviado desde Arduino con el método [Link]().
Cuando el método MessageAvailable() devuelve un valor true,
entonces se recibe el mensaje con PrintMessage(). El mensaje será
recibido como un String y podrá ser usado como desee el usuario
dentro de Java.
En Java es posible graficar los datos
que se lee en los sensores
conectados a Arduino
Existe la librería JFreeCharts. Podemos crear una interfaz
que recibe, procesa y grafica los datos en tiempo real.
Fuente: [Link]
para-utilizar-arduino-desde-java/