Arduino + Java: Encender un LED desde un programa en la PC

30
3850
GARD Pro Not Registered

***Este post fue originalmente publicado el 31 de enero de 2013, pero lo estoy re posteando ya que esta vez utilizaré la librería Arduino para Java que yo mismo diseñé y que no fue incluida en la publicación original

En este artículo voy a mostrar como encender un LED desde un programa en la PC  hecho con el lenguaje de programación Java, utilizando Netbeans IDE.

Uno de los principios de la Robótica es lograr que un dispositivo electrónico sea controlado por el usuario a través de una computadora. Con Arduino podemos controlar circuitos utilizando aplicaciones escritas en cualquier lenguaje de programación que soporte comunicación serial. Para efectos de este post, concentraremos nuestros esfuerzos en lograr que un circuito sencillo, como lo es un LED y una resistencia puedan ser conmutados desde nuestra computadora, utilizando una interfaz en Java y nuestro microcontrolador Arduino. En mis anteriores aportes me he enfocado en explicar como crear una sencilla aplicación en Java, con un botón y un jLabel. También vimos como trabajan las funciones en Java. Para poder enviar y recibir información a través del puerto serie con Java se necesita instalar las librerías RXTX. Por último, toda aplicación debe contar con la Librería Arduino para Java. Con toda esta información somos capaces de lograr nuestro acometido. Empezemos. Primero abrimos Netbeans y creamos un proyecto llamado ArduinoSwitch. Insertamos un jFrame y colocamos 2 botones: Encender y Apagar.

Encender led Arduino Java   Necesitamos renombrar los nombres de los botones. Los llamaremos jButtonEncender y jButtonApagar. Encender led Arduino Java   Ahora al botón de Apagar le vamos a quitar la opción “enabled” en las propiedades del control. Encender led Arduino Java   Esto lo que hará es que al iniciar el programa no se pueda presionar el botón de apagado mientras el LED esté apagado. Si ejecutamos el programa, la interfaz es la siguiente: Encender led Arduino Java   Ahora vamos a programar. Lo primero que debemos hacer es agregar las librerías RXTX y Arduino a nuestro programa. Encender led Arduino Java   Abrimos el código fuente e instanciamos la librería Arduino. Encender led Arduino Java  Le damos clic al ícono amarillo de la izquierda y seleccionamos la primera opción. Esto logrará que se elimine el error. En el método principal se inicializa la conexión con Arduino. Como solo vamos a encender y apagar, se usa ArduinoTX. Encender led Arduino Java   Los parámetros que colocaremos son los siguientes: PORT NAME: Nombre del puerto donde está conectado Arduino (por ejemplo, COM24, COM25, COM 25, etc). TIME OUT: Tiempo de espera entre el inicio de la ejecución y el envío de comandos. Se utiliza 2000 por default. DATARATE: El baud rate de la comunicación serial. Normalmente se usa 9600. Agregamos los parámetros que estemos usando en nuestro proyecto y metemos todo en una estructura Try-Catch. Encender led Arduino Java   Con esto hemos terminado la conexión con Arduino. Necesitamos programar los botones. Lo que haremos será que cuando presionamos el botón de encender, este se desactive y solo quede activo el botón de apagar. Le damos doble clic al botón “Encender” en la interfaz de diseño e insertamos la programación. Al presionar encender, se desactivará el botón y cambiará el color a gris. Se activara el botón apagar y cambiará a dorado. Usaremos la clase Color para los colores, los cuales necesitamos introducir en formato RGB. Así luce la programación: Encender led Arduino Java   El comando que va a encender el LED en Arduino será un “1” el cual enviaremos utilizando la función Arduino.SendData(). Encender led Arduino Java

En el botón apagar se copia el mismo código pero se le hacen algunas ligeras modificaciones. Encender led Arduino Java Hemos terminado la programación en Java. Ahora solo hay que subir el código a nuestro Arduino para que todo nos funcione bien. Primero el esquemático:

ArduinoSwitch
  Nótese que el cátodo (positivo) del LED está en el pin 13 y el cátodo en GND (verificar los electrodos dentro del propio LED). Ahora la programación:

Encender led Arduino Java Con esto estamos listos para ejecutar. En el siguiente video (el que publiqué en la versión original, viejo y sin mucha calidad) se muestra la pequeña interfaz que hemos hecho funcionando con un LED.   Los archivos de este proyecto se encuentran disponibles en el siguiente enlace: http://docs.google.com/file/d/0B0hsUkhqWH97a1BDUU02MlB4WXM Espero que toda la información suministrada sea de su completo agrado. Saludos.

