• No se han encontrado resultados

MULTIPLES LECTURAS

In document Guia de Aprendizaje (página 176-185)

ESTRUCTURA MECÁNICA

MULTIPLES LECTURAS

Descripción de la aplicación: Muestra la lectura de 3 canales analógicos Interfaz de usuario: 4 Label, 3 ProgressBar

Hardware: Dispositivo Android, Tarjeta PIC USB, Modulo Bluetooth, 3 Potenciómetro Nombre del Proyecto: MULTIPLES_LECTURAS

Package Name: MULTIPLES_LECTURAS.ANDROID Application Label: MULTIPLES LECTURAS

Técnica: Envió de más de un carácter y más de una variable por bluetooth con el microcontrolador y su procesamiento en Basic4Android.

El Layout deberá quedar como se muestra a continuación:

Esta aplicación es muy similar a la desarrollada en el ejercicio PROGRESSBAR_Y_ADC en la que se lee un canal analógico de la tarjeta PIC USB y se envían varios caracteres . La diferencia es que

Ahora se leen 3 canales analógicos de la tarjeta por lo que se requiere enviar más de un carácter y diferenciar cada variable al enviarlas, en basic4android la recepción de los caracteres y su conversión es facilitada por medio del lenguaje por lo que los datos de entrada se pueden asignar directamente al Label y al ProgressBar, pero habrá que implementar un algoritmo para identificar cada canal analógico, esto se logra con el uso de identificadores como en el caso del ejemplo LED RGB, entonces al recibir los caracteres en el evento del Timer se tendrá que procesar la cadena y el lenguaje simplifica este proceso.

Lo primero que se debe saber es el tamaño de la cadena, el identificador (siempre el penúltimo carácter), y después unir los caracteres, se utiliza un Label para recibir la cadena y 3 Label para cada canal analógico, el código correspondiente al algoritmo cuando la cantidad enviada es de un digito quedara dela siguiente manera:

El código correspondiente al algoritmo cuando la cantidad enviada es de dos dígitos quedara dela siguiente manera:

El código correspondiente al algoritmo cuando la cantidad enviada es de tres dígitos quedara dela siguiente manera:

Para el envío de datos con el microcontrolador se usa la instrucción printf como en el ejemplo PROGRESSBAR_Y_ADC, pero agregando el identificador en este caso se ha usado A,B y C:

printf("%uA\n",ADC1/2); printf("%uB\n",ADC2/2);

printf("%uC\n",ADC3/2); delay_ms(70);

La lectura del canal analógico 0 ha quedado guardado en el Label2, la lectura del canal analógico 1 ha quedado guardado en el Label3 y la lectura del canal analógico 2 ha quedado guardado en el Label4. El código correspondiente a la tarjeta PIC USB se encuentra en la carpeta APLICACIONES PIC del CD con el nombre MULTIPLES_LECTURAS.c

SERVICIO

Descripción de la aplicación: Lectura continua de datos por Bluetooth Interfaz de usuario: 1 Label

Hardware: Dispositivo Android, Tarjeta PIC USB, Modulo Bluetooth Nombre del Proyecto: SERVICIO

Package Name: BLUETOOTHCONTINUOS.ANDROID Application Label: BLUETOOTH CONTINUOS

Técnica: Monitorear continuamente la recepción de datos Bluetooth (incluso con el dispositivo Bloqueado o en reposo).

El Layout deberá quedar como se muestra a continuación:

El primer paso es crear un servicio, el módulo de servicio se agrega desde el menú Project como se muestra en la siguiente imagen

Aparecerá una ventana pidiendo el nombre del servicio, en este ejemplo se ha usado Notificador El servicio será el encargado de algunas funciones de la conexión Bluetooth y la recepción de datos, Por lo tanto lo primero es declarar todos los elementos necesarios para tales funciones, ya que un servicio no tiene interfaz de usuario no es posible usar un Label para guardar los caracteres recibidos por lo que se tiene que declarar una variable tipo String, el código queda de la siguiente manera:

El siguiente paso es inicializar el Timer y Bluetooth como en ejemplos anteriores, pero ahora en el evento Service_Create que es cuando se crea el servicio, el código quedara dela siguiente manera:

Después en el evento Service_Start el servicio se debe ejecutar por medio de la función StartForeground() especificando una notificación (no olvidar que la notificación es el modo de interactuar con el usuario), por lo tanto habrá que declarar el objeto tipo Notification y una variable Int para contar las notificaciones, el código quedara dela siguiente manera:

En el evento Tick del Timer se procesan los datos recibidos como en ejemplos anteriores y si se recibe un “2” se despliega una nueva notificación, el código queda como se muestra a continuación:

Por ultimo en el evento Service_Destroy que es cuando se destruye el servicio se deberá finalizar la conexión Bluetooth, el código queda de la siguiente manera:

El siguiente paso es construir la Actividad , en esta se deberá cargar el layout, y el único objeto declarado deberá ser un Label que es el del Layout, la Actividad será quien controle el inicio y cierre del servicio y la obtención de los dispositivos apareados , por lo tanto habrá que declarar 3 menú ítem, el código queda de la siguiente manera:

El evento clic del ítem Menu_conectar se encarga de obtener la lista de dispositivos y demás pasos como se vio en ejemplos anteriores, con la única diferencia de que habrá que llamar a cada variable y objeto poniendo antes el nombre del servicio seguido de punto como se muestra a continuación:

También en el evento Connected del Bluetooth habrá que hacer los cambios en el código mencionados anteriormente y deberá quedar como se muestra en la imagen:

El último paso es controlar el inicio y detención del servicio con los ítems restantes como se muestra a continuación:

Para verificar el funcionamiento cargar a la tarjeta PIC USB el archivo SERVICIO.HEX contenido en la carpeta HEX del CD, Se enviara el carácter “2” al presionar el botón BOOT.

Para correr la aplicación presionar la tecla menú del dispositivo y seleccionar Iniciar:

Aparecerá una notificación indicando que el servicio ha iniciado, luego seleccionar Conectar y elegir el dispositivo Bluetooth:

Aparecerá un mensaje Toast indicando que se ha establecido la conexión, y al presionar el botón BOOT de la tarjeta PIC USB aparecerá una nueva notificación:

In document Guia de Aprendizaje (página 176-185)