¿Como puedo enviar varios datos hacia Arduino desde Java?

Inicio Foros Arduino + Java ¿Como puedo enviar varios datos hacia Arduino desde Java?

Este debate contiene 9 respuestas, tiene 3 mensajes y lo actualizó  Antony García González hace 5 días, 1 hora.

  • Autor
    Publicaciones
  • #10528

    Tengo 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.

  • #10530

    Antony García González
    Jefe de claves

    Depende 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.java

    Si 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/ArduinoTX

    Este 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

  • #10533

    Muchas Gracias, Voy a revisarlos en este momento y en caso tal te seguiré escribiendo.. que excelente trabajo.

  • #10534

    Hola 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.

  • #10535

    Antony García González
    Jefe de claves

    El código funciona sin que tengas que resetearlo. Te recomiendo que subas esto a tu Arduino:

    https://github.com/PanamaHitek/java_post_examples/blob/master/src/main/java/Java_Arduino/ArduinoTX/ArduinoRX.ino

    Y en Java uses este código:
    https://github.com/PanamaHitek/java_post_examples/blob/master/src/main/java/Java_Arduino/ArduinoTX/JavaTX.java

    Prefiero 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.

  • #10582

    Adán LPZ
    Participante

    me 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.

    • #10583

      Antony García González
      Jefe de claves

      Pues es muy sencillo:

      El método parseInt() se utiliza para convertir de String a Integer

    • #10593

      Adán LPZ
      Participante

      Hola, 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.

      • Esta respuesta fue modificada hace 1 semana, 4 días por  Adán LPZ. Razón: no puedo comentar otra vez, además que plantee una duda que ya le pude dar solución
  • #10606

    Adán LPZ
    Participante

    Hola, 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.

    • #10612

      Antony García González
      Jefe de claves

      Hola. 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.

Debes estar registrado para responder a este debate.

Únete a nuestras redes sociales

2,725FansMe gusta
804SeguidoresSeguir
3,324suscriptoresSuscribirte