Sistema de guía para personas invidentes a través de Bluetooth

          José Manuel Pérez Ruiz  Sistema de guía  para personas  invidentes a  través de  Bluetooth    Sistema de guía para personas invidentes a 

3 downloads 70 Views 2MB Size

Recommend Stories


Sistema de audio Bluetooth
010COV8.book Page 1 Tuesday, February 18, 2014 12:38 PM 448065ES14 Sistema de audio Bluetooth® Para cancelar las imágenes de la demostración (DEMO)

Capitulo 2: SISTEMA PROTOTIPO Y TECNOLOGÍAS PARA INVIDENTES
Capitulo 2: SISTEMA PROTOTIPO Y TECNOLOGÍAS PARA INVIDENTES. 2.1 Software para Invidentes Actualmente existe una cantidad considerable de programas y

INSTALACIONES DE VAPOR DE A GUA DE ALTA PRESION
Normas del Código Municipal de Buenos Aires INSTALACIONES DE VAPOR DE A GUA DE ALTA PRESION Indice 8.11.3.0. Instalaciones de vapor de agua de alta pr

Kit Bluetooth BTC450 para Automóvil
Kit Bluetooth BTC450 para Automóvil Manual del Usuario © 2012 Kinivo LLC. Todos los derechos reservados. Kinivo es una marca registrada de Kinivo LLC

Story Transcript

         

José Manuel Pérez Ruiz 

Sistema de guía  para personas  invidentes a  través de  Bluetooth   

Sistema de guía para personas invidentes a través de bluetooth 

Página 1 

Identificación de los datos del proyecto Tema: COMUNICACIONES BLUETOOTH Título: SISTEMA DE GUIA PARA PERSONAS INVIDENTES A TRAVES DE BLUETOOTH Autor: JOSE MANUEL PEREZ RUIZ Titulación: INGENIRIA TECNICA DE TELECOMUNICACIONES ESPECIALIDAD SISTEMAS ELECTRONICOS Tutor: MARIANO RUIZ GONZALEZ Departamento: SEC Tribunal: Presidente: GERARDO BALABASQUER VILLA Vocal: EDUARDO BARRERA LOPEZ DE TURISO Vocal Secretario: MARIANO RUIZ GONZALEZ Fecha de Lectura: 12-OCTUBRE-2013

Resumen proyecto José Manuel Pérez Ruiz Titulo: SISTEMA DE GUIA PARA PERSONAS INVIDENTES A TRAVES DE BLUETOOTH   El planteamiento inicial era proveer al individuo invidente de un sistema autónomo capaz de guiarle según sus preferencias.

El resultado obtenido al finalizar este proyecto ha sido un dispositivo autónomo configurable por el usuario mediante una aplicación sw , desarrollada en la plataforma móvil Android capaz de comunicarse con el dispositivo autónomo(móvil personal). La idea de utilizar como plataforma de desarrollo sw Android, se baso fundamentalmente en que es código open source, es gratuito y está presente en el 70 por ciento de los móviles de Europa. La idea inicial era que ambos hubieran sido integrados en un mismo dispositivo, pero una vez comenzado el proyecto y habiendo evaluado los hábitos actuales, decidimos adaptar la idea general del proyecto, a nuestros días. Para ello hicimos uso del dispositivo móvil más usado hoy en día, como es nuestros teléfonos móviles, o más bien los llamado Smartphone, con los cuales podemos desde su aplicación originaria que es llamar, hasta realizar multitud de operaciones al mismo tiempo como puede ser comunicación por internet, posicionamiento via GPS, intercambio de ficheros por bluetooth…..tantas como podamos programar.

Sobre este último atributo, intercambio de información a través de bluetooth, es la interfaz que vamos a aprovechar para la realización de nuestro proyecto.

Hoy en día el 90% de los Smartphone tiene entre sus características de conectividad la posibilidad de intercambiar información vía bluetooth.

Una vez se tiene resuelto el interfaz entre el medio y el usuario se debe solucionar la forma de transformar la información para que los dispositivos móviles recojan la información y sepan discernir entre la información importante y la que no lo es. Para ello hemos desarrollado una tarjeta configurable, con un módulo bluetooth comercial para enviar la información. El resultado final de esta tarjeta proporciona una manera fácil de configurar diferentes mensajes que serán utilizados según la situación.

Project Abstract of Jose Manuel Perez Ruiz Title: GUIDANCE BLUETOOTH SYSTEM FOR BLIND PEOPLE The initial approach consisted of a system that shows the way for blind people to get somewhere or something or provide to them important information, an autonomous system able to guide to their preference. After several analyses the project accomplish is a standalone device configurable by the user via an application sw, developed in Android mobile platform capable of communicating with the standalone device (personal cell phone). The decision of using the sw development platform of Android was due to the open source code concept and the great extent of presence on 70 percent of European mobiles. The first idea was that the sw and the device were integrated into a single device, but once the project had been started and having assessed the current habits, it has changed to be adapted to the present technology to get a better usability on the present-day. To achieve the project goals the most used mobile device today was used, our mobile phones, or rather called Smartphone, which you could use to phone your mother or perform many operations simultaneously such as communication online, positioning via GPS, bluetooth file trading program, etc. On this last attribute, information sharing via bluetooth, is the interface that it has been taken to complete the project. Today 90% of the Smartphone include in its connectivity features the ability to exchange information via bluetooth. Once that it was solved the interface between the environment and the final user, the next step incorporates the transformation of the information that the mobile devices collect from the environment to discern between the information the user configure to be notified or not. The hardware device that makes it possible is a configurable card with a bluetooth module that is able to send the information. The final result of this card provides an easy way to configure different messages, that we could use depending of the situation.    

Sistema de guía para personas invidentes a través de bluetooth                        Este proyecto se lo dedico a mi mujer, compañera y madre de mi hija Emma, por todo su  apoyo durante estos años.

     

Página 2 

Sistema de guía para personas invidentes a través de bluetooth      1 





Introducción .......................................................................................................................... 6  1.1 

Objetivos conseguidos ........................................................................................... 6 

1.2 

Estructura del proyecto ......................................................................................... 8 

Base teórica ........................................................................................................................... 9  2.1 

Diagrama de bloques ............................................................................................. 9 

2.2 

Especificaciones ................................................................................................... 10 

2.3 

Descripción diseño PCB (printed circuit board) ................................................... 10 

2.4 

Descripción módulo alimentación ....................................................................... 11 

2.5 

Micro controlador................................................................................................ 16 

2.6 

Elementos auxiliares ............................................................................................ 17 

2.7 

Módulo Bluetooth ............................................................................................... 19 

2.7.1  Teoría Bluetooth .......................................................................................... 19  2.7.2  Especificaciones y diseño de Bluetooth ...................................................... 28  2.7.3  Descripción módulo Bluetooth comercial ................................................... 29  Diseño SW ............................................................................................................................ 36  3.1 

Diseño Android .................................................................................................... 36 

3.1.1  Descripción .................................................................................................. 36  3.1.2  Usuarios y tareas del sistema ...................................................................... 36  3.1.3  Descripción de bloques principales ............................................................. 40  3.2  Diseño C ............................................................................................................... 61 



3.2.1  Descripción .................................................................................................. 61  3.2.2  Diagrama de bloques ................................................................................... 61  3.2.3  Descripción del funcionamiento .................................................................. 61  Presupuesto ......................................................................................................................... 63 



Conclusiones ........................................................................................................................ 65 



Referencias .......................................................................................................................... 67 



Bibliografía ........................................................................................................................... 67 

ANEXO A ...................................................................................................................................... 68  ANEXO B ...................................................................................................................................... 72  ANEXO C ...................................................................................................................................... 77  ANEXO D ...................................................................................................................................... 83   

   

Página 3 

Sistema de guía para personas invidentes a través de bluetooth       

Índice de figuras  Figura 1 Descripción sistema ................................................................................................. 7  Figura 2 Esquema de bloques ................................................................................................ 9  Figura 3 Dimensiones Exteriores PCB .................................................................................. 10  Figura 4 Esquema eléctrico módulo alimentación .............................................................. 11  Figura 5 Esquema eléctrico DC/DC ...................................................................................... 12  Figura 6 Esquema módulo alimentación Micro ................................................................... 13  Figura 7 Esquema módulo alimentación micro ................................................................... 14  Figura 8 Nota de aplicación regulador lineal ....................................................................... 15  Figura 9 Esquema circuito 3,3v fijos .................................................................................... 15  Figura 10 Prototipo con módulo Bluetooth ........................................................................ 16  Figura 11 Módulo Bluetooth separado de tarjeta de configuración ................................... 17  Figura 12 Descripción física ................................................................................................. 18  Figura 13 Implementación PCB ........................................................................................... 18  Figura 14 Estructura piconet y Scatternet ........................................................................... 21  Figura 15 Pila de protocolos Bluetooth ............................................................................... 23  Figura 16 Service discovery protocol ................................................................................... 28  Figura 17 Módulo bluetooth ............................................................................................... 29  Figura 18 Diagrama de bloques módulo bluetooth............................................................. 30  Figura 19 Esquema eléctrico conexión módulo bluetooth.................................................. 31  Figura 20 Interfaz UART con micro controlador .................................................................. 32  Figura 21 Conector 20 pines ................................................................................................ 32  Figura 22 Pin out módulo bluetooth ................................................................................... 34  Figura 23 Dimensiones y fijaciones mecánicas del módulo bluetooth ............................... 35  Figura 24 Tareas .................................................................................................................. 36  Figura 25 Diagrama actividad: Configuración...................................................................... 37  Figura 26 Diagrama actividad: Activar sistema ................................................................... 39  Figura 27 Flujo de programa Android .................................................................................. 40  Figura 28 Primera pantalla .................................................................................................. 41  Figura 29 Reconocimiento de voz ....................................................................................... 41  Figura 30 Estructura carpetas Android ................................................................................ 43  Figura 31 Carpeta src ........................................................................................................... 43  Figura 32 Carpeta res ........................................................................................................... 52  Figura 33 Carpeta gen.......................................................................................................... 53  Figura 34 Formulario para generar fichero .apk .................................................................. 56  Figura 35 Diagrama de flujo programa C en micro ............................................................. 61  Figura 36 Especificaciones DC/DC R783.3‐1.0A SMD .......................................................... 68  Figura 37 Dimensiones DC/DC R783.3‐1.0A SMD ............................................................... 69  Figura 38 Caracteristicas del D0‐214AC ............................................................................... 69  Figura 39 Dimensiones de Do‐214AC .................................................................................. 70  Figura 40 Especificaciones regulador lineal AP117 ............................................................. 71     

Página 4 

Sistema de guía para personas invidentes a través de bluetooth    Figura 41 Encapsulado AP117 ............................................................................................. 71  Figura 42 Esquema de Bloques ............................................................................................ 72  Figura 43 Fuente alimentación ............................................................................................ 73  Figura 44 Debug ................................................................................................................... 74  Figura 45 Módulo Bluetooth ............................................................................................... 75  Figura 46 Micro‐switch ........................................................................................................ 76  Figura 47 Requerimientos Hardware .................................................................................. 77  Figura 48 Plugin ADT ............................................................................................................ 79  Figura 49 Paquetes Disponibles ........................................................................................... 80  Figura 50 Pantalla AVD ........................................................................................................ 81   

   

Página 5 

Sistema de guía para personas invidentes a través de bluetooth      

1

Introducción    Hoy en día las personas invidentes no tiene acceso a la mayoría de las señales, que para el  resto de las personas videntes son normales e incluso si no las tuviéramos, en muchos  casos nos veríamos perdidos sin saber que hacer o donde ir.    Este proyecto trata de dar una solución a esta falta de información visual que de otra  forma nunca estaría al alcance de los invidentes.    Nuestra aplicación está diseñada para que una persona invidente con un dispositivo móvil  con sistema operativo Android, tenga acceso a toda esta información dejando la libertad a  la persona de elegir que información quiere o no quiere recibir mediante una  configuración previa, que podrá realizar de forma totalmente autónoma y sin necesidad  de manejar complicados menús .    Para ello nos apoyamos en el sistema operativo Android y en todas las funciones que nos  ofrece la plataforma, para por medio de una conexión Bluetooth punto a punto obtener  información pre‐programada en cada momento.    El objetivo secundario de este proyecto es desarrollar una plataforma de inicio, que pude  seguir evolucionando tanto en funcionalidad como en rendimiento al mismo tiempo que  el sistema Android evoluciona.       

1.1 Objetivos conseguidos    El planteamiento inicial era proveer al individuo invidente de un sistema autónomo capaz  de guiarle según sus preferencias.  El resultado obtenido al finalizar este proyecto ha sido un dispositivo autónomo  configurable por el usuario mediante una aplicación sw , desarrollada en la plataforma  móvil Android capaz de comunicarse con el dispositivo autónomo(móvil personal). 

   

Página 6 

Sistema de guía para personas invidentes a través de bluetooth    La idea inicial era que ambos hubieran sido integrados en un mismo dispositivo, pero una  vez comenzado el proyecto y habiendo evaluado los hábitos actuales, decidimos adaptar  la idea general del proyecto, a nuestros días.  Para ello hicimos uso del dispositivo móvil más usado hoy en día, como es nuestros  teléfonos móviles, o más bien los llamado Smartphone, con los cuales podemos desde su  aplicación originaria que es  llamar, hasta realizar multitud de operaciones al mismo  tiempo como puede ser comunicación por internet, posicionamiento via GPS, intercambio  de ficheros por bluetooth…..tantas como podamos programar.    Sobre este último atributo, intercambio de información a través de bluetooth, es la  interfaz que vamos a aprovechar para la realización de nuestro proyecto.    Hoy en día el 90% de los Smartphone tiene entre sus características de conectividad la  posibilidad de intercambiar información vía bluetooth.    Una vez se tiene resuelto el interfaz entre el medio y el usuario se debe solucionar la  forma de transformar la información para que los dispositivos móviles recojan la  información y sepan discernir entre la información importante y la que no lo es. Para ello  hemos desarrollado una tarjeta configurable, con un módulo bluetooth comercial para  enviar la información.  El resultado final de esta tarjeta proporciona una manera fácil de configurar diferentes  mensajes que serán utilizados según la situación. 

  Figura 1 Descripción sistema 

   

Página 7 

Sistema de guía para personas invidentes a través de bluetooth     

1.2 Estructura del proyecto    

Diseño HW ‐‐> Esta parte consta del diseño de una tarjeta donde se insertará el  módulo bluethooth escogido para la realización del diseño.  Esta tarjeta estará compuesta de un micro, un conector y una serie de switchs para  realizar las diferentes configuraciones de la tarjeta. 

  

Diseño SW ‐‐> Esta parte del proyecto se distinguen dos partes de programación :    o

Java(Andorid)  ‐‐> Es la parte de diseño sw correspondiente a la  programación de una aplicación Android, que ira instalada en el  dispositivo móvil , la cual se comunicará con el módulo bluetooth. 

o

C ‐‐> Es la parte de diseño sw integrada en el micro controlador. En  esta aplicación se deberán de generar los mensajes que el dispositivo  móvil deberá interpretar. 

   

Página 8 

Sistema de guía para personas invidentes a través de bluetooth     

2

Base teórica  En esta sección se describirá el proceso de diseño HW de la tarjeta auxiliar que  utilizaremos durante el proyecto para controlar la unidad bluethooth.   

2.1 Diagrama de bloques    4 DC/DC  3,3V



   

2       Modulo bluetooth 

           

1 3 DC/DC  3,3V

 

        8051F411        Figura 2 Esquema de bloques 

  1) Micro‐controlador 8051F411  2) Módulo bluetooth ConnectBlue  OEM311  3) Convertidor alimentación a 3,3v para alimentar micro  4) Convertidor alimentación a 3,3v para módulo bluetooth  5) Micro‐switchs para configurar mensajes  

   

Página 9 

Sistema de guía para personas invidentes a través de bluetooth     

2.2 Especificaciones    Alimentación: 4,75‐18Vdc  Corriente máxima:   

No conectado: 20mA 



Conectado: 70 mA 

Alcance módulo:  10m  Dimensiones: 88,5mmx70mm 

2.3 Descripción diseño PCB (printed circuit board)    Para la realización de este proyecto se utilizará el programa de diseño de PCB Altium en su  versión Summer 09.  Con dicho sw realizaremos la captura del esquemático y el diseño de PCB.    Las medidas finales de la PCB se decidieron teniendo en cuenta el tamaño de la tarjeta  Bluetooth y demás componentes, como switchs, micro y fuente de alimentación.  Como resultado se obtuvo una tarjeta con las siguientes dimensiones.       

70 mm

     

Bluetooth  88,5 mm 

   

 

Figura 3 Dimensiones Exteriores PCB 

  Todos los componentes están ubicados en una sola cara y son de montaje superficial.    La fabricación de dicha PCB fue contratada a la empresa PCBCART, través de su página  web: Referencia 3.    Todos los ficheros Gerber irán incluidos en el cd junto al libro.     

Página 10 

Sistema de guía para personas invidentes a través de bluetooth     

2.4 Descripción módulo alimentación  El módulo de alimentación se divide en dos partes diferenciadas.  La primera parte es la encarga de la alimentación del micro y una segunda parte  encargada de la alimentación del módulo bluetooth   

  Figura 4 Esquema eléctrico módulo alimentación  

  Para la alimentación del dispositivo está previsto un conector tipo jack mediante el cual  conectaremos  un transformador externo, con el cual alimentaremos al módulo desde  220Vac a 5Vdc.  También existe la posibilidad de alimentarlo mediante pilas de 9V@1,2Ah la cual nos daría  un funcionamiento continuo de 20h.

   

Página 11 

Sistema de guía para personas invidentes a través de bluetooth        Módulo alimentación módulo bluetooth  Según el diagrama de bloques de la Figura 2 , el bloque 3 se encargará de alimentar al  módulo bluetooth.  La alimentación la obtenemos de un convertidor DC/DC de 4,75v‐18v, del cual se  obtendrá 3,3v.  Se ha elegido el módulo R78AA3.3‐1 ASMD, debido a su alta eficiencia del 84% y una  corriente máxima de 1 A.  Todos los elementos de la tarjeta están escogidos en montaje superficial, para minimizar  la superficie de componentes.  Las características del regulador se pueden ver en el anexo A.  El diseño de componentes asociados al regulador se ha escogido siguiendo las  indicaciones del fabricante.  En el diseño de la PCB se han implementado las huellas de las resistencias R1 y R2, así  como se han incorporado condensadores en la entrada y la salida para estabilizar la  tensión del regulador.   

  Figura 5 Esquema eléctrico DC/DC 

 

   

Página 12 

Sistema de guía para personas invidentes a través de bluetooth    VDD VDD

1

VDD1

JP1 1 8 3 7 9

R2 P1 VCC

2 1 3

D3 D Schottky

330 C9 D1

C10

2 10 5 4 6

DC/DC

100nF

R3 Res3 1K

22uF

Header 3 LED3

C11 C12 Cap Pol3 100nF 47uF

R4 Res3 1K GND

Estas resistencias solo montan cuando queremos dar distinta salida,en este caso R4,3K9

  Figura 6 Esquema módulo alimentación Micro 

  A la entrada tenemos un diodo D3 que evita que tensiones en inversa dañen nuestro  circuito. Este diodo se eligió dada su rápida respuesta (10000V/µs) y tiene una corriente  máxima de 1A.    A continuación tenemos un diodo led para indicar que la tarjeta está alimentada junto con  su resistencia de limitación de corriente R2. 

R2 min 

5v  2,6v  80   0,03mA

Se han colocado dos condensadores a la entrada, C9 (22µF@50v) y C10 ( 100nF@50v).  Son utilizados como filtro y estabilización de tensión a la entrada del regulador.    A la salida del regulador obtenemos 3,3v@1A con la siguiente configuración:   R3 no se monta    R4 de un valor 3K9Ω con un 1% de precisión.  Aunque no se utiliza la huella de R3 en este montaje, se deja la huella por si fuera  necesario en un futuro cambiar la tensión de salida del regulador.  La resistencias montadas en este prototipo son de tamaño 2512, como se menciona en la  sección anterior los encapsulados han sido escogidos con el criterio de facilitar el montaje,  más que una decisión tomada por disipación de potencia.  A la salida se han incluido dos condensadores, C11 (47µF@16v) y C12 (100nF@16v) para  estabilizar la tensión que nos da el regulador a su salida.  Con este montaje se obtiene una tensión continua regulada y estable de 3,3v, a partir de  una tensión continua de entrada que puede variar entre 4,75v y 18v.  Esta alimentación será utilizada para alimentar el micro controlador.  Todos los datasheet de los elementos están en el anexo A.     

Página 13 

Sistema de guía para personas invidentes a través de bluetooth    Módulo alimentación micro controlador  Como se muestra en la Figura 2, el bloque 4 se encarga de alimentar al micro controlador,  que tiene un consumo máximo de 10 mA cuando está en funcionamiento.  Para ello se ha montado un regulador lineal ajustable de bajo drop out ,con una corriente  de 1 A máximo de salida.  El regulador escogido ha sido el AP1117 con una tensión fija a la salida de 3,3v.  Para ello se ha tomado como ejemplo la nota de aplicación recomendada por el  fabricante en el datasheet.  Se ha escogido la opción de implementar en la PCB las resistencias de salida para poder  configurar la tensión de salida.  Si fuera necesario alimentar a distintos módulos con distintas tensiones, no sería  necesario un rediseño de PCB.  La entrada de alimentación de este módulo se ha diseñado de tal forma que podemos  obtener la alimentación desde el exterior mediante jack, o bien desde el módulo de  alimentación de micro a través dos resistencias configurables (R21 y R20) en la PCB.   

  Figura 7 Esquema módulo alimentación micro 

  Como se menciona en el párrafo anterior R20 y R21, son dos resistencias para elegir la  fuente de alimentación desde donde se va a alimentar el regulador lineal.  A continuación tenemos un diodo (D4) para evitar polaridad inversa de la tensión de  alimentación provoque daños en el regulador.  Siguiendo la nota de aplicación se añaden condensadores a la entrada y a la salida para  estabilizar la tensión en el regulador. 

   

Página 14 

Sistema de guía para personas invidentes a través de bluetooth    Finalmente se tiene a la salida dos resistencias con las cuales podemos fijar tensiones  desde 1,5v hasta 5v. 

  Figura 8 Nota de aplicación regulador lineal 

  En el diseño R6 corresponde con R2 en la nota de aplicación.   Montaremos una resistencia de 0Ω con lo que obtendremos una salida fija de 3,3v.   

  Figura 9 Esquema circuito 3,3v fijos 

  Con estos dos módulos se tendrá la alimentación que necesitemos para alimentar nuestra  placa auxiliar.  El datasheet del regulador está recogido en el anexo A del presente documento.   

   

Página 15 

Sistema de guía para personas invidentes a través de bluetooth     

2.5 Micro controlador  Para este proyecto se ha decidido utilizar un micro‐controlador de la familia C8051 de  Silabs .  Dispone de los puertos necesarios para la realización de dicha tarjeta y al conocimiento  que disponemos de su manejo después de haber trabajado con dispositivos similares  durante la carrera.    Las características más destacadas del micro por el cual nos hemos decantado por su  utilización son:   24 entradas/salidas configurables como push‐pull u open drain   Alimentación a 5v   UART   SPI   Memoria  o

