conoce-tec

Transcripción

conoce-tec
SECRETARIA DE EDUCACIÓN PÚBLICA
DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR
TECNOLÓGICA
INSTITUTO TECNOLÓGICO DE MÉRIDA
“CONOCE-TEC”
OPCIÓN
TALLER DE INVESTIGACIÓN II
PARA OPTAR AL TÍTULO DE:
INGENIERO ELECTRÓNICO
PRESENTAN:
GABRIEL FRANCISCO BARBACHANO PINEDA
RODRIGO ALEJANDRO MONTERO DORANTES
JOSE MANUEL VAZQUEZ COELLO
MÉRIDA, YUCATÁN, MÉXICO
2013
INDICE
INTRODUCCION .............................................................................................................................. 1
IMPACTO SOCIAL, TECNOLOGICO, ECONOMICO Y AMBIENTAL ....................................... 2
CRONOGRAMA DE ACTIVIDADES .............................................................................................. 2
CAPITULO I ....................................................................................................................................... 4
1.1 Introducción .............................................................................................................................. 4
1.2 Historia del GPS ........................................................................................................................ 4
1.2.1 Navegación Loran .............................................................................................................. 6
1.2.2 GPS Navstar....................................................................................................................... 7
1.3 Servicios de posicionamiento global (GPS) .............................................................................. 8
1.3.1 Segmentos de Navstar........................................................................................................ 9
1.4 Sistema operativo Android ...................................................................................................... 12
1.5 Historia del sistema operativo Android .................................................................................. 13
1.6 Arquitectura de Android.......................................................................................................... 14
1.7 Versiones de Android .............................................................................................................. 16
1.8 Descripción de Bluetooth. ...................................................................................................... 19
1.9 Antecedentes Bluetooth.......................................................................................................... 21
1.10 La interface área Bluetooth ................................................................................................... 22
1.11 la inmunidad a las interferencias en la tecnología Bluetooth. ............................................... 22
1.12 Arduino. ................................................................................................................................ 23
1.13 Entradas y Salidas del Arduino ............................................................................................. 25
CAPITULO II ................................................................................................................................... 27
2.1 Google Maps........................................................................................................................... 27
2.2 Sistema de navegación automotor .......................................................................................... 27
2.3 UNAM 360 ............................................................................................................................. 30
CAPITULO III .................................................................................................................................. 32
3.1 Definición del problema a resolver ......................................................................................... 32
3.2 Variables de entrada y salida .................................................................................................. 32
3.3 Diagrama de flujo ................................................................................................................... 33
3.4 Etapa I: Aplicación Movil ...................................................................................................... 37
3.4.1 Desarrollo de la aplicación .............................................................................................. 27
3.4.1.1 Acceso al GPS ......................................................................................................... 27
3.4.1.2 Coordenadas geográficas ......................................................................................... 43
3.4.1.3 Candado de inicio .................................................................................................... 48
3.4.1.4 Botón iniciar ............................................................................................................ 49
3.4.1.5 Menú principal ......................................................................................................... 50
3.4.1.5.1 Botón “conexión” ............................................................................................. 51
3.4.1.5.2 Botón “parámetros” .......................................................................................... 53
3.4.1.5.3 Botón “créditos” ............................................................................................... 56
3.5 Etapa II: Interfaz Bluetooth-Microcontrolador ....................................................................... 57
3.5.1 Módulo bluetooth........................................................................................................ 57
3.5.1.1 Características HC-05 ......................................................................................... 58
3.5.2 Arduino ....................................................................................................................... 59
3.5.2.1 Programación ........................................................................................................... 60
3.5.2.2 Pruebas en el Protoboard ......................................................................................... 67
3.6 Etapa III: Arduino Shield........................................................................................................ 68
3.6.1 Diseño de la placa del circuito ........................................................................................ 68
3.7 Etapa IV: Chasis ..................................................................................................................... 76
3.7.1 Detallado de las partes..................................................................................................... 79
3.7.2 Armado del prototipo final .............................................................................................. 82
CAPITULO IV .................................................................................................................................. 89
4.1 Resultados ............................................................................................................................... 89
4.2 Conclusiones ........................................................................................................................... 90
FUENTES BIBLIOGRAFICAS: ...................................................................................................... 91
INDICE DE FIGURAS
Fig. 01 Constelación Navstar y posiciones relativas de los satélites ..................................... 9
Fig. 02 Proyección Mercator de las orbitas de satélites Navstar ......................................... 10
Fig. 03 Imagen característica del sistema Android .............................................................. 12
Fig. 04 Arquitectura del sistema Android ........................................................................... 16
Fig. 05 Distribución de Android según su versión .............................................................. 17
Fig. 06 Modelo de conectividad bluetooth . ......................................................................... 21
Fig. 07 Placa del Arduino Duemilanove .............................................................................. 24
Fig. 08 Vista de calle por medio de Google Maps . ............................................................. 28
Fig. 09 Vista de calle por medio de Garmin ........................................................................ 29
Fig.10 Vista de calle por medio de UNAM 360 . ................................................................. 30
Fig.11 Variables de entrada y salida .................................................................................... 32
Fig.12 Diagrama de flujo general. ........................................................................................ 33
Fig.13 Digrama de flujo del candado de inicio . .................................................................. 34
Fig.14 Digrama de flujo de la detección del lugar . ............................................................. 35
Fig.15 Logotipo Basic4Android ........................................................................................... 36
Fig.16 Vista general del área de trabajo en Basic4Android . ............................................... 36
Fig.17 Banner 1 ................................................................................................................... 37
Fig.18 Banner 2 ................................................................................................................... 37
Fig.19 Logo 1 ...................................................................................................................... 37
Fig.20 Logo 2 ...................................................................................................................... 37
Fig.21 Logo DIEE ............................................................................................................... 38
Fig.22 Wallpaper Android ................................................................................................... 38
Fig.23 Icono 1 ...................................................................................................................... 38
Fig.24 Icono 2 ...................................................................................................................... 38
Fig.25 Icono 3 ...................................................................................................................... 38
Fig.26 Icono 4 ...................................................................................................................... 38
Fig.27 Captura de pantalla ................................................................................................... 39
Fig.28 Librería GPS ............................................................................................................. 39
Fig.29 Objetos de la librería ................................................................................................ 42
Fig.30 Candado 1 ................................................................................................................. 48
Fig.31 Candado 2 ................................................................................................................. 48
Fig.32 Candado 3 ................................................................................................................. 48
Fig.33 Inicio de la aplicación .............................................................................................. 49
Fig.34 Pantalla con botones de menú .................................................................................. 50
Fig.35 Botones de menú ...................................................................................................... 51
Fig.36 Menú emergente ....................................................................................................... 52
Fig.37 Mensaje de conexión ................................................................................................ 52
Fig.38 Pantalla parámetros .................................................................................................. 53
Fig.39 Barra de reproducción .............................................................................................. 55
Fig.40 Pantalla créditos ........................................................................................................ 56
Fig.41 Módulo Bluetooth HC-05 ........................................................................................ 57
Fig.42 Placa Arduino Uno .................................................................................................... 59
Fig.43 Conexión de pines entre Arduino y HC-05 .............................................................. 61
Fig.44 Prueba en protoboard ............................................................................................... 67
Fig.45 Esquemático ............................................................................................................. 68
Fig.46 Placa sin enrutamiento ............................................................................................. 69
Fig.47 Placa enrutada .......................................................................................................... 69
Fig.48 Circuito Impreso ....................................................................................................... 70
Fig.49 Planchado del circuito a la placa .............................................................................. 70
Fig.50 Aplicación del cloruro férrico a la placa ................................................................... 71
Fig.51 Placa lista .................................................................................................................. 71
Fig.52 Gráfica de Corriente Forward vs Voltaje Forward ................................................... 72
Fig.53 Fórmula para la polarización de un LED ................................................................. 72
Fig.54 Realización de cálculos para determinar la resistencia del LED .............................. 73
Fig.55 Soldando componentes .............................................................................................. 73
Fig.56 Placa con componentes lista ..................................................................................... 74
Fig.57 Placa conectada al Arduino ...................................................................................... 74
Fig.58 Verficación de la placa ............................................................................................. 75
Fig.59 Diseño del chasis con la medidas a escala ............................................................... 76
Fig.60 Vista frontal del prototipo diseñado .......................................................................... 77
Fig.61 Vista trasera del diseño final del prototipo ............................................................... 77
Fig.62 Elaboración chasis 1 .................................................................................................. 78
Fig.63 Elaboración chasis 2 ................................................................................................. 78
Fig.64 Elaboración chasis 3 ................................................................................................. 79
Fig.65 Elaboración chasis 4 ................................................................................................. 79
Fig.66 Partes moldeadas del prototipo para su ensamblaje final ......................................... 80
Fig.67 Armado chasis 1 ....................................................................................................... 81
Fig.68 Armado chasis 2 ....................................................................................................... 81
Fig.69 Armado chasis 3 ....................................................................................................... 82
Fig.70 Armado chasis 4 ....................................................................................................... 82
Fig.71 Armado chasis 5 ....................................................................................................... 83
Fig.72 Armado chasis 6 ....................................................................................................... 83
Fig.73 Armado chasis 7 ........................................................................................................ 84
Fig.74 Vista del prototipo final 75% acabado ..................................................................... 84
Fig.75 Inserción del escudo del Tecnológico al prototipo ................................................... 85
Fig.76 Colocación del mapa del Instituto ............................................................................ 85
Fig.77 Elaboración de los orificios para los LEDs del mapa .............................................. 86
Fig.78 Prototipo, Arduino con shield y dispositivo móvil .................................................. 86
Fig.79 Vista general del prototipo ....................................................................................... 87
Fig.80 Conexión de los LEDs ............................................................................................. 88
Fig.81 Acoplamiento de los LEDs al chasis ......................................................................... 88
INDICE DE TABLAS
Tabla 1 Lugares .................................................................................................................... 43
Tabla 2 Candados ................................................................................................................. 48
OBJETIVO GENERAL

Diseñar un dispositivo electrónico que mediante las coordenadas geográficas de
distintos lugares encienda diferentes LEDs de un panel indicando la ubicación en
donde se encuentre la persona y mediante una grabación dará una pequeña
descripción del destino y estará disponible para dar una visita guiada dentro del
Instituto Tecnológico de Mérida.
OBJETIVOS ESPECIFICOS

El dispositivo será compatible con Smartphone que cuente con sistema operativo
Android.

Se obtendrán las coordenadas geográficas mediante el módulo GPS.

Fácil de usar para cualquier tipo de persona.
HIPOTESIS
Es posible mediante el módulo GPS de un Smartphone Android obtener las coordenadas
geográficas de distintos lugares y mediante una conexión bluetooth enlazar el Smartphone
con un microcontrolador, el cual indicará mediante un LED lugar en el que te encuentras en
ese momento junto con una grabación que lo describirá.
JUSTIFICACION
Muchas personas no conocen al 100% las instalaciones del Instituto Tecnológico de
Mérida, y para agilizar su y estancia y búsqueda de lugares dentro del mismo, el dispositivo
será capaz de indicarte tu ubicación en ese momento de manera eficaz y rápida, por
ejemplo: departamentos, salones, oficinas, etc.
DELIMITACIONES Y LIMITACIONES

El dispositivo únicamente te dirá tu ubicación y una grabación te dirá una pequeña
descripción del lugar en donde te encuentres con un margen de error.

Debe existir una distancia relativa entre los distintos lugares que estarán en el panel
de LEDs.

Únicamente será compatible con dispositivos con sistema operativo Android que
cuenten con módulo GPS, y conexión bluetooth.

El dispositivo se presentará como un prototipo portable con entrada de 3.5mm para
la parte de audio y tendrá un pequeño espacio para colocar el Smartphone.
INTRODUCCION
El querer saber dónde estamos o ubicamos es uno de los problemas que más interés ha
despertado últimamente en el avance de la tecnología.
El saber orientarnos por los lugares por donde pasamos, también tiene un interés muy
importante la mayoría de las veces de un modo inconsciente, particularmente podemos
enfocarnos sobre nosotros, los estudiantes en nuestra institución, en este caso el Instituto
Tecnológico de Mérida, ya que son parte de nuestra vida diaria los desplazamientos entre
los edificios de esta institución.
El núcleo de nuestra investigación ha sido el montaje y utilización del sistema GPS para
poder ubicarnos mejor y saber un poco más sobre el lugar donde estamos en ese momento,
específicamente, dentro de nuestra institución (ITM), estudiando al mismo tiempo algunos
datos interesantes y llamativos del lugar donde estemos ubicados.
El presente proyecto de investigación consiste en la realización de un dispositivo que
funcione con sistema GPS, el cual reconocerá lugares en específico que ya tendrá definidos
internamente el mismo. El mismo será configurado mediante plataforma de sistema
operativo Android.
Espero que este trabajo sea del agrado de todos aquellos que tengan la oportunidad de
leerlo.
1
IMPACTO SOCIAL, TECNOLOGICO, ECONOMICO Y AMBIENTAL

Enseñará de manera interactiva al usuario su localidad en el instituto.

Visitas más amigables al instituto.

Con el tiempo podría desarrollarse para que otros institutos lo puedan implementar
también.

Es innovador y modificable para diversos rubros no solo para una institución.

Al alcance de cualquier persona que posea un sistema Android.

Bajo costo de fabricación y manufactura.

No Contaminante.
CRONOGRAMA DE ACTIVIDADES
ACTIVIDAD
DESCRIPCIÓN DE ACTIVIDADES
1
CAPACITACION ANDROID
2
CREACION DE LA APLICACIÓN Y CONECTIVIDAD CON ARDUINO
3
RANGO DE COORDENADAS
4
CREACION SHIELD DE LEDs
5
DISEÑO DEL CHASIS
6
ELABORACION DEL CHASIS
7
ELABORACION DEL SHIELD
8
MONTAJE
9
ULTIMAS PRUEBAS
10
ENTREGA DEL PROYECTO
2
CRONOGRAMA (Favor de marcar las semanas que comprende cada actividad)
ACTIVIDAD
1
2
3
4
5
MES 1
MES 2
MES 3
X
X
X
X
7
X
10
MES 6
X
X X
9
MES 5
X
6
8
MES 4
X
X
X
11
12
13
14
15
3
CAPITULO I
ANTECEDENTES TEORICOS
1.1 Introducción
El Sistema de Posicionamiento Global (“Global Positioning System” - GPS) es un sistema
de navegación compuesto de una flotilla de satélites puestos en órbita por el Departamento
de Defensa de los Estados Unidos, y sus estaciones en tierra firme. Usando GPS, uno puede
determinar automáticamente su posición (latitud y longitud) en la tierra. Funciona
continuamente en todas partes del mundo y es disponible a todos libre de cargos. Con
orígenes en aplicaciones militares secretas, GPS se ha convertido en parte de nuestra vida
cotidiana. [1]
1.2 Historia del GPS
Se puede definir a la navegación como el arte o la ciencia de trazar, definir o dirigir el curso
de movimientos; en otras palabras, es conocer dónde está uno y poder encontrar el camino.
El método más antiguo y rudimentario de navegación es el de vagabundear, que no es más
que continuar viajando hasta llegar al destino, suponiendo, naturalmente, que haya destino.
El vagabundeo es la técnica de navegación tan frecuente que usan muchos alumnos durante
su primera semana de clases en todos los colegios y universidades. Es probable que el
primer método efectivo o útil de navegación haya sido la navegación celeste. En ella, se
determinan la dirección y la distancia mediante el seguimiento de cuerpos celestes,
incluyendo a las estrellas y a la Luna, cronometrados con gran precisión. Es una técnica
primitiva que data de hace miles de años. Una desventaja obvia de la navegación celeste es
que funciona mejor por la noche y de preferencia con cielo despejado.
4
Otro método bastante rudimentario de la navegación es el pilotaje, que es fijar posición y
dirección con respecto a señas importantes, como vías de ferrocarril, tanques elevados,
graneros, picos de montaña y cuerpos de agua. El pilotaje deriva su nombre de los primeros
pilotos de aviones, que usaron este método de navegación.
La navegación a estima es una técnica donde se determina la posición extrapolando una
serie de incrementos de velocidad medios. En inglés se llama “dead (o “ded”) reckoning”, y
lo de “ded” se deriva de “deducido”. Charles Lindbergh usó con bastante éxito la
navegación a estima en 1927, durante su histórico viaje transatlántico de 33 horas, y Amelia
Earhart lo usó con bastante fracaso en 1937, durante su intento de volar por primera vez
alrededor del mundo.
Aunque cada uno de los métodos de navegación que sea han descrito hasta ahora tienen su
lugar en el tiempo, sin duda la técnica de navegación más exacta hasta la fecha es la
radionavegación, o navegación electrónica. En ella, se determina la posición midiendo el
tiempo de recorrido de una onda electromagnética cuando va de un transmisor a un
receptor. Hay más o menos 100 tipos distintos de sistemas domésticos de radionavegación
que se usan en la actualidad. Algunos usan transmisores terrestres y otros usan transmisores
de satélite.
Entre los sistemas de radionavegación más exactos y útiles se incluyen los siguientes

Decca (emisión en superficie terrestre)

Omega (emisión en superficie terrestre)

Loran (emisión en superficie terrestre)

Sistema de posicionamiento global Navy Transit (emisión de satélite en órbita baja)
5

Sistema de posicionamiento global Navstar (emisión de satélite en órbita
intermedia)
Los sistemas de posicionamiento global (GPS, de global positioning system) Loran y
Navstar son los dos de radionavegación que más se usan hoy.
1.2.1 Navegación Loran
Hasta hace poco el Loran (de Long Range Navigation, navegación a larga distancia) era el
método más efectivo. Confiable y exacto de radionavegación. El Loran A se desarrolló
durante la Segunda Guerra Mundial, y el Loran C, su versión más reciente, salió en 1980.
Hoy se usa principalmente en los aviones y barcos recreativos.
En el Loran, los receptores adquieren señales codificadas especialmente de dos pares de
transmisores de alta potencia, en tierra, cuyas ubicaciones se conocen con precisión. Se
mide el tiempo transcurrido entre la recepción de las señales codificadas, y en el receptor se
convierten en distancia usando la velocidad de propagación de las ondas electromagnéticas.
Al aplicar la geometría básica y la relación entre la distancia d, la velocidad v y el tiempo t
(que es d = vt), se puede determinar la ubicación del receptor de tiempo (distancia) según
tres fuentes.
El Loran es tan preciso como la precisión con que se puedan medir los tiempos de
transmisión de las señales codificadas. Los errores del sistema se deben principalmente a
problemas de propagación, como el hecho de que la superficie terrestre no es lisa, ni es
perfectamente redonda. Las condiciones atmosféricas y las múltiples trayectorias de
6
transmisión también pueden afectar el funcionamiento del Loran. Sin embargo, es probable
que la desventaja más notable del Loran sea que no da una cobertura global. Los
transmisores en tierra sólo se pueden instalar en tierra, y la tierra es una parte relativamente
pequeña de la superficie de la Tierra. En consecuencia, hay lugares donde simplemente no
se pueden recibir las señales de Loran (puntos muertos). Sin embargo, no es importante lo
bueno o lo malo que haya sido el loran, porque ha emergido una técnica más nueva y mejor
de radionavegación, llamada GPS Navstar, que usa transmisores basados en satélites.
1.2.2 GPS Navstar
Navstar es acrónimo de Navigation System with Time And Ranging, sistema de navegación
con tiempo (horas) y telemetría, y GPS es la abreviatura de Global Positioning System,
sistema de posicionamiento global. GPS Navstar es el sistema más reciente y exacto de
radionavegación del que se dispone. Está basado en satélites y es abierto, lo cual significa
que está a la disposición de quienquiera que tenga un receptor GPS. El Departamento de
Defensa de Estados Unidos desarrolló Navstar para tener información continua y muy
precisa sobre posición, velocidad y horas para usuarios en tierra, mar, aire y espacio. En
esencia, GPS Navstar es un sistema de navegación basado en espacio, de posicionamiento
tridimensional y de distribución de tiempo. El propósito del sistema es usar una
combinación de estaciones terrestres, satélites en órbita y receptores especiales, para
proporcionar casi a todos posibilidades de navegación, en cualquier momento y en
cualquier lugar del mundo, independiente de las condiciones del clima. El sistema satelital
Navstar se terminó en 1994, y es mantenido por la Fuerza Aérea de E. U. A.
7
1.3 Servicios de posicionamiento global (GPS)
GPS proporciona dos niveles de exactitud de servicio; normal y preciso.
Servicio de posicionamiento normal (SPS). Éste es un servicio de posicionamiento y hora
que está disponible para todos los usuarios de GPS (militares, privados y comerciales) en
una base mundial y continua, sin cuota directa. El SPS proporciona una exactitud
predecible de posicionamiento que 95% del tiempo queda dentro de 100 m horizontales,
156 m verticales y 185 m en 3 dimensiones, con una exactitud de transferencia de tiempo a
la Red Mercator transversal universal (UTC, de Universal Transverse Merctor Grid) de
menos de 340 nanosegundos. La exactitud del servicio SPS se puede degradar en épocas de
emergencias nacionales. Por razones de seguridad. El Departamento de Defensa de Estados
Unidos degrada la exactitud del servicio SPS usando una técnica llamada disponibilidad
selectiva (SA, de selective availability), manipulando los datos de mensajes de navegación
en órbita (épsilon) y/o la frecuencia del reloj del satélite (temblor).
Servicio de posicionamiento preciso (PPS). Éste es un servicio militar de gran exactitud
para posicionamiento, velocidad y tiempo, disponible en forma mundial y continua a
usuarios autorizados por el Departamento de Defensa de Estados Unidos. El equipo de
usuarios PPS proporciona una exactitud predecible de posicionamiento 95% del tiempo de
22 m horizontales, 27.7 m verticales y 34.5 m en 3 dimensiones, y una exactitud de
transferencia de tiempo a UTC de menos de 200 nanosegundos. Sólo pueden recibir este
servicio usuarios autorizados con equipo y claves criptográficas, así como receptores con
equipo especial. El PPS fue diseñado principalmente para usos militares en E. U. A., y los
aliados, ciertas agencias gubernamentales de E. U. A., y usuarios civiles seleccionados,
aprobados en forma específica por el gobierno de E. U. A.
8
1.3.1 Segmentos de Navstar
El GPS Navstar consiste en tres segmentos: espacial, control de tierra y usuario.
Segmento espacial. El Comando Espacial de la Fuerza Aérea de E. U. A. (AFSC) declaró
formalmente al satélite Navstar GPS como totalmente operativo desde el 27 de abril de
1995. El segmento espacial, llamado a veces segmento satelital consiste en 24 satélites
funcionando que giran en torno a la Tierra en seis planos orbitales a unos 60° entre sí, con
cuatro satélites en cada plano. Hay 21 satélites activos y 3 reservados como espacios. En
caso de falla de un satélite, uno de
los de reserva puede ocupar su
lugar. En realidad hay ahora más
de 24 satélites, porque algunos de
los
más
antiguos
reemplazados
nuevos
con
por
han
sido
otros
más
sistemas
más
modernos de propulsión y guía.
La fig. 1a muestra las órbitas de
los 21 satélites funcionales en la
constelación Navstar, y la fig. 1b
muestra las posiciones relativas de
los 24 satélites entre sí.
Fig. 01 (a) Constelación Navstar; (b)
posiciones relativas de los satélites. [2]
9
Los satélites Navstar no son geosincrónicos. Giran en torno a la Tierra en órbita circulares
inclinadas. El ángulo de elevación en el nodo ascendente es 55° con respecto al plano
ecuatorial. La elevación promedio de un satélite Navstar es 9476 millas terrestres, unos
20,200 km sobre la Tierra. Estos satélites tardan aproximadamente 12 h en una revolución.
Por consiguiente, su posición es aproximadamente la misma a la misma hora sideral cada
día; en realidad, se adelantan cuatro minutos cada día. La fig. 19-17 muestra como los
satélites describen una espiral en torno a la Tierra en seis planos, y cubren virtualmente
toda la superficie del globo.
Fig. 02 Proyección Mercator de las orbitas de satélites Navstar. [2]
La posición de los satélites Navstar en órbita se ordena de tal modo que haya a la vista de
cinco a seis satélites siempre, para cualquier usuario, asegurando así la cobertura mundial
continua. Se necesita la información de tres satélites para calcular el lugar horizontal de la
unidad navegante en la superficie terrestre (informe bidimensional), pero la información de
10
cuatro satélites permite que un receptor también determine su altitud (informe
tridimensional). Es obvio que los informes tridimensionales son más importantes en tierra,
porque las superficies en ella no están a altura constante, como sí está la superficie de un
gran cuerpo de agua. Los satélites Navstar emiten datos de navegación y del sistema, los
datos de corrección atmosférica y la información del reloj del satélite.
Segmento del usuario. El segmento del usuario de GPS consiste en todos los receptores de
GPS y la comunidad de usuarios. Los receptores GPS convierten las señales recibidas de
los vehículos espaciales en estimaciones de posición, velocidad y tiempo. Para calcular las
cuatro dimensiones de x, y, z y t (tiempo), se requieren 4 satélites. Los receptores GPS se
usan para navegación, posicionamiento, diseminación de la hora, cartografía, sistemas de
guía, topografía, fotogrametría, seguridad pública, arqueología, geología, geofísica, vida
salvaje, aviación, marina y muchas otras aplicaciones de investigación. [2]
Actualmente con el crecimiento exponencial de los teléfonos celulares, muchos dispositivos
además de las funciones básicas de transmitir y recibir llamadas, poseen una gran variedad
aplicaciones entre las que se encuentra la función de GPS. Específicamente, el sistema
operativo de dispositivos móviles de amplia popularidad que permite a los usuarios una
gran variedad de servicios relacionados con el GPS se llama Android.
11
1.4 Sistema operativo Android
Android es un sistema operativo y una plataforma software,
basado en Linux para
teléfonos móviles. Además, también usan este sistema operativo (aunque no es muy
habitual), tablets, netbooks, reproductores de música e incluso PC’s. Android permite
programar en un entorno de trabajo (framework) de Java, aplicaciones sobre una máquina
virtual
Dalvik (una variación de la máquina de Java con compilación en tiempo de
ejecución). Además, lo que le diferencia de otros sistemas operativos, es que cualquier
persona que sepa programar puede crear nuevas aplicaciones, widgets1, o incluso,
modificar el propio sistema operativo, dado que Android es de código libre, por lo que
sabiendo programar en lenguaje Java, va a ser muy fácil comenzar a programar en esta
plataforma. [3]
Fig. 03 Imagen característica del sistema Android. [4]
12
1.5 Historia del sistema operativo Android
Fue
desarrollado
inicialmente
por Android
Inc.,
una
firma
comprada
por Google en 2005. Es el principal producto de la Open Handset Alliance, un
conglomerado de fabricantes y desarrolladores de hardware, software y operadores de
servicio. Las unidades vendidas de teléfonos inteligentes con Android se ubican en el
primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010, con una
cuota de mercado de 43,6% en el tercer trimestre. A nivel mundial alcanzó una cuota de
mercado del 50,9% durante el cuarto trimestre de 2011, más del doble que el segundo
sistema operativo (iOS de Apple, Inc.) con más cuota.
Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la
funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 700.000 aplicaciones
(de las cuales, dos tercios son gratuitas) disponibles para la tienda de aplicaciones oficial de
Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para
Android, como pueden ser la App Store de Amazon o la tienda de aplicaciones Samsung
Apps de Samsung. Google Play es la tienda de aplicaciones en línea administrada por
Google, aunque existe la posibilidad de obtener software externamente. Los programas
están escritos en el lenguaje de programación Java. No obstante, no es un sistema operativo
libre de malware, aunque la mayoría de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación
de la Open Handset Alliance, un consorcio de 78 compañías de hardware, software y
telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos
13
móviles. Google liberó la mayoría del código de Android bajo la licencia Apache, una
licencia libre y de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en
un framework Java
de
aplicaciones
orientadas
a
objetos
sobre
el
núcleo
de
las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de
ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz
gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite,
una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de
renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El
sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3
millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de
Java y 1,75 millones de líneas de C++. [5]
1.6 Arquitectura de Android
La arquitectura interna de la plataforma Android, está básicamente formada por 4
componentes:
APLICACIONES
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente
de email (correo electrónico), calendario, programa de SMS, mapas, navegador, contactos,
y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación
Java.
14
FRAMEWORK DE APLICACIONES
Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente
usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen
cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando
la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario
sin tener que empezar a programar sus aplicaciones desde el principio.
LIBRERIAS
Android incluye en su base de datos un set de librerías C/C++, que son expuestas a todos
los desarrolladores a través del framework de las aplicaciones Android System C library,
librerías de medios, librerías de gráficos, 3D, SQLite, etc.
RUNTIME DE ANDROID
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades
disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual
está basada en registros, y corre clases compiladas por el compilador de Java que
anteriormente han sido transformadas al formato .dex (Dalvik Executable) por
la herramienta ''dx''.
15
Fig. 04 Arquitectura del sistema Android. [3]
1.7 Versiones de Android
Existen distintas versiones de Android: las líneas 1.xx, 2.xx, 3.xx y 4.xx. La primera de
éstas ya sin actualizaciones desde 2009. La línea 2.xx es la utilizada en dispositivos
móviles, mientras que la 3.xx fue pensada específicamente para tablets. Debido al avance
en la capacidad de procesamiento de dispositivos móviles (y más específicamente en el
caso de los teléfonos inteligentes), la línea 4.xx unifica su uso para cualquier dispositivo.
16
La Fig. 5 muestra la cantidad de dispositivos con Android por versión del sistema
operativo, de acuerdo a la información provista por Open Signal Maps en Abril de 2012.
En lo que respecta a las políticas de actualización, las mismas pueden llegar a variar
dependiendo varios factores, tales como fabricante del dispositivo, proveedora del servicio
de telefonía móvil, etc. En ocasiones, las actualizaciones originalmente estipuladas luego
no se cumplen por motivos externos a Google. Por ejemplo, el dispositivo Samsung Galaxy
SII (originalmente con Android 2.3.3) tiene planificada su actualización a versión 4; la cual
ya se efectivizo para equipos liberados. Sin embargo la actualización para dispositivos bajo
carriers todavía se encuentra pendiente dado que cada compañía usualmente realiza una
adaptación definitiva de la versión.
Fig. 05 Distribución de Android según su versión. Información correspondiente al mes de
Abril de 2012 según Open Signal Maps. [5]
17

Cupcake: Android Versión 1.5:
Características: Widgets, teclado QWERTY virtual, copy & paste, captura de vídeos y
poder subirlos a Youtube directamente.

Donut: Android Version 1.6 :
Características: Añade a la anterior la mejoría de la interfaz de la cámara, búsqueda por
voz, y navegación en Google Maps.

Eclair: Android Version 2.0/2.1:
Características: Mejoras en Google Maps, salvapantallas animado, incluye zoom.

Froyo: Android Version 2.2:
Características: Incluye hostpot Wifi, mejora de la memoria, más veloz, Microsoft
Exchange y video-llamada.

Ginger Bread: Android Version 2.3:
Características: Mejoras del consumo de batería, el soporte de vídeo online y el teclado
virtual, e incluye soporte para pagos mediante NFC2.

Honey Comb: Android Version 3.0/3.4:
Características: Mejoras para tablets, soporte Flash y Divx, integra Dolphin, multitarea
pudiendo cambiar de aplicación dejando las demás en espera en una columna, widgets y
home page personalizable.
18

Ice Cream Sandwich: Android Version 4.0:
Características: Multiplataforma (tablets, teléfonos móviles y netbooks), barras de estado,
pantalla principal con soporte para 3D, widgets redimensionables, soporte usb para
teclados, reconocimiento facial y controles para PS3. [3]
1.8 Descripción de Bluetooth.
Las redes inalámbricas de área personal WPAN por sus siglas en inglés Wireless Personal
Area Network son redes que comúnmente cubren distancias del orden de los 10 metros
como máximo, normalmente utilizadas para conectar varios dispositivos portátiles
personales sin la necesidad de utilizar cables. Esta comunicación de dispositivos peer-topeer normalmente no requiere de altos índices de transmisión de datos. La tecnología
inalámbrica Bluetooth™, por ejemplo, tiene un índice nominal de 10 metros con índices de
datos de hasta 1Mbps. El tipo de ámbito y los relativos bajos índices de datos tienen como
resultado un bajo consumo de energía haciendo a la tecnología WPAN adecuada para el uso
con dispositivos móviles pequeños, que funcionan con baterías, tales como teléfonos
celulares, asistentes personales PDAs o cámaras digitales.
A continuación se presenta una visión general de la tecnología inalámbrica Bluetooth™. La
tecnología inalámbrica Bluetooth es un estándar global abierto para enlaces de radio, que
ofrece conexiones inalámbricas económicas para transmisiones de voz y datos entre
computadoras portátiles, dispositivos de mano, teléfonos celulares y varios aparatos más
mediante un enlace de radiofrecuencia; así como acceso a otros recursos en la red. Está
diseñado como remplazo inalámbrico y como tecnología de Red de Área Personal WPAN.
19
La especificación Bluetooth define un enlace de radio de baja potencia, optimizado para
conexiones seguras de corto alcance, y define los pasos estándares para la conexión de
varios aparatos eliminando cables y conectores entre éstos.
Los radios Bluetooth, que pueden ser incorporados en la mayoría de los aparatos
electrónicos, ofrecen un enlace inalámbrico de comunicación universal que facilita una
interoperabilidad confiable entre dispositivos móviles y fijos de diferentes fabricantes,
ofreciendo así la posibilidad de crear pequeñas redes inalámbricas facilitando la
sincronización de datos entre dispositivos personales.
El nombre de esta tecnología está inspirado en el Rey Danés, Harald Blatand (en inglés
Harold Bluetooth), conocido por la unificación de Suecia, Dinamarca y Noruega en el
Siglo X, ahora en el siglo XXI, se hace alusión a la unificación de la tecnología inalámbrica
Bluetooth, que conecta productos y empresas para los usuarios.
La
tecnología
Bluetooth
comprende
hardware,
software
y
requerimientos
de
interoperatibilidad, por lo que para su desarrollo ha sido necesaria la participación de los
principales fabricantes de los sectores de las telecomunicaciones y la informática, tales
como: Ericsson, Nokia, Toshiba, IBM, Intel y otros. Posteriormente se han ido
incorporando otras compañías, y se prevé que otros sectores lo sigan haciendo como:
automatización
industrial,
maquinaria,
entretenimiento,
fabricantes
de
juguetes,
electrodomésticos, etc., con lo que en poco tiempo el panorama va siendo de conectividad
total para aparatos en casa y oficina. [6]
20
Fig. 06 Modelo de Conectividad Bluetooth. [6]
1.9 Antecedentes Bluetooth
Para entender el funcionamiento y las habilidades de bluetooth es importante conocer el
antecedente de la creación de esta herramienta de comunicación. En 1994 la compañía
telefónica Ericsson inició un estudio para investigar la viabilidad de una interfaz vía radio,
a un bajo costo y bajo consumo, para la interconexión entre teléfonos móviles y otros
accesorios con la intención de eliminar cables entre aparatos. El estudio partía de un largo
proyecto que investigaba sobre multicomunicadores conectados a una red celular, hasta que
se llegó a un enlace de radio de corto alcance, llamado MC link. Conforme éste proyecto
avanzaba se fue viendo claro que éste tipo de enlace podía ser utilizado ampliamente en un
gran número de aplicaciones, ya que tenía como principal virtud el que se basaba en un
21
chip de radio relativamente económico. También estaban convencidos de que si se
conseguía una solución a bajo costo, ésta abriría el paso de la conectividad inalámbrica a
una multitud de nuevas aplicaciones y originaría un sinnúmero de componentes y
dispositivos asociados. [6]
1.10 La interface área Bluetooth
El primer objetivo para los productos Bluetooth de primera generación eran los entornos de
la gente de negocios que viaja frecuentemente. Por lo que se pensó en integrar el chip de
radio Bluetooth en equipos como: PCS portátiles, teléfonos móviles, PDAs y auriculares.
Esto originó a una serie de características tales como un sistema que opera en todo el
mundo, que el emisor de radio debe consumir poca energía ya que debe integrarse en
equipos alimentados por baterías, y una conexión que soporta voz, datos y aplicaciones
multimedia.
El Bluetooth está diseñado para soportar velocidades de transmisión de datos que ofrezcan
suficiente ancho de banda para los modelos designados de uso. Actualmente, la tecnología
Bluetooth ofrece velocidades brutas de transmisión de datos de hasta 1 Mbps, sin contar los
requerimientos de línea visual. [6]
1.11 la inmunidad a las interferencias en la tecnología Bluetooth.
Como se mencionó anteriormente Bluetooth opera en una banda de frecuencia que está
sujeta a considerables interferencias, por lo que el sistema ha sido optimizado para evitar
22
éstas interferencias. En este caso la técnica de salto de frecuencia es aplicada a una alta
velocidad y una corta longitud de los paquetes (1600 saltos/segundo, para ranuras simples).
Los paquetes de datos están protegidos por un esquema ARQ (repetición automática de
consulta), en el cual los paquetes perdidos son automáticamente retransmitidos, aun así con
este sistema, si un paquete de datos no llega a su destino, sólo una pequeña parte de la
información se perdería. La voz no se retransmite nunca, sin embargo, se utiliza un
esquema de codificación muy robusto. Éste esquema, que está basado en una modulación
variable de declive delta (CSVD), que sigue la forma de la onda de audio y es muy
resistente a los errores de bits. Estos errores son percibidos como ruido de fondo, que se
intensifica si los errores aumentan. [6]
1.12 Arduino.
Arduino es
una
plataforma
de hardware
libre,
basada
en
una placa con
un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la
electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos
de entrada/salida.
Los
microcontroladores
más
usados
son
el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que
permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno
de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador
de arranque (boot loader) que corre en la placa.
23
Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser
conectado
a
software
del
ordenador
(por
ejemplo: Macromedia
Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o
adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.
Al ser open-hardware, tanto su diseño como su distribución son libres. Es decir, puede
utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido
ninguna licencia. [7]
Fig. 07 Placa del Arduino Duemilanove. [7]
24
La placa Arduino Standard tiene 14 pines con entradas/salidas digitales (6 de las cuales
pueden ser usadas como salidas PWM), 6 entradas analógicas, un cristal oscilador a 16Mhz,
conexión USB, entrada de alimentación, una cabecera ISCP, y un botón de reset.
Los programas hechos con Arduino se dividen en tres partes principales: estructura, valores
(variables y constantes), y funciones. El Lenguaje de programación Arduino se basa en
C/C++.
1.13 Entradas y Salidas del Arduino
Cada uno de los 14 pines digitales del Arduino puede ser usado como entrada o salida
digital, usando funciones pinMode(), digitalWrite() y digitalRead(). Operan a 5 voltios.
Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia interna
“pull-up” (desconectada por defecto) de 20-50 KOhms. Además, algunos pines tienen
funciones especiales:
Pines serie Rx y Tx: Sirven para recibir transmitir datos (TTL), están conectados al chip
FTDI, el cual hace conversión de USB a serie- TTL.
Interruptores externos: 2 y 3. Estos pines pueden ser configurados para disparar un
interruptor en un valor bajo, un margen creciente o decreciente, o un cambio de valor. Con
la función attachInterrupt().
PWM: 3, 5, 6, 9, 10 y 11. Proporcionan salida PWM de 8 bits con la función analogWrite().
I ²C: 4 (SDA) y 5 (SCL): El software Arduino incluye una librería Wire para simplificar el
uso del bus I ²C. Son buses para comunicarse con otros dispositivos. Soportan
25
comunicación con librería Wire. Esta librería se utiliza para comunicarse con elementos
TWI (Two Wire Interfaces) que tienen más velocidad.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines soportan comunicación SPI, la
cual, aunque proporcionada por el hardware subyacente, no está actualmente incluida en el
lengua je Arduino.
LED: 13. Hay un LED empotrado conectado al pin digital 13. Cuando el pin está a valor
HIGH, el LED está encendido, cuando el pin está a LOW, está apagado.
Tiene 6 entradas analógicas, cada una de las cuales proporciona 10 bits de resolución (por
ejemplo 1024 valores diferentes). Por defecto miden 5 voltios desde tierra, aunque es
posible cambiar el valor más alto de su rango usando el pin ARF y algún código de bajo
nivel. Además, algunos pines tienen funcionalidad especializada:
AREF: Voltaje de referencia para las entradas analógicas. Usado con analogReference (Es
para entradas analógicas). Nos permite dar a la placa un voltaje de referencia al
suministrarle una alimentación externa. Si queremos medir el voltaje con un rango máximo
de 3,3v, alimentaríamos 3,3v en el pin AREF con un regulador de voltaje IC. Entonces el
ADC representaría 3,22 mV. http://littlebirdelectronics.com/products/voltage-regulator33v.
Reset. Pone esta línea a LOW para resetear el microcontrolador. Típicamente usada para
añadir un botón de reset a dispositivos que bloquean a la placa principal. [7]
26
CAPITULO II
ANTECEDENTES Y CAUSAS DEL PROBLEMA
En el mundo actual es ciertamente notable la manera en que ha evolucionado la tecnología,
a medida que hay alguna necesidad hoy por hoy existen soluciones específicas para áreas
no tan generales, solo con el hecho de la existencia de la información cualquiera es capaz
de empezar desde algo sólido para crecer una idea.
CONOCE-TEC viene de bases ya existentes entrelazándolas para crear una herramienta
para resolver necesidades en las que nadie más se ocupa.
Entre los principales servicios de posicionamiento global que existen actualmente se
encuentran:
2.1 Google Maps
Es una base de asignación de aplicación de servicios Web y la tecnología proporcionada
por Google de forma gratuita. Ofrece mapas de calles, planificación de rutas para viajar a
pie, en coche o en transporte público y un localizador de negocios urbanos para numerosos
países de todo el mundo. Según uno de sus creadores (Lars Rasmussen), Google Maps es
"una forma de organizar la información mundial de forma geográfica".
Google Maps nos permite acceder a imágenes satelitales de alta resolución de áreas urbanas
en muchos países. Algunos gobiernos han insistido en la posibilidad de que se puedan
utilizar estas imágenes en la planificación de ataques terroristas, razón por la cual Google
ha borrado algunas áreas de seguridad (principalmente instalaciones gubernamentales y
militares en Estados Unidos). No todas las áreas están cubiertas con la misma resolución en
27
las imágenes de satélite, las zonas menos pobladas suelen mostrarse con menos detalle.
Cabe destacar que algunas áreas pueden quedar ocultas por las nubes. [8]
Fig. 08 Vista de Calle por medio de Google Maps. [9]
2.2 Sistema de navegación automotor
Es
un GPS diseñado
para
navegar
en
vehículos
de
carretera
tales
como automóviles, autobuses y camiones. Al contrario de otros GPS, este usa datos de
posición para ubicar al usuario en una calle mapeada en un sistema de base de datos.
Usando la información de los archivos de calles en esta base, la unidad puede dar
direcciones de otros puntos a lo largo de la ciudad. Con cálculos por inferencia, datos de
distancia desde sensores estratégicamente instalados en la ciudad, y un sistema de guía
inercial con giróscopo de estructura vibratoria puede mejorarse enormemente la seguridad,
ya que la señal GPS puede perderse o sufrir múltiples rebotes de multipasos por cañones
urbanos o túneles. [10]
28
Entre los sistemas de navegación automotor más importantes se encuentra Garmin, el cual
consiste en un dispositivo interactivo para el uso en automóviles normalmente, este es
capaz de guiar al usuario al lugar al que quiere ir con el simple hecho de señalarle al lugar
al que quiere llegar, este mismo tiene un precio aproximado de $2,000.00 pesos mexicanos.
Fig. 09 Vista de Calle por medio de Garmin. [11]
29
2.3 UNAM 360
Es una aplicación para móviles que permite consultar información y ubicarse dentro del
campus Ciudad Universitaria de la UNAM mediante el uso de realidad aumentada, sugiere
una ruta de traslado y relata algo del pasado de cada edificio y lugar del campus.
Fig. 10 Vista de Calle por medio de UNAM 360. [12]
30
Estos servicios han sido creados para dar soluciones geográficas de manera general, a
diferencia, CONOCE-TEC existe para resolver la problemática principalmente dentro de
edificios en la que coexisten gran variedad de zonas específicas, háblese de escuelas,
campus laboral, parques de diversiones, entre otros.
Entre las grandes ventajas que trae, CONOCE-TEC está desarrollado a base del Sistema
Operativo Android, el cual además de ser un sistema universal e intuitivo, es muy conocido
teniendo cerca del 70% del mercado mundial por lo que el software puede ser instalado en
casi cualquier dispositivo celular inteligente en el mundo. [13]
Los servicios de navegación por automotor se quedan atrás por el simple hecho de tener su
sistema operativo específico, mientras que Google Maps se encuentra prácticamente en
cualquier dispositivo de telefonía móvil inteligente (iOS, Android, Microsoft Phone,
BlackBerry). A pesar de este hecho, Google Maps se diferencia por trabajar su mapeo a
nivel calle, mientras que con CONOCE-TEC es posible precisar dentro de la estructura
dando información de los lugares existentes dentro la misma.
Además del servicio de avisar en el lugar en el que se encuentra la persona dentro de algún
campus, CONOCE-TEC tiene la capacidad de dar una pequeña explicación del lugar con
una grabación encontrada dentro del software, a menudo que vaya cambiando algún lugar,
o se visite un lugar “nunca” antes conocido por el programa, CONOCE-TEC, tiene la
facilidad de poder tomar la ubicación geográfica y agregar posteriormente el lugar con su
respectiva grabación dependiendo para esto último la edición del programa por medio del
creador.
31
CAPITULO III
DISEÑO ELECTRÓNICO
3.1 Definición del problema a resolver.
Actualmente existe una gran variedad de aplicaciones móviles y dispositivos destinados a la
navegación GPS. Desafortunadamente, este tipo de aplicaciones están programadas para
describir e informar sobre lugares situados a nivel calle, carreteras o lugares turísticos. Por
ello para el siguiente proyecto es necesario un dispositivo que describa los principales
puntos que conforman al Instituto Tecnológico de Mérida, adentrándose a esta institución
para informar las distintas áreas que la conforman.
3.2 Variables de entrada y salida.
Para lograr la correcta ubicación dentro de la Institución escolar es necesario recibir del
módulo GPS las coordenadas geográficas así como la información de cada satélite
conectado para localizar al usuario correctamente.
LATITUD
LONGITUD
VELOCIDAD
SATELITES
Aplicación
GPS
Arduino +
Shield
UBICACIÓN
DENTRO DE
LA
INSTITUCIÓN
AZIMITUH
ELEVACIÓN
_NN
S/N
Fig.11 Variables de entrada y salida.
32
3.3 Diagrama de flujo.
En la figura de abajo se muestra el diagrama de flujo general de la aplicación GPS. Para un
mejor entendimiento se dividió en 3 diagramas de flujo: general, candado de seguridad, y
detección de lugar.
Inicio
CANDADO DE SEGURIDAD
NO
SI
¿SE RECIBIERON
LAS
COORDENADAS?
NO
SI
¿SE ENCUENTRA
CONECTADO EL
CELULAR AL
ARDUINO?
DETECCIÓN DE LUGAR
Fig. 12 Diagrama de flujo general.
33
En el diagrama de flujo de “candado de seguridad” se observan los pasos a seguir para
iniciar correctamente la aplicación, es decir, las distintas situaciones que se puede presentar
dependiendo de si tenemos activado o desactivado el módulo bluetooth y/o GPS.
CANDADO DE
SEGURIDAD
NO
FIN DE
APLICACIÓN
¿PUERTO
SERIAL
HABLITADO?
SI
SI
¿GPS
ENCENDIDO?
NO
CONFIGURACIONES
CANDADO DE
SEGURIDAD
Fig. 13 Diagrama de flujo del candado de inicio.
34
En el diagrama de flujo de “candado de seguridad” se observan los pasos a seguir cuando el
usuario se encuentre o no en un área específica de la Institución.
DETECCIÓN
LUGAR
¿COINCIDEN LAS
COORDENDAS
CON ALGUN
LUGAR
NO
SI
GRABACION
HABILITADA
REGISTRADO?
GRABACION
DESHABILITADA
NO
¿CONTINÚA
SI
LA
GRABACIÓN?
DETECCIÓN DE
LUGAR
Fig. 14 Diagrama de flujo de la detección del lugar.
35
3.4 Etapa I: Aplicación Móvil.
¿Qué es un archivo con formato .apk?
Un archivo con extensión .apk es un paquete para el sistema operativo Android. Este
formato es una variante del formato JAR de Java y se usa para distribuir e instalar
componentes empaquetados para la plataforma Android para smartphones y tablets. [14]
El Desarrollo de Programas para Android se hace habitualmente con el lenguaje de
programación Java y el conjunto de herramientas de desarrollo (SDK, Software
Development Kit ), pero hay otras opciones disponibles, como por ejemplo el software
Basic4android. [15]
Fig.15 Logotipo Basic4Android. [16]
Fig. 16 Vista general del área de trabajo en basic4android. [17]
36
3.4.1 Desarrollo de la aplicación.
Para la elaboración de la aplicación se descargaron las siguientes imágenes de la página
oficial del Instituto Tecnológico de Mérida y del departamento de Ingeniería Eléctrica y
Electrónica.
Fig. 17 Banner 1. [18]
Fig. 18 Banner 2. [19]
Fig. 20 Logo 2. [21]
Fig. 19 Logo 1. [20]
37
Fig. 21 Logo DIEE [22]
Fig. 22 Wallpaper Android. [23]
Fig. 23 Icono 1. [24]
Fig. 24 Icono 2. [25]
Fig. 25 Icono 3. [26] Fig. 26 Icono 4. [27]
38
3.4.1.1 Acceso al GPS.
Para iniciar con el desarrollo de la aplicación se investigó sobre el acceso al módulo GPS
para obtener las coordenadas geográficas en el dispositivo android.
Fig. 27 Captura de pantalla. [28]
La funcionalidad para poder acceder al GPS del dispositivo Android viene dada por la
librería GPS, por lo que lo primero que tenemos que hacer es añadir una referencia a la
misma. [28]
39
Fig. 28 Librería GPS. [29]
Dentro de la librería GPS existen tres objetos relevantes, siendo el más importante de ellos
el objeto GPS ya que es el que gestiona la conexión y los eventos del mismo. [28]
El segundo de ellos es Location (Posición), es una estructura que contiene los datos de
nuestra posición. Los datos que contiene Location principalmente son las coordenadas de
Latitud y Longitud, el tiempo y la Altitud a la que nos encontramos, recordando de nuevo
que todos ellos dependen de la cobertura GPS que tengamos en ese momento. Con el
objeto Location se incluyen también otras funcionalidades con las que podemos calcular la
distancia entre dos rutas distintas, entre nuestra posición y otro punto, el cambio de las
coordenadas a otros formatos, etc. [28]
El tercer y último objeto relevante es GPSSatellite, donde podemos obtener el estado de los
satélites. [28]
Volviendo al objeto GPS, este debe de ser declarado en Process_Global, ya que si no en
caso contrario, deberemos de declararlo cada vez que vayamos a utilizarlo. [28]
El primer paso es iniciar el objeto GPS, utilizando el parámetro Initialize. Se utilizó el
siguiente código de referencia [28]:
Sub Process_Globals
Dim GPS1 As GPS
End Sub
Sub Globals
Dim lblLon As Label
Dim lblLat As Label
Dim lblSpeed As Label
Dim lblSatellites As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
GPS1.Initialize("GPS")
End If
Activity.LoadLayout("1")
End Sub
40
Sub Activity_Resume
If GPS1.GPSEnabled = False Then
ToastMessageShow("Please enable the GPS device.", True)
StartActivity(GPS1.LocationSettingsIntent) 'Will open the relevant settings
screen.
Else
GPS1.Start(0, 0) 'Listen to GPS with no filters.
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
GPS1.Stop
End Sub
Sub GPS_LocationChanged (Location1 As Location)
lblLat.Text = "Lat = " & Location1.ConvertToMinutes(Location1.Latitude)
lblLon.Text = "Lon = " & Location1.ConvertToMinutes(Location1.Longitude)
lblSpeed.Text = "Speed = " & Location1.Speed
End Sub
Sub GPS_UserEnabled (Enabled As Boolean)
ToastMessageShow("GPS device enabled = " & Enabled, True)
End Sub
Sub GPS_GpsStatus (Satellites As List)
lblSatellites.Text = "Satellites:" & CRLF
For i = 0 To Satellites.Size - 1
Dim Satellite As GPSSatellite
Satellite = Satellites.Get(i)
lblSatellites.Text = lblSatellites.Text & CRLF & Satellite.Prn & _
" " & Satellite.Snr & " " & Satellite.UsedInFix & " " &
Satellite.Azimuth _
& " " & Satellite.Elevation
Next
End Sub
[28]
El siguiente paso es decirle al GPS que se “ponga a escuchar los datos”, por lo que hemos
creado el evento LocatedChanged para ello. Recordar que el GPS activado de continuo
puede consumir excesiva batería, y que para ello nos recomiendan utilizar
tanto Activity_Resume como Activity_Pause. También nos recuerdan que el usuario ha
podido desactivar el GPS bien por temas de consumo, como de privacidad, por lo que nos
recomiendan preguntar al usuario en el caso de que se encuentre desactivado si quiere
activarlo, esto se hace con el siguiente código de referencia [28]:
Sub Activity_Resume
If GPS1.GPSEnabled = False Then
ToastMessageShow("Please enable the GPS device.", True)
StartActivity(GPS1.LocationSettingsIntent) 'Will open the relevant
settings screen.
41
Else
GPS1.Start(0, 0) 'Listen to GPS with no filters.
End If
End Sub [28]
Si el GPS está activo, éste comenzara a procesar / escuchar los datos, los que obtiene de dos
valores, minimum time (milisegundos) y minimum distance (metros), generándose un
evento cuando uno de los dos ha cambiado de valor (Cosa que podemos aprovechar para
ahorrar batería en nuestro programa de alguna manera). [28]
La siguiente imagen muestra un resumen de la librería GPS.
Fig 29 Objetos de la librería. [30]
42
3.4.1.2 Coordenadas geográficas.
Una vez realizado el acceso con el módulo GPS del dispositivo Android, se establecieron
los lugares que la aplicación tendrá guardados para lograr la correcta ubicación dentro de la
Institución.
NÚMERO
LUGAR
ENTRADA
LATITUD
21.0134˚ a 21.0137˚
LONGITUD
-89.6532˚ a -89.6534˚
1
2
CENTRO DE IDIOMAS
21.0111˚ a 21.0113˚
-89.6223˚ a -89.6227˚
3
GESTIÓN Y VINCULACIÓN
21.0113˚ a 21.0115˚
-89.6231˚ a -89.6233˚
4
CAFETERÍA
21.0119˚ a 21.0121˚
-89.6223˚ a -89.6235˚
5
ING. CIVIL
21.0122˚ a 21.0124˚
-89.6228˚ a -89.6230˚
6
FUENTE
21.0117˚ a 21.0118˚
-89.6228˚ a -89.6230˚
7
AUDITORIO
21.0130˚ a 21.0134˚
-89.6235˚ a -89.6237˚
8
BIBLIOTECA
21.0127˚ a 21.0129˚
-89.6233˚ a -89.6235˚
9
ING. QUIMICA
21.0126˚ a 21.0128˚
-89.6219˚ a -89.6222˚
10
ING. INDUSTRIAL
21.0115˚ a 21.0118˚
-89.6214˚ a -89.6221˚
11
ING. MECANICA
21.0120˚ a 21.0125˚
-89.6218˚ a -89.6221˚
12
ING. EN SISTEMAS
21.0117˚ a 21.0120˚
-89.6206˚ a -89.6212˚
COMPUTACIONALES
13
ING. ELECTRONICA
21.0121˚ a 21.0126˚
-89.6232˚ a -89.6234˚
14
AREA DEPORTIVA
21.0120˚ a 21.0129˚
-89.6213˚ a -89.6215˚
15
ING. BIOMEDICA
21.0134˚ a 21.0137˚
-89.6232˚ a -89.6234˚
Tabla 1 Lugares.
43
Se realizaron recorridos en los lugares mencionados y se establecieron rangos de
coordenadas para hacerlos únicos y evitar que la aplicación reconociera más de 1 lugar a la
vez. Se agregaron los rangos de cada lugar al código de programación de tal manera que
cuando la aplicación detecte un lugar aparecerá en la pantalla una notificación y se
reproducirá una grabación describiendo las características más importantes de ese sitio. En
la parte de abajo se encuentra la implementación del código:
Sub INTERRUPCION_TICK
If ((lat >= 21.01340000) AND (lat <= 21.01370000)) AND ((lon <= -89.62320000) AND
(lon >= -89.62340000)) Then
U.Notify(1)
numnotif=9
lbllugar.Text= "BIOMEDICA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "biomedica.mp3")
MP.Play
B.Write("a")
B.FLUSH
End If
If ((lat >= 21.01200000) AND (lat <= 21.01290000)) AND ((lon <= -89.62130000) AND
(lon >= -89.62150000)) Then
A1.Notify(1)
numnotif=14
lbllugar.Text= "AREA DEPORTIVA 1"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "deportes.mp3")
MP.Play
B.Write("b")
B.FLUSH
End If
If ((lat >= 21.01210000) AND (lat <= 21.01260000)) AND ((lon < -89.62320000
AND (lon >= -89.62340000)) Then
R.Notify(1)
numnotif=6
lbllugar.Text= "DIEE"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "diee.mp3")
MP.Play
B.Write("c")
B.FLUSH
End If
If ((lat >= 21.01230000) AND (lat <= 21.01240000)) AND ((lon <= -89.62310000)
AND (lon >= -89.62320000)) Then
A7.Notify(1)
numnotif=19
lbllugar.Text= "CUBICULO ING. MARGARITA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "margarita.mp3")
44
MP.Play
B.Write("c")
B.FLUSH
End If
If ((lat >= 21.01170000) AND (lat <= 21.01200000)) AND ((lon <= -89.62060000)
AND (lon >= -89.62120000)) Then
Q.Notify(1)
numnotif=5
lbllugar.Text= "SISTEMAS"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "sistemas.mp3")
MP.Play
B.Write("d")
B.FLUSH
End If
If ((lat >= 21.01200000) AND (lat <= 21.01250000)) AND ((lon <= -89.62180000)
AND (lon >= -89.62210000)) Then
Y.Notify(1)
numnotif=12
lbllugar.Text= "MECANICA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "mecanica.mp3")
MP.Play
B.Write("e")
B.FLUSH
End If
If ((lat >= 21.01150000) AND (lat <= 21.01180000)) AND ((lon <= -89.62140000)
AND (lon >= -89.62210000)) Then
P.Notify(1)
numnotif=4
lbllugar.Text= "INDUSTRIAL"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "industrial.mp3")
MP.Play
B.Write("f")
B.FLUSH
End If
If ((lat >= 21.01260000) AND (lat <= 21.01280000)) AND ((lon <= -89.62190000)
AND (lon >= -89.62220000)) Then
Z.Notify(1)
numnotif=13
lbllugar.Text= "QUIMICA Y BIOQUIMICA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "quimica.mp3")
MP.Play
B.Write("g")
B.FLUSH
End If
If ((lat >= 21.01270000) AND (lat <= 21.01290000)) AND ((lon <= -89.62330000)
AND (lon >= -89.62350000)) Then
S.Notify(1)
numnotif=7
lbllugar.Text= "BIBLIOTECA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "biblioteca.mp3")
MP.Play
B.Write("h")
B.FLUSH
45
End If
If ((lat >= 21.01300000) AND (lat <= 21.01340000)) AND ((lon <= -89.62350000)
AND (lon >= -89.62370000)) Then
T.Notify(1)
numnotif=8
lbllugar.Text= "AUDITORIO"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "auditorio.mp3")
MP.Play
B.Write("h")
B.FLUSH
End If
If ((lat >= 21.01190000) AND (lat <= 21.01210000)) AND ((lon <= -89.62230000)
AND (lon >= -89.62250000)) Then
W.Notify(1)
numnotif=11
lbllugar.Text= "CAFETERIA"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "cafeteria.mp3")
MP.Play
B.Write("i")
B.FLUSH
End If
If ((lat >= 21.01173000) AND (lat <= 21.01180000)) AND ((lon <= -89.62280000)
AND (lon >= -89.62300000)) Then
M.Notify(1)
numnotif=2
lbllugar.Text= "FUENTE"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "fuente.mp3")
MP.Play
B.Write("i")
B.FLUSH
End If
If ((lat >= 21.01220000) AND (lat <= 21.01240000)) AND ((lon <= -89.62280000)
AND (lon >= -89.62300000)) Then
V.Notify(1)
numnotif=10
lbllugar.Text= "CIVIL"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "civil.mp3")
MP.Play
B.Write("i")
B.FLUSH
End If
If ((lat >= 21.01130000) AND (lat <= 21.011500000)) AND ((lon <= -89.62310000)
AND (lon >= -89.62330000)) Then
A4.Notify(1)
numnotif=16
lbllugar.Text= "GESTION"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "gestion.mp3")
MP.Play
B.Write("j")
B.FLUSH
End If
46
If ((lat >= 21.01110000) AND (lat <= 21.01130000)) AND ((lon <= -89.62230000)
AND (lon >= -89.62270000)) Then
O.Notify(1)
numnotif=3
lbllugar.Text= "CENTRO DE IDIOMAS"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "idiomas.mp3")
MP.Play
B.Write("k")
B.FLUSH
End If
If ((lat >= 21.01170000) AND (lat <= 21.011800000)) AND ((lon <= -89.62340000)
AND (lon >= -89.62350000)) Then
A5.Notify(1)
numnotif=17
lbllugar.Text= "CONTROL ESCOLAR"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "escolar.mp3")
MP.Play
B.Write("z")
B.FLUSH
End If
If ((lat >= 21.01170000) AND (lat <= 21.01180000)) AND ((lon < -89.62350000)
AND (lon >= -89.62370000)) Then
A6.Notify(1)
numnotif=18
lbllugar.Text= "ENTRADA"
B.Write("z")
B.FLUSH
End If
If ((lat >= 21.01260000) AND (lat <= 21.01300000)) AND ((lon <= -89.62270000)
AND (lon >= -89.62290000)) Then
A3.Notify(1)
numnotif=15
lbllugar.Text= "MANTENIMIENTO"
TEMPORIZADOR.Enabled=False
MP.Load(File.DirAssets, "mantenimiento.mp3")
MP.Play
End If
End Sub
47
3.4.1.3 Candado de inicio.
Para iniciar la aplicación es necesario encender previamente el Bluetooth y el GPS de
nuestro dispositivo Android. En caso de no haberlo hecho, android no permite a un
programa iniciar el GPS o el Bluetooth automáticamente por razones de seguridad,
únicamente el usuario puede habilitarlo. La aplicación mandará al usuario a las
configuraciones de Ubicación para encender el GPS, siempre y cuando el Bluetooth esté
encendido, de lo contrario la aplicación se cerrará. Esto es debido a que la aplicación no
permite mandar al usuario a las configuraciones de conectividad. La siguiente Tabla
muestra los diferentes comportamientos de inicio de la aplicación:
Comportamientos de inicio
Bluetooth: Apagado
GPS: Apagado
Bluetooth: Encendido
GPS: Apagado
Bluetooth: Encendido
GPS: Encendido
Fig. 30 Candado 1.
Fig. 31 Candado 2.
Fig. 32 Candado 3.
Se cierra automáticamente la
aplicación.
La aplicación nos redirige al
menú de ubicación GPS.
La aplicación inicia de
manera correcta.
Bluetooth: Apagado
GPS: Encendido
Tabla 2 Candados.
48
Para lograrlo se implementó el siguiente código:
Sub Activity_Resume
If (GPS1.GPSEnabled = False) AND (puerto_serial.IsEnabled=True) Then
ToastMessageShow("Enciende Tu GPS", True)
StartActivity(GPS1.LocationSettingsIntent)
Else
GPS1.Start(0, 0)
End If
If puerto_serial.IsEnabled = False Then
Answ2=Msgbox2("¡ENCIENDE TU BLUETOOTH!"," A T E N C I Ó N
","OK","","",LoadBitmap(File.DirAssets, "ic_menu_remove.png"))
If Answ2 = DialogResponse.POSITIVE Then
Activity.Finish
End If
End If
If puerto_serial.IsEnabled=True Then
puerto_serial.Listen
End If
End Sub
3.4.1.4 Botón Iniciar.
Una vez que se inicia la aplicación con ambos módulos encendidos, el usuario deberá
presionar el botón “¡Iniciar!” y llegará a la zona de espera que dura 3 segundos con un
mensaje que dirá “Iniciando aplicación….”
Fig. 33 Inicio de la aplicación.
49
Implementación de código:
Sub iniciar_Click
TEMPORIZADOR3.Enabled=True
ProgressDialogShow2("Iniciando....",False)
End Sub
3.4.1.5 Menú principal.
Después del tiempo de espera, el usuario llegará a la pantalla principal donde se encuentra
disponible el menú para interactuar con la aplicación y sus distintas funciones.
Fig. 34 Pantalla con botones de menú.
Implementación de código:
Sub INTERRUPCION3_TICK
cuenta=cuenta+1
If cuenta=2 Then
ProgressDialogHide
iniciar.Enabled=False
iniciar.Visible=False
Activity.Background = fondo
imageview1.Visible=True
imageview2.Visible=True
Temporizador3.Enabled=False
50
Activity.AddMenuItem2("CONECTAR", "Boton_conectar",LoadBitmap(File.DirAssets,
"ic_menu_signal.png"))
Activity.AddMenuItem2("CREDITOS", "Boton_CREDITOS",LoadBitmap(File.DirAssets,
"ic_menu_android.png"))
Activity.AddMenuItem2("PARÁMETROS",
"Boton_parametros",LoadBitmap(File.DirAssets, "ic_menu_location.png"))
End If
End Sub
El menú principal se compone de 3 botones, los cuales son:
Parámetro
s
Fig. 35 Botones de menú.
Conexión
Créditos
Descripción:
Muestra los Dispositivos Bluetooth Disponibles.
Muestra los Créditos de la aplicación. Si se encuentra en los créditos,
al presionar se regresa a la pantalla principal.
Muestra las coordenadas y la información de los satélites. Si se
encuentra en la pantalla de información, al presionar se regresa a la
pantalla principal.
Al presionar cada uno se ejecutarán las distintas funciones que nos ofrece la aplicación.
51
3.4.1.5.1 Botón “Conexión”.
Al presionar el botón “Conexión” se desplegará una lista con los dispositivos Bluetooth que
se encuentran vinculados con el dispositivo Android. Previamente, para enlazar la
aplicación con el Arduino, se deberá vincular el Módulo Bluetooth HC-05 con el
dispositivo.
Fig. 36 Menú Emergente.
Fig. 37 Mensaje de conexión.
Implementación de código:
Sub Boton_conectar_Click
DISPOSITIVOS_APAREADOS=PUERTO_SERIAL.GetPairedDevices
LISTA_DISPOSITIVOS.Initialize
For X=0 To DISPOSITIVOS_APAREADOS.SIZE -1
LISTA_DISPOSITIVOS.Add(DISPOSITIVOS_APAREADOS.GetKeyAt(X))
Next
A=InputList(LISTA_DISPOSITIVOS, "ENCONTRADOS",-1)
If a>=0 Then
PUERTO_SERIAL.Connect(DISPOSITIVOS_APAREADOS.GET(LISTA_DISPOSITIVOS.Get(A)))
End If
End Sub
52
Al realizar la conexión Bluetooth con el Arduino se mostrará un mensaje diciendo que
nuestro dispositivo se encuentra conectado.
Sub bluetooth_Connected (Success As Boolean)
If Success Then
ToastMessageShow("Estado Bluetooth: Conectado",False)
B.Initialize(PUERTO_SERIAL.OutputStream)
RX.Initialize(PUERTO_SERIAL.InputStream)
conectado=True
TEMPORIZADOR.Enabled=True
seguro=1
End If
End Sub
3.4.1.5.2 Botón “Parámetros”.
Al presionar el botón “Parámetros” se mostrará al usuario la pantalla de coordenadas de
información de satélites. Para ello previamente nuestros GPS deberá conectarse
correctamente para obtener dicha información. Dependiendo de nuestro dispositivo puede
llevar un tiempo dicha conexión.
Fig. 38 Pantalla parámetros.
53
Los parámetros que se muestran son:
Coordenadas Geográficas:
Información de cada satélite:

Latitud

Identificador

Longitud

Ángulo de Acimut

Velocidad

Ángulo de elevación

Estado de conexión

Relación de Señal a Ruido
Implementación de código:
Sub GPS_LocationChanged (Location1 As Location)
lbllat.Text = "Latitud:"
lbllon.Text = "Longitud:"
lblspeed.Text = "Velocidad:"
latnum.Text= Location1.Latitude & "°"
lonnum.Text= Location1.Longitude & "°"
spnum.text= Round2((((location1.Speed)*(3.6))),1) & " Km/h"
lat = Location1.latitude
lon = Location1.Longitude
velocidad = Location1.Speed
End Sub
Sub GPS_GpsStatus (Satellites As List)
txt1 = "PRN"
txt2 = "Azimuth"
txt3 = "Elevation"
txt4 = "Used"
txt5 = "S/N Ratio"
lblSatelites.Text = "N° De Satélites: " & Satellites.Size
For i = 0 To Satellites.Size -1
Dim GPSSat As GPSSatellite
GPSSat = Satellites.Get(i)
txt1 = txt1 & CRLF & GPSsat.Prn
txt2 = txt2 & CRLF & GPSSat.Azimuth & "°"
txt3 = txt3 & CRLF & GPSSat.Elevation & "°"
txt4 = txt4 & CRLF & GPSSat.UsedInFix
txt5 = txt5 & CRLF & Round2(GPSSat.Snr, 4)
Next
lblindex.Text = txt1
lblazimuth.Text = txt2
lblelevation.Text = txt3
lblused.Text = txt4
lblsn.Text = txt5
End Sub
54
La aplicación revisará cada 3 segundos si el usuario se encuentra en una de las diferentes 15
zonas del Instituto Tecnológico de Mérida. De ser así aparecerá una notificación
indicándole al usuario la zona en donde se encuentra en ese momento y se iniciará la
reproducción de un archivo .mp3 que explicará esa zona y sus características importantes.
Fig.39 Barra de reproducción.
Cada zona tiene un rango de coordenadas diferente, por lo que el usuario al desplazarse por
el Instituto Tecnológico de Mérida recibirá una notificación diferente.
Durante la reproducción del audio aparecerá una barra informativa cuyo valor cambiará
conforme avance la grabación de voz. Si la aplicación está reproduciendo un archivo de
audio y el usuario presiona el botón de créditos o parámetros la barra desaparecerá.
Únicamente se hará visible en la pantalla principal.
55
Implementación de Código:
Sub INTERRUPCION2_TICK
If (mp.IsPlaying = True) AND (seguro>0) Then
TEMPORIZADOR.Enabled=False
End If
If (mp.IsPlaying = False) AND (seguro>0) Then
TEMPORIZADOR.Enabled=True
End If
If (mp.IsPlaying=True) AND ((creditos.Visible=False) AND (latnum.Visible=False)
AND (seguro>0)) Then
barraduracion.Visible=True
barraduracion.Color=Colors.black
barraduracion.Max=mp.duration
barraduracion.Value=mp.position
Else
barraduracion.Visible=False
End If
End Sub
3.4.1.5.3 Botón “Créditos”.
Al presionar el botón “Créditos” se mostrará al usuario la pantalla de créditos donde se
describen características del desarrollador del programa:

Nombre de la aplicación

N.° de versión

Diseño y Programación

URL y e-mail del desarrollador
Fig. 40 Pantalla créditos.
56
Implementación de código:
If cred=1 Then
lbllat.Visible= False
lbllon.Visible= False
lblsatelites.Visible= False
lblindex.visible = False
lblazimuth.visible = False
lblelevation.visible = False
lblused.visible = False
lblsn.visible = False
lblspeed.Visible= False
lbllugar.Visible= False
latnum.Visible= False
lonnum.Visible= False
spnum.Visible= False
creditos.Visible= True
imageview1.Visible=True
end if
3.5 Etapa II: Interfaz Bluetooth-Microcontrolador.
Para indicarnos la zona de la Institución en la que nos encontramos se optó por colocar la imagen
del mapa del Tecnológico en lo que sería el chasis del prototipo y colocar en cada zona un LED, el
cual sería activado por un microcontrolador mediante la conexión bluetooth con la aplicación.
3.5.1 Módulo Bluetooth.
Se eligió el módulo Bluetooth HC-05 por ser un dispositivo muy fácil de obtener,
económico y sencillo de utilizar. El módulo Bluetooth HC-06 es una de las piezas de
mercado más económicas que se pueden encontrar dedicadas a este tipo de conectividad.
Fig. 41 Módulo Bluetooth Hc-05. [31]
57
Una de las ventajas principales ventajas del módulo HC-05, además de su pequeño tamaño
y sus buenas características de transmisión y recepción que le brindan un alcance muy
amplio (por tratarse de un sistema local Bluetooth), es el bajo consumo de corriente que
posee tanto en funcionamiento, como en modo de espera, es decir, alimentado con energía,
pero sin conexión o enlace a otro dispositivo, por ejemplo, un móvil con SO Android.
Otro detalle particular es que su tensión de alimentación de 3,3Volts y su bajo consumo
(8mA en transmisión/recepción activa) lo transforman en un dispositivo ideal para trabajar
con microcontroladores de la misma tensión de alimentación, logrando de este modo
equipos portátiles que pueden ser alimentados durante muchas horas por baterías
recargables o alcalinas AA, demostrando características excepcionales en aplicaciones
médicas, o para actividades recreativas donde la fuente energética debe ser liviana y
portátil.
3.5.1.2 Características HC-05.
A continuación se muestran las principales características del HC-05:
Wireless transceiver [32]

Bluetooth protocol: Bluetooth Specification v2.0+EDR. [32]

Frequency: 2.4GHz ISM band. [32]

Modulation: GFSK(Gaussian Frequency Shift Keying). [32]

Emission power: ≤4dBm, Class 2. [32]

Sensitivity: ≤-84dBm at 0.1% BER. [32]

Speed: Asynchronous: 2.1Mbps (Max) / 160 kbps. [32]
58

Security: Authentication and encryption. [32]

Profiles: Bluetooth serial port. [32]

Power supply: Can work at the low voltage (3.1V~4.2V). The current in pairing is
in the range of 30~40mA. [32]

The current in communication is 8mA. [32]

Working temperature: -20 ~ +75 Centigrade. [32]

Dimension: 26.9mm x 13mm x 2.2 mm. [32]

Has high-performance wireless transceiver system. [32]

Low Cost. [32]
3.5.2 Arduino.
Se optó por usar Arduino debido su alta compatibilidad con el módulo Bluetooth Hc-05 y
su fácil entorno de programación.
Fig. 42 Placa Arduino Uno. [33]
59
Además de simplificar el proceso de trabajar con microcontroladores, ofrece algunas
ventajas respecto a otros sistemas a profesores, estudiantes y amateurs:

Económico: Las placas Arduino son más económicas comparadas con otras plataformas de
microcontroladores. [34]

Entorno de programación simple y directo: El entorno de programación de Arduino es fácil
de usar para principiantes y lo suficientemente flexible para los usuarios avanzados.
Pensando en los profesores, Arduino está basado en el entorno de programación de
Processing con lo que el estudiante que aprenda a programar en este entorno se sentirá
familiarizado con el entorno de desarrollo Arduino. [34]

Software ampliable y de código abierto: El software Arduino está publicado bajo una
licencia libre y preparado para ser ampliado por programadores experimentados. El
lenguaje puede ampliarse a través de librerías de C++, y si se está interesado en profundizar
en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el
que está basado. De igual modo se puede añadir directamente código en AVR C en tus
programas si así lo deseas. [34]

Hardware
ampliable
y
de
Código
abierto
-
Arduino
está
basado
en
los
microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280. [34]
3.5.2.1 Programación.
El módulo HC-05 se comunica por el puerto serial con el Arduino. Los pines del Hc-05 se
conectan de la siguiente manera:
60

VCC: Irá conectado a los 5V del Arduino.

GND: Ira al pin GND de Arduino.

TXD: Irá conectado al pin RXD del Arduino.

RXD: Irá al pin TXD de Arduino.
Fig. 43 Conexión de pines entre Arduino y Hc-05. [35]
Para la probar la conexión del módulo con el Arduino se utilizó el siguiente código de
referencia [38]:
//Programa prueba modulo bluetooth GP-GC021 o HC-06
//
//
//
void setup()
{
//Pin donde conectamos el led para ver el correcto funcionamiento del modulo
pinMode(13,OUTPUT);
//Configuración de la velocidad del módulo 9600 por defecto, se puede cambiar
//mediante comandos AT
Serial.begin(9600);
}
void loop()
{
//Mientras el puerto serie del módulo bluetooth está disponible
while (Serial.available())
61
{
//Guardamos en la variable dato el valor leido por el modulo bluetooth
char dato= Serial.read();
//Comprobamos el dato
switch(dato)
{
//Si recibimos una 'w' encendemos el led 13 y enviamos para mostrar
//en Blueterm Led encendido
case 'w':
{
digitalWrite(13,HIGH);
Serial.println("Led encendido");
break;
}
//Si recibimos una 'e' apagamos el led 13 y enviamos para mostrar
//en Blueterm Led apagado
case 'e':
{
digitalWrite(13,LOW);
Serial.println("Led apagado");
break;
}
//Si recibimos una 'r' encendemos y apagamos el led mediante la
secuencia
//programa y mostramos en Blueterm Led intermitente
case 'r':
{
digitalWrite(13,HIGH);
delay(200);
digitalWrite(13,LOW);
delay(200);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
Serial.println("Led intermitente");
break;
}
}
}
}
[38]
Cada zona de la Institución tendrá su LED correspondiente. En total serán 12 LEDs que
colocaran en el mapa para los 15 lugares antes mencionados, debido a que algunos son
cercanos entre sí.
Para encender cada Led dependiendo de la zona en la que nos encontremos se usó la
instrucción Select Case. El código se muestra a continuación:
62
//Programa para la conexión Arduino-Android para el CONOCE-TEC
void setup()
{
//SE CONFIGURAN LOS PINES COMO SALIDAS
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
//Configuración de la velocidad del módulo 9600 por defecto, se puede
cambiar
//mediante comandos AT
Serial.begin(9600);
}
void loop()
{
//Mientras el puerto serie del módulo bluetooth está disponible
while (Serial.available())
{
//Guardamos en la variable dato el valor leído por el modulo bluetooth
char dato= Serial.read();
//Comprobamos el dato
switch(dato)
{
//Si recibimos una 'a' encendemos el led 2 en el mapa del chasis del
CONOCE-TEC
case 'a':
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'b' encendemos el led 3 en el mapa del chasis
del CONOCE-TEC
case 'b':
{
digitalWrite(3,HIGH);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
63
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'c' encendemos el led 4 en
CONOCE-TEC
case 'c':
{
digitalWrite(4,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'd' encendemos el led 5 en
CONOCE-TEC
case 'd':
{
digitalWrite(5,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'e' encendemos el
chasis del CONOCE-TEC
case 'e':
{
digitalWrite(6,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'f' encendemos el
chasis del CONOCE-TEC
case 'f':
{
el mapa del chasis del
el mapa del chasis del
led 6 en el mapa del
led 7 en el mapa del
64
digitalWrite(7,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'g' encendemos el led 8 en el mapa del chasis
del CONOCE-TEC
case 'g':
{
digitalWrite(8,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'h' encendemos el led 9 en el mapa del chasis
del CONOCE-TEC
case 'h':
{
digitalWrite(9,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'i' encendemos el led 10 en el mapa del
chasis del CONOCE-TEC
case 'i':
{
digitalWrite(10,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
65
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'j' encendemos el led 11 en el mapa del
chasis del CONOCE-TEC
case 'j':
{
digitalWrite(11,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'k' encendemos el led 12 en el mapa del
chasis del CONOCE-TEC
case 'k':
{
digitalWrite(12,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(13,LOW);
break;
}
//Si recibimos una 'z' encendemos el led 13 en el mapa del
chasis del CONOCE-TEC
case 'z':
{
digitalWrite(13,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
break;
}
}
}
}
66
3.5.2.2 Pruebas en el Protoboard.
Finalmente se realizaron las pruebas en el protoboard en las que se observó que el Arduino
y los elementos del circuito funcionaban adecuadamente junto con la aplicación,
permitiendo de esta manera avanzar a la siguiente etapa del proyecto.
Fig. 44 Prueba en protoboard.
67
3.6 Etapa III: Arduino Shield.
3.6.1. Diseño de la placa del circuito.
Para el diseño de la Placa de Circuito Impreso (PCB), se utilizó el programa Eagle 6.1.0
Professional, siendo este un programa confiable y fácil de utilizar. Lo primero que se hizo
fue ubicar las librerías que se utilizarían que fueron las de Arduino, de LEDs y resistencias.
Una vez teniendo las librerías instaladas, se procedió a la implementación de los
componentes a utilizar en el esquemático. Quedando estos de la siguiente manera:
Fig. 45 Esquemático.
Al haber terminado el esquemático, se procedió a pasarlo a placa para su enrutamiento.
68
Fig. 46 Placa sin enruta.
Los componentes se distribuyeron de tal manera que todo se encuentre en una sola cara,
tratando que la placa no exceda por mucho el tamaño del Arduino, ya que nos sirve como
shield para el mismo.
Fig. 47 Placa enrutada.
69
Como se puede ver en la Figura 3.4.1.3, la placa está prácticamente llena del “color azul”,
con esto además de ahorrar cloruro férrico a la hora de “quemar” la placa, tenemos un
amplio sitio de Tierra.
Fig. 48 Circuito Impreso.
Teniendo el circuito impreso lito, se optó por pasarlo a placa por el método de plancheo por
la facilidad y simplicidad en cierto modo de la placa, ya que no es de doble cara.
Fig. 49 Planchado del circuito a la placa.
70
Teniendo ya listo el dibujo del circuito en la placa, se procedió a “quemar” el cobre
sobrante con cloruro férrico.
Fig. 50 Aplicación de cloruro férrico a la placa.
Al haber terminado la placa esta quedó de la siguiente manera
Fig. 51 Placa lista.
71
Teniendo la placa lista se pasó a soldar los componentes siendo estos:




12 LEDs Ultrabrillantes (4 rojos, 4 verdes, 4 blancos y 4 azules).
12 Resistencias de 220Ω.
24 cables para los LEDs.
4 Bases para Arduino.
Se determinó el uso de LEDs de 220Ω para que estos trabajen a 15mA de la siguiente
manera:
Figura 52 Gráfica de Corriente Forward vs Voltaje Forward. [37]
Tomando como Corriente Forward 15mA, la gráfica nos muestra que el LED consume un
Voltaje Forward de 1.9V, entonces se usa la siguiente ecuación para poder saber qué
tamaño de resistencia usar cuando se tiene usando una fuente de 5V:
Fig. 53 Fórmula para la polarización de un LED.
72
Donde,
R = Resistencia de polarización
V = Voltaje de la Fuente
Vf = Voltaje Forward
If = Corriente Forward
Entonces despejando la formula con los valores proporcionados:
Fig. 54 Realización de Cálculos para determinar la resistencia del LED.
Luego de tener los valores resistivos, se procedió a soldar la placa con los componentes
Fig. 55 Soldando componentes.
73
Al término de la soldadura de los componentes en la placa, quedó de la siguiente manera.
Fig. 56 Placa con componentes lista.
Luego se procedió a conectar la placa (Shield) al Arduino para proceder a la siguiente
etapa.
Fig. 57 Placa conectada al Arduino.
74
Para finalizar se verificó que todos los LEDs encendieran de manera correcta buscando
posibles fallos para eliminarlos de manera inmediata sin afectar los procesos siguientes.
Fig. 58 Verificación de la placa.
75
3.7 Etapa IV: Chasis.
El diseño del prototipo se realizó mediante el programa “AutoCAD”. Se verifico que las
medidas sean las correctas para que su aplicación física sea universal a cualquier teléfono
celular.
La realización del diseño se hizo en base a la ergonomía de los usuarios que podrán tener
acceso al prototipo o podrían utilizarlo. Tomamos en cuenta la medida promedio de la
mano humana,
el tamaño de los dispositivos celulares que podrán ser conectados al
prototipo, así como también los ángulos de visión y espacios bien considerados para
colocar las partes a ensamblar.
Diseño con AutoCAD:
Fig. 59 Diseño del chasis con las medidas a escala.
76
Fig. 60 Vista Frontal del prototipo diseñado (vista de ángulos opuestos del mismo diseño).
Fig 61. Vista trasera del diseño final del prototipo (vista desde ambos ángulos opuestos).
Ahora, el diseño físicamente, se hizo con trovicel, ya que este material tiene la propiedad de
ser flexible y resistente al impacto. Se tomaron las medidas, se hicieron cortes y modelados
para que se lleve un correcto ensamble en el dispositivo final.
El modelado de las piezas se hizo en base a la estética del diseño, de manera que tenga
buena presentación y, al mismo tiempo, sea fácil de sostener y manipular para el usuario.
77
Material usado y toma de medidas:
Las agarraderas del prototipo
fueron diseñadas con las
medidas de 9 cm de largo y
3.8 cm de ancho (fue hecho
en base a la medida promedio
de la mano humana).
Fig.62 Elaboración chasis 1.
La base para el mapa de LEDs del
instituto fue de 8 cm de largo por
5 de ancho (este espacio fue
considerado de manera que el
mapa sea fácil de observar y tenga
espacio para la colocación de los
LEDs).
Fig. 63 Elaboración chasis 2.
78
La base para el porta móvil fue
diseñada con las medidas de 11
cm de largo por 8 cm de ancho
(las medidas son en base a el
tamaño promedio de los móviles
considerados).
Fig. 64 Elaboración chasis 3.
Partes ya cortadas y listas para
ensamblar el prototipo final.
Fig. 65 Elaboración chasis 4.
3.7.1 Detallado las partes.
Se optó por usar trovicel porque este material es bastante manejable y puede ser moldeado
sencillamente ya que en temperaturas normales está en estado sólido, muy parecido a
plástico duro, pero al ponerlo en contacto con altas temperaturas este adopta un estado
maleable y se le puede dar cualquier forma que sea necesaria.
79
Igualmente se le coloca al dispositivo el mapa del Instituto para el reconocimiento de las
áreas geográficas abarcadas. Cada área constara de un LED, el cual nos indicara nuestra
ubicación en tiempo real.
Para la unión de las partes, utilizamos tornillos; se eligió esta opción, ya que era necesario
que las partes estén bien unidas de manera que den seguridad al momento del montaje y sea
eficaz al momento de usarlo con el propósito final del proyecto.
Ensamblaje del Prototipo:
Fig. 66 Partes moldeadas del prototipo para su ensamblaje final.
Las partes se moldearon en base a la ergonomía eficaz del usuario.
80
Orificios y cortes a las partes
moldeadas para su armado.
Fig.67 Armado chasis 1.
Antes de ensamblar el prototipo final, nos vimos en la tarea de detallar los bordes e
imperfecto de las piezas para una mejor presentación y estética del mismo. Tales detallados
fueron lijados de los bordes de las piezas, limpieza o lavado de algunas partes donde
quedaron partes quemadas por el calentamiento del trovicel, entre los más importantes.
Detallado de los bordes de la base
para el mapa de LEDs.
Fig.68 Armado chasis 2.
81
3.7.2 Armado del prototipo final.
La parte del armado fue la más sencilla, al tener las medidas exactas y las partes ya listas
para el ensamblado se nos hizo una tarea bastante fácil de realizar.
Se usaron varios tornillos para el aseguramiento de algunas partes, y en otras partes no
vimos necesario ponerlos (ya que daban una vista muy ruda al prototipo) y se hizo uso de
pegamento para esas uniones.
Armado y unión de las partes moldeadas del
prototipo final.
Fig.69 Armado chasis 3.
Para el armado y unión de las
partes, se utilizaron tornillos y
tuercas de 1/4 pulgadas.
Fig.70 Armado chasis 4.
82
Colocación de la base para el mapa de LEDs.
Fig.71 Armado 5.
Moldeando algunas partes de trovicel
para adaptarlas al armado del prototipo.
Fig.72 Armado chasis 6.
Para no dejar mal la estética del prototipo, se usó pegamento en varias partes, para ponerle
accesorios y/o partes necesarias del ensamblado.
83
Fig 73. Armado chasis 7. Varias partes se unieron con pegamento por motivo de estética
del prototipo. Ya se habían utilizado bastantes tornillos y se usó este método de pegado.
Fig 74 Vista del prototipo 75% acabado. En este punto aún le faltan unos detalles, como los
logos y el mapa del instituto.
84
Fig 75. Inserción del escudo del instituto al prototipo.
Fig. 76. Colocación del mapa del Instituto (donde van a colocarse los LEDs en áreas
específicas).
85
Fig 77. Elaboración de los orificios para colocar los LEDs en las áreas específicas del
mapa.
Fig. 78 Prototipo, placa de circuito con el Arduino y el dispositivo móvil respectivamente
en la imagen de izquierda a derecha
86
Fig 79. Vista general del prototipo ya terminado de ensamblar y detallar.
Para la colocación de los LEDs se eligieron de varios colores y se colocaron en áreas
específicas del mapa del instituto. Las áreas elegidas fueron: entrada al instituto, gestión y
vinculación, edificio de Ingeniería Eléctrica y Electrónica, Auditorio, fuente, centro de
idiomas, edificio de Ingeniería Biomédica, edificio de Ingeniera Industrial, edificio de
Ingeniería Química y Bioquímica, edificio de Ingeniería Mecánica, centro de cómputo y
área deportiva.
87
Fig 80. Conexión de los LEDs a la placa de circuito para su acoplamiento al prototipo.
Fig 81. Acoplamiento de los LEDs al prototipo, por medio de los orificios hechos en el
mapa del Instituto pegado en el prototipo.
88
CAPITULO IV
RESULTADOS Y CONCLUSIONES
4.1 Resultados.
Se comprobó que al estar en algún sitio dentro de los rangos de coordenadas definidos, la
aplicación es capaz de notificar al usuario su ubicación en la Institución.
Sin embargo debido a causas ambientales suele haber un retraso con la respuesta de los
satélites hacia el dispositivo Android, retrasando a la par a las notificaciones del teléfono.
Otro de los problemas que se presentó durante los recorridos realizados en la Institución
para probar el funcionamiento del prototipo fue el de la precisión del sistema GPS del
dispositivo Android, cuyo rango es de 5 m a 10 m de margen de error que se presentaba
cuando el cielo no estaba totalmente despejado.
Una cuestión muy importante a mencionar es la existencia de un retraso con la conexión del
módulo GPS del dispositivo Android al momento de iniciar la aplicación, el cual solo se
presenta durante el primer uso después de la instalación, y a partir de este primer inicio, el
retardo de la conexión del módulo GPS disminuye, es decir, no demora mucho tiempo en
buscar y conectarse a los satélites.
Una forma de eliminar los problemas mencionados con anterioridad es teniendo en el
dispositivo una conexión de datos de Internet.
Al momento de dar los recorridos, fue notorio que el chasis implementado satisfacía las
necesidades tanto del manejo del prototipo como de la visualización del mapa en la parte
superior de este, los tornillos colocados en las distintas partes del chasis aseguraron la
89
correcta colocación del Arduino, la placa de LEDs, la antena bluetooth y las piezas del
trovicel.
La interfaz Android-Arduino funcionó de manera esperada, cumpliendo el propósito de
notificar al usuario el encendido del LED correspondiente a la zona de ubicación cuando la
aplicación se lo indicará al Arduino mediante el módulo HC-05, por medio de la conexión
Bluetooth.
Finalmente el prototipo realizó el objetivo esperado, cumpliendo las metas propuestas al
inicio del proyecto
4.2 Conclusiones
Actualmente el futuro de las aplicaciones móviles está en crecimiento exponencial dado a
la facilidad y versatilidad que se tiene en el mercado de teléfonos inteligentes.
La instalación del programa entre otros dispositivos Android, llámese celulares y tabletas,
resultó ser compatible y viable a la hora de usar estos en los recorridos hechos en la
institución. A pesar de que no todos obtenían el mismo número de satélites de ubicación y
diferían las coordenadas geográficas, este no fue un obstáculo ya que los primeros cuatro
decimales que definían los rangos del lugar de ubicación se mantenían iguales.
Finalmente es importante mencionar que para la elaboración del proyecto se aplicaron
materias tales como electrónica analógica, electrónica digital, microcontroladores,
programación
y
optoelectrónica.
El
proyecto
se
realizó
de
manera
exitosa.
90
FUENTES BIBLIOGRAFICAS:
[1] http://www.alsitel.com/tecnico/gps/historia.htm; “Historia del GPS”, 27/02/2013.
[2] TOMASI, Wayne. Sistemas de comunicaciones electrónicas. 4° ed. México,
Pearson, 2003. 976p.
[3] (PDF) “Introducción a Android”;
http://pendientedemigracion.ucm.es/info/tecnomovil/documentos/android.pdf; Manuel
Báez, Álvaro Borrego, Jorge Cordero, Luis Cruz, Miguel González, et al; 27/02/2013
[4] http://3.bp.blogspot.com/-Q9YDfycpK2g/UPTThmSa9I/AAAAAAAAAFA/AsTjqPoWc8Y/s1600/Logo_Android.jpg (Imagen android)
[5] http://opensignal.com/reports/fragmentation.php (imagen distribución Android)
[6] (PDF) “Bluetooth”;
http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/valle_i_lf/capitulo3.pdf
[7] http://www.andresduarte.com/tutorial-arduino , “Tutorial Arduino”, 21/03/2013
[8]
http://www.eskola20.org/formacion/tutoriales/nivel1/earthmaps/modulos/es/content_1_18.h
tml ; “Google Maps. Descripción y funcionalidades principales”; 06/03/2013
[9] http://www.poderpda.com/wp-content/uploads/2012/03/Google-Maps-being-offlinedoesnt-mean-being-lost.gif (Imagen Google Maps)
[10]
http://es.wikipedia.org/wiki/Sistema_de_navegaci%C3%B3n_para_autom%C3%B3viles ;
Sistema de Navegación para Automóviles, 06/03/2013
91
[11] http://bimg1.mlstatic.com/gps-garmin-nuvi-30-pantalla-35-nombra-calles-mapascargado_MLA-F-3079421636_082012.jpg (Imagen Garmin)
[12] http://a820.phobos.apple.com/us/r1000/114/Purple/35/a1/4f/mzl.rbhavjnt.320x48075.jpg (Imagen UNAM 360)
[13] http://www.cnnexpansion.com/tecnologia/2012/08/09/android-derrota-al-ios-enventas; “Android Derrota al iOS en Ventas”, publicado por Julianne Pepitone el 9/08/2012;
27/02/2013
[14] http://es.wikipedia.org/wiki/APK_(formato) ; APK (formato), 08/04/2013
[15] http://es.wikipedia.org/wiki/Desarrollo_de_Programas_para_Android; Desarrollo de
Programas para Android, 08/04/2013
[16] http://commons.wikimedia.org/wiki/File:Basic4android-Logo.jpg (Imagen
Basic4android)
[17] http://www.basic4ppc.com/android/screenshots.html (Área de Trabajo Basic4android)
[18] http://itmerida.libri.mx/Images/logo.jpg (Imagen Banner 1)
[19] http://www.itmerida.mx/imagenes/banner.png (Imagen Banner 2)
[20] http://tecvi.itmerida.mx/file.php/1/logoTec.jpg (Imagen Logo 1)
[21] http://edist.itmerida.mx/file.php/1/Logos/LOGO_TEC_OFICIAL.jpg (Imagen Logo 2)
[22] http://www.diee.net/logotec.jpg (Imagen Logo DIEE)
[23] http://files.myopera.com/Aleksander/albums/5199232/android-wallpaper.jpg (Imagen
Wallpaper Android)
92
[24] http://www.mediafire.com/download/2wcx8hlfko9olfi/icolor-android-iconstehkseven.zip; 6/06/13
[25] http://www.mediafire.com/download/2wcx8hlfko9olfi/icolor-android-iconstehkseven.zip; 6/06/13
[26] http://www.mediafire.com/download/2wcx8hlfko9olfi/icolor-android-iconstehkseven.zip; 6/06/13
[27] http://www.mediafire.com/download/2wcx8hlfko9olfi/icolor-android-iconstehkseven.zip; 6/06/13
[28] http://www.basic4ppc.com/forum/spanish-forum/13249-b4a-tutorial-gps.html; 6/06/13
[29] http://www.historiasdeuncazique.com/wp-content/uploads/gps2.png (Imagen librería
GPS)
[30] http://www.historiasdeuncazique.com/articulo/654/basic4android-tutorial-oficial-gpsen-espanol.html (Imagen Objetos de la librería)
[31] (PDF) HC-05
http://www.mcu-turkey.com/wp-content/uploads/2013/01/HC-Serial-Bluetooth-Products201104.pdf
93
[32] http://www.pial.net/post/Using-the-HC-05-Bluetooth-RS232-Serial-module-for-cheapwireless-communication-with-your-uController.aspx; “Using the HC-05 Bluetooth RS232 Serial
module for cheap wireless communication between your PC and Arduino”, publicado por Pial el
4/04/2011; 06/06/2013
[33]
http://1.bp.blogspot.com/QeVB8_RYWDk/T70JRJb5hiI/AAAAAAAAApQ/a3RLKkJueBc
/s1600/arduinounofront.jpg (Imagen Arduino UNO)
[34] http://arduino.cc/es/Guide/Introduction; “Introducción a Arduino”, publicado por Creative
Commons Attribution-ShareAlike 3.0 License; 06/06/2013
[35] http://robotosh.blogspot.mx/2012/07/arduino-jy-mcu-bluetooth.html; “Arduino - JYMCU Bluetooth”, publicado por roboToSH el 7/07/2012; 06/06/2013
[37] (PDF) “Datasheet Led Ultrabrillante”
http://www.vishay.com/docs/81354/tlcry520.pdf
[38] http://tallerarduino.wordpress.com/2011/12/06/modulo-bluetooth-hc-06-o-gp-gc021-yarduino. “Módulo Bluetooth y Arduino”, publicado por Regata el 6/12/2011; 06/06/2013
94

Documentos relacionados