Librería PanamaHitek_Arduino, v3.2.0 (actualizado 10/11/2020)

251
64068

***A partir de la versión 2.2.0 no es necesario el uso de la librería RXTX para que la librería Arduino librería PanamaHitek_Arduino trabaje. Ahora solo es necesario importar la librería PanamaHitek_Arduino a los proyectos en Netbeans, sin tener que preocuparse por la RXTXcomm. Luego de la versión 2.6.0, esta librería ha sido nombrada PanamaHitek_Arduino.

Desde la versión 2.7.0 no es necesaria la instalación de los archivos dll, ya que la librería crea automáticamente la ruta C:/JavaRXTX (sólo en Windows), donde almacena estos archivos y los pone a disposición de nuestra aplicación.

En la versión 2.8.0 se ha reemplazado la librería RXTX en favor de Java Simple Serial Connector y se ha agregado compatibilidad para sistemas operativos Linux, Mac y Solaris, además de Windows.

En la versión 3.2.0 he agregado soporte para el uso de esta librería con JDK 11, lo cual elimina la limitación de no poder usarla por encima del JDK 1.8.

____________________________________________________________

Aquí les presento mi librería Arduino PanamaHitek_Arduino en su versión 3.2.0.

La librería está disponible en nuestro repositorio en GitHub y en SourceForge. También pueden agregar nuestra librería a sus proyectos Maven agregando el repositorio de Jitpack:

La librería PanamaHitek_Arduino debe ser agregada como una dependencia:

En este post publicaré los métodos que contiene la librería y los parámetros de los mismos.

Métodos de la versión  1.1.0

Método

Descripción

arduinoRX(string nombre del puerto, int time out, int baud rate, SerialPortEventListener evento) Este método se utiliza para iniciar la conexión de Java con Arduino SOLAMENTE PARA LA RECEPCIÓN 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 (generalmente 9600) y el Serial PortEventListener debe ser una variable declarada antes de utilizar este método. */
arduinoTX(string nombre del puerto, int time out, int baud rate) Este método se utiliza para iniciar la conexión de Java con Arduino SOLAMENTE PARA LA TRANSMISIÓN DE DATOS. */
arduinoRXTX(string nombre del puerto, int time out, int baud rate, SerialPortEventListener evento) Este método se utiliza para iniciar la conexión de Java con Arduino PARA LA TRANSMISIÓN Y RECEPCIÓN DE DATOS. */
sendData(String data) Método utilizado para enviar datos a Arduino. Los datos se deben enviar como cadena de texto (string). */
receiveData() Devuelve un dato recibido a través del puerto serie. Este dato será numérico en formato ASCII por lo que se debe traducir de decimal a caracter. */
MessageAvailable() isMessageAvailable() Devuelve un valor boolean que nos indica si hay algún mensaje disponible para imprimir. Dicho mensaje DEBE ser enviado 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 método. */

 

Métodos de la versión 1.3.0

Método

Descripción

killConnection()

Permite finalizar la conexión entre Arduino y la computadora sin tener que finalizar la aplicación que se esté ejecutando, como en versiones anteriores.

SerialPortsAvailable()

getPortsAvailable()

Devuelve un valor tipo int con la cantidad de dispositivos conectados a la computadora por medio del Puerto Serie.

NameSerialPortAt(int index)

Devuelve una cadena de caracteres con el nombre del Puerto Serie que esté en el índice que se establece como parámetro. Si se utiliza dentro de un ciclo for con el valor devuelto por SerialPortsAvailable() se pueden obtener los nombres de todos los Puertos Serie en uso. Ejemplo: (COM3, COM4, COM5, etc).

Métodos de la versión 2.5.0

showMessageDialogs(boolean Input) Permite activar o desactivar las ventanas emergentes que se muestra cuando ocurre un error en tiempo de ejecución
sendByte(int data) Similar a sendData, solo que en este método se envía un Byte en vez de una cadena de caracteres.

Métodos de la versión 2.6.0

getSerialPorts() Devuelve una lista con los puertos disponibles. Reemplazo de 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)

Métodos de la versión 2.8.0

flushSerialPorts() Se limpia los buffer de entrada y salida del puerto serie
getInputBytesAvailable() Devuelve la cantidad de bytes disponibles para ser leídos en el buffer de entrada del puerto serie
getEventListener() Devuelve el event listener que se agrega al serialPort cuando se utilizan los métodos arduinoRX() y ardunoRXTX()

A partir de la versión 2.1.0 se agrega soporte para la lectura de múltiples mensajes enviados desde Arduino. Esto se ha hecho por la dificultad que presenta algunos usuarios con la lectura de múltiples 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 aplicación de la siguiente manera:

MultiMessage nombre_del_objeto = new MultiMessage(numero de sensores a leer, instancia de la clase PanamaHitek_Arduino)

Si se desea, por ejemplo, leer 3 sensores, se trabajaría se la siguiente manera.

La clase MultiMessage posee los siguientes métodos.

Métodos de la clase MultiMessage

Método

Descripción

DataReceptionCompleted()

Devuelve un valor tipo boolean que indica si se ha terminado de recibir las lecturas indicadas en la instancia de la clase (si se declara que habrá 3 lecturas, este método sólo devolverá true cuando se haya leído los 3 valores)

getMessage(int index)

Devuelve un dato tipo String con la lectura del sensor indicado en el index

flushBuffer

Elimina la información almacenada en el buffer de datos. Se debe usar una vez se haya terminado de leer los sensores con el getMessage(). Al utilizar este método será posible hacer una nueva lectura.

Se debe recordar que para utilizar esta librería se debe importar la librería a los archivos del proyecto. También se necesita la librería RXTX.

  • Si se va a usar la conexión RX o la RXTX, hay que declarar un SerialPortEventListener y se debe agregar los métodos de esta clase (Java lo hará automáticamente).
  • Si se utiliza receiveData() se recibirán los datos directamente desde Arduino, en formato ASCII (decimal). 
  • Si se usa printMessage() se recibirán los mensajes desde Arduino traducidos a caracteres y ordenados por líneas. SE DEBE USAR PRINTLN EN ARDUINO y se recomienda que este método sólo se use cuando isMessageAvailable() devuelva un valor true.

Acá les dejo un video actualizado donde se muestra un ejemplo del funcionamiento de la librería.

Espero que la información proporcionada sea de utilidad para ustedes. Si tienen algún comentario no duden en hacérmelo llegar.

DOI

1.5 2 votes
Article Rating
Suscríbete
Notify of
guest

251 Comments
newest
oldest most voted
Inline Feedbacks
View all comments
juancarreño
juancarreño
4 months ago

me sale este error al cargar la dependecia en un proyecto maven en netbeans

Failed to execute goal on project telemetria: Could not resolve dependencies for project com.mycompany:telemetria:jar:1.0-SNAPSHOT: Failed to collect dependencies at com.github.PanamaHitek:PanamaHitek_Arduino:jar:3.0.0: Failed to read artifact descriptor for com.github.PanamaHitek:PanamaHitek_Arduino:jar:3.0.0: The following artifacts could not be resolved: com.github.PanamaHitek:PanamaHitek_Arduino:pom:3.0.0 (absent): Could not transfer artifact com.github.PanamaHitek:PanamaHitek_Arduino:pom:3.0.0 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [jitpack.io (http://jitpack.io, default, releases+snapshots)] -> [Help 1]

Jorge
Jorge
2 years ago

Un saludo, descargue la versión 3.2.0 PanamaHitek_Arduino y me curre el siguiente error uso Eclipse y el JDK 11 : Exception in thread «main» java.lang.Error: Unresolved compilation problems: The type jssc.SerialPortException cannot be resolved. It is indirectly referenced from required .class files The method sendData(String) from the type PanamaHitek_Arduino refers to the missing type SerialPortException SerialPortException cannot be resolved to a type at Principal.main(Principal.java:232) No soy muy bueno entendiendo, importe la librería y la agregue tal como vi en varios videos para agregar librerias pero ese error no se resuelve la solución que me da java es Open the Java… Read more »

Jorge
Jorge
2 years ago
Reply to  Jorge

me da el error cuando trate de hacer el arduino.sendData(«1»);

Jorge
Jorge
2 years ago

Gracias, trate de probarlo pero en las primeras lineas de el ejemplo que mandaste me sale The type jssc.SerialException cannot be resolved. It is indirectly referenced from required .class file
y The import jssc.SerialException cannot be resolved
y nuevamente me manda a Open the Java build path property page of project ‘Champions League’

Juan Enrique
Juan Enrique
1 year ago

Hola,
Me pasa igual que al compañero. Estoy usando netbeans 12 con jdk11 con la version 3.2.0 de la libreria. Cuando uso sendata me marca ese error el ide.

Juan Enrique
Juan Enrique
1 year ago
Reply to  Juan Enrique

El problema está en que hay que instalar la libreria jssc-2.9.2.jar.
Si lo haces desde Maven se instala automáticamente, si lo haces con Ant tienes que buscartela.

Un saludo

Emmanuel Guadalupe Barragan Andrade
Emmanuel Guadalupe Barragan Andrade
2 years ago

Buenas Ing Antony, disculpe la molestia, pero estoy muy novato en este tipo de cosas, y veo que usted ya sabe como hacerlo. La pregunta es, si quisiera usar una librería como POI así como usted lo hiso, debo de publicar mi código para que sea accesible por todos?

De antemano gracias por su tiempo.

Tasso
Tasso
2 years ago

Me gustaría saber si es posible usar la biblioteca panamaHitek en una aplicación web java spring boot?

Antonio
Antonio
2 years ago

Buen día amigo soy un estudiante de licenciatura y no eh podido instalar e implementar las librerías de Arduino para Java ya que tu video de youtube tiene bastantes años de que se realizo y actualmente todas las librerías son nuevas y con diferentes nombres y versiones. No sé si podrías ayudarme en crear otra explicación nueva de como incorporar estas nuevas librerías.
Muchas gracias y saludos.

Alejandro
Alejandro
2 years ago

Buenos dias tardes o noches, mi duda es como puedo usar un dato arrojado por el arduino (por ejemplo cuando presione un boton fisico ,el arduino me manda al monitor serie un «activado»)luego usar ese dato para desactivar un boton en una aplicación en java. de antemano muchas gracias

carlos rodrigo
carlos rodrigo
2 years ago

muy buen aporte pero tengo unda duda ocupo ayuda
el problema es que tengo que hacer in indoor con arduino que mande los datos a java y se guarde en unabase dedatos tu codigo lo tengo pero me marca error en el catch y no entiendo porque ayuda porfavor

Leandro
Leandro
2 years ago

Hola Amigo, ante todo me disculpo por mi ignorancia, soy estudiante de ultimo año de secundaria, un entusiasta al que se le encargó crear un reloj capaz de tocar el timbre automáticamente. Investigué al respecto y dí con esta gran librería, ví sus videotutoriales y logré construir una interfaz para programar el dispositivo, el programa consta de java con maven y corre sin problema dentro de NetBeans. Lo compile con el ultimo JDK (16), al construír el proyecto me dirijo a la carpeta e intento ejecutar el archivo .jar pero no pasa nada. ¿Qué podría hacer para construírlo correctamente?

legolas
legolas
2 years ago

HOLA Antony García González tuve un problema al correr en netBeans 8.2 tengo el JDK 1.8 ======================================== el error que me sale es la siguiente sera que me puede ayudar? ======================================== PanamaHitek_Arduino Library, version 3.0.0 ============================================== Created by Antony Garcia Gonzalez Electromechanical Engineer and creator of Project Panama Hitek This library has been created from Java Simple Serial Connector, by Alexey Sokolov You can find all the information about this library at https://panamahitek.com # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000064b5db, pid=8296, tid=0x0000000000002abc # # JRE version: Java(TM) SE… Read more »

Andrés Parra
Andrés Parra
3 years ago

Hola Antony como estás mira te comento de manera rápida. Tu librería de PanamaHitek me va de lujo la uso para arduino, pics, Avr y en lenguajes distintos como c y asm.. De hecho no tengo problemas con las interfaces que hago y la comunicación serie pero al parecer hay une error en el metodo «arduinoRXTX();» o eso parece.. te explico mi problema. En proteus tengo un microcontrolador y tengo el «compim» que es para hacer comunicacion serie y está en el COM1.. ¿Todo bién verdad?.. perfecto… ahora abro mi interfaz en java y tengo la opción de conectarme al… Read more »

JULIANA STEFANY VELOZA PEREZ
JULIANA STEFANY VELOZA PEREZ
3 years ago

Hola, necesito tomar la temperatura con un lm35 e imprimirla en la interfaz de netbeans, pero no sé como enviar ese dato y también en netbeans ingresar el angulo que quiero que tenga el servo conectado al arduino. no importa que angulo ingrese, siempre se va al mismo

Aldo Adrian
Aldo Adrian
3 years ago

Hola me aparece el siguiente error cuando intento correr el programa de transmitir, tengo instalada la version 3.2.0 (la ultima), tengo netbeans 12.0 y el JDK 11, y en donde pongo la linea «ino.sendData(«1″);» me aparece un mensaje de advertencia «cannot access SerialPortException», class file for jssc.SerialPortException not found igualmente la del segundo boton no me la marca pero si comento todo ese bloque el error se transmite al que no marcaba nada puedes apoyarme por lo que puede ocasionarlo ya que he movido y revisado de que todo este en orden y no veo otro error visible, gracias.

Aldo Adrian
Aldo Adrian
3 years ago

Pero el software del arduino esta cerrado y mi me deja correr la aplicación. Ahora hice pruebas con el arduino conectado y desconectado, el resultado es el mismo.

Aldo Adrian
Aldo Adrian
3 years ago

Nuevamente no me funciono, pero note al comparar lo que escribi yo con el que esta en gitHub que me falta una linea pero al escribirla me seguia marcando lo mismo la linea en cuestion es la siguiente » import jssc.SerialPortException; » y me arroja el siguiente mensaje package jssc does not exist, esto hizo que se desapareciera los errores en las lineas siguientes pero al usar su ejemplo de github me aparece igualmente ese error.

Aldo Adrian
Aldo Adrian
3 years ago

Borre la linea pero aun asi no me reconoce ese import si lo escribo y aplico ctrl + space solo me aparecen las opcion java, JDK y javax pero no jssc

Aldo Adrian
Aldo Adrian
3 years ago

Si, ya quedo solucionado, me descargo unicamente el .jar de la libreria original pero no los demas componentes tuve que descargarlos manualmente para que el jssc pudiera funcionar no se porque paso pero ya lo hice y quedo muchas gracias por tu tiempo y apoyo. exito y sigue adelante con este gran trabajo.

Arturo
Arturo
3 years ago

no me funciona la libreria 2.8.2 con netbeans 8.0.2, JDK 1.8 y e probado tambien con neatbeans 8.2 JDK 1.8. no encuentro una libreria q me funcione a que se puede deber esto… Me esta dando el error siguiente libreria 2.8.2 con netbeans 8.0.2, JDK 1.8: PanamaHitek_Arduino Library, version 2.8.2 # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=15036, tid=0x0000000000002440 # # JRE version: Java(TM) SE Runtime Environment (8.0_271-b09) (build 1.8.0_271-b09) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.271-b09 mixed mode windows-amd64 compressed oops) # Problematic frame: # C… Read more »

Ariel
Ariel
3 years ago

Hola amigo, si quiero hacer el programa pero con Proteus, ahí no se usa ningún puerto? De ser así como haría la conexión?

Andres
Andres
3 years ago

Hola que tal, quisera saber como puedo referenciar tus librerias, o tu pagina web o tu java doc en el java doc de mi documento.

Hector
Hector
3 years ago

La version 3.2.0 no tiene JSS y no me deja realizar los respectivos try catch, como puedo solucionarlo?

Hector
Hector
3 years ago

esta linea de codigo me genera el error (ino es un objeto de la libreria correspondiete PanamaHitek_arduino) ino.sendData(«1»); _______________________________________________________ trate de solucionarlo descragando la version 3.1.0 pero me sale: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=19532, tid=1168 # # JRE version: Java(TM) SE Runtime Environment 18.9 (11.0.8+10) (build 11.0.8+10-LTS) # Java VM: Java HotSpot(TM) 64-Bit Server VM 18.9 (11.0.8+10-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # # No core dump will be written. Minidumps are not enabled by default… Read more »

Palma Espada Juan Manuel

Hola, he probado la última librería tanto para las versiones de java 11 como para la 8 y sigue dando el error # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=7892, tid=0x000000000000152c
#
# JRE version: OpenJDK Runtime Environment (8.0_275-b01) (build 1.8.0_275-b01)
# Java VM: OpenJDK 64-Bit Server VM (25.275-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [jSSC-2.8_x86_64.dll+0xb5db]
Alguna solución? He probado tanto en intellij como en netbeans y nada 🙁

Irving Calderon
Irving Calderon
3 years ago

Qué tal, antes que nada muchas gracias por el aporte de esta librería, sin embargo tengo una duda, cuando trato de ejecutar el método para establecer conexión con Arduino (.arduinoRX(PORT, RATE, LISTENER);) me arroja el siguiente error: com.panamahitek.ArduinoException: Nomrbe del puerto – COM5; Nombre del método – arduinoRX(); Tipo de excepción – Puerto no abierto.
Ya me cerciore de el arduino este funcionando en perfectamente y que efectivamente sea el puerto correcto, a qué se deberá?

Irving Calderon
Irving Calderon
3 years ago

Hola muchas gracias, sí en efecto lo utilizé con el monitor serie abiero, creí que era de esa forma porque la exepcion que me aparece con el monitor serie cerrado es la siguiente y no se a que se deberá(estoy usando el jdk 1.8 y netbeans12.1): # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=11772, tid=0x00000000000035b0 # # JRE version: Java(TM) SE Runtime Environment (8.0_271-b09) (build 1.8.0_271-b09) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.271-b09 mixed mode windows-amd64 compressed oops) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # #… Read more »

Irving Calderon
Irving Calderon
3 years ago

Hola, sí muchas gracias, efectivamente estaba usando el monitor serie, sin embargo sigue saliendo el siguiente error (utilizo netbeans 12.1 y jdk 1.8) # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=15716, tid=0x000000000000379c # # JRE version: Java(TM) SE Runtime Environment (8.0_271-b09) (build 1.8.0_271-b09) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.271-b09 mixed mode windows-amd64 compressed oops) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows # # An error report file with more… Read more »

Adriana Feijoo
Adriana Feijoo
3 years ago

hola quiero empezar diciendo que gracias por esta librería me ha servido mucho y me gustaría saber si se puede usar con Bluetooth?

Daniela
Daniela
3 years ago

Saludos Sensei Antony, con Daniela, hace rato no me comunicaba, pero veo que ya te realizaron la pregunta sobre la falla de la libreria con las nuevas versiones de java y netbean. Según veo lo unico que queda es bajar la versión de java. Gracias por tus grandes aportes a nuestro pueblo latino. Bendiciones

Adán L.M.
Adán L.M.
3 years ago

Saludos Antony, llevo usando tu librería desde hace años, por cuestiones personales reinicie mi equipo y al querer ejecutar un app que hice hace años con tu libreria, me manda errores, he leido que por la version del jdk posiblemente, y como netbeans ya se actualizo a la version 12, me manda error al momento de ejecutar en netbeans. el error es el siguiente: Error: java.io.FileNotFoundException: config.properties (El sistema no puede encontrar el archivo especificado) # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=2060, tid=12256 # # JRE version:… Read more »

Adán L.M.
Adán L.M.
3 years ago

instale Netbeans 8.2 con el jdk8u112, y jala en el entorno de netbeans, pero al construir el .jar y ejecutarlo, genera .log con el error detallado el cual es demasiado, te coloco la parte inicial: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=1864, tid=8172 # # JRE version: Java(TM) SE Runtime Environment 18.9 (11.0.7+8) (build 11.0.7+8-LTS) # Java VM: Java HotSpot(TM) 64-Bit Server VM 18.9 (11.0.7+8-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # # No core dump will be written.… Read more »

Adán L.M.
Adán L.M.
3 years ago

Desintale el jdk 11 y se soluciono, ya se ejecuta el .jar

Gracias por la respuesta.

Luciano
Luciano
3 years ago

Hola!, Excelente aporte! Desde ayer estoy intentando compilar un programa para controlar leds RGB desde windows, pero siguiendo los pasos que explicas, el programa abre, pero al conectar la placa arduino ya no se ejecuta y Output de netbeans dice: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=3616, tid=1680 # # JRE version: Java(TM) SE Runtime Environment (11.0+28) (build 11+28) # Java VM: Java HotSpot(TM) 64-Bit Server VM (11+28, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # # No core dump… Read more »

Rafael
Rafael
4 years ago

tengo netbeans 11.2 y jdk 1.8 compilo en este pero me sigue dando error — exec-maven-plugin:1.5.0:exec (default-cli) @ Arduino — java.lang.UnsupportedClassVersionError: com/mycompany/arduino/arduino has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495) Error: A JNI error has occurred, please check your installation and try again Exception in thread «main» [ERROR] Command execution… Read more »

Juan Alberto
Juan Alberto
4 years ago

Hola primero que nada que librería tan buena me a sacado de muchos apuros pero tengo un problema y esque nunca avía intentado hacer eso pero cuando quiero enviar un dato de Java a Arduino con ino.sendData(Txtnumero.getText); no lo recibe aunque lo guarde previamente en otra variable lo envía pero Arduino no lo detecta, incluso convertí el valor en entero y lo envie con ino.sendByte(entero); y lo envía pero Arduino lo recibe como «0» . Cuando imprimo el valor en NetBeans antes de enviarlo está correcto pero lo envío y Arduino no lo recibe o lo recibe con valor «0»

Mario Luciano
Mario Luciano
4 years ago

Hola, tengo un incoveniente, deseo usar la libreria pero para el programa que deseo realizar no puedo usar maven, cual seria la alternativa a usar o como se implementaria la libreria si usara Java Application, gracias de antemano.

Duda
Duda
4 years ago
Reply to  Mario Luciano

Para eso deberías bajar la librería PanamaHitek_Arduino-3.0.0.jar e incluirla en tu proyecto Java Application

Jose Aguilar
Jose Aguilar
4 years ago

Buenos días ingeniero, por este medio quiero expresarle mi agradecimiento por tan buenos tutoriales, pero tengo una duda, mi duda es ¿Como puedo utilizar la librería 3.0.4 sin utilizar mavens, o sea como puedo llamarla y usarlo solo desde un java aplicación?

Duda
Duda
4 years ago

Hola como puedo almacenar la lista que me envía getSerialPorts(), o cual es la manera correcta de usar este.

Duda
Duda
4 years ago

Hola tengo un problema, cuando ejecuto mi programa desde netbeans funciona a la perfección pero cuando lo construyo con las librerías (unido todo) (uso su codigo de su pagina para hacerlo )se abre y se cierra creando un log como el siguiente: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=13088, tid=12768 # # JRE version: Java(TM) SE Runtime Environment (13.0.1+9) (build 13.0.1+9) # Java VM: Java HotSpot(TM) 64-Bit Server VM (13.0.1+9, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # #… Read more »

Duda
Duda
4 years ago

Gracias, intentare eso.

Anonimoxd
Anonimoxd
4 years ago

Hola, tengo un problema con la librería al recibir datos del arduino, porque solicito cuantos puertos estan en uso y me los da, le pido el nombre de los puertos y me los da, pero cuando le pido de lea los datos que me manda arduino me vota el error: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006ec4b5bb, pid=10416, tid=11244 # # JRE version: OpenJDK Runtime Environment (13.0.1+9) (build 13.0.1+9) # Java VM: OpenJDK 64-Bit Server VM (13.0.1+9, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) # Problematic… Read more »

Anonimoxd
Anonimoxd
4 years ago

Ya le di click derecho a mi proyecto y me sale:
New
Build
Clean and Build
etc. y en ningun apartado me aparese el apartado source y compile, podria ser un poco mas especifico por favor.
Nota: Disculpe mi ignorancia pero soy casi nuevo en el ide de netbeans

Anonimoxd
Anonimoxd
4 years ago

ya le di click derecho y me sale:
NEW
BUILD
CLEAN AND BUILD
CLEAN
Etc.
Pero no encuentro Source y compile. podria ser un poco mas especifico uso netbeans 11.1 pd: Disulpe mi ignorancia pero soy semi nuevo en este ide.

David Aguilar
David Aguilar
4 years ago

Hola Amigo sabes veo que eres alguien que sabe mucho sobre el tema. Yo recién empiezo a ver el lenguaje en java y me encargaron un proyecto de Arduino utilizando Java con sensores y yo elegí el de pulso cardíaco. Creí que era fácil pero no encuentro información sobre ese sensor como lograr la comunicación de arduino a java. Podrías ayudarme donde buscar o si hay una guía sobre eso o un código de ejemplo de java. Gracias de antemano

trackback

[…] He utilizado la “Librería PanamaHitek” para realizar la comunicación con Arduino. En este enlace les dejo el acceso a la página donde explican los pasos que hay que realizar par instalarlo sin problemas. Yo he seguido los pasos y no he tenido problemas (pincha aquí). […]

federico
federico
4 years ago

Hola, me podrias decir como agregar esta libreria a mi programa en java? muchas gracias

GER
GER
5 years ago

Hola,

No sé si se publicó mi comentario anterior. Pero estoy usando la libreria para implementar un detector de color en Arduino y enviar esa información a Java para que haga una acción concreta en cada caso de color.
El caso es que envío un String «The color is Blue» cuando detecta un color, pero cuando en Java intento hacer el condicional if (x=»The color is Blue») no consigo que el programa ejecute este if. Como si no estuviera.

Alguna ayuda?

Muchas gracias!

Kristofferson Romero
4 years ago
Reply to  GER

if (x ==aqui el dato del sensor){
system.out.println(«el color es azul»);
{

GER
GER
5 years ago

Buenas tardes,

Primero de todo muy buen trabajo! Tengo una duda: Ahora mismo estoy programando un detector de color en Arduino pero quiero tratar la información en Java, por lo que estoy usando su libreria.

En Arduino estoy enviando de que color se trata con el mensaje «The color is Blue» pero cuando en Java pongo un if (x==»The color is Blue») no sucede nada. Simplemente no entra en este condicional. No se si se trata de que lo que se envia no es un String…
Sabrias detectar el problema y proponerme una solución?

Muchas gracias!

GER
GER
5 years ago

Gracias por la aclaración pero el problema persiste.

Tengo esto:
String color = String.valueOf(ino.receiveData());
if (color.equals(«The color is Blue»)){

}

Por lo visto el valor de color es null.

Carlos
Carlos
5 years ago

Hola Antony ,Gracias por compartir esta librería . Quería hacerte una consulta , estoy haciendo una aplicación en java para graficar en tiempo real la entrada analógica de Arduino. Y el codigo que utilice funciona bien ,salvo para altas frecuencias de muestreo. Cuando el envio de datos desde arduino a java supera los 10 datos por segundo me sucede que printMessage() me envia de manera aleatoria dos lecturas seguidas y una sin nada . Ejemplo : en vez de mostrarme 1000 y en la siguiente 997 me muestra 1000997 y en la siguiente nada . Estoy buscando la forma de… Read more »

Julissa Alquisiris
5 years ago

Hola Muchas gracias por tu aportación
He hecho una aplicación en Java muy básica, es iniciar y detener el funcionamiento de un semáforo. solo que el botón iniciar si lo hace, pero el botón detener no, me puedes ayudar?

este es mi código:
https://drive.google.com/file/d/17YLhSGEqXj_dXikdwRpm3lu7RjHa3pxN/view?usp=sharing

Nery Alexis Orellana
Nery Alexis Orellana
5 years ago

Intenta utilizar tu variable input como String en lugar de int para asignarle el dato de entrada usa serial.readstring();

https://www.arduino.cc/en/Serial/ReadString

Julissa Alquisiris
5 years ago

No acepta un valor diferente de ‘1’…
hice una aplicación en Java para iniciar y detener el semáforo, el botón iniciar si lo hace pero el botón detener no… me puedes ayudar?
código:
https://drive.google.com/file/d/17YLhSGEqXj_dXikdwRpm3lu7RjHa3pxN/view?usp=sharing

Jose Juan
Jose Juan
5 years ago

Disculpa cuando quiero recibir un dato en java con printMessage() y lo almaceno en una variable me aparece que no hay datos disponibles, solo los puedo usar con un System…

Manuel Nájera García
Manuel Nájera García
6 years ago

Hola!!
Estoy he desarrollado una interfaz q muestra los piertos COM disponibles en el PC, permite seleccionar uno de ellos e iniciar la conexion con Arduino. Mi pregunta es ¿Como puedo chequear q en el COM seleccionado existe un Arduino conectado?

Luis David Mercado Ortega
Luis David Mercado Ortega
6 years ago

hola una pregunta cuando uso el metodo killconection() siempre me sale un aviso que es persistente y no me deja seguir usando la aplicacion entonces mi pregunta es como puedo solucionar ese inconveniente que cuando cierre la conexion me permita seguir usando la aplicacion

Antony García González
Antony García González
6 years ago

Compártenos tu código a través del foro

Alexis Javier Mayo
Alexis Javier Mayo
6 years ago

La configuracion es la misma si deseo conectar la pc con un modulo bluetooth HC-05?

Alejo Diaz
Alejo Diaz
6 years ago

Hola tengo un problema estoy utilizando el método RXTX y envío datos perfectamente sin embargo cuando recibo datos no me los agarra bien aveces desde arduino estoy enviando serial. Println (“R»+minutos)
serial. Println (“R»+segundos )
serial. Println (“R»+décimas)
serial. Println (“R»+centensimas)
serial. Println (“R»+milésimas)
Sin embargo aveces recibo lo siguiente
R0R
1
R7
R5
R3

Y yo quisiera recibir
R0
R1
R7
R5
R3

Antony García González
Antony García González
6 years ago
Reply to  Alejo Diaz

En Arduino no puedes concatenar cadenas de caracteres dentro de el Serial.println. Al menos yo nunca he tenido éxito haciéndolo.

Te recomiendo que te crees un String y concatenes los datos Luego imprimes. Por ejemplo:
String msg = «R»;
msg += mminutos;
Serial.println(msg);

Así debería funcionar.

Jesus Espinosa
Jesus Espinosa
6 years ago

Es una fantástica aportación, mil gracias

Brayhan Jaramillo
Brayhan Jaramillo
6 years ago

Buenas noches, quiero replicar la aplicación en un computador de mesa y no me sirve cuando le doy en el botón encender y tengo el mismo código en mi portátil y todo funciona, que podría ser, sera que falta alguna configuración? , agradezco tu ayuda mil gracias.

Antony García González
Antony García González
6 years ago

El puerto COM. Posiblemente no sea el mismo para las dos computadoras.

Dennis Santacruz
Dennis Santacruz
6 years ago

Muchas gracias amigo, te deseo muchas bendiciones

Jhon Sebastian Botero Lemos
Jhon Sebastian Botero Lemos
6 years ago

GRAICASSSSSSS

Maleja Tellez
Maleja Tellez
6 years ago

Disculpe,una pregunta…si en el caso de que en el arduino presione un pulsador y quiero que en el programa realice algún evento,que debo utilizar?

Leonardo Carrión Toledo
Leonardo Carrión Toledo
6 years ago

Disculpa amigo me podrías indicar como se da el funcionamiento de la clase MultiMessage, no entiendo como puedo usarlo dentro del código si por ejemplo tengo 5 sensores que detectan movimiento y que envían datos desde arduino a java

Giovanni Pantojak
Giovanni Pantojak
6 years ago

No me gusta que al Crear el contructor del Objeto Arduino salga con un sout la informacion esa impresa voy a descomplilar la libreria

Antony García González
Antony García González
6 years ago

La librería es libre, no es necesario descompilarla. Y la impresión es simplemente la información de quien creó la librería. Usualmente se respeta lo que el autor del código ha puesto ahí. Igual el código es libre

Giovanni Pantojak
Giovanni Pantojak
6 years ago

Usualmente no me gusta que salga ese contenido
@Antony_García_González
Si tienen algún comentario no duden en hacérmelo llegar.

Mario Garcia
Mario Garcia
6 years ago

¡Muchas gracias amigo! Me ayudo mucho para un proyecto de la universidad, ¡eres un maestro!