2304 bytes de memoria RAM 

o

16Kbytes de memoria Flash 

  En nuestro diseño hemos incorporado un cristal a 22118400Hz para generar la velocidad  UART que deseemos, en nuestro caso 57600 baudios.   

  Figura 10 Prototipo con módulo Bluetooth 

     

Página 16 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 11 Módulo Bluetooth separado de tarjeta de configuración 

  La programación y depuración de los programas serán introducidas a través de un puerto  Jtag preparado en la placa para tal función.   

2.6 Elementos auxiliares  Para configurar o para controlar el funcionamiento del módulo nos ayudaremos de un set  de microswitch.    Mediante la selección de estos interruptores se puede indicar al módulo que mande uno u  otro mensaje.  Estos mensajes estarán predefinidos en una base de datos. Dependiendo de la aplicación  para la que se utilice la aplicación buscara dentro de la base de datos que mensaje debe  de lanzar al usuario. Previamente el usuario ya habrá definido que mensajes quiere  recibir.   

   

Página 17 

Sistema de guía para personas invidentes a través de bluetooth    Se basa en una codificación binaria que esta relacionada con unos valores en la base de  datos.  Su interfaz física en la PCB es la siguiente:   

  Figura 12 Descripción física 

Su implementación en la PCB se realizará con resistencias configuradas a Pull‐up: 

  Figura 13 Implementación PCB 

   

Página 18 

Sistema de guía para personas invidentes a través de bluetooth     

2.7 Módulo Bluetooth  2.7.1

Teoría Bluetooth 

2.7.1.1 Conceptos básicos    Con la intención de clarificar lo que realmente significa e implica esta tecnología,  se exponen a continuación una serie de definiciones empleadas en entornos  Bluetooth:  ‐ Piconet: colección de dispositivos (de 2 a 8) conectados por medio de la  tecnología Bluetooth. Todos los dispositivos tienen la misma implementación.  Sin embargo, al crearse la red una unidad actuará como maestra y el resto como  esclavas mientras dure la conexión.  ‐ Scatternet: cuando en una misma zona hay varias piconets independientes y no  sincronizadas forman lo que se llama una scatternet.  ‐ Dirección Mac: el maestro de la piconet asigna a los esclavos una dirección mac  de 3 bits para distinguir a los miembros de la piconet, de las otras piconets de la  zona que forman la scatternet.  ‐ Modo Activo: modo que se produce cuando hay un intercambio de información.  ‐ Modo Hold: es un modo de ahorro de energía que mantiene en estado de  espera a los esclavos de la piconet cuando no tienen nada que transmitir e incluso  puede ser solicitado por los dispositivos esclavos cuando terminan de enviar  información.  ‐ Modo Sniff: otro modo de ahorro de energía, en el cual el esclavo reduce la  frecuencia con que escucha de la red, reduciendo así su consumo.  ‐ Parked: un tercer modo de ahorro de energía seria este, en el cual el esclavo  pierde su dirección MAC de la piconet, pero sigue sincronizado con esta y solo  escucha la red ocasionalmente para mensajes broadcast.  2.7.1.2 Principios de funcionamiento    Cada dispositivo Bluetooth deberá estar equipado con un microchip (tranceiver)  que transmite y recibe en la frecuencia de 2.45 GHz (2,400 a 2,480 Ghz en saltos  de 1 MHz) que esta disponible en todo el mundo (con algunas variaciones de  ancho de banda en diferentes países, como pasa en España, Francia y     

Página 19 

Sistema de guía para personas invidentes a través de bluetooth    Japón) y que no necesita licencia.  Además de los 7 canales dedicados a la transmisión de datos, están disponibles 3  canales de voz a 64 kbit/s. Cada dispositivo tiene una dirección única de 48 bits,  basada en el estándar IEEE 802.11 para LAN inalámbricas, que le permite formar,  temporalmente, parte de una piconet. Las conexiones son uno a uno con un rango  máximo de 10 metros, aunque actualmente se puede llegar hasta los 100 metros.  El bluetooth esta dotado de un esquema de salto de frecuencia. Utiliza un  sistema que busca una parte no utilizada del espectro. Éste sistema divide la  banda de frecuencia en varios canales de salto, donde, los transceptores, durante  la conexión van cambiando de uno a otro canal de salto de manera pseudo‐ aleatoria. Con esto se consigue que el ancho de banda instantáneo sea muy  pequeño y también una propagación efectiva sobre el total de ancho de banda. En  conclusión, con el sistema FH (Salto de frecuencia), se pueden conseguir  transceptores de banda estrecha con una gran inmunidad a las interferencias.  Este esquema de "frequency hop" (saltos de frecuencia aleatorios) permite a los  dispositivos comunicarse inclusive en áreas donde existe una gran interferencia  electromagnética (el hecho de que los paquetes sean más cortos y los saltos más  rápidos reducen el impacto nocivo de los hornos de microondas u otros  dispositivos que trabajen en la misma banda); además de que se provee de  mecanismos de encriptación (con longitud de la clave de hasta 64 bits) y  autenticación, para controlar la conexión y evitar que cualquier dispositivo, no  autorizado, pueda acceder a los datos y/o modificarlos.  Bluetooth se ha diseñado para operar en un ambiente multi‐usuario. Los  dispositivos pueden habilitarse para comunicarse entre sí e intercambiar datos de  una forma transparente al usuario. Como se utilizan 3 bits para la dirección MAC,  hasta ocho usuarios o dispositivos pueden formar una "piconet" y hasta diez  "piconets"pueden co‐existir en la misma área de cobertura, cada piconet se  identificará por una secuencia de saltos de frecuencia distinta. Bluetooth minimiza  la interferencia potencial al emplear saltos rápidos en frecuencia (1600 veces por  segundo). 

   

Página 20 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 14 Estructura piconet y Scatternet 

  Dado que cada enlace es codificado y protegido contra interferencia y pérdida de  enlace, Bluetooth puede considerarse como una red inalámbrica de corto alcance  muy segura. El sistema Bluetooth permite conexiones punto a punto y punto a  multipunto.  Como en cualquier otro tipo de comunicación vía radio, el aspecto de la  seguridad es un tema delicado que genera muy diversas opiniones. A  continuación se comentan los fundamentos de la seguridad en Bluetooth en lo  referente a las capas bajas de esta tecnología.  El Perfil de Acceso Genérico Bluetooth, que es un marco en el cual se centran  todos los demás perfiles, define tres modos de seguridad:      ‐ Modo de seguridad 1: no seguro.  ‐ Modo de seguridad 2: seguridad impuesta a nivel de servicio.  ‐ Modo de seguridad 3: seguridad impuesta a nivel de enlace.    En el modo 1 no se iniciará ningún proceso de seguridad.  En el modo de seguridad 2 el dispositivo Bluetooth inicia el procedimiento de  seguridad después de que el canal haya sido establecido (capas altas de la pila de  protocolos).    En el modo de seguridad 3 el dispositivo Bluetooth inicia el procedimiento de  seguridad antes de que el canal haya sido establecido (capas bajas de la pila de     

Página 21 

Sistema de guía para personas invidentes a través de bluetooth    protocolos).  Además, existen dos posibilidades en el acceso de dispositivos a diferentes  servicios:    ‐ Dispositivos de confianza  ‐ Dispositivos de no confianza    Los primeros tienen acceso sin restricción a todos los servicios, mientras que los  segundos tienen acceso limitado.    Los servicios también pueden ser catalogados en tres niveles de seguridad:    ‐ Servicios abiertos, a los cuales puede acceder cualquier dispositivo.  ‐ Servicios que requieren sólo autenticación, a los cuales puede acceder  cualquier dispositivo que se haya autenticado, puesto que habrá demostrado  que comparte una clave de enlace con el proveedor del servicio.  ‐ Servicios que requieren autenticación y autorización, a los cuales sólo  tendrán acceso aquellos dispositivos que sean de confianza (y así estarán  marcados en la base de datos del servidor).    El sistema puede proveer seguridad tanto a nivel de aplicación como a nivel de  enlace.   Para mantener la seguridad a nivel de enlace, los parámetros utilizados son:  ‐ La dirección del dispositivo Bluetooth (BD_ADDR).  ‐ La clave de usuario privado de autenticación.  ‐ La clave de usuario privado de cifrado.  ‐ Un número aleatorio (RAND).    La BD_ADDR tiene una longitud fija de 48 bits y es única para cada dispositivo  Bluetooth, siendo asignada por el IEEE.    La clave de autenticación tiene una longitud fija de 128 bits, mientras que la de  cifrado, que normalmente se obtiene a partir de la de autenticación, durante el  proceso 

   

Página 22 

Sistema de guía para personas invidentes a través de bluetooth    de autenticación, tiene una longitud variable, entre 1 y 16 octetos, es decir entre  8 y 128 bits.  El número aleatorio vendrá derivado de un proceso aleatorio o pseudo‐aleatorio  que tendrá lugar en la unidad Bluetooth. Este parámetro puede cambiar  frecuentemente.    2.7.1.3 Arquitectura Bluetooth    La arquitectura de Bluetooth especifica el conjunto de protocolos con los que  pueden operar las distintas aplicaciones. Así, cada aplicación puede operar bajo  una estructura de protocolos definida por cada columna que se presentan en la  figura, o por un conjunto de ellas.    Una nota importante a tener en cuenta es que se han reutilizado los protocolos ya  existentes en capas superiores, en lugar de implementar unos nuevos. Además, la  especificación es abierta, lo que permite el desarrollo de nuevos protocolos de  aplicación en las capas superiores, lo cual se traduce en el desarrollo de una gran  variedad de servicios.   

  Figura 15 Pila de protocolos Bluetooth 

 

   

Página 23 

Sistema de guía para personas invidentes a través de bluetooth    2.7.1.3.1 Bluetooth radio 

La capa radio de Bluetooth define las necesidades de los distintos  dispositivos Bluetooth que opera en la banda ISM a 2,4GHz.  Esta capa se basa en el método de división de espectro conocido como  espectro ensanchado, utilizando 79 saltos de frecuencia en cada MHz,  comenzando en 2,400GHz y acabando en 2,480GHz. En ambos sistemas se  utiliza una banda de guarda entre cada salto, con el fin de respetar las  regulaciones de cada país en cuanto al tema de evitar las transmisiones  fuera de banda.  Se tienen tres clases de dispositivos según la potencia de los mismos:  ‐ Potencia Clase 1. Dispositivos de largo alcance (aprox. 100m), con  una potencia máxima de salida de 20dBm.  ‐ Potencia Clase 2. Dispositivos de medio alcance (aprox. 10m), con  una potencia máxima de salida de 4dBm.  ‐ Potencia Clase 3. Dispositivos de corto alcance (aprox. 10cm), con  una potencia máxima de salida de 0dBm.    La interfaz radio Bluetooth se basa en una antena de potencia nominal de  0dBm.  Cada dispositivo puede variar su potencia de manera opcional. El  equipamiento con control de potencia optimiza la potencia de salida con  comandos procedentes del protocolo de enlace. Esto se hace midiendo el  RSSI (Receiver Signal Strength Indicator), retornando un mensaje indicando  si la potencia debe ser incrementada o decrementada.  La modulación utilizada en la interface radio de Bluetooth es GFSK  (Gaussian Frequency Shift Keying), donde un uno binario se representa con  una desviación positiva de frecuencia, mientras que un cero se expresa  como una desviación negativa de la frecuencia.    2.7.1.3.2 BaseBand 

  El nivel de banda base permite el enlace físico entre unidades dentro de la  piconet. A este nivel se utilizan procedimientos de averiguación y de  localización para sincronizarse. Además, de estas funciones, el nivel de     

