Download Manual conexion java-arduino mediante bluetooth

Document related concepts
no text concepts found
Transcript
Manual para establecer
conexión
JAVA-ARDUINO
mediante tecnología
bluetooth y su aplicación en
el uso de Frame.
ING. ELECTRONICA
PROGRAMACION II
ING. VINICIO
CHANGOLUISA
Elaborado por:
Cristhian Guerra
Fernando Tapia
1.- INTROCUCCION.En este documento se procederá a la explicacion detallada para desarrollar la
coneccion de Java con Arduino mediante el uso de la tecnología Bluetooth y
posteriormente poder aplicar esta conexión para desarrollar el funcionamiento
de un ascensor simulado mediante el programa Eclipse.
Seria de mucha ayuda para los estudiantes que deseen establecer este tipo de
conexiones consultar este manual antes y/o durante la realización de su
proyecto, ya que los guiará paso a paso en el manejo adecuado tanto del
programa Eclipse como de Arduino para realizar la simulación de un asensor y
a su vez el uso adecuado del bluetooth.
Con el fin de facilitar la comprensión del manual, se incluye gráficos
explicativos de todas las instancias del proyecto
IMPORTANTE.- Es muy importante mencionar que los estudiantes deben tener
un nivel básico de programación II ya que en un 90% del manual se habla en
lenguaje técnico.
2.- OBJETIVOS DEL MANUAL.2.1 Objetivo General
 El objetivo primordial de éste manual es ayudar y guiar al estudiante para la
realizar la simulación del funcionamiento completo de un ascensor en el
cual incluiremos sensores infrarrojo y de temperatura. Deseamos realizar
mas que nada el como seria la programación de todo su funcionamiento y
beneficios que podemos lograr en esta simulación.
2.2 Objetivos Específicos
 Lograr que el estudiante se familiarize con todo lo relacionado a la clase
JFrame y todas las utilidades que esta nos puede brindar al poder
combinarlas con los denominados eventos e hilos de programación.
 Establecer un conocimiento básico sobre el uso de la tarjeta Arduino y su
programación para posteriormente aplicarla con el uso de Java
exclusivamete con el programa Eclipse.
3.- LO QUE DEBE CONOCER.Los conocimientos mínimos que deben tener las personas que van a
desarrollar este tipo de proyecto son:




Conocimientos básicos acerca Programación I.
Conocimientos básicos de la utilización de la tarjeta Arduino.
Conocimiento básico sobre el uso del modulo Bluetooth.
Conicimiento básico sobre los componentes que se utilizan en los Frame.
4.- HERRAMIENTAS.








Java
Eclipse
Tarjeta Arduino UNO
Cargador de 5V para arduino.
Protoboard
Sensores infrarrojos
Sensor térmico
Leds
Modulo Bluetooth HC-05
5.- DESARROLLO DEL TRABAJO.Para que el estudiante pueda tener idea del proyecto, procederemos a realizar una
descripcion general del funcionamiento del asensor que va a ser simulado en el
programa Eclipse y el cual cumple con algunas características y condiciones
necesarias:
PRIMERO.Creamos un Frame que va a llevar tres temas principales, la primera parte será
llamada panel exterior mediante un g.drawString ubicando en a parte inferior de
este cuadro, luego vamos a realizar dos botones para este panel mediante JButton
el cual nos indicara uno la opción de subir y el otro botón que diga bajar, le damos
una acción a estos botones la cual será mediante un JLabel poner en dos
condiciones si es un piso menor en el que estamos nos marque que podemos
subir, entonces nos sale alado la frase en nuestro caso que esta en movimiento,
en la parte práctica lo que consigue es que se encienda un led programando en
arduino que si recibe la señal de 1 se encienda un led, y si recibe la señal de 0
entonces se apague este led, volviendo a la parte de java indicamos que al estar
la señal de estar en movimiento esta encendido el led, y cuando hacemos un
segundo clic mostramos que estamos en el piso indicado entonces envía una
señal de 0 y se apaga el led.
SEGUNDO.Realizamos el mismo procedimiento para poder llevar a cabo la segunda parte la
cual llamaremos Panel Inferior, en este en cambio creamos botones que simulen
cada piso es decir piso 1, piso 2, etc. En este mostramos igualmente un indicador
de en que piso se esta subiendo o bajando y encendiendo un led por cada piso,
recibiendo independientemente una señal diferente para encender cada led por
cada piso y apagando los demás leds si no se esta en el piso, además del
segundo clic muestra haber llegado al destino.
TERCERO.Ahora en la parte de arduino vamos a utilizar dos sensores, el uno será nuestro
sensor de infrarrojo que programamos para activar en un encendido intermitente,
pero que calcula la distancia de un obstáculo a interferir entre el emisor y el
receptor entonces si esta demasiado cerca y tapado completamente va a quedar
encendido, si hay obstáculos acercándose entonces va a parpadear con más
rapidez.
El sensor de temperatura esta activandose mediante un botón, en el cual al
programar hacemos lo siguiente, en el Void Setup declaramos los pines en donde
va a ir conectado, en Void Loop vamos a ejecutar el programa en este caso
declaramos la variable que va a ir almacenando los datos enviados por el sensor,
finalmente ejecutamos desde java para asi concluir con el trabao realizado.
6.- EXPLICACION DETALLADA DEL TRABAJO.A continuación vamos a realizar el programa para poder expresar el
funcionamiento del ascensor pao a paso.
CONEXIÓN DEL BLUETOOTH.1.- Para poder agregar un dispositivo bluetooth(HC-05) a la computadora es
necesario verificar que la computadora donde vayan a trabajar tenga bluetooth
o sino caso contrario comprar un bluetooth móvil, es aquellos bluetooth que se
conectan de forma USB y se los instala con su respectivo método de
instalacion(CD).
2.- Una vez verificado que la computadora tenga bluetooth. Se procede a realizar
la conexion del modulo bluetooth con la tarjeta arduino.Este proceso es muy
sencillo. En la siguiente imagen se puede observar la instalación de las
terminales de la tarjeta arduino hacia las terminales del modulo bluetooth.
RXD------>TX(1)
TXD------>RX(0)
GND------>GND
VCC------>5V o 3.3V
3.- Se realiza la búsqueda del modulo bluetooth para posteriormente poder
agrrgarlo y asi realizar el emparejamiento con la computadora.
4.- Una vez encontrado el dispositivo y posteriormente agregado nos va a pedir su
contraseña para poder establecer correctamente la comunicación.
5.- Finalmete para que la conexión sea totalmente exitosa colocamos la
contraseña del dispositivo. En la mayoría de casos del dispositivo(HC-05) la
contraseña es 1,2,3,4.
6.- De esta manera cuando ya la conexion se realizó con éxito, podemos observar
que al abrir la configuración del bluetooth de la computadora y al al hacer clic
en la opción “Puertos COM”, nos va a aparecer el puerto com que se le asingo
al modulo bluetooth ya emparejado.
PROCESO EN ECLIPSE. Empezamos en java creando el programa que va a contener tres partes
fundamentales, las cuales serán:
1.- Panel Exterior
2.- Panel Interior
3.- Sensor de temperatura
Programa: dospaneles
PANEL EXTERIOR
1.- Entonces empezamos creando un Frame que va a tener el tamaño de 750 de
ancho y 600 de alto de aquí vamos a utilizar el método paint para separar en
líneas las dimensiones de los diferentes paneles que se van u usar en el
Frame.
2.- Una vez creado el Frame usamos G.drawString y procedemos a ubicarnos en
el primer recuadro para escribir Panel Exterior.
3.- Luego vamos a crear dos botones mediante JButton el uno que diga subir y el
otro bajar como se mostrara a continuación.
4.- Posteriormente a estos botones les vamos a dar una función mediante un
ActionListener al crear una variable llamada pisoactual si es superior podemos
llamarla haciendo un clic sobre ella, la cual nos mstrara un mensaje mediante
un JLable que dira que esta en movimiento, y al hacer un segundo clic sobre el
mismo botón mostrara que ya se llego al piso deseado.
5.- Este procedimeinto se repetirá para realizar la misma acción para el botón de
bajar, en ambos casos me muestra la opción.
Al primer clic nos indica que el ascensor esta
en movimiento el cual lo pondremos en función
con algo adicional que será mencionado mas
adelante
En el segundo clic nos indica que se ha llegado
al piso solicitado, pues entonces podremos
entrar
Este es el código empleado para crear los botones indicando subir y bajar con su
respectivo detalle de realizar si esta en movimiento o al llegar al piso deseado
PANEL INTERIOR
En este vamos a realizar los mismos pasos que para el panel exterior , entonces:
1.- Ubicamos poner su nombre como Panel Interior.
2.- De aquí vamos a crear 3 botones los cuales llevan su propia numeración
simulando el panel de adentro en el cual seleccionamos a que piso deseamos
subir o bajar.
3.- Cada uno de los botones nos muestra mediante un JLabel si esta subiendo o
bajando al hacerle el primer clic sobre él, entonces bajo esa condición
hacemos que al hacer el segundo clic nos diga haber llegado al piso deseado,
entonces podemos simular el subir y el bajar bajo la orden dada.
En este caso hacemos que nos
diga subir al segundo piso.
Al dar el segundo clic llega a
nuestro destino
Entonces el código usado para crear el panel interno con sus botones realizamos
lo siguiente:
Realiza un evento
para el boton1(b1),
para recibir un JLabel
“Baja” o “Piso Actual”
BOTONES
PANEL TEMPERATURA
1.- En este panel vamos a crear un botón que diga Temperatura.
2.- Al botón temperatura le vamos a dar un acción de graficar mediante un
polígono que va a ir variando en su altura deacuerdo al valor que recibe del
sensor de temperatura cuyo valor esta transformado a grados centígrados
mediante la fórmula (5.0*analogRead(0)*100.0/1023.0 la cual nos va a dar el
valor de la temperatura (el valor de temperatura se explicara más adelante en
el sensor).
3.- Posteriromente lo que realizamos en este panel es que mediante el repaint
dibuje la temperatura actual. Así se puede evitar alguna clase de complicación
y tomar debidas precauciones para cuando su temperatura este alta.
Variacion de Temperatura
Entonces podemos notar como ira variando la temperatura al
presionar clic en el botón, el cualnos dara la temperatura
momentánea recibida por el sensor.
Aquí
procedemos
a
realizar el botón con la
indicación
de
la
temperatura.
A continuación se mira la acción de recibir los datos del sensor de temperatura, si
en este caso marca error es poque falta conectar a la tarjeta.
Recibe datos
del sensor de
temperatura
Toma los valores de
temperatura y los grafica, la
grafica simpre va a ir
cambiando gracias al repaint
SENSOR INFRARROJO
En este caso de forma independiente, la conexión del sensor no necesita
ejecución en java a menos que desee enviar los datos de la distancia, pero para
nuestro fines no lo realizamos, indicamos nosotros la variable distancia la cual nos
indicará si hay algún obstáculo entre los leds emisor y receptor, esta programado
para que se mantenga en un encendido parpadeante.
Es decir si el infrarojo esta completamente tapado el led se va a mantener
prendido constantemente, por el contario si se aleja del led el parpadeo va a ser
mas notorio.
Este es el
código del
infrarojo.
Puede ser
descargado
del internet
o viene por
default en
los ejemplos
de Arduino.
Entonces al continuar a programar en Arduino primero declaramos las variables
que vamos a utilizar, que son la temperatura, la distancia de los infrarrojos y una
variable que recibe datos enviados por java.
En el Void Setup declaramos los pines en donde van a ir conectados los diferentes
elementos como son los diodos del LED, los pines de los infrarrojos y del sensor
de temperatura.
Declaracion de
pines(piso1,piso2,
piso3,infrarojo)
Calculo de temperatura
Pausa el programa en un
tiempo determinado.
En Void Loop va a ser donde se va a ejecutar todo el programa, para el sensor de
temperatura en la variable que declaramos vamos a almacenar los datos que
envía el sensor, como el sensor tiene la equivalencia a 1grado centígrado= a
10milivoltios por medio de la fórmula: (5.0*analogRead(0)*100.0/1023.0
Algo importante que debemos mencionar es que como el valor que recibimos en
es forma de caracter es decir de tipo char, lo procedemos a cambiar para que
salga en java el valor de la temperatura en grados centígrados. Los datos serán
almacenas según el tiempo puesto.
Cambio de tipo de
datos:
Char----->String
Sring----->Double
Variable temp
Recibe los datos de arduino y es aquí en donde se procedio a cambiar el tipo de
dato char a String y de ahí a tipo Double quedando como una variable temp.
Método Repaint
Aquí usamos el método del repaint para así poder ir graficando en tiempo real el
cambio de la tempertura.
ENCENDIDO Y APAGADO DE LEDS
Continuamos con la programación en Arduino, la cual es fundamental para darle
algunas ideas de vida a nuestro proyecto, es decir lo que realizaremos es hacer el
encendido y apagado de leds mediante los botones creados anteriormente.
1.- Al presionar en el primer panel sobre los botones de subir y bajar va a
recibir la señal 1 para que asi cuando diga que esta en movimiento se
encienda el led, y un proceso similar para el panel interior.
2.- Entonces para el encendido de los LEDS procedemos a crear una variable
que será recibida para el encendido del Led de cada piso, es decir si recibe
la señal 1 se encenderá un led, si recibe la señal 2, 3 y 4 entonces se
encendera su respectivo led.
En java se procede a realizar lo siguiente:
Entonces mostramos aquí que al recibir la señal ‘1’se procede a encender el led
cada vez que damos el primer clic, es decir cuando nos muestra el mensaje de
que esta en movimiento, y de que se apague al dejar de recibir esta señal.
En el panel inferior realizamos lo mismo a cada botón le damos esa función de
encender si este piso ha sido seleccionado y al momento de cambiar de piso que
este se apague.
Como se puede apreciar en java se recibe la señal ’2’ para encender el piso 1, la
señal ‘3’ para en cender la luz del piso 2, y recibe la señal ‘4’ para el piso 3. En
Arduino esta programado para que se encienda y apague al recibir la señal tal
como se muestra anteriormente, y en java hace que al estar seleccionado el piso
se muestre de que piso se esta, y cuando se selecciona otro piso entonces se
paga el led correspondiente y se enciende el de su piso, así se puede saber en
que piso se encuentra,
6.- RECOMENDACIONES DEL MANUAL. Un aspecto importante y muy práctico que nosotros desarrollamos fue el crear
de forma independiente parte a parte el fncionamiento, es decir primero
creamos los paneles, y realizamos el funcionamiento, de ahí comprobamos el
como funciona cada sensor y como adaptarle, para finalmente unir las partes
de forma correcta.
 En el proyecto lo que se presenta son los beneficios y usos que se le puede
dar a los sensores y a la comunicación entre estos paneles.