0% encontró este documento útil (0 votos)
47 vistas3 páginas

Comunicación Java-Arduino con RXTX

Este documento describe cómo usar la librería RXTX para comunicarse entre Java y Arduino a través de USB. Explica los métodos de la librería para iniciar la conexión, enviar y recibir datos, y finalizar la conexión. También detalla los pasos para crear una aplicación Java que use esta librería para controlar un motor paso a paso conectado a Arduino mediante interfaz gráfica.

Cargado por

Angel Rodriguez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas3 páginas

Comunicación Java-Arduino con RXTX

Este documento describe cómo usar la librería RXTX para comunicarse entre Java y Arduino a través de USB. Explica los métodos de la librería para iniciar la conexión, enviar y recibir datos, y finalizar la conexión. También detalla los pasos para crear una aplicación Java que use esta librería para controlar un motor paso a paso conectado a Arduino mediante interfaz gráfica.

Cargado por

Angel Rodriguez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

1

Laboratorio 6A Introduccin a la librera RXTX


Rodrguez Arguello ngel Eduardo
Universidad Militar Nueva Granada
Codigo: 1803009


para Windows del link [3], emplear el driver de acuerdo al
ResumenLa prctica tiene como objetivo de Transmitir y sistema operativo de 32 o 64 bits.
recibir Informacion via USB 4. Se agrega la librera PanamaHitek_Arduinov2.[Link] y la
-Estudiar la librera RXTX y PanamaHitek librera [Link] al proyecto.
-Aplicar los mtodos de la librera
-Desarrolar una aplicacin que use el puerto USB [Link] el rbol de Proyecto, se presiona con el botn
derecho del mouse sobre Libraries y se elige la opcin Add
JAR/Folder, ver Figura 1.
Palabras Clave: Eventos, intefaz grafica de usuario (GUI),
componentes, objetos, USB

I. EINTRODUCCIN
L USB ES UN BUS PUNTO A PUNTO: DADO QUE EL LUGAR DE
PARTIDA ES EL HOST (PC O HUB), EL DESTINO ES UN
PERIFRICO U OTRO HUB. NO HAY MS QUE UN NICO HOST
(PC) EN UNA ARQUITECTURA USB. LOS PC ESTNDAR
TIENEN DOS TOMAS USB, LO QUE IMPLICA QUE, PARA
PERMITIR MS DE DOS PERIFRICO SIMULTNEAMENTE, ES
NECESARIO UN HUB. ALGUNOS PERIFRICOS INCLUYEN UN
HUB INTEGRADO, POR EJEMPLO, EL TECLADO USB, AL QUE 5. Se Crea una Frame y se le llama [Link], ver Figura 2.
SE LE PUEDE CONECTAR UN MOUSE USB. LOS PERIFRICOS
COMPARTEN LA BANDA DE PASO DEL USB. EL PROTOCOLO
SE BASA EN EL LLAMADO PASO DE TESTIGO (TOKEN). EL
ORDENADOR PROPORCIONA EL TESTIGO AL PERIFRICO
SELECCIONADO Y SEGUIDAMENTE, STE LE DEVUELVE EL
TESTIGO EN SU RESPUESTA. ESTE BUS PERMITE LA
CONEXIN Y LA DES-CONEXIN EN CUALQUIER MOMENTO
SIN NECESIDAD DE APAGAR EL EQUIPO [1].

II. MARCO TEORICO

[Link] Crea una carpeta donde se alojara la aplicacin, por


ejemplo D: \ProyectosJavaArduino\
A continuacin se describe los mtodos de la clase
[Link] Crea un nuevo Proyecto en NetBeans PanamaHitek_Arduino.
2.1. File -> New Project public void arduinoRXTX(string nombre del puerto, , int baud
rate, SerialPortEventListener evento)
2.2 Choose Project-> "Java Application"
Este mtodo se utiliza para iniciar la conexin de Java con
[Link] la API PanamaHitek_Arduino [Link] Arduino PARA LA TRANSMISIN Y
del siguiente link [3] y los RXTX drivers
RECEPCIN DE DATOS.

2

public void sendData(String data)

Mtodo utilizado para enviar datos a Arduino. Los datos se


deben enviar como cadena de texto (string).

public int receiveData()

Devuelve un dato recibido a travs del puerto serie. Este dato 8. Si se va a usar la conexin RX o la RXTX, hay que declarar
ser numrico en formato ASCII por lo que se debe traducir de un SerialPortEventListener y se debe agregar los mtodos de
decimal a carcter. esta clase (Java lo har automticamente).este es el encargado
de escuchar la recepcin de datos en el puerto, Ver Figura 5.
public boolean isMessageAvailable()

Devuelve un valor boolean que nos indica si hay algn


mensaje disponible para imprimir. Dicho mensaje DEBE ser
enviado desde Arduino utilizando [Link]();

public String printMessage()