Página 24 

Sistema de guía para personas invidentes a través de bluetooth    banda base se encarga de cuestiones referentes al control de errores y de  flujo.  Existen dos tipos de enlaces físicos SCO (sincrónico orientado a la conexión)  y ASL (asíncrono sin conexión) los cuales se comentan a continuación:  SCO (Synchronous Connection‐Oriented). Es un enlace punto a punto  simétrico entre el maestro y un esclavo de la piconet. El maestro mantiene  el enlace usando slots reservados en intervalos regulares. Este canal  básicamente se encarga de transportar la información de voz, ya que está  orientado a conexión. Un maestro es capaz de soportar tres enlaces SCO  simultáneos, lo que quiere decir tres canales de voz simultáneos a 64Kbps.  Por el hecho de ser un enlace orientado a conexión, se supone que los  paquetes llegarán siempre íntegros, por lo que en este enlace nunca se  darán retransmisiones.  ACL (Asynchronous Connection‐Less). Es un enlace punto a multipunto  entre el maestro y todos los esclavos pertenecientes a la piconet. Se  transmiten sobre los slots no reservados por enlaces SCO, donde el maestro  puede establecer un enlace ACL. Al no estar orientado a conexión, se tiene  que ante la posibilidad de pérdidas de paquetes se pueden producir  retransmisiones.    Además de los enlaces físicos descritos del nivel de banda base, existen  canales lógicos, teniendo cinco diferentes. LC (Control Channel) y LM (Link  Manager) se usan en el nivel de enlace, mientras que los canales UA, UI y  US se utilizan para el transporte de información de usuario asíncrona,  isosíncrona y síncrona respectivamente.    2.7.1.3.3 Link Manager Protocol(LMP) 

  El protocolo de administración del enlace (LMP) es el responsable de  configurar las conexiones entre los distintos dispositivos Bluetooth  mediante la trasmisión de distintos mensajes o PDU´s.  Este protocolo tiene diversa funcionalidades entre las que destacan las  siguientes:  ‐ Calidad de soporte de servicio.     

Página 25 

Sistema de guía para personas invidentes a través de bluetooth    ‐ Autenticación y cifrado, intercambiando las claves de encriptación  empleadas en este proceso.  ‐ Control y negociación del tamaño de los paquetes de Banda Base.  ‐ Estado de los dispositivos en una piconet.  ‐ Control de energía de las unidades.  ‐ Supervisión del enlace.    2.7.1.4 Host Controller Interface (HCI)    El Controlador de Interface del host (HCI) se utiliza para separar las capas  Banda base y LMP de los protocolos de transporte con la finalidad de ofrecer a  estos una interfaz de comandos estándar para controlar la banda base y el  gestor de enlace y acceder al estado del hardware de Bluetooth y a los registros  de control. Así pues, utilizando HCI, una aplicación Bluetooth puede acceder al  hardware de Bluetooth sin el conocimiento de ciertos detalles como la  implementación del hardware. 

   

Página 26 

Sistema de guía para personas invidentes a través de bluetooth      2.7.1.5 Logical link control and adaptation layer protocol (L2CAP)    El protocolo de Adaptación y control del enlace lógico (L2CAP) está situado  sobre el protocolo de banda base, estando residente en la capa de enlace de  datos.  Este protocolo provee servicios orientados a conexión y no orientados a  conexión a los protocolos de niveles superiores, incorporando funcionalidades  de multiplexado de datos, segmentación y reensamblaje de los paquetes para  poder enviar  paquetes de mayor tamaño a través de la conexión Bluetooth (de hasta 64KB ),  intercambio de información con respecto a la calidad de la conexión existente  entre los dispositivos, reunión y abstracciones de grupo.    2.7.1.6  RFCOM    El protocolo RFCOM provee emulación de Puerto serie sobre el protocolo  L2PCAP. Además, suministra capacidades de transporte a los niveles superiores  que utilizan el puerto serie como mecanismo de transporte (como por ejemplo  OBEX).    2.7.1.7 Service Discovery Protocol (SDP)    El protocolo de descubrimiento de servicio (SDP) provee un conjunto de  aplicaciones con el fin de descubrir qué servicios están disponibles y determinar  las características de esos servicios. O lo que es lo mismo, define como una  aplicación cliente puede descubrir servicios disponibles y sus características.  Debido a la naturaleza móvil de los dispositivos Bluetooth es necesario la  integración de un protocolo de este tipo ya que los servicios disponibles varían  dinámicamente según la proximidad de los dispositivos. 

   

Página 27 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 16 Service discovery protocol 

  2.7.2

Especificaciones y diseño de Bluetooth 

  ‐ Banda de Frecuencia: desde los 2.4 GHz hasta los 2.5 Ghz (Banda libre  ISM/Industria Scientific Medical), única banda de frecuencia abierta a  cualquier sistema de radio independientemente del lugar del planeta donde  nos encontremos.  ‐ Potencia del transmisor: 1 mW (0 dBm) para 10 metros, y 100 mW (+20  dBm) para 100 metros.  ‐ Tecnología: Espectro Expandido (Spread Spectrum), Secuencia Directa  Híbrida y Saltos en Frecuencia (Hybrid Direct sequence and frequency  hopping).  ‐ Canales máximos de voz: 3 por piconet  ‐ Canales máximos de datos: 7 por piconet  ‐ Velocidad de datos: hasta 721 kbit/s por piconet  ‐ Rango esperado del sistema: 10 metros hasta 100 metros  ‐ Número de dispositivos: 8 por piconet y hasta 10 piconets  ‐ Seguridad: Si, a nivel de enlace y de aplicación  ‐ Alimentación: 2,7 voltios  ‐ Consumo de potencia: desde 30 uA aparcado hasta 8‐30 mA  transmitiendo  ‐ Tamaño del Módulo: 9x9 mm 

   

Página 28 

Sistema de guía para personas invidentes a través de bluetooth    ‐ Interferencia: Bluetooth minimiza la interferencia potencial al emplear  saltos rápidos en frecuencia (1600 veces por segundo).    El protocolo banda base que utiliza Bluetooth combina las técnicas de  conmutación de circuitos y de paquetes para asegurar que los paquetes llegan  en orden, hasta 5 slots (intervalos en los que se divide el canal para el salto de  frecuencia) se reservan para las transmisiones síncronas.  Un aspecto muy importante, dado lo reducido del chip (9x9mm), ya que va a ir  incorporado en dispositivos portátiles alimentado con baterías, es que tenga un  consumo de potencia muy reducido (hasta un 97% menos que un teléfono  móvil). Para ahorrar energía los dispositivos Bluetooth establecen el modo  "hold" en el que no intercambian datos, también pueden activar el modo "sniff"  en el que se escucha con un nivel bajo; en el modo standby los dispositivos no  conectados en una piconet indagan por mensajes cada segundo y medio.    2.7.3

Descripción módulo Bluetooth comercial 

  Para el desarrollo de este PFC nos hemos decidido por un módulo comercial de la  marca Connect Blue OEM 312.  Nuestro modulo está definido dentro de la clase 2, con un alcance de 10m.   La conexión que realizaremos entre el módulo bluetooth y nuestro móvil será  utilizando el protocolo REFCOM.  Se tomo este por tener unas dimensiones reducidas con posibilidad de conectarse  con equipos auxiliares mediante diferentes tipos de conectores.  El módulo lleva integrada la antena y solo será necesario la utilización de un  conector de 20 pines para realizar la conexión con nuestra tarjeta.   

  Figura 17 Módulo bluetooth     

Página 29 

Sistema de guía para personas invidentes a través de bluetooth    El módulo bluetooth está compuesto por los módulos mostrados en el siguiente  esquema de bloques, donde podemos ver los diferentes puertos y funcionalidades  asociados a este.  En nuestra unidad utilizaremos el conector J1.  El módulo estará alimentado mediante el convertidor DC/DC a 3,3v a través del  conector JP2.   

  Figura 18 Diagrama de bloques módulo bluetooth 

   

Página 30 

Sistema de guía para personas invidentes a través de bluetooth      2.7.3.1 Interfaz física entre módulo Bluetooth y PCB  La comunicación con el módulo bluetooth se realizara mediante mensajes compartidos  entre las UART incluidas en el módulo y la UART incluida en el micro controlador.  El diseño de esta parte se muestra a continuación:    R31 VDD3.3 Res3 390

G

D2 TRILED

R

4

5

6

B

R

B

3

2

1

MODE

JP2

S1

R10 100 GND

1

R7

2

U4

A Y

4

B 3

SW-PB

390

VCC

100nF

14 11 7 8 5 12 10 16 18 20

5

C15

4 3 1 2 9 19 13 6 17 15

POWER SAVING

R9

R8 1K R15 100

MODULO BLUETOOTH

R16 100 TX-RX1 1 TEST_POINT

RX-TX1 1 TEST_POINT

R9 solo se monta si queremos utilizar la entrada de power saving

RX-TX

TX-RX

 

Figura 19 Esquema eléctrico conexión módulo bluetooth    Según recomendaciones del fabricante, cuando el módulo se tiene que comunicar con un  host alimentado a 3,3v la interfaz entre el host y el módulo debe hacerse mediante  resistencias de 100Ω. 

   

Página 31 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 20 Interfaz UART con micro controlador    La  conexión del módulo con la tarjeta se realizara con un conector de 20 pines ubicado de  forma estratégica en nuestra tarjeta para evitar chocar con los elementos del resto de la  tarjeta.   

  Figura 21 Conector 20 pines    El módulo nos da distintas señales con las cuales podemos monitorizar el estado del  módulo.  Para ello se ha utilizado un diodo tri led con el cual indicaremos si está comunicando  utilizando el diodo azul. Este diodo no está implementado en prototipo. Se propone como  mejora.      

Página 32 

Sistema de guía para personas invidentes a través de bluetooth    El diodo rojo nos indicara si el módulo esta en modo de transmisión de datos o en modo  comandos AT.  Se habilitará una línea con la cual se podrá poner al módulo en modo de stand by.  Finalmente se habilitará un reset manual para evitar que el módulo se quede en un  estado desconocido donde no responda a mensajes enviados desde el micro.  La descripción de cada uno de los pines es la siguiente: 

 

   

Página 33 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 22 Pin out módulo bluetooth 

   

Página 34 

Sistema de guía para personas invidentes a través de bluetooth    Nuestro diseño se utilizará los pines del 15 al 20 para la comunicación con la UART. En  estos pines la señales necesitan de niveles entre 0‐3v que son las que nos da nuestro  micro controlador.  Para comprobar que la comunicación esta activa hemos incluido un led azul (D2). Además  dentro de la PCB se han habilitado puntos de test para comprobar las señales de  transmisión y recepción.     La sujeción mecánica del módulo bluetooth con la tarjeta se realizara mediante dos  orificios ubicados en el medio de la tarjeta. 

  Figura 23 Dimensiones y fijaciones mecánicas del módulo bluetooth    Para la configuración del módulo se tienen diferentes mensajes utilizando comandos AT  con los cuales se puede configurar vía bluetooth y dejar al módulo preparado para enviar  y recibir datos de forma autónoma.    En nuestra aplicación esta configuración se realizará con una tarjeta de adaptación USB,  facilitada por fabricante como módulo de programación. 

   

Página 35 

Sistema de guía para personas invidentes a través de bluetooth     

3

Diseño SW  3.1 Diseño Android  3.1.1 Descripción    Toda la aplicación puede ser manejada con mensajes de voz y solo será necesaria la  actuación sobre el dispositivo móvil en el momento de recibir la notificación.    Esta aplicación ha sido testada en un teléfono Samsung SII con diferentes versiones  de sistema Android, mínimo requerido es Android  2.3.    3.1.2 Usuarios y tareas del sistema      Usuario:  persona  invidente  que  podrá  realizar  tareas  de  configuración  para  activar/ desactivar las notificaciones deseadas ha ser proporcionadas por los  U suario

agentes externos y activar / desactivar el sistema.   

       

Configuración

ActivarSistema Usuario

  Figura 24 Tareas 

   

Página 36 

Sistema de guía para personas invidentes a través de bluetooth      Dispone de dos tareas:     Configuración: La primera parte se encargara de configurar la aplicación, es decir  especificar la información la cual el usuario este interesado en ser notificado.  Esta se podrá realizar completamente mediante mensajes de voz. La aplicación  ira guiando al usuario a través de mensajes sobre las opciones disponibles en  cada momento. Se podrá realizar tantas veces como se quiera ya que toda la  información quedará registrada en una base de datos donde se almacenaran los  datos configurados, así  como su significado.   

  Figura 25 Diagrama actividad: Configuración 

   

Página 37 

Sistema de guía para personas invidentes a través de bluetooth      Caso de uso: Configuración    Nombre caso uso:

Configuración de la aplicación

Autor:

José Manuel Pérez Ruiz

Fecha:

01/09/2013

Descripción: Permite configurar las opciones de las cuales el usuario desea ser notificado Actores:

Usuario

Flujo Normal: 1.

El actor selecciona la aplicación

2.

El sistema presenta una ventana con las opciones iniciales, de forma visual y auditiva

3.

El actor pronuncia la opción “Configuración”

4.

El sistema le presentará una ventada con las opciones que pueden ser activadas tanto con botones como de forma de reconocimiento de voz. Una secuencia de ejemplo de ventanas para activar la notificación de tiempo de transporte sería la siguiente: 4.1.Transporte 4.2.Tiempo 4.3.Último 4.4.Activar

5.

Seguir con más configuraciones o pronunciar Comenzar para activar el sistema con las opciones ya configuradas

 

   

Página 38 

Sistema de guía para personas invidentes a través de bluetooth       Activar sistema: La segunda parte será la función principal de la aplicación, que  será escuchar los mensajes enviados por la tarjeta bluetooth e identificar si  tienen que ser o no ser informado el usuario del mensaje que se está mandando  mediante la consulta de la base de datos previamente actualizada.   

  Figura 26 Diagrama actividad: Activar sistema    Caso de uso : Activar sistema  Nombre caso uso:

Activar el sistema

Autor:

José Manuel Pérez Ruiz

Fecha:

01/09/2013

Descripción: Permite activar el sistema para estar a la espera de notificaciones Actores: Usuario Flujo Normal: 1.

El actor selecciona la aplicación

2.

El sistema presenta una ventana con las opciones iniciales, de forma visual y auditiva

3.

El actor pronuncia la opción “Comenzar”

     

Página 39 

Sistema de guía para personas invidentes a través de bluetooth    3.1.3 Descripción de bloques principales      APLICACION

PROGRAMA PRINCIPAL

CONFIGURACION

TRANSPORTE

UBICACION

CALLE ESCUCHAR MENSAJES

METRO AUTOBUS CERCANIAS

…..

….

ESTACION NOMBRE TIEMPO

…..

…..

ACTIVAR DES-ACTIVAR

…..

…..

  Figura 27 Flujo de programa Android    En el esquema de bloques podemos ver lo que sería la estructura de una aplicación.  Como podemos ver al principio de la aplicación nos encontraremos con una pantalla  donde deberemos de elegir si comenzamos a utilizar la aplicación o deseamos cambiar la  configuración. 

   

Página 40 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 28 Primera pantalla    En esta primera pantalla se muestran dos botones a la vez que el sistema TTS (text‐to‐ speach) comienza a lanzarnos indicaciones para utilizar la aplicación.    Una vez terminada la explicación sonora de las opciones de cada pantalla, la aplicación  lanza el reconocimiento de voz para que el usuario elija entre una de las opciones  disponible en esa pantalla. 

  Figura 29 Reconocimiento de voz     

Página 41 

Sistema de guía para personas invidentes a través de bluetooth      Esta aplicación que es propia del sistema Android reconoce el comando que el usuario  pide e inicia la acción pertinente que puede ser ir a la siguiente pantalla o salir para  comenzar la aplicación.    Una vez tenemos todo configurado como el usuario desea la aplicación se queda en  escucha de alguna comunicación Bluetooth para dar indicaciones pertinentes al usuario.    Como segunda opción toda la aplicación se puede manejar mediante pulsaciones en las  opciones que aparecen en pantalla, pero no es el objetivo de esta aplicación.    Cuando hemos lanzado la aplicación esta nos indicara que hay un mensaje disponible y  mediante un toque en cualquier parte de la pantalla nos dará la información disponible en  el punto bluetooth que esté más cerca.    3.1.3.1 Descripción clases proyecto Android  3.1.3.1.1

Estructura proyecto Android 

Para  la realización del proyecto Android hemos utilizado la plataforma de  desarrollo ANDROID SDK. En el ANEXO C se describe los pasos necesarios para la instalación de dicho 

IDE.    Una vez instalados todos los sw necesarios así como sus complementos  pasamos a describir todos los archivos que vamos a necesitar para la creación  de nuestro proyecto así como su implementación en este proyecto.    Para empezar a comprender cómo se construye una aplicación Android vamos  a echar un vistazo a la estructura general de un proyecto tipo.  Cuando creamos un nuevo proyecto Android en Eclipse se genera  automáticamente la estructura de carpetas necesaria para poder generar  posteriormente la aplicación. Esta estructura será común a cualquier  aplicación, independientemente de su tamaño y complejidad. 

   

Página 42 

Sistema de guía para personas invidentes a través de bluetooth    En la siguiente imagen vemos los elementos creados inicialmente para un  nuevo proyecto Android:   

  Figura 30 Estructura carpetas Android    Describamos los elementos principales.    Carpeta /src/  Contiene todo el código fuente de la aplicación, código de la interfaz gráfica,  clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico  de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del  paquete java definido.   

  Figura 31 Carpeta src    En nuestro proyecto en esta carpeta tenemos recopilados todos los códigos de  cada pantalla. En la siguiente tabla se describen cada una de las pantallas y  clases necesarias en nuestra aplicación.    Nombre Clase 

Descripción  Clase necesaria para 

AdminSQLiteOpenHelper.java 

poder generar nuestra  base de datos 

BluethootActivity.java 

   

Activity para inicializar el  servicio Bluetooth 

Página 43 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Clase que genera el  servicio dentro de la 

BluetoothChatService.java 

aplicación Android para  poder utilizar el  bluetooth del dispositivo  Clase que no tiene  asignada una ventana 

ClaseDatos.java 

donde podamos actuar.  Con esta clase creamos  una base de datos  Pantalla donde  indicamos a la aplicación 

Pantalla_Activacion.java 

que propiedad se debe  activar o desactivar en la  base de datos  Pantalla que nos permite  configurar las diferentes  

Pantalla_calle_caracteristicas_cajero.java 

características de cajero:  Tipo  Nombre  Estado  Pantalla que nos permite  configurar los diferentes  características de las 

Pantalla_calle_caracteristicas_obras.java 

obras:  Tipo  Duración  Protecciones 

   

Página 44 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar los diferentes  características de los 

Pantalla_calle_caracteristicas_semaforo.java 

semáforos:  Estado  Duración  Distancia  Pantalla que nos permite  configurar a que  distancias de semáforos 

Pantalla_calle_distancia_semaforo.java 

queremos que nos  informe:  Más de diez metros  Menos de diez metros  Menos de cinco metros  Pantalla que nos permite  configurar los tiempo de 

Pantalla_calle_duracion_obras.java 

duración de las obras:  Un día  Dos días  Sin determinar  Pantalla que nos permite  configurar los tiempo de  duración de los 

Pantalla_calle_duracion_semaforo.java 

semáforos:  Un minuto  Menos de un minuto  Menos de treinta seg. 

   

Página 45 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar las diferentes  

Pantalla_calle_estado_cajero.java 

características de cajero:  Funciona  Averiado  Otro  Pantalla que nos permite  configurar los diferentes   estados de los 

Pantalla_calle_estado_semaforo.java 

semáforos:  Funciona  Averiado  Otro  Pantalla que nos permite  configurar las diferentes  

Pantalla_calle_nombre_cajero.java 

nombres de cajero:  Santander  BBVA  Otro  Pantalla que nos permite  configurar las diferentes   características de las 

Pantalla_calle_protecciones_obras.java 

protecciones:  Valla  Zanja  Andamio  Pantalla que nos permite  configurar las diferentes   características del tipo 

Pantalla_calle_tipo_cajero.java 

de cajero:  Interior  Exterior  Otros 

   

Página 46 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar los diferentes 

Pantalla_calle_tipo_obras.java 

tipos de obras:  Edificio  Calle  Otros  Pantalla que nos permite  configurar los diferentes 

Pantalla_Destino.java 

tipos de destinos:  Nombre  Horario  Incidencia  Pantalla que nos permite  configurar los diferentes 

Pantalla_Estacion.java 

tipos de estaciones:  Nombre  Horario  Incidencia  Pantalla que nos permite  configurar los diferentes  tipos horario de apertura 

Pantalla_tipo_supermercado.java 

en los supermercados:  Ocho  Doce  Veinticuatro  Pantalla que nos permite  configurar las diferentes  características de las 

Pantalla_ubicacion_caracteristicas_farmacia.java 

farmacias :  Tipo  Día laboral  Horario 

   

Página 47 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar las diferentes  características de los 

Pantalla_ubicacion_caracteristicas_supermercado.java 

supermercados :  Tipo  Día laboral  Horario  Pantalla que nos permite  configurar las diferentes 

Pantalla_ubicacion_día_laboral.java 

jornadas de trabajo:  Lunes a viernes  Fines de semana  Todos los días  Pantalla que nos permite  configurar los diferentes  tipos horario de apertura 

Pantalla_ubicacion_farmacia.java 

en las farmacias:  Ocho  Doce  Veinticuatro  Pantalla que nos permite  configurar los diferentes  tipos horario de 

Pantalla_ubicacion_horario.java 

apertura:  Mañana  Tarde  Todo el día 

   

Página 48 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar los diferentes  tipos horario de apertura 

Pantalla_ubicacion_tipo_farmacia.java 

en las farmacias:  Ocho  Doce  Veinticuatro  Pantalla que nos permite  configurar los diferentes 

Pantalla_ubicacion_tipo_supermercado.java 

tipos de supermercado:  Vegetariano  Nacional  Internacional  Pantalla que nos permite  configurar los diferentes  tipos de opciones en la 

PantallaCalle.java 

calle:  Semáforo  Obras  Cajero  Pantalla donde se nos  permite elegir que  servicio queremos 

PantallaServicios.java 

configurar:  Transporte  Calle  Ubicación  Pantalla donde  configuramos las 

PantallaTiempo.java 

propiedades de tiempo:  Último   Siguiente  Incidencia 

   

Página 49 

Sistema de guía para personas invidentes a través de bluetooth    Nombre Clase 

Descripción  Pantalla que nos permite  configurar los diferentes 

PantallaTransporte.java 

tipos de transporte :  Metro   Autobús  Cercanías  Pantalla donde nos  permite elegir que factor  queremos configurar en 

PantallaTransporte2.java 

los transportes:  Tiempo  Estación  Destino  Pantalla que nos permite  configurar los diferentes 

PantallaUbicacion.java 

tipos de ubicaciones :  Restaurantes  Supermercados  Farmacias  Pantalla principal  de  inicio de aplicación. Aquí 

Ventanas.java 

se decide que acción se  toma si lanzar o  configurar. 

    Carpeta /res/   Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes,  vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán  distribuir entre las siguientes carpetas:  

/res/drawable/. Contienen las imágenes de la aplicación. Se puede  dividir en /drawable‐ldpi, /drawable‐mdpi y /drawable‐hdpi para 

   

Página 50 

Sistema de guía para personas invidentes a través de bluetooth    utilizar diferentes recursos dependiendo de la resolución del  dispositivo.   

/res/layout/. Contienen los ficheros de definición de las diferentes  pantallas de la interfaz gráfica. Se puede dividir en /layout y /layout‐ land para definir distintos layouts dependiendo de la orientación del  dispositivo.   En nuestra aplicación vamos a definir los siguientes layouts:  Descripcion Layouts  activity_clase_datos.xml  activity_connexion_bluetooth.xml  activity_main.xml  activity_pantalla__activacion.xml  activity_pantalla__destino.xml  activity_pantalla__estacion.xml  activity_pantalla_calle_caracteristicas_cajero.xml  activity_pantalla_calle_caracteristicas_obras.xml  activity_pantalla_calle_caracteristicas_semaforo.xml  activity_pantalla_calle_distancia_semaforo.xml  activity_pantalla_calle_duracion_obras.xml  activity_pantalla_calle_duracion_semaforo.xml  activity_pantalla_calle_estado_cajero.xml  activity_pantalla_calle_estado_semaforo.xml  activity_pantalla_calle_nombre_cajero.xml  activity_pantalla_calle_protecciones_obras.xml  activity_pantalla_calle_tipo_cajero.xml  activity_pantalla_calle_tipo_obras.xml  activity_pantalla_ubicacion_caracteristicas.xml  activity_pantalla_ubicacion_día_laboral.xml  activity_pantalla_ubicacion_farmacia.xml  activity_pantalla_ubicacion_horario.xml  activity_pantalla_ubicacion_restaurante.xml  activity_pantallla_ubicacion_supermercado.xml  pantalla_ubicacion_tipo_farmacia.xml 

   

Página 51 

Sistema de guía para personas invidentes a través de bluetooth     

pantallacalle.xml 

 

pantallainicio.xml  pantallametro.xml  pantallaservicios.xml  pantallatiempo.xml  pantallatransporte.xml  pantallatransporte2.xml  pantallaubicacion.xml 



/res/anim/. Contiene la definición de las animaciones utilizadas por la  aplicación.  



/res/menu/. Contiene la definición de los menús de la aplicación.  



/res/values/. Contiene otros recursos de la aplicación como por  ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores  (colors.xml), etc.  



/res/xml/. Contiene los ficheros XML utilizados por la aplicación.  



/res/raw/. Contiene recursos adicionales, normalmente en formato  distinto a XML, que no se incluyan en el resto de carpetas de recursos.  

 

  Figura 32 Carpeta res        Carpeta /gen/   Contiene una serie de elementos de código generados automáticamente al  compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria  de compilación de Android genera por nosotros una serie de ficheros fuente en  java dirigido al control de los recursos de la aplicación.     

Página 52 

Sistema de guía para personas invidentes a través de bluetooth     

  Figura 33 Carpeta gen    El más importante es el que se puede observar en la imagen, el fichero R.java,  y la clase R.  Esta clase R contendrá en todo momento una serie de constantes con los IDs  de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma  que podamos acceder fácilmente a estos recursos desde nuestro código a  través de este dato.     Carpeta /assets/  Contiene todos los demás ficheros auxiliares necesarios para la aplicación (y  que se incluirán en su propio paquete), como por ejemplo ficheros de  configuración, de datos, etc.  La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos  en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y  se deberá acceder a ellos con los diferentes métodos de acceso a recursos.  Para los segundos sin embargo no se generarán IDs y se podrá acceder a ellos  por su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro  según las necesidades de nuestra aplicación.      Fichero AndroidManifest.xml  Contiene la definición en XML de los aspectos principales de la aplicación,  como por ejemplo su identificación (nombre, versión, icono, …), sus  componentes (pantallas, mensajes, …), o los permisos necesarios para su  ejecución. Aparte de otras cosas, AndroidManifest.xml se encarga de :     

Página 53 

Sistema de guía para personas invidentes a través de bluetooth    

Nombra el paquete JAVA. Cada paquete JAVA lleva un identificador  único en la aplicación.  



Describe cada uno de los componentes de la aplicación — activities,  services y broadcast receivers junto con content providers de los que  nuestra aplicación hace uso. Nombra las clases que implementan cada  uno de sus componentes y publica sus posibles opciones. Si necesitas  acceder a una Activity o un Intent, lo declaramos.  



Determina que procesos implementa.  



Declara los permisos que necesita nuestra aplicación.  



Declara, así mismo, que permisos requieren otras partes para  interactuar con nuestra aplicación.  



Permite definir niveles mínimos y máximo de SDK en los que nuestra  aplicación será compatible.  



Lista las librerías que son enlazadas a nuestra aplicación.  

En nuestra aplicación vamos a solicitar permisos para acceder a internet y  tener acceso para activar el bluetooth del dispositivo.     ‐‐> Permite a las 

aplicaciones abrir sockets de red     ‐‐> Permite que 

las aplicaciones se conecten a dispositivos con Bluetooth emparejados     ‐‐> 

Permite a las aplicaciones para descubrir y emparejar dispositivos Bluetooth    Otra opción que vamos a definir en nuestro archivo manifest será que todas las  pantallas definidas en el layout solo van a tener una posición determinada, es  decir no se podrá utilizar la opción de rotar la pantalla que viene  predeterminada en la mayoría de los dispositivos móviles. Esto lo  implementamos en el archivo manifest incluyendo el siguiente comando:    android:screenOrientation="portrait"   

 

   

Página 54 

Sistema de guía para personas invidentes a través de bluetooth    3.1.3.1.2

Subir aplicación a Google Play 

Una vez la aplicación esta depurada y sin errores el plugin de Eclipse nos  proporciona la herramienta para generar la aplicación, que podremos  descargar en nuestro dispositivo y se podrá instalar. Esta aplicación tiene la  extensión “.apk”.  Básicamente para generar esta aplicación se debe de rellenar los siguientes  datos:    

Alias: Nombre con el que queremos que se identifique 



Password: clave para crear la aplicación 



Confirm: Se debe de confirmar el password anterior 



Validity(years):Este campo se debe de rellenar con un mínimo de 25  años 



First and Last Name: Nombre del responsable del desarrollo 



Organizational Unit and Organization: Empresa y unidad empresarial  



City or Locality: Ciudad donde se hizo el desarrollo 



State or Province: Ciudad donde se hizo el desarrollo 



Country Code(XX): 

   

   

Página 55 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 34 Formulario para generar fichero .apk 

   

Página 56 

Sistema de guía para personas invidentes a través de bluetooth    Una vez generada debemos de accede a nuestra cuenta como desarrolladores   en la siguiente dirección:    https://play.google.com/apps/publish/signup/    Para tener acceso debemos de pagar una cuota de 25$. Tendrás que rellenar la  información de tu aplicación que se indica a continuación:    Subir recursos:  Archivo APK:  El tamaño máximo admitido de un único archivo APK es 50 MB. Se puede  utilizar archivos de expansión para subir recursos adicionales como, por  ejemplo, gráficos. Si un único archivo APK no es suficiente para todos los  dispositivos que se desean, se puede subir varios archivos APK en la misma  entrada de aplicación para que cada uno se encargue de la configuración de un  dispositivo diferente.  Hay que tener en cuenta que los nombres de paquetes de los archivos de  aplicaciones son únicos y permanentes, por lo que debes elegirlos con cuidado.  Los nombres de paquetes no se pueden eliminar ni reutilizar en el futuro. Si se  pierde tu almacén de claves, habrá que publicar la aplicación con un nuevo  nombre de paquete y una nueva clave. También se debe actualizar la  descripción de la aplicación original y eliminar su publicación.    Borrador de archivo APK de aplicación  Al subir un archivo APK, este se puede guardar como un borrador mientras  editas el resto de aspectos de la lista. Habrá un botón para guardar el borrador  en el cuadro de diálogo después de subir el archivo APK. Si se necesitara añadir  una nueva versión del archivo APK, pero no quieres publicarla, accede de  forma inmediata a Google Play, cambia al modo avanzado y guarda tu nuevo  archivo APK como borrador.    Capturas de pantalla  Son obligatorias dos capturas de pantalla y se pueden utilizar otras seis de  forma opcional.  Especificación de detalles     

Página 57 

Sistema de guía para personas invidentes a través de bluetooth    Idioma: sirve para indicar el idioma de tu aplicación. El idioma  predeterminado es el inglés de EE.UU. La lista de idiomas irá aumentando a  medida que los dispositivos con la tecnología de Android estén disponibles  en más idiomas. Asimismo, se puede incluir traducciones del nombre y de la  descripción de la aplicación para promocionarla para usuarios que hablen  otros idiomas. Las traducciones se mostrarán en Google Play.  Nombre: es el nombre de tu aplicación tal como te gustaría que apareciera  en Google Play. Se puede añadir un nombre por idioma.  Descripción: es la descripción de tu aplicación que se verá en Google Play.  Utiliza la función de traducción para traducir la descripción de tu aplicación a  otros idiomas. En este campo, puedes utilizar un máximo de 4.000  caracteres.  Cambios recientes: la función de cambios recientes ofrece la oportunidad de  añadir notas sobre los cambios específicos de la versión más reciente de tu  aplicación. Se utilizara el campo de cambios recientes para informar a tus  usuarios sobre los cambios que has hecho en la aplicación. Más información  sobre la función de cambios recientes  Texto promocional: es el texto situado junto al gráfico promocional en  lugares destacados de Google Play.  Tipo de aplicación: Google Play se divide en dos tipos principales de  aplicaciones: Aplicaciones y Juegos.  Categoría: Se debe elegir una categoría para la aplicación. Consulta más  información sobre las categorías.    Opciones de publicación  Ubicaciones:   Son las ubicaciones en las que se puede distribuir tus aplicaciones.  No todas las ubicaciones de la lista actual tienen usuarios con dispositivos  con la tecnología de Android.  Se puede seleccionar ubicaciones de forma individual o la opción Todas las  ubicaciones actuales y futuras. Esta opción significa que se añadirán más  ubicaciones de distribución a medida que las vayamos habilitando para la  aplicación.   Nota: en este momento, solo puedes vender aplicaciones a usuarios que se  encuentren en estas ubicaciones.     

Página 58 

Sistema de guía para personas invidentes a través de bluetooth      Información de contacto  Se debe seleccionar un canal de asistencia para tu aplicación (por ejemplo,  sitio web, correo electrónico o teléfono).  Los usuarios de Google Play verán esta información.  Se puede seleccionar varios canales de asistencia.    3.1.3.1.3

Base de datos 

Para la realización de este proyecto hemos implementado una pequeña base  de datos donde iremos almacenando todos los registros que el usuario quiera  que se tengan en cuenta mientras la aplicación está funcionando.  En Android tenemos la posibilidad de almacenar esta información de tres  maneras distintas:  

Preferencias 



Fichero 



Base de datos SQLite 

  Decidimos utilizar el método de base de datos, ya que a nivel didáctico el uso  de esta herramienta nos permite utilizar los conocimientos adquiridos  durante la carrera y aplicarlos en un caso real.    3.1.3.1.4

SQLite 

  SQLite es una base de datos de código abierto. SQLite compatible con las  funciones de base de datos relacionales estándar, como la sintaxis SQL,  transacciones y declaraciones preparadas. La base de datos requiere poca  memoria en tiempo de ejecución (aprox. 250 Kb), que hace que sea un buen  candidato a ser incorporado en otros tiempos de ejecución.

SQLite está integrado en todos los dispositivos Android. Utilizando una base  de datos SQLite en Android no requiere un procedimiento de configuración o  administración de la base de datos.        