GARD Pro Not Registered
  • Antony García González

    Sí funciona

  • Didier Argel Chan Ay

    diculpa amigo, el me baje el programa y le agregue la libreria PanamaHitek_Arduino, v2.8.3 pero sigue marcando error. ¿me podrias ayudar?. tengo arduino uno y trabajo en netbeans 8.1, el jdk que estoy utilizando es el 1.8. saludos desde mexico

    • Antony García González

      Qué error?

      • Didier Argel Chan Ay

        perdon por no responder antes. me dice que la libreria no existe

        import Arduino.Arduino;

        • Antony García González

          Tienes que verificar la documentación de la librería

  • Antony García González

    No existe mayor diferencia entre un Arduino y otro en cuanto a software

  • Antony García González

    Es correcto

  • Antony García González

    Estoy trabajando en la versión 2.8.0 en la cual esto ya no sería un problema

  • Paola Nayeli Cortez Herrera

    Hola buen día, para este ejemplo existe alguna versión especial del JDK de Java? Yo lo he probado con la 7 y hasta la 1.4 y no me sale. El error es en Netbeans.

    • Antony García González

      El JDK es 1.8

    • Antony García González

      Necesitas usar la versión 1.8

  • CARLOS HUMBERTO MENDOZA SALCED

    Hola Antony Esta muy chebere los tutos pero y los planos esquematicos??

    • Antony García González

      Para este tuto no se necesita plano esquemático. Se trata solo de conectar un LED entre el pin 13 y GND

  • Carlos Lucero

    Hola una duda que tal si tengo n leds que tendria que aumentar?

    • antony.garcia.gonzalez@gmail.com

      Replicar los pinMode, y los digitalWrite y los numeros que encienden cada uno

  • Hesus

    Que tal, intente descargar los archivos pero al abrirlos solo me permite visualizar la ventana sin el codigo ni nada.

    Saludos

    • antony.garcia.gonzalez@gmail.com

      Intenta buscar en el menu File o Archivo, la opción de descargar

  • Eunice

    esta muy padre tu blog. bien explicado el mejor que he vistoo =D
    Pero no me funciono a mi jijijiji es ke estoy utilizando ENERGIA y pues no se tal
    vez sea eso. Pero esta muy padre Felicidades.

  • Álvaro Macedo

    Un cordial saludo, se que soy nuevo en java pero quiero que me ayudes con este proyecto que hiciste no llegó a entender como hiciste que puedas conectar tu pc con el protoboard quisiera saber eso te lo agradecería de ante mano. Gracias

    • Álvaro Macedo

      Quisero saber como hiciste el circuito y como conectaste la pc con el circuito que tiene el LED.

      • antony.garcia.gonzalez@gmail.com

        Se utiliza un Arduino, que es un micro controlador conectado a la PC por medio de un cable USB

    • antony.garcia.gonzalez@gmail.com

      Debes utilizar un Arduino para poder lograrlo

  • Alejandro

    Hola buenas tardes, disculpa descargue los archivos pero el programa en java agrego las librerias pero me sigue marcando un Warning y a la hora de correrlo truena, espero me puedas ayudar ya que ocupo basarme de este programa para crear otro, saludos…

    • antony.garcia.gonzalez@gmail.com

      Que tipo de error te aparece?

  • Eds Prz

    Hola que tal, gracias por el tutorial… amm tengo una pregunta , es posible adaptar esta libreria en Android? manejandolo con alguna evento o algo asi?

    • antony.garcia.gonzalez@gmail.com

      Quizá, pero por ahora no tengo experiencia en Android por lo que no podría adaptarla

  • WHILLIAMS TARACHEE

    Hola amigo un saludo muy especial desde Colombia allá en panamá, primero que todo quisiera felicitarte por el excelente blog que tienes, he estado revisando tu blog y hay muy buenos tutoriales, esto quisiera pedirte un favor he revisado este tutorial lo e implementado en java funciona perfecto, esto quisiera saber es como dejarlo ejecutable, me explico un archivo en el cual yo no tenga que abrir java cada vez que quiera ejecutarlo, cual quier información estaré agradecido amigo, ya que en Internet hay cierta información que a veces lo confunde a uno, y pues quisiera que me ayudara en eso por que estoy interesado en realizar proyectos tales como estos para Arduino. Muchas gracias.

    • antony.garcia.gonzalez@gmail.com

      Actualmente me encuentro investigando sobre este tema ya que es un problema muy común que se tiene entre los usuarios de Java. Me encuentro haciéndole consultas a un profesor de mi Universidad que es miembro de Netbeans Dream Team. Apenas tenga una solución a este tema le aseguro que publicaré un tutorial completo acerca de dichas técnicas. Y está de suerte por que necesito presentar un proyecto de fin de semestre dentro de dos semanas y el mismo requiere del uso de un programa que contenga la librería en su interior. Espérelo pronto

  • Oliver

    Bastante interesante, todo lo que se puede hacer con Arduino infinitas aplicaciones.

    Una pequeña consulta en donde colocaste el LED me parecio ver un protoboard, la duda es porque me interesaria hacerlo en mi casa de manera Hobbie, desde el desarrollo en Java y del protoboard.

    Gracias.

    • antony.garcia.gonzalez@gmail.com

      En el pin 13 se puede colocar un LED de forma directa y funcionará. Si se va a usar otro pin que no sea el 13 se recomienda proteger el LED con una resistencia de al menos 220 ohms, por lo que es necesario un protoboard