You are on page 1of 4

Librera PanamaHitek_Arduino, v2.7.

3
(Actualizado 14/06/15)
marzo 8, 2013Antony Garca Gonzlez
***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.7.3.


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. Tambin pueden agregar nuestra librera a sus proyectos
Maven agregando el repositorio de Jitpack:
<repository>
<id>jitpack.io</id>
<url>http://jitpack.io
</repository>

1 <repository>
2 <id>jitpack.io</id>
3 <url>http://jitpack.io</url>
4 </repository>
La librera PanamaHitek_Arduino debe ser agregada como una dependencia:
<groupId>com.githu
<artifactId>Panama
<version>2.7.2</ve
</dependency>

1 <dependency>
2 <groupId>com.github.PanamaHitek</groupId>
3 <artifactId>PanamaHitek_Arduino</artifactId>
4 <version>2.7.2</version>
5 </dependency>
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
Arduino, el time out es el tiempo de
espera (yo uso 2000), el baud rate debe
ser el mismo que se usa en Arduino IDE
arduinoRX(string nombre del puerto, int time (generalmente 9600) y elSerial
out, intbaud PortEventListener debe ser una variable
rate, SerialPortEventListener evento) declarada antes de utilizar este mtodo. */
Este mtodo se utiliza para iniciar la
arduinoTX(string nombre del puerto, int time conexin de Java con Arduino SOLAMENTE
out, intbaud rate) PARA LA TRANSMISIN DE DATOS. */
arduinoRXTX(string nombre del Este mtodo se utiliza para iniciar la
puerto, int time out,int baud conexin de Java con Arduino PARA LA
rate, SerialPortEventListener evento) TRANSMISIN Y RECEPCIN DE DATOS. */
Mtodo utilizado para enviar datos a
Arduino. Los datos se deben enviar como
sendData(String data) cadena de texto (string). */
Devuelve un dato recibido a travs del
puerto serie. Este dato ser numrico en
formato ASCII por lo que se debe traducir
receiveData() de decimal a caracter. */
Devuelve un valor boolean que nos indica
si hay algn mensaje disponible para
imprimir. Dicho mensaje DEBE ser enviado
MessageAvailable() isMessageAvailable() desde Arduino utilizando Serial.println(); */
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
UTILIZANDOMessageAvailable(). Cuando
haya un mensaje disponible, se imprime
printMessage() utilizando este mtodo. */

Mtodos de la versin 1.3.0


Mtodo Descripcin
Permite finalizar la conexin entre Arduino y la
computadora sin tener que finalizar la aplicacin que se
est ejecutando, como en versiones anteriores.
killConnection()
Devuelve un valor tipo int con la cantidad de dispositivos
SerialPortsAvailable() conectados a la computadora por medio del Puerto Serie.
getPortsAvailable()
Devuelve una cadena de caracteres con el nombre del Pu
Serie que est en el ndice que se establece como parmetr
se utiliza dentro de un ciclo for con el valor devu
por SerialPortsAvailable()se pueden obtener los nombres
todos los Puertos Serie en uso. Ejemplo: (COM3, COM4, CO
NameSerialPortAt(int index) etc).
Mtodos de la versin 2.5.0
showMessageDialogs(bool Permite activar o desactivar las ventanas emergentes que se
eanInput) muestra cuando ocurre un error en tiempo de ejecucin
Similar a SendData, solo que en este mtodo se enva un
sendByte(int data) Byte en vez de una cadena de caracteres.
Mtodos de la versin 2.6.0
Devuelve una lista con los puertos disponibles. Reemplazo de
getSerialPorts() NameSerialPortAt();
setParity(int
input_Parity) Se establece la paridad (nula por defecto)
setStopBits(int Bytes) Se establecen los StopBits (1 por defecto)
setByteSize(int Bits) Se establece la cantidad de Bytes que se manejar (8 por defecto)
setTimeOut(int time) 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,
llamadaMultiMessage.
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
//Se indica que se van a leer

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


2 //De la librera <del>Arduino para Java</del> PanamaHitek_Arduino
3 PanamaHitek_Arduino Arduino = new PanamaHitek_Arduino();
4 //Se instancia un objeto de la clase MultiMessage
5 //Se indica que se van a leer 3 sensores y que la clase Arduino fue instanciada
6 //mediante el obteto Arduino
7 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 terminad
recibir las lecturas indicadas en la instancia de la clase (s
declara que habr 3 lecturas, este mtodo slo devolver
cuando se haya ledo los 3 valores)
DataReceptionCompleted()
Devuelve un dato tipo String con la lectura del sensor indic
getMessage(int index) en el index
Elimina la informacin almacenada en el buffer de datos
debe usar una vez se haya terminado de leer los sensores
flushBuffer elgetMessage(). Al utilizar este mtodo ser posible hacer
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: