¿Como puedo enviar varios datos hacia Arduino desde Java?
Inicio › Foros › Arduino + Java › ¿Como puedo enviar varios datos hacia Arduino desde Java?
Etiquetado: Arduino, Arduino + Java, flashear puerto, flashear puerto arduino, Java, librerias arduino java, librerias panamahitek
- Este debate tiene 11 respuestas, 3 mensajes y ha sido actualizado por última vez el hace 3 años, 7 meses por
Antony García González.
-
AutorEntradas
-
-
julio 11, 2017 a las 10:18 pm #10528
Francisco Monsalve Uribe
ParticipanteTengo un proyecto con Arduino y java en el cual Arduino hace girar unos motores al recibir la instruccion «start» y me retornan un dato, esto desde java con la libreria de PanaHiteck, mi problema es que necesito enviar la instrucción en varias ocasiones y después de enviar la primera instrucción ya no me recibe mas. Me gustaria saber si es posible Flashear el puerto sin tener que cerrarlo ya que al abrirlo de nuevo activa de forma involuntaria el mecanismo en Arduino.
-
julio 11, 2017 a las 10:36 pm #10530
Antony García González
SuperadministradorDepende del código que estés utilizando.
Aquí hay un ejemplo de recepción de un dato a la vez: https://github.com/PanamaHitek/java_post_examples/blob/master/src/main/java/Java_Arduino/ArduinoRX/JavaRX.java
Aquí hay un ejemplo de recepción de múltiples datos a la vez donde se utiliza flushBuffer() para indicarle a Java que puede seguir escuchando a un nuevo grupo de mensajes entrante:
https://github.com/PanamaHitek/java_post_examples/blob/master/src/main/java/Java_Arduino/ArduinoRX_multi/JavaRX_multi.javaSi lo que quieres es enviar datos de Java a Arduino, aquí hay un ejemplo:
https://github.com/PanamaHitek/java_post_examples/tree/master/src/main/java/Java_Arduino/ArduinoTXEste ejemplo es de transmisión y recepción de datos:
https://github.com/PanamaHitek/java_post_examples/tree/master/src/main/java/Java_Arduino/ArduinoRXTX -
julio 12, 2017 a las 10:58 am #10533
Francisco Monsalve Uribe
ParticipanteMuchas Gracias, Voy a revisarlos en este momento y en caso tal te seguiré escribiendo.. que excelente trabajo.
-
julio 12, 2017 a las 2:21 pm #10534
Francisco Monsalve Uribe
ParticipanteHola ya revise los post, pero no me funciono el flushBufer(). Lo que logro identificar es que para seguir haciendo envíos dese Java hacia Arduino, debo resetear el Arduino y ahí es donde tengo el problema, ya que en la maquina final no hay acceso al boton de reset. Hay alguna forma de resetearlo desde software, sin necesidad de oprimir el botón del Arduino???
Mil gracias. -
julio 12, 2017 a las 5:49 pm #10535
Antony García González
SuperadministradorEl código funciona sin que tengas que resetearlo. Te recomiendo que subas esto a tu Arduino:
Y en Java uses este código:
https://github.com/PanamaHitek/java_post_examples/blob/master/src/main/java/Java_Arduino/ArduinoTX/JavaTX.javaPrefiero que descargues el proyecto completo en tu netbeans. Prueba a seguir las instrucciones que verás ahí y te darás cuenta que podrás enviarle información repetidas veces sin que haya que resetar.
-
agosto 8, 2017 a las 2:55 pm #10582
Adán LPZ
Participanteme funciono a la perfección, solo que tengo una duda, recibe java como tal variables del tipo STRING, digo tal vez sea muy basico pero yo apenas ando aprendiendo Java, pero estos datos que recibo que son numéricos, como podria convertirlos a variables del tipo ENTERO? lo menciono porque en base a los datos que reciba tomare acciones en la interfaz para que realice diferentes eventos. Desde ya gracias.
-
agosto 8, 2017 a las 3:04 pm #10583
Antony García González
SuperadministradorPues es muy sencillo:
1234String n = "5";int num = Integer.parseInt(n);El método parseInt() se utiliza para convertir de String a Integer
-
agosto 11, 2017 a las 2:26 pm #10593
Adán LPZ
ParticipanteHola, gracias, si ya lo había checado y si efectivamente con esa función los convierto aunque me parece que existen mas, pero lo iré investigando. Disculpa la molestia pero me surgió otra duda, me he percatado que si al momento de iniciar la interfaz la tarjeta arduino no esta conectada, el IDE de netbeans te genera errores y cuando la conectas no lo hace, mi duda se enfoca a que si hay una forma de checar si efectivamente esta conectado arduino y si no cerrar la interfaz o mandar un aviso y cerrar despues, se podria hacer y en dado caso como o que funcion de la libreria se utilizaría?
ya averigüe como lo puedo hacer, tendría que meter las instrucciones en catch (ArduinoException ex), y ahi decir que haga en dado caso que no lo encuentre.
-
-
agosto 16, 2017 a las 9:45 am #10606
Adán LPZ
ParticipanteHola, disculpa la molestia, de casualidad se puede usar la recepción multimensaje y monomensaje (por así decirlo) en el mismo Frame? por ejemplo mandar datos de tres sensores en un método de trabajo y en otra forma de trabajo solo leer un sensor hacer una rutina, leer un segundo sensor y reiniciar el proceso, como una especie de conteo. Mi duda va enfocada a si se puede usar ambas forma de comunicación, la multimensaje y la normal o sencilla.
-
agosto 18, 2017 a las 10:47 am #10612
Antony García González
SuperadministradorHola. Creo que no se puede hacer lo que pides. Te recomendaría que utilices multimensage de una forma tal que ciertas posiciones se usen para un modo de trabajo y otras posiciones para el otro modo de trabajo. Puedes enviar mensajes vacíos en posiciones que no estés utilizando en un momento dado.
-
septiembre 4, 2017 a las 11:23 am #10646
Adán LPZ
ParticipanteSí, eso fue lo que decidí hacer, igual y dices que como molesto, pero como puedo utilizar los datos recibidos fuera de la función public void serialEvent(SerialPortEvent spe), por aquí es donde se agrega el try catch para leer los datos del buffer eso si existen, pero no logro extraer eso datos a otros metodos, solo puedo trabajarlos dentro del IF de recepción.
-
septiembre 4, 2017 a las 1:03 pm #10648
Antony García González
SuperadministradorCrea una variable global. Lees en el serialEvent y guardas el valor en una variable global
-
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.