Sie sind auf Seite 1von 8

TERCERA ETAPA DRONE YAC

JEAN
HERNÁN
YEINER

PRESENTADO A
ING. J

INGENIERÍA EN AUTOMATICA INDUSTRIAL


MAYO DEL 2018
COMUNICACIÓN BLUETOOTH
Se implementó la comunicación bluetooth, enfocado a la transmisión y recepción
de datos. A través de un Smartphone; se da orden para la entrega de potencia
hacia los motores y el posterior funcionamiento del algoritmo de estabilización
según la instrucción asignada.

Fig.1.Variables bluetooth
Aquí se declaran las variables necesarias para la comunicación bluetooth, la
variable “String estado”, se usa para acumular las lecturas recibidas desde el
Smartphone; “char opción”, detecta un carácter enviado desde el Smartphone al
momento de mover un slider con el que se variará la velocidad, según este
carácter (opción), el algoritmo sabrá cuando entrar a modificar la velocidad.
La variable “int velocidad=1000”, será la velocidad inicial en microsegundos, la
cual se mueve en un rango de 1000-2000, por lo que en ese valor los motores
no girarán. Cabe aclarar que los controladores de velocidad pueden recibir
valores en microsegundos mediante el comando
“nombre.write.Microseconds(valor en microsegundos)”, o en ángulos en un
rango de 0°-180° mediante el comando “nombre.write(angulo)”.
La variable “int velocidadno”, se usa para inicializar los variadores de velocidad.

Fig.2. inicializar motores


En la función principal (Fig.2.), se inicializa el puerto serial a una tasa de
transferencia de 9600 baudios, posteriormente se procede a inicializar los
motores mediante un ciclo for muy importante, ya que sin esta etapa los motores
no son capaces de responder a ninguna orden desde el Smartphone. Luego del
ciclo for, se les envía una señal para que se detengan.

Fig.3. lectura de datos


En la función de ciclos repetitivos (Fig.3.), se procede a realizar las lecturas por
Serial recibidas desde el Smartphone. Aquí se evalúa si hay algún dato de
entrada por serial, en caso afirmativo, se procede a leer la opción, que, en el
momento de mover el slider desde el celular, inmediatamente enviará un carácter
con la letra “a”. Así que mientras detecte valores por el Serial, producto del
movimiento del slider, los asignará un carácter “c”, para luego acumularlos en
una cadena, siendo este el valor en microsegundos, que posteriormente se
convertirá a enteros.
Posteriormente, se modifica la variable “velocidad”, pues a partir de ella se regirá
el control PID para aumentar o disminuir la potencia de los motores, como se ve
en la siguiente figura:

Fig.4. velocidad base para el PID


Luego, al mismo tiempo en que se mueve el slider, se entrega potencia a los
motores. Para ello se toma otra variable(“aceleración”) y se mapea “velocidad”,
con el fin de entregar valores en ángulos. Hecho esto, se limpia la variable
“estado”, y se asigna otra letra a “opción”, para que no vuelva a ejecutar la
condición, a menos que vuelva a detectar información por el puerto serie, en este
caso, se repite el procedimiento.

INTERFAZ DE USUARIO
Se diseñó la aplicación en APPINVENTOR, la cual utiliza codificación en bloques

Fig.5. aplicativo APPINVENTOR


Esta aplicación permite la interacción entre el usuario y el drone.
Consiste en variar la potencia de los motores por medio de un slider (control
deslizante), cuenta también con un pequeño recuadro que permite visualizar
datos detectados desde el sensor ultrasónico ubicado en el drone, aparte de
esto, esta interfaz cuenta con un menú en la parte superior izquierda que
permitirá la conexión bluetooth (en este caso el drone) y un botón para salir de
la App.
Pantalla intro de la App.
Esta parte cuenta con un fácil diseño de bloques en cual por medio de un reloj y
un audio dejara ver un Screen y oír un ringtone por determinado tiempo
Fig.6. Pantallas de Bienvenida
Al iniciar el aplicativo se muestra una pantalla de bienvenida al usuario con un
ringtone, con una duración de dos segundos, seguido de otra pantalla con el
nombre del proyecto.
Luego se da paso a la pantalla de interacción.

Fig.7. Pantalla Principal


El usuario podrá conectar su dispositivo por medio del botón bluetooth, que se
encuentra en el menú. Este menú será desplegará al presionar las tres barras
en la esquina superior izquierda

Fig.8. Algoritmos de Conexión y Desconexión


Cuando se presione la opción conectar, mostrará una lista de elementos con las
direcciones y nombres de los dispositivos bluetooth asequibles.
Después de seleccionar la conexión, por medio de un condicional, se verifica el
estado, si este es afirmativo, mostrará “estado: conectado” color verde, de lo
contrario mostrará “error en conectar el dispositivo”, en color rojo. Luego para
desconectarlo se presiona el botton 4, que ejecutara “llamar
bluetoothclient1.Desconectar”, y mostrara la etiqueta “estado desconectado”.

Por medio del slider se variará la velocidad del drone.


Cuando cambie la posición del slider, enviará un carácter hacia el módulo
bluetooth, seguida de la posición, con formato de texto.

Fig.9. Algoritmos de nvío y recepción de datos


En esta etapa, se hizo el algoritmo para la recepción de datos entregados por el
sensor ultrasónico, con el fin de monitorear la altura, se crea una variable global
“entrada”, que recibirá los datos enviados desde el sensor.
Estos datos recibidos se los asigna a la variable global con formato de texto, para
luego imprimirlos en la etiqueta “DIS_IN” como la distancia a la que se encuentra
el dispositivo Drone, estos valores se actualizarán cada 500 milisegundos para
no llenar el buffer; en caso de que no haya una conexión bluetooth, se imprime
en la etiqueta el mensaje “espera”.
MOSTRAR Y OCULTAR MENÚ

Fig.9. Algoritmo para mostrar/ocultar Menú


Aquí, cuando se presiona el botón de menú, se activa un reloj. En un primer
momento evalúa el estado de la bandera con las siguientes características:
En el caso de que sea cero, cambiara el símbolo del menú por una flecha, luego
verifica si el ancho del menú es menor a la mitad del ancho de la pantalla, si esto
se cumple, pasará a sumarle al ancho del menú 40 pixeles, que antes se
encontraba en un pixel suficiente para ocultar el menú, si esto no se cumple el
estado booleano del reloj se pone en falso y la bandera cambia a uno.
En el caso de que sea uno, la flecha cambiará por el símbolo del menú (tres
barras). Luego evalúa si el ancho es mayor al de la pantalla la cual siempre se
cumplirá debido a que en esta condición, el ancho del menú siempre va a ser
mayor que el ancho de la pantalla dividido 10, lo importante es que se cumpla
esta condición, y entonces pasará a restarle los 40 pixeles que antes se habían
sumado y así se esconderá el menú, luego si no se cumple esto, cambia el
estado booleano de reloj y la bandera la pone en cero.

Das könnte Ihnen auch gefallen