Página 59 

Sistema de guía para personas invidentes a través de bluetooth    Sólo se tiene que definir las instrucciones SQL para crear y actualizar la base  de datos.

El acceso a una base de datos SQLite implica el acceso al sistema de archivos.  Esto puede ser lento. Por lo tanto, se recomienda llevar a cabo las  operaciones de base de datos de forma asíncrona.   3.1.3.1.5

Estructura Base de datos 

En nuestra base de datos vamos a crear una tabla de nombre “datos” donde  almacenaremos  los siguientes datos:    

Código 



Descripción 



Acción 



Estado 



Frase   

La base de datos se crea la primera vez que se lanza la aplicación, carga los  datos desde un fichero de texto y queda instalada con todos los valores por  defecto.  Vamos a crear una tabla simple sin clave primaria, ya que en  SQLite para  Android esto no pude ser implementado y además la complejidad de esta  base de datos no lo requiere.    Dentro de la aplicación tenemos la posibilidad de añadir nuevos registros,  actualizar, modificar y borrar. 

   

Página 60 

Sistema de guía para personas invidentes a través de bluetooth   

3.2 Diseño C  3.2.1 Descripción  La aplicación programada en C se usa básicamente  para controlar las comunicaciones  UART del micro y la  lectura los datos recibidos por un puerto  donde se encuentra, en  este caso un sw de micro interruptores de 8bits.  3.2.2 Diagrama de bloques    INICIO

INICIALIZAMOS PUERTOS

INICIALIZAMOS UART

LEEMOS PUERTO

ESCRIBIMOS DATO UART

  Figura 35 Diagrama de flujo programa C en micro    3.2.3 Descripción del funcionamiento     La programación del micro se basa en leer los datos que el usuario ha configurado en los  microswitch para identificar un servicio.    En un principio cada dispositivo solo podrá mandar un mensaje al mismo tiempo, aunque  con un dispositivo puedas mandar hasta 128 mensajes distintos.     

Página 61 

Sistema de guía para personas invidentes a través de bluetooth      Estos mensajes pueden ser redefinidos en cualquier momento ya que el dispositivo  bluetooth manda códigos que serán identificados y decodificados por la aplicación móvil.    Para cada caso y dependiendo de la aplicación móvil que tengamos activa en ese  momento, un código puede significar una cosa u otra.    Con esto conseguimos una independencia del hw con respecto al sw, lo cual nos  permitiría que el diseño hw nos sirviera para cualquier entorno.   Esta filosofía nos permitiría en un hipotético caso de uso masivo, abaratar el producto hw,  ya que no necesitaríamos de versiones distintas para entornos distintos.    El micro realiza una lectura de los microswitch cada minuto, con lo cual cada minuto  enviara un código que será identificado por los móviles que están en su radio de acción.    En el ANEXO D se puede ver el código que corresponde con la aplicación C descargada en  el micro.    Para el desarrollo de la aplicación se ha utilizado el IDE que Silabs nos ofrece así como el  USB debuger, que mediante Jtag podemos realizar la descarga y depuración del programa.   

   

Página 62 

Sistema de guía para personas invidentes a través de bluetooth     

4

Presupuesto 

Durante la realización de este proyecto no se parito de ningún coste objetivo. Partiendo  de esta base presentamos a continuación una tabla donde se describen el costo de una  unidad y lo que costarían 100und    COMPONENTE 

VALOR 

C1 

4.7uF 

1210

148-070

0,80 €

0,64 € 

C2 

100n 

1210

698‐3780

0,43 €

0,28 € 

C3 

4.7uF 

1210

148-070

0,80 €

0,64 € 

C4 

100n 

1210

698‐3780

0,43 €

0,28 € 

C5 

20pF 

805

698‐3358

0,15 €

0,08 € 

C6 

20pF 

805

698‐3358

0,15 €

0,08 € 

C9 

22uF 

5x6.3

737‐9722

0,18 €

0,15 € 

C10 

100n 

1210

698‐3780

0,43 €

0,28 € 

C11 

47uF 

6.3x5.4

628‐3992

0,23 €

0,20 € 

C12 

100n 

1210

698‐3780

0,43 €

0,28 € 

C13 

10uF 

5x6.3

737‐9659

0,09 €

0,07 € 

C14 

22uF 

5x6.3

737‐9722

0,18 €

0,15 € 

C15 

100n 

1210

698‐3780

0,43 €

0,28 € 

C16 

100n 

1210

698‐3780

0,43 €

0,28 € 

C17 

1uF 

1812

500‐2405

2,99 €

2,30 € 

D3 

Schottky 

DO‐214AC

764‐5543

0,23 €

0,20 € 

D4 

Schottky 

DO‐214AC

764‐5543

0,23 €

0,20 € 

R1 

10MΩ 

603

678‐9692

0,02 €

0,02 € 

R2 

330Ω 

2512

224‐0345

0,18 €

0,09 € 

R3 

NM 

0€

0€ 

R4 

60K4Ω 

0,33 €

0,25 € 

R5 

NM 

0€

0€ 

R6 

0Ω 

2512

683‐6552

0,60 €

0,51 € 

R7 

390 

2512

224‐0351

0,24 €

0,21 € 

R8 

100 

1206

223‐2120

0,02 €

0,02 € 

R9 

NM 

0€

0€ 

R10 

100 

1206

223‐2120

0,02 €

0,02 € 

R11 

100 

1206

223‐2120

0,02 €

0,02 € 

   

HUELLA  REFERENCIA precio 1und precio 100und 

805

708‐6666

Página 63 

Sistema de guía para personas invidentes a través de bluetooth    R12 

100 

1206

223‐2120

0,02 €

0,02 € 

R13 

100 

1206

223‐2120

0,02 €

0,02 € 

R14 

100 

1206

223‐2120

0,02 €

0,02 € 

R15 

100 

1206

223‐2120

0,02 €

0,02 € 

R16 

100 

1206

223‐2120

0,02 €

0,02 € 

R17 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R18 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R19 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R20 

0Ω 

2512

683‐6552

0,60 €

0,51 € 

R21 

NM 

0€

0€ 

R22 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R23 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R24 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R25 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R26 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R27 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R28 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

R29 

1KΩ 

2512

224‐0395

0,09 €

0,08 € 

U1 

3,3V 

TO252

710‐6225

0,30 €

0,23 € 

U2 

5V 

DIP SMD

706‐3963

9,77 €

9,07 € 

U3 

MICRO 

DIP28

C8051F410

10,00 €

8,00 € 

JP1 

ALIMENT 

476‐157

3,29 €

2,89 € 

JP2 

BLUETOOTH 

2x10

673‐7540

2,46 €

2,12 € 

JP3 

DEBUG 

2x5

673‐7332

0,84 €

0,70 € 

SW1 

SW1 

SMD

378‐6325

0,38 €

0,29 € 

SW2 

SW2 

SMD

378‐6325

0,38 €

0,29 € 

SW3 

SW8 

SWx8

534‐764

1,67 €

1,34 € 

X1 

X1 

22184000

547‐6569

0,46 €

0,35 € 

PCB 

10,00 €

3,00 € 

Modulo Bluetooth

45,00 €

35,00 € 

TOTAL 

96,24 €

72,27 € 

 

   

Página 64 

Sistema de guía para personas invidentes a través de bluetooth     

5

Conclusiones 

  El  presente proyecto ha sido diseñado con herramientas de última tecnología y teniendo  como uno de los objetivos básicos, presentarse ante los diversos actores, como un  sistema de manejo sencillo y amigable. El producto final cumple con esta premisa.    También dichas herramientas permitieron cumplir eficientemente con el objetivo  principal que ha sido el facilitar a personas con alguna discapacidad tanto física como  mental de una aplicación para dotarles de capacidades que antes no disponían  permitiendo que se desenvuelvan en un entorno hostil para ellos.    Java(Android), el lenguaje elegido para el desarrollo de la aplicación ha sido muy bueno  para  lograr  los  objetivos  planteados,  por  su  facilidad  de  uso,  sus  librerías  ya  implementadas,  etc.  Aunque  se  ha  comprobado  que  no  hay  que  conocer  en  detalle  un  lenguaje,  sino  que  sabiendo  lenguajes  orientados  a  objetos  como  los  aprendidos  en  la  universidad,  uno  es  capaz  de  manejar  otros  lenguajes,  no  hay  duda  que  una  vez  familiarizados con Java los tiempos de programación se vieron reducidos enormemente.    Java brinda enormes facilidades al programador. Por ejemplo al estar tan extendido existe  una  comunidad  de  Java  muy  grande  que  escribe  y  comenta  sus  problemas  por  Internet  favoreciendo la resolución de problemas. Por otro lado al ser tan extenso el mundo Java  uno no pararía de adentrarse nunca por completo en éste lenguaje.     Las APIs de Java(Android) me han proporcionado un acceso rápido y sencillo para conocer  los métodos de cada objeto con los que he trabajado en el desarrollo de la aplicación.     Trabajar con Eclipse no ha sido fácil al comienzo. Eclipse es un entorno integrado libre, en  el  que  aún  queda  por  desarrollar.  A  lo largo  de  la  realización  del  proyecto  la  versión  de  Eclipse ha cambiado de Release. La última Release utilizada ha sido 4.2.1.     La utilización de base de datos  ha sido un ejercicio de aplicación de conocimientos  adquiridos en la carrera, ya que realmente la pequeña base de datos utilizada en este     

Página 65 

Sistema de guía para personas invidentes a través de bluetooth    proyecto conlleva un sobre esfuerzo, que para la posible expansión de las funcionalidades  de la aplicación resultara de gran utilidad el tenerla ya implementada..      La arquitectura implementada en la aplicación ha sido estudiada detalladamente. Ese  estudio previo proporcionó una arquitectura flexible capaz de incorporar nuevas  funcionalidades con facilidad, y sobretodo capaz de aceptar cambios.     A nivel HW el desarrollo de una tarjeta capaz de intercomunicarse con un elemento  comercial y de proveer los medios físicos para interactuar con el micro así como con un  elemento externo como es en nuestro caso un Smartphone,  cumple con las expectativas  creadas al inicio del proyecto.    La utilización de herramientas profesionales para el diseño de la PCB, como ha sido la  utilización de Altium, así como intervenir en todas las fases de producción (concepción,  diseño, fabricación y test), ha servido para ver claramente en que aspectos se deben de  prestar mayor atención en cada fase. Como por ejemplo en la elección de componentes y  fabricante, teniendo en cuenta precios y tiempos de entrega, que llevados al mundo  profesional serán los que dictaminen si un proyecto es viable o no. 

   

Página 66 

Sistema de guía para personas invidentes a través de bluetooth         

6

Referencias 

  Referencia 1: http://www.eclipse.org/downloads   Referencia 2: http://developer.android.com/sdk/index.html    Referencia 3: http://www.pcbcart.com/    Referencia 4: http://developer.android.com/sdk/index.html   

7

Bibliografía 

  

Learning Android. O´Really. Marco Gargenta. Estados Unidos Mar.2011 



Beginning  Android™  Application  Development.  Published  by  Wiley  Publishing,  Inc.Copyright © 2011 by Wiley Publishing, Inc., Indianapolis, Indiana 



Android Programming Tutorials by Mark L. Murphy. Copyright © 2009‐2011  Printed in the United States of America 

   

Página 67 

Sistema de guía para personas invidentes a través de bluetooth   

ANEXO A 

  Figura 36 Especificaciones DC/DC R783.3‐1.0A SMD 

   

   

Página 68 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 37 Dimensiones DC/DC R783.3‐1.0A SMD 

 

 

  Figura 38 Caracteristicas del D0‐214AC 

   

Página 69 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 39 Dimensiones de Do‐214AC 

 

   

