Arduino + Java
Arduino + Java: Encender un LED desde un programa en la PC
***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.
Necesitamos renombrar los nombres de los botones. Los llamaremos jButtonEncender y jButtonApagar. Ahora al botón de Apagar le vamos a quitar la opción “enabled” en las propiedades del control. 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: Ahora vamos a programar. Lo primero que debemos hacer es agregar las librerías RXTX y Arduino a nuestro programa. Abrimos el código fuente e instanciamos la librería Arduino. 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. 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. 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: El comando que va a encender el LED en Arduino será un “1” el cual enviaremos utilizando la función Arduino.SendData().
En el botón apagar se copia el mismo código pero se le hacen algunas ligeras modificaciones.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:
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:
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.
Comentarios
Publicar un comentario