270 likes | 399 Views
Rodrigo Gómez Z. Información turística vía bluetooth. La idea de este proyecto es poder enviar información turística de interés, a un dispositivo con sistema bluetooth incorporado, sobre el lugar donde se encuentra el visitante, siempre y cuando éste lo desee. Introducción. Proyecto.
E N D
Rodrigo Gómez Z. Información turística vía bluetooth
La idea de este proyecto es poder enviar información turística de interés, a un dispositivo con sistema bluetooth incorporado, sobre el lugar donde se encuentra el visitante, siempre y cuando éste lo desee Introducción
Proyecto En una primera etapa, la idea es transmitir desde un dispositivo USB bluetooth, hacia un auricular manos libres.
Pila de protocolos de Bluetooth • Para poder realizar las comunicaciones entre los dispositivos Bluetooth es necesario establecer un enlace de radio entre los dispositivos. Sobre este enlace físico se irán construyendo enlaces lógicos que se ofrecerán a las aplicaciones para que puedan llevar a cabo las comunicaciones. • Estos enlaces lógicos puede ser punto a punto con tráfico síncrono, asíncrono e isócrono (basado en slots de tiempo), o enlaces de difusión. El tráfico de los enlaces lógicos se lleva al enlace físico mediante la asignación de slots de tiempo de transmisión a cada uno de los enlaces lógicos.
Tipos de comunicación en los enlaces Bluetooth Unos de los objetivos de bluetooth es el de permitir transmitir audio de calidad entre dispositivos, a parte de poder servir como mecanismo de comunicación de datos entre dispositivos genérico. Para cumplir ambos objetivos se han definido dos tipos de conexiones: SCO (Synchronous Connection Oriented) y ACL (Asynchronous Conectionless).
Comunicación Sincrónica En SCO se establece un canal bidireccional entre el maestro y el esclavo punto a punto y el maestro reserva unos slots de tiempo constantes para poder transmitir un flujo de datos de forma permanente. El ancho de banda que se reserva es de 64 kbps por conexión SCO, y se pueden tener hasta tres conexiones de este tipo entre el maestro y el esclavo. Por lo tanto a todos los efectos este tipo de comunicaciones es de conmutación de circuitos, frente a la conmutación de paquetes de las conexiones ACL. La calidad del audio a 64 kbps se puede acercar a la de GSM.
Comunicación Sincrónica SCO está orientado a tráfico que no se divide en paquetes y que se ha de entregar en tiempo real. Si hay pérdidas de datos, no se intentará introducir mecanismos de control de error para retransmitir. Este tipo de conexiones es el que se utiliza para el audio y no pasa por la capa L2CAP. El objetivo es mantener una latencia constante en el flujo de datos.
Class of Device/Service • Cada dispositivo Bluetooth incorpora en la cabecera de nivel de Banda Base (Baseband 1.1) de sus paquetes un campo Class of Device/Service. Este campo se compone de 3 octetos organizados con el siguiente formato (en little endian): • 11 últimos bits reservados para las Service Classes. • 11 siguientes bits reservados para Device Classes. • 6 últimos bits reservados para Major Device Classes • 5 siguientes bits para Minor Device Classes. • 2 primeros bits para el campo Format Type, por defecto a 0.
Major Device Classes • permite identificar el tipo genérico de dispositivo.
Minor Device Classes • permite identificar el tipo específico de dispositivo.
Ejemplo del auricular Traducimos el campo class a formato binario 0x200404 es 001000000000010000000100 en binario. Podemos ver que el bit 21,el 10 y el 2, estan en 1. Lo que implica: Clase de Servicio: Audio. Major Device: Audio/Video. Nimor Device: Headset
Bluetooth en Linux En la actualidad existen dos pilas relevantes dentro del mundo de Linux: BlueZ y Affix (Nokia). BlueZ es la pila oficial y donde existe una mayor comunidad, por lo que actualmente debería de ser la opción a seguir para trabajar con Bluetooth en Linux. Está integrada en el núcleo por lo que el despliegue de aplicaciones basadas en BlueZ es más sencillo.
Bluez Fue desarrollada por Qualcomm y actualmente puede descargarse desde ttp://www.bluez.org, ofrece entre otras, las siguientes funcionalidades: • Arquitectura flexible, eficiente y modular. • Soporte para múltiples dispositivos Bluetooth. • Abstracción del hardware. • Funcionamiento en todas las distribuciones Linux: RedHat, Debian, SuSe, etc. • Gran cantidad de dispositivos soportados (PCMCIA, UART, USB). • Soporte L2CAP, SDP, RFCOMM y SCO.
Instalacion de Bluez Además del soporte del núcleo, Inicialmente se deben instalar los siguientes paquetes: • buez-libs: Librerías necesarias para el desarrollo de aplicaciones, y necesarias por el resto de paquetes BlueZ y aplicaciones que se enlacen dinámicamente a las librerías. • bluez-utils: Aplicaciones de control para los dispositivos Bluetooth. Necesario para realizar inquiry o comunicaciones en general.
Herramientas de Bluez Los paquetes instalados ofrecen las siguientes herramientas: • hcid:Este es el demonio que se encarga de gestionar los dispositivos Bluetooth. En /etc/bluetooth se encuantra el fichero hci.conf que permite definir los parámetros básicos de los dispositivos.
Herramientas de Bluez • hcidump: Es una herramienta que visualiza en pantalla todos los paquetes recibidos y enviados por un dispositivo especifico. Es particularmente útil cuando se quiera analizar el funcionamiento de un dispositivo o depurar a bajo nivel posible problemas de protocolos de comunicación. • hcitool: Es la herramienta principal de la pila Bluez. Ofrece servicios básicos como realizar un inquirí, una conexión, obtener información sobre un dispositivo remoto y varios otros.
Herramientas Bluez • hciconfig: Permite llevar a cabo todas las operaciones de configuración. Es utilizada fundamentalmente para activar y desactivar un dispositivo y para obtener o modificar todos los parámetros de funcionamiento..
Comunicación entre el computador y el auricular Lo primero es bajar del proyecto Bluetooth-ALSA el controlador necesario para que el sistema de sonido ALSA funcione con bluetooth. Luego cargamos el controlador y conectamos el dispositivos bluetooth del computador y de los auriculares en modo síncrono.
Comandos • Cargamos el controlador que hemos compilado para nuestro núcleo del proyecto btsco: #modprobe snd-bt-sco • Luego configuramos el dispositivo bluetooth del computador, para que funcione en modo síncronico. # hciconfig hci0 voice • Dentro de "btsco" viene un programa llamado "btsco" que es el que se encarga de establecer el canal de comunicación de audio. # ldd /usr/local/bin/btscoc
Comandos • La forma de establecerse la comunicación es con: # btsco 00:08:C6:49:36:18 • Podemos ver que tenemos un nuevo dispositivo de audio en: # cat /proc/asound/card1/id
Ejemplo • Este es un programa en C, que detecta los dispositivos bluetooth, dentro de su rango, y comprueba si el dispositivo es un auricular, si es asi, se establece una comunicación sincrinica con el auricular y la envia musica a este.
Próximos Desarrollos • Arreglar la configuración de sonido del computador para poder escuchar en los auriculares bluetooth. • Implementar que el botón de encendido, pra que además sirva para cambiar el idioma en que se esta escuchando.
Bibliografía • ttp://bluehack.endorasoft.es/foros/ viewtopic.php?t=3 • http://www.bluez.org • http://www.redes.upv.es/ralir/ficheros/practicas/p5/Ralir_Prac5.pdf • http://bluetooth-alsa.sourceforge.net/