Devuelve una cadena de caracteres que contiene el mensaje


que ha sido enviado desde Arduino, pero traducido a
caracteres. SE DEBE UTILIZAR DENTRO DE UNA
ESTRUCTURA CONDICIONAL UTILIZANDO Cargamos el siguiente cdigo en la placa de Arduino, y
MessageAvailable(). Cuando haya un mensaje disponible, se ejecutamos el programa, es necesario resetear la placa Arduino
imprime utilizando este mtodo. despus de ejecuta el [Link].

public void killArduinoConnection()

Permite finalizar la conexin entre Arduino y la computadora


sin tener que finalizar la aplicacin que se est ejecutando.

public int getPortsAvailable()

Devuelve un valor tipo int con la cantidad de dispositivos


conectados a la computadora por medio del Puerto Serie.

public void sendByte(int data)

Similar a SendData, solo que en este mtodo se enva un Byte


en vez de una cadena de caracteres.

6. En el frame [Link] instanciar el objeto


Arduino a la clase PanamaHitek_Arduino(), Ver figura 3.

III. PROCEDIMIENTO DE LA PRACTICA

7. Emplear el mtodo arduinoRXTX iniciar la conexin La librera de comunicaciones Rxtx es un conjunto de clases
de Java con Arduino y gestionar con las excepciones try, de Java que nos facilita las comunicaciones entre la PC y
catch, verificar en que puerto COM est conectado el arduino, Arduino, escencialmente cubre las comunicaciones Serial, no
y configurar con una velocidad de transmisin de 9600 necesariamente tiene que ser con Arduino.
baudios Ver Figura 4.
En esta pgina pueden encontrar teora, y lo ms
importante, descargar esta librera:
3

[Link]
IV. CONCLUSIONES
Yo estoy usando esta librera para alimentar el circuito de
control de mi proyecto. En este caso ser el movimiento Es muy til con esta herramienta de crear intefaces
controlado por java de un motor paso a paso Lo que hago es graficas en java y poderlo controlar co arduino
mandar una seal de control hacia el Arduino, mediante esta cualquier dispositivo que este conectado a este
seal le digo al Arduino si quiero encender o apagar el motor. La versatilidad de sta librera nos permite generar
Como mencion anteriormente, toda esta comunicacin se muchos tipos de grficos, segn la necesidad del
realiza por medio del conector Serial (USB), aunque el desarrollador.
Arduino tiene un chip FTDI (convertidor usb-serial) para Siempre debemos separar el Modelo (que en este
poder utilizar un conector USB, la comunicacin es tomada caso son nuestras clases), la Vista (los JSPs) y el
como un puerto virtual serial. controlador (los servlets) para respetar el patrn de
desarrollo MVC.
el paquete IDE de Arduino (creo que todos lo hicieron), Los reportes grficos permiten una interpretacin
pueden encontrar esta librera en la carpeta "lib", entran en la mas gil que usando reporte en modo texto.
carpeta lib y el archivo se llama [Link].

Para poder desarrollar programas en Java que involucren este


tipo de comunicaciones es necesario agregar esta librera en
nuestra ruta de librerias de java, esto va depender de donde [Link]
tengamos instalado Java, la ruta es algo as:

/usr/lib/jvm/java-6-openjdk/jre/lib/ext [1] [Link],INGENIERIAEN


MICROCONTROLADORES Protocolo
Ya teniendo la librera agregada ahora solo tienen que USB
importarla en su cdigo, por ejemplo agregu todas estas (UNIVERSAL SERIAL BUS), Mxico
libreras: D.F.
mport [Link]; [2] A. G. Gonzlez, Librera
import [Link]; PanamaHitek_Arduino 2.7.3.,
import [Link]; 2016. [En
import [Link]; lnea].Available:[Link]
import [Link]; [Link]/libreria-
import [Link];
panamahitek_arduino/.
Pero eso ya depende de las funciones que quieren que realice [3] A. G. Gonzlez, Libreria
su programa, bsicamente las libreras anteriores se encargan PanamaHitek_Arduino,
de encontrar e identificar el puerto, establecer la conexin y 2016.
leer y escribir sobre el puerto Serial. [Enlnea].Available:[Link]
Todo esto no servira sin antes tener un programa almacenado
[Link]/projects/arduin
en el microcontrolador del Arduino, es decir, tambin debemos oyjava/files/.
programar el ATMEL de Arduino para que al llegar la seal a
Arduino, este sepa qu hacer con ella, yo por ejemplo cree un
programa para que cuando le llegara la seal pudiera
representar el estado por medio de un led conectado a la pata
13, este prorgrama lo hic en la IDE de Arduino, el programa
me qued as (fue una modificacin al ejemplo de Digital que
vena por default):

La interfaz grafica en java se trata de un slider y tres botones


que controlan la direccin y la velocidad del motor.

También podría gustarte