Página 70 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 40 Especificaciones regulador lineal AP117 

  Figura 41 Encapsulado AP117 

   

Página 71 

     

ANEXO B 

  Figura 42 Esquema de Bloques 

Sistema de guía para personas invidentes a través de bluetooth 

Página 72 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 43 Fuente alimentación 

   

Página 73 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 44 Debug 

   

Página 74 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 45 Módulo Bluetooth 

   

Página 75 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 46 Micro‐switch 

   

Página 76 

     

ANEXO C   

Configuración de Eclipse y Android   En este anexo vamos a dar una guía para la instalación del IDE de desarrollo ANDROID SDK, necesario para la realización de este proyecto.

Paso 1: Requerimientos de Android

Sistemas operativos soportados:    

Windows XP (32‐bit), Vista (32‐ or 64‐bit), or Windows 7 (32‐ or 64‐bit)  



Mac OS X 10.5.8 or later (x86 only)  



Linux (tested on Ubuntu Linux, Lucid Lynx)  o

GNU C Library (glibc) 2.7 or later is required.

o

On Ubuntu Linux, version 8.04 or later is required.

o

64‐bit distributions must be capable of running 32‐bit applications.  For information about how to add support for 32‐bit applications,  see the Ubuntu Linux installation notes.   

Requerimientos Hardware: Android requiere de almacenamiento en disco para todos sus componentes que deben ser elegidos al instalarlo. La siguiente tabla proporciona una idea aproximada de las necesidades de espacio de disco a esperar, sobre la base de los componentes que va a utilizar.

  Figura 47 Requerimientos Hardware

Sistema de guía para personas invidentes a través de bluetooth 

Página 77 

Sistema de guía para personas invidentes a través de bluetooth   

Paso 2: Descarga y Instalación de Eclipse Si aún no se tiene instalado Eclipse, se puede descargar desde la dirección mostrada en la

Referencia 1.Se recomienda descargar la versión "Eclipse IDE for Java Developers". La instalación consiste simplemente en descomprimir el zip en la ubicación deseada.

Paso 3: Descargar el SDK de Android.

Referencia 2 Paso 4: Descargar El Plugin Android Para Eclipse.

Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Se debe de descargar mediante las opciones de actualización de Eclipse, siguiendo estos pasos:

1) Ejecutar Eclipse 2) Dirigirse a "Help > Install new software" 3) En el cuadro que aparece, hacer click a "Add.." que está en el lado derecho. 4) En el nuevo cuadro Ingresar "ADT Plugin" en NAME y en LOCATION ingresar este link: “https://dl-ssl.google.com/android/eclipse/”, click OK. 5) En el cuadro de diálogo de software disponible, se debe seleccionar e instalar el paquete completo Developer Tools, formado por Android DDMS y Android Development Tools. 6) En la siguiente ventana, se vera una lista de las herramientas para ser descargadas. Hacer clic en Siguiente. 7) Lea y acepte los acuerdos de licencia, a continuación, se debe hacer clic en Finalizar 8) Cuando se finalice la instalación, reinicie Eclipse. Paso 5: Configurar el Plugin ADT.

   

Página 78 

Sistema de guía para personas invidentes a través de bluetooth    Una vez que se haya descargado correctamente ADT como se describe anteriormente, el siguiente paso es modificar sus preferencias de ADT en Eclipse para que apunte al directorio de Android SDK, debemos seguir los siguientes pasos. 1)

Abrir Eclipse, seleccionar Windows> Preferences.

2)

Seleccione Android en el panel izquierdo.

3)

Se debe de agregar la ruta de nuestro SDK. Hacer click en Browse y localizar nuestra carpeta "android-sdk-windows"

4)

Hacer click en Apply, y despues en OK.

  Figura 48 Plugin ADT Paso 6: Descargar los targets necesarios. Además del SDK de Android comentado pasos atrás, también debemos descargar los llamados SDK Targets de Android, que no son más que las librerías necesarias para desarrollar en cada una de las versiones concretas de Android. Para ello, debemos de seguir los siguientes pasos:

1)

Abrir Eclipse, acceder a " Windows> Android SDK and AVD Manager".

2)

En el lado izquierdo click a "Available Packages" y seleccionar e instalar todos los paquetes deseados.

   

Página 79 

Sistema de guía para personas invidentes a través de bluetooth   

  Figura 49 Paquetes Disponibles

(En la imagen, se muestra la seccion "Installed Packages", como ya se instalaron todos del "Available Package", se pasaron ahi.)

   

Página 80 

Sistema de guía para personas invidentes a través de bluetooth   

Paso 7: Crear y Configurar un AVD(Emulador de Android)

  Figura 50 Pantalla AVD

Todos los proyectos que se hacen para Android se tendrán que ejecutar desde el emulador que proporciona Google, antes de probarlo en un teléfono. Ya que es 'más' rápido instalar la aplicación en él, que en el smartphone. Antes de poder lanzar el emulador, se debe crear. Para crear un AVD desde Eclipse debemos seguir los siguientes pasos: 1) En la opcion 'Window' → 'Android SDK and AVD Manager' 2) En la pestaña 'Virtual Devices', y seleccionamos 'New' 3) Nos aparece un cuadro de diálogo para rellenar los datos de configuración del teléfono virtual. i. En el cuadro 'Name' se le da un nombre al teléfono, por ejemplo 'prueba'. ii. . En el desplegable 'Target' se debe elegir la versión de Android, como la 2.2. que vamos a incluir en el teléfono. Todos los smartphones tiene una versión diferente según el modelo y la compañía que suministra el servicio. En este caso, lo ideal es

   

Página 81 

Sistema de guía para personas invidentes a través de bluetooth    elegir la plataforma que no sea la más nueva, pero tampoco muy antigua iii. El resto de campos se pueden ignorar iv. Debemos elegir la 'SD Card' : v. La primera opción es para especificar el tamaño de la Tarjeta SD vi. La segunda opción es para seleccionar una tarjeta ya creada anteriormente. vii. El 'Skin' es el envoltorio de la pantalla en este caso. Nos da a elegir varios modelos de teléfono estándar para realizar las pruebas en distintas resoluciones viii. por último podremos elegir el hardware que va a incorporar el teléfono. Aunque no podamos acceder a todas las funcionalidades de un teléfono físico. 4) Le damos al botón 'Create AVD', y se nos creará el teléfono virtual. Daremos al botón de 'Start' para ver la emulación del teléfono móvil virtual.

   

Página 82 

Sistema de guía para personas invidentes a través de bluetooth   

ANEXO D #include   #include   #include                  // SFR declarations    #define XTAL 24500000   //Frecuencia Oscilador CPU  #define baudrate 57600  //Velocidad de comunicación    #define OLEN 8         //Tamaño del buffer de transmisión    unsigned char ostart;  // Índice de comienzo del buffer de transmisión  unsigned char oend;    // Índice de final del buffer de transmisión  char idata outbuf[OLEN]; // Almacén para el buffer de transmisión    #define ILEN 8         //Tamaño del buffer de recepción    unsigned char istart;  //Indice de comienzo del buffer de transmisión  unsigned char iend;    //Indice de final de transmisión  char idata inbuf[ILEN];     //Almacén para el buffer de recepción    bit sendfull;         //Bandera para indicar buffer de transmisión lleno  bit sendactive;       //Bandera para indicar transmisión activa    unsigned char dato;    //para leer una parte del P2  signed char datoP0;    sbit puerto =  P0^7;  sbit puerto6 =  P2^6;  sbit puerto5 =  P2^5;  sbit puerto4 =  P2^4;  sbit puerto3 =  P2^3;  sbit puerto2 =  P2^2;  sbit puerto1 =  P2^1;  sbit puerto0 =  P2^0; 

   

Página 83 

Sistema de guía para personas invidentes a través de bluetooth        /*   *Rutina de Servicio de interrupción Serie   */      static void com_irs (void) interrupt 4 using 1   {   

char c; 

 /*‐‐‐‐‐‐‐‐‐‐‐‐Interrupción dato recibido‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/   

if(RI0) 

 



 

 

c=SBUF0; 

 

 

 

RI0=0;   

//limpiamos la interrupcion 

 

 

if(istart + ILEN!= iend) 

 

 



 

 

 

 

 



 



//Caracter leido 

inbuf[iend++ & (ILEN‐1)] = c;   //carácter dentro del buffer 

/*‐‐‐‐‐‐‐‐‐‐‐‐Interrupción dato enviado‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/   

if(TI0 != 0) 

 



 

 

TI0 = 0;   

 

 

if(ostart != oend)  //si hay caracter en el buffer  

 

 



 

 

 

SBUF0=outbuf[ostart++ & (OLEN‐1)];  // transmitir carater 

 

 

 

sendfull=0;                       //limpiamos el flag 

 

 



 

 

else 

 

 



 

 

sendactive=0; 

 

 



 

 

 

 



 

//limpiamos la interrupcion 

 

 

 

//limpiamos la bandera 

 

 

//si todos los caracteres han sido enviados 

}    /*   *Funcion para inicialzar el puerto serie y el baudrate de la UART 

   

Página 84 

Sistema de guía para personas invidentes a través de bluetooth     */ 

 

    void com_initialize(void)   {   

istart = 0; 

 

iend = 0; 

 

ostart = 0; 

 

oend = 0; 

 

sendactive = 0; 

 

sendfull = 0; 

 

 

 

 

 

PCON |=0x80; 

 

TMOD |=0x20;  //Ponemos el timer 1 en MODE 2 

 

TH1 = (unsigned char) (256‐(XTAL / (16L*12L*baudrate))); 

 

TR1 = 1;  

 

 

 

SCON0 = 0x50;   

//puerto serie MODE 1,habilitamos la recepcion serie 

 

ES0 = 1;   

 

 } 

 

 

 

 

 

//limpiamos las banderas 

 

 

//Configuramos el tiemer 1 como genrador del baud rate 

//0x80=SMOD;ponemos el baud rate como doble 

 

 

//arrancamos el timer 1 

//Habilitamos la interrupcion serie 

/*   *  putbuf: Escribimos un caracter en SBUF o transmitimos    */ 

 

    void putbuf( unsigned char c)   {   

if(!sendfull) 

 

 

 

 

 

//transmitimos si el buffer no esta 

 

 

 

 

//si el transmisor no está activo 

 

 

 

//comenzamos la transmisión 

lleno   



 

 

if(!sendactive) 

 

 



 

 

 

sendactive = 1; 

 

 

 

SBUF0 = c; 

 

 



 

 

else 

 

 



   

Página 85 

Sistema de guía para personas invidentes a través de bluetooth     

 

 

ES0=0;   

 

 

//des‐habilitamos la interrupción del 

puerto serie durante la actualización   

 

 

outbuf[oend++ & (OLEN‐1)] = c; //ponemos un carácter en el buffer de 

transmision   

 

 

if(((oend ^ ostart) &(OLEN‐1)) == 0) 

 

 

 



 

 

 

 

 

 

 



 

 

 

ES0 = 1; 

 

 



  

}  

 

  

  

sendfull = 1; 

 

 }     void PORT_Init (void)  {     P2MDOUT |= 0x7F;                    // Enable UTX as push‐pull output     P0MDOUT &= 0x90;     P2MDIN   |= 0x7F;     P0MDIN |= 0x90;        XBR0     = 0x01;                    // Enable UART on P0.4(TX) and P0.5(RX)     XBR1     = 0x40;                    // Enable crossbar and weak pull‐ups    }      void SYSCLK_Init (void)  {         TMOD      = 0x20;      CKCON     = 0x08;      TH1       = 0x2B;    }    void retardo(unsigned int i)  {   

   

unsigned int s; 

Página 86 

Sistema de guía para personas invidentes a través de bluetooth     

for(s=0;s

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.