Función ArduinoConnection(): Comunicar Arduino con Java

15
3054

Para poder comunicar una aplicación en Java con Arduino se necesita declarar las siguientes variables:

Estas variables funcionan de la siguiente forma:

Output: Es un OutputStream que se utiliza para enviar datos Utilizando el puerto Serie.

serialPort: Con esta variable iniciamos el Puerto Serie.

PORT_NAME: El nombre del puerto COM. En mi caso es COM 3 para Arduino Mega y COM 6 para Arduino Nano que son los 2 microcontroladores que tengo bajo mi poder.

TIME_OUT y DATA_RATE: son variables que utiliza el Puerto Serie para su funcionamiento. Generalmente se utilizan los valores 2000 y 9600, respectivamente.

Ahora veamos la función que llamaremos ArduinoConection:

Si copiamos esta función en el código de cualquier programa que estemos construyendo en Java, podremos enviarle datos a Arduino.

Una última función, EnviarDatos, será la función que recibirá los parámetros que desemos enviar.

Con las variables declaradas en el inicio de un programa en Java, junto con estos 2 métodos podremos hacer miles de cosas interesantes con Arduino.

0 0 votes
Article Rating
Suscríbete
Notify of
guest

15 Comments
newest
oldest most voted
Inline Feedbacks
View all comments
José Luis Zelaya E.
José Luis Zelaya E.
8 years ago

Que tal, buen trabajo amigo. Pero he tenido problemillas al querer implementarlo bajo windows con un arduino nano clonado. Problema 1. vi que el método … serialPort.addEventListener((SerialPortEventListener) events); … No está trabajando bien, ya que nunca me regresa el evento de que se ha recibido datos desde el arduino. Solución 1: Investigando un poco llegué a esta dirección donde dan la respuesta, quizá sea bueno agregarlo a la libreria que has creado. http://embeddedfreak.wordpress.com/2008/08/12/serial-port-event-in-rxtx/ Problema 2. Cuando el arduino me devuelve una cadena de datos («por ejemplo») las líneas de codigo siguiente … PanamaHitek_Arduino device = new PanamaHitek_Arduino(); device.arduinoRXTX(«COM2»,9600, null); //ignorado… Read more »

Mamen Gil
Mamen Gil
10 years ago

Felicitarte por el trabajo que realizas, es genial, y esperando tus tutoriales sobre como creaste la libreria de Arduino, me interesa mucho el tema, porque es genial y como funciona a la mayoria, te doy un 10. Un saludo

Mauricio
Mauricio
10 years ago

tengo una duda tengo un ARDUINO UNO con su driver hecho por mi, si me funciona con otra app para controlar el puerto serial, en java segui tu tutorial para utilizar tu libreria, pero al comunicar mi micro con java al ser compilado se queda ahi… porque ?? solo me aparece running y necesito detenerlo porque no realiza nada

antonygarciagonzalez
10 years ago
Reply to  Mauricio

Debe estar pasando algo con el initComponents() o quizas no le indicaste a la clase principal que tiene que hacer el Frame visible

chema131
chema131
10 years ago

Cuales son las librerias que tendriamos que importar?
Gracias excelentes tutoriales

antonygarciagonzalez
10 years ago
Reply to  chema131

Te recomiendo que visites el post donde publico mi librería Arduino para Java. Ahí he juntado algunos métodos útiles y fáciles

illuminatus18
10 years ago

Q tal, oye ya instalé la librería RXTX, pero no sé de donde sacas la clase SeriaPort, ya que no encuentro de que paquete se obtiene.

antonygarciagonzalez
10 years ago
Reply to  illuminatus18

No entiendo a que te refieres.

Podría ser un poco más específico por favor?

Tadeo
Tadeo
10 years ago
Reply to  illuminatus18

Lo que illuminatus18 pregunta es que de donde se saca «SerialPort» que usaste en «OutputStream Output = null; SerialPort serialPort; private final String PORT_NAME = “COM3″ private static final int TIME_OUT = 2000; private static final int DATA_RATE = 9600; «

antonygarciagonzalez
10 years ago
Reply to  Tadeo

El serial port se declara como un tipo de variable SerialPort. Para poder usar este tipo de variables hay que importar gnu.io.SerialPort; lo cual forma parte de la librería RXTX.
Es una variable que se debe usar en cualquier método de comunicación serial utilizando RXTX

Tadeohb
Tadeohb
10 years ago

Disculpa, me podrías decir lo que tenemos que importar, ósea lo que importaste para este proyecto?

Tadeo
Tadeo
10 years ago

Espero que leas esto ¿Es dificil poder crear mi propia libreria de arduino? si es posible que pudieras publicar un post de como hacerlo (digo, solo si el trabajo no es muy cargado). Muchisimas gracias! EXCELENTES TUTORIALES!

antonygarciagonzalez
10 years ago
Reply to  Tadeo

Hola.

Sí es posible para mi hacer un tutorial de cómo crear librerías para Java sin embargo esto tendría que quedarse en Stand By durante algunas semanas ya que estoy creando un proyectos a nivel superior y preparándome para una conferencia que dictaré pronto. Cuando me deshaga de esos compromisos preparo el tutorial.

Saludos.

Javier Rey
Javier Rey
11 years ago

Hola he seguido todos los pasos de play ground:

http://playground.arduino.cc//Interfacing/Java

Pero nada que logro recibir datos:
Es un arduino Leonardo, sobre Windows 7.

El programa se ejecuta correctamente, pero no recibe nada de nada.

antonygarciagonzalez
11 years ago
Reply to  Javier Rey

Hola. Te recomiendo que consultes este post:
https://panamahitek.com/2013/01/23/arduino-ide-configuracion-inicial/

Ahí se explica como iniciarse en Arduino. Los drivers que se necesitan y como configurar el IDE.

Si quieres comunicarte con Java, puedes consultar el post https://panamahitek.com/2013/01/31/requisitos-para-utilizar-arduino-con-java/

Cuando tengas esos requisitos, puedes tratar de implementar la función ArduinoConnection() como se explica en este post.

Si deseas, también puedes usar mi librería Arduino que está disponible en este post:
https://panamahitek.com/2013/02/15/libreria-arduino-para-java/