Вы находитесь на странице: 1из 15

Toggle navigation

Installation for Windows


From Rxtx
Jump to: navigation, search
RXTX installation procedure if you want to run RXTX enabled programs ==
If you just want to run RXTX enabled programs, follow this procedure.
Identify your Java Runtime Environment's folder. For version 1.6.0, this usually is
c:\Program Files\Java\jre1.6.0_01\

Copy rxtxParallel.dll to c:\Program Files\Java\jre1.6.0_01\bin\

Copy rxtxSerial.dll to c:\Program Files\Java\jre1.6.0_01\bin\

Copy RXTXcomm.jar to c:\Program Files\Java\jre1.6.0_01\lib\ext\

NOTE: When installing on Windows XP Embedded, make sure you include crtdll.dll (in the
C Runtime Component) as it is required by rxtxSerial.dll

RXTX installation procedure if you want to develop or


compile RXTX enabled programs
If you want to develop and compile RXTX enabled programs, for example with the
NetBeans IDE, follow this procedure.
Identify your Java Development Kit's folder. For version 1.6.0, this usually is
c:\Program Files\Java\jdk1.6.0_01\

Copy rxtxParallel.dll to c:\Program Files\Java\jdk1.6.0_01\jre\bin\

Copy rxtxSerial.dll to c:\Program Files\Java\jdk1.6.0_01\jre\bin\

Copy RXTXcomm.jar to c:\Program Files\Java\jdk1.6.0_01\jre\lib\ext\

Note that there is an additional \jre\ subfolder in this path!

Two way communcation with the serial


port
http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port

From Rxtx, ESTO ME COMPILO PERO LAS RXTX JAR y DLL las
coloque en una lib aparte dentro del proyecto y de ahi las importe y defin
elPath nativo para cada una de ellas
Jump to: navigation, search
Below is a simple program that shows how to open a connection to a serial device and then
interact with it (receiving data and sending data). One thing to note is that the package
gnu.io is used instead of javax.comm, though other than the change in package name the
API follows the Java Communication API. To find the names of the available ports, see the
Discovering comm ports example.
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import
import
import
import

java.io.FileDescriptor;
java.io.IOException;
java.io.InputStream;
java.io.OutputStream;

public class TwoWaySerialComm


{
public TwoWaySerialComm()
{
super();
}
void connect ( String portName ) throws Exception
{
CommPortIdentifier portIdentifier =
CommPortIdentifier.getPortIdentifier(portName);
if ( portIdentifier.isCurrentlyOwned() )

{
System.out.println("Error: Port is currently in use");

}
else
{

CommPort commPort =
portIdentifier.open(this.getClass().getName(),2000);
if ( commPort instanceof SerialPort )
{
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STO
PBITS_1,SerialPort.PARITY_NONE);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
}
else
{

System.out.println("Error: Only serial ports are handled


by this example.");
}
}
}
/** */
public static class SerialReader implements Runnable
{
InputStream in;
public SerialReader ( InputStream in )
{
this.in = in;
}
public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}

}
/** */
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter ( OutputStream out )
{
this.out = out;
}
public void run ()
{
try
{
int c = 0;
while ( ( c = System.in.read()) > -1 )
{
this.out.write(c);
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}

public static void main ( String[] args )


{
try
{
(new TwoWaySerialComm()).connect("COM3");
}
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Librera
PanamaHitek_Arduino,

v2.7.0 (Actualizado
21/01/15)
marzo 8, 2013enero 21, 2015 Arduino+Java, Arduino+Java para principiantes, Libreras para Java, Tutoriales
Arduino+Java

***A partir de la versin 2.2.0 no es necesario el uso de


la librera RXTX para que la librera Arduino librera
PanamaHitek_Arduino trabaje. Ahora solo es necesario
importar la librera PanamaHitek_Arduino a los
proyectos en Netbeans, sin tener que preocuparse por
la RXTXcomm. Luego de la versin 2.6.0, esta
librera ha sido nombrada PanamaHitek_Arduino.
Desde la versin 2.7.0 no es necesaria la instalacin de
los archivos dll, ya que la librera crea automticamente
la ruta C:/JavaRXTX (slo en Windows), donde almacena
estos archivos y los pone a disposicin de nuestra
aplicacin.
Hola a todos.
Aqu
les
presento
mi
librera
Arduino PanamaHitek_Arduino en su versin 2.6.0.
Esta librera ha sido creada por mi persona, Antony
Garca Gonzlez (antony.garcia.gonzalez@gmail.com)
para Panama Hitek.
La librera est disponible en nuestro repositorio en
GitHub y en SourceForge.

En este post publicar los mtodos que contiene la


librera y los parmetros de los mismos.

Mtodos de la versin 1.1.0

Mtodo

Descripcin

Este mtodo se utiliza para iniciar la


conexin de Java con Arduino SOLAMENTE
PARA LA RECEPCIN DE DATOS. En el
nombre de puerto se coloca el COM#, o
sea el puerto COM donde est conectado
ArduinoRX(string nombre del puerto,
Arduino, el time out es el tiempo de
int time out, int baud rate,
espera (yo uso 2000), el baud rate debe
SerialPortEventListener evento)
ser el mismo que se usa en Arduino IDE
(generalmente
9600)
y
el
Serial
PortEventListener
debe
ser
una
variable declarada antes de utilizar este
mtodo. */
Este mtodo se utiliza para iniciar la
ArduinoTX(string nombre del puerto,
conexin de Java con Arduino SOLAMENTE
int time out, int baud rate)
PARA LA TRANSMISIN DE DATOS. */
ArduinoRXTX(string nombre del
Este mtodo se utiliza para iniciar la
puerto, int time out, int baud rate,
conexin de Java con Arduino PARA LA
SerialPortEventListener evento)
TRANSMISIN Y RECEPCIN DE DATOS. */
Mtodo utilizado para enviar datos a
sendData(String data)
Arduino. Los datos se deben enviar como
cadena de texto (string). */
Devuelve un dato recibido a travs del
puerto serie. Este dato ser numrico en
receiveData()
formato ASCII por lo que se debe traducir
de decimal a caracter. */
Devuelve un valor boolean que nos indica
si hay algn mensaje disponible para
MessageAvailable() isMessageAvaila
imprimir. Dicho mensaje DEBE ser enviado
ble()
desde Arduino utilizando Serial.println();
*/
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
MessageAvailable().

Cuando haya un mensaje disponible, se


imprime utilizando este mtodo. */

Mtodos de la versin 1.3.0

Mtodo

Descripcin

Permite finalizar la conexin entre Arduino y la


killConnection()

computadora sin tener que finalizar la aplicacin que


se est ejecutando, como en versiones anteriores.

SerialPortsAvailable()

Devuelve un valor tipo int con la cantidad de


dispositivos conectados a la computadora por medio

getPortsAvailable()

del Puerto Serie.

Devuelve una cadena de caracteres con el nombre


del Puerto Serie que est en el ndice que se
NameSerialPortAt(int
index)

establece como parmetro. Si se utiliza dentro de un


ciclo

for

con

el

SerialPortsAvailable()

valor
se

devuelto

pueden

obtener

por
los

nombres de todos los Puertos Serie en uso. Ejemplo:


(COM3, COM4, COM5, etc).

Mtodos de la versin 2.5.0

Permite activar o desactivar las ventanas emergentes


showMessageDialogs(bo
que se muestra cuando ocurre un error en tiempo de
olean Input)
ejecucin
sendByte(int data)

Similar a SendData, solo que en este mtodo se enva


un Byte en vez de una cadena de caracteres.

Mtodos de la versin 2.6.0


getSerialPorts()
setParity(int input_Parity)
setStopBits(int Bytes)
setByteSize(int Bits)
setTimeOut(int time)

Devuelve una lista con los puertos disponibles. Reemplazo de Name


Se establece la paridad (nula por defecto)
Se establecen los StopBits (1 por defecto)
Se establece la cantidad de Bytes que se manejar (8 por defecto)
Se establece el TimeOut (2000 milisegundos por defecto)

A partir de la versin 2.1.0 se agrega soporte para la


lectura de mltiples mensajes enviados desde Arduino.
Esto se ha hecho por la dificultad que presenta algunos
usuarios con la lectura de mltiples sensores en Arduino
y desean enviar estos datos a Java. Ahora se ha creado
una nueva clase, llamada MultiMessage.
Si deseamos leer varios sensores, necesitamos
instanciar MultiMessage en nuestra aplicacin de la
siguiente manera:
MultiMessage
nombre_del_objeto
=
new
MultiMessage(int numero de sensores a leer,
instancia de la clase PanamaHitek_Arduino)
Si se desea, por ejemplo, leer 3 sensores, se trabajara
se la siguiente manera.

//Se crea un obteto llamado A


//De la librera <del>Arduino p
PanamaHitek_Arduino Arduin
//Se instancia un objeto de la

1
2
3
4
5
6
7

//Se crea un obteto llamado Arduino para instanciar la clase Arduino


//De la librera <del>Arduino para Java</del> PanamaHitek_Arduino
PanamaHitek_Arduino Arduino = new PanamaHitek_Arduino();
//Se instancia un objeto de la clase MultiMessage
//Se indica que se van a leer 3 sensores y que la clase Arduino fue instanciada
//mediante el obteto Arduino
PanamaHitek_MultiMessage multi = new PanamaHitek_MultiMessage(3, Arduino);

La clase MultiMessage posee los siguientes mtodos.

Mtodos de la clase MultiMessage

Mtodo

Descripcin

Devuelve un valor tipo boolean que indica si se ha


DataReceptionCompleted
()

terminado de recibir las lecturas indicadas en la


instancia de la clase (si se declara que habr 3
lecturas, este mtodo slo devolver true cuando se
haya ledo los 3 valores)

getMessage(int index)

flushBuffer

Devuelve un dato tipo String con la lectura del


sensor indicado en el index

Elimina la informacin almacenada en el buffer de


datos. Se debe usar una vez se haya terminado de
leer los sensores con el getMessage(). Al utilizar

este mtodo ser posible hacer una nueva lectura.

Se debe recordar que para

utilizar esta librera se debe importar

la librera a los archivos del proyecto. Tambin se necesita la librera


RXTX.

Si se va a usar la conexin RX o la RXTX, hay que


declarar un SerialPortEventListener y se debe agregar
los
mtodos
de
esta
clase
(Java
lo
har
automticamente).

Si se utiliza ReceiveData() se recibirn los datos


directamente desde Arduino, en formato ASCII.

Si se usa PrintMessage() se recibirn los mensajes


desde Arduino traducidos a caracteres y ordenados por
lneas. SE DEBE USAR PRINTLN EN ARDUINO y se
recomienda que este mtodo slo se use cuando
MessageAvailable() devuelva un valor true.
Ac les dejo un video donde se muestra un ejemplo del
funcionamiento de la librera.
Si se les presenta algn error con el funcionamiento de
esta librera pueden consultar el siguiente post:
Librera Arduino para Java: Troubleshoot
Una gua de instalacin e implementacin:

Si tienen algn comentario no duden en hacrmelo


llegar.
Espero sus comentarios. Saludos.

Artculos relacionados

Librera

Arduino

para

Java:

Troubleshoot

Librera PanamaHitek_Arduino, versin

o
2.7.0

Arduino + Java: Enviando mensajes a


pantalla LCD desde Java con Arduino
00000
Version: 1.11

Comments
0 comments
Arduino Arduino y NetBeans Arduino+Java ArduinoConnection Conectar Arduino y Java
Java Librera Arduino para Java librera PanamaHitek_Arduino Programar Arduino y Java

Antony Garca Gonzlez

Nace el 30 de julio del ao 1992 en Ciudad de Chitr, provincia de Herrera, Panam. Crece
y recibe su educacin primaria y pre media en Guarar. Hacia el ao 2008 inicia sus
estudios de Bachillerato en Ciencias con nfasis en Informtica en el Instituto Coronel
Segundo De Villarreal en la Villa de Los Santos. Se grada en el ao 2010 e inicia sus
estudios de Licenciatura en Ingeniera Electromecnica en la Universidad Tecnolgica de
Panam (UTP), sede Azuero. En el 2013 inicia el proyecto Panama Hitek. Actualmente es
el director del equipo de autores, cursa el sptimo semestre de su carrera y trabajar para la
UTP como asistente de investigacin, para la Unidad de Eficiencia Energtica

Post navigation
Como instalar Arduino en Windows 8
Herramientas de control para Arduino: El BJT o Transistor de Unin Bipolar (NPN y PNP)

Buscar en Panama Hitek


Principio del formulario
Final del formulario

Licencia
Panama Hitek by Antony Garca G. and Kiara Navarro is licensed under a
Creative Commons Reconocimiento-NoComercial 4.0 Internacional License.

Contribuye a nuestra causa


Con tu contribucin podremos comprar nuevos dispositivos para seguir publicando nuestros
conocimientos.
Principio del formulario
_donations

antony.garcia.gon ES

PP-DonationsBF:b

Final del formulario

Autores

Kiara Navarro (185)

Antony Garca Gonzlez (144)

Jos Villalaz (6)

Ricardo Montenegro (4)

Edwin De Leon (4)

Javier Brathwaite (2)

Flix Toms Gonzlez (2)

Videos

Panama Hitek

USD

Sguenos en Facebook
Proyecto Fedora

Vistanos!!
Mantente en contacto a travs de
nuestras redes sociales. Vistanos
aqu tambin.
Panamahitek 2014 - Todos los Derechos Reservados.

Вам также может понравиться