N° tesis: jcb
PROYECTO FIN DE CARRERA
Presentado a
LA UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Para obtener el título de
INGENIERO ELECTRÓNICO
por
Luis Esteban Flórez Salamanca
SISTEMA DE ADQUISICIÓN DE DATOS CON ANDROID
Sustentado el día 28 de Mayo de 2013 frente al jurado:
Composición del jurado
- Asesor: Fredy Enrique Segura, Universidad de Los Andes
Sistema de Adquisición de Datos con Android
2
Contenido
1 INTRODUCCIÓN ... 32 OBJETIVOS ... 3
2.1 Objetivo General ... 3
2.2 Objetivos Específicos ... 3
2.3 Alcance y productos finales ... 4
3 DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO ... 4
4 MARCO TEÓRICO, CONCEPTUAL E HISTÓRICO ... 4
4.1 Marco Teórico ... 4
4.2 Marco Conceptual ... 5
4.3 Marco Histórico ... 5
5 DEFINICION Y ESPECIFICACION DEL TRABAJO ... 6
5.1 Definición ... 6
5.2 Especificaciones ... 6
6 METODOLOGÍA DEL TRABAJO ... 7
6.1 Plan de trabajo ... 7
6.2 Búsqueda de información ... 8
6.3 Alternativas de desarrollo ... 9
7 TRABAJO REALIZADO ... 9
7.1 Descripción del Resultado Final ... 9
7.2 Trabajo computacional ... 16
8 VALIDACIÓN DEL TRABAJO ... 19
8.1 Metodología de prueba ... 19
8.2 Validación de los resultados del trabajo ... 19
8.3 Evaluación del plan de trabajo ... 20
9 DISCUSIÓN ... 21
10 CONCLUSIONES ... 21
11 AGRADECIMIENTOS ... 21
12 REFERENCIAS ... 21
Sistema de Adquisición de Datos con Android
3
1
INTRODUCCIÓN
En la actualidad existen varias alternativas de sistemas para la adquisición de señales con diferentes características. Muchos de estos sistemas son muy especializados y no están al alcance de cualquier persona. Actualmente las “tablets” y los teléfonos llamados inteligentes, por su masificación están al alcance de millones de personas, y pueden extender sus funcionalidades tanto en software como en hardware. Gracias a esta flexibilidad, las ¨tablets¨ son una alternativa para crear un sistema de adquisición de datos para diversas aplicaciones, incluyendo osciloscopios, visualizadores de señales de electrocardiogramas, entre otros. En el presente trabajo se muestra el diseño de un sistema de adquisición de datos que grafica los datos en una Tablet.
2
OBJETIVOS
2.1 Objetivo General
Diseñar un sistema de adquisición de datos con visualización en una Tablet, probablemente con un sistema operativo Android. Se busca tener un sistema completo, integral, de bajo costo, con dos canales y que pueda ser replicado fácilmente por otras personas. Las especificaciones del sistemas son medida de señales de +-5V, a frecuencias inferiores a 10KHz. Como alternativa inicial se propone el uso de comunicaciones por WI-FI.
Como desde un principio se decidió trabajar con un microcontrolador Atmel, la comunicación con WI-FI no se implementó debido a que el módulo que se planeaba usar, el MRF24WB0MA/RM, está hecho para ser usado en conjunto con un microcontrolador específico de Microchip. Por lo tanto, para resolver el problema, se trabajó con el módulo Bluetooth KC-21 que no requería de un microcontrolador específico.
2.2 Objetivos Específicos
A. Diseño de la plataforma hardware para la adquisición de las señales a través de dos canales.
B. Diseño del software de control, visualización y operación.
C. Integración del sistema hardware software y generación del manual de usuario y manual de operación con algunas demostraciones orientadas a la enseñanza en escuelas y colegios.
Sistema de Adquisición de Datos con Android
4
2.3 Alcance y productos finales
El proyecto tiene como alcance entregar un prototipo completo, teniendo en cuenta las restricciones de diseño, el cual consiste en un circuito impreso con todos los componentes para procesar los datos medidos y una aplicación para la Tablet que grafica esos datos.
3
DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO
Hay grandes posibilidades para los nuevos dispositivos móviles que no se están explotando por el común de las personas. La comunicación, el procesamiento e interfaces amigables pueden ser complementadas con hardware adicional y sensores (acelerómetros, giroscopios, termómetros, por ejemplo) para crear nuevas experiencias.
Se quisiera que en el contexto escolar en donde el precio de los osciloscopios es costoso y la práctica de la electrónica es muy limitada, se pueda usar el sistema desarrollado para promover el estudio de la electrónica.
También está la posibilidad de que se modifiquen los diseños para otras aplicaciones como para hacer un electroencefalograma.
4
MARCO TEÓRICO, CONCEPTUAL E HISTÓRICO
4.1 Marco Teórico
Un error relacionado con el tiempo es el “aliasing”, que consiste en los errores producidos al intentar muestrear a una frecuencia menor que la frecuencia de la señal. Para solucionar este problema la frecuencia de muestreo ( ) debe ser más de dos veces la frecuencia máxima de la señal muestreada ( ).
Para lograr esto generalmente se pone un filtro pasa bajas RC con frecuencia de corte mucho menor antes de muestrear la señal [1].
Otros errores están relacionados con la fabricación del ADC. Por un lado están los errores inherentes de intentar representar la señal con un número finito de niveles, y por el otro los errores causados por offsets, no linealidades, ruido, etc. que se agrupan bajo el concepto de ENOB, o numero de bits efectivos del ADC.
Sistema de Adquisición de Datos con Android
5
4.2 Marco Conceptual
Android es un sistema operativo compacto y abierto perteneciente a Google diseñado principalmente para celulares y tablets. Gracias a su carácter abierto se han generado muchas librerías para manipular fácilmente estos dispositivos y crear nuevo software. Las funcionalidades que permite la librería estándar de Android incluye el manejo de interfaces gráficas, el ciclo de vida de la aplicación, control de los periféricos, entre otros.
El Firmware, en este trabajo se refiere a los programas para los microcontroladores. El firmware principalmente es de muy bajo nivel en donde se hace acceso directo a los periféricos y utilidades del Hardware.
Bluetooth contiene un protocolo para comunicaciones inalámbricas, casi siempre de corto alcance. Para realizar una comunicación con el protocolo Bluetooth hay que seguir varios pasos, primero se deben reconocer los módulos escaneando el área, luego se hace un “emparejamiento” entre los dispositivos y después sí se puede iniciar la comunicación. Muchos de los módulos Bluetooth actuales, manejan todo los detalles del protocolo de forma interna, para facilitar la implementación.
4.3 Marco Histórico
Hay muchos trabajos referentes a sistemas de adquisición de datos de “bajo costo”. A nivel de la Universidad de los Andes, hay dos trabajos que tienen relación directa con el tema. En [2] se intentó hacer un sistema de adquisición de datos con visualización en un “iPod” de Apple, desafortunadamente, para desarrollar en el sistema operativo “iOS” era necesario comprar licencias para poder acceder a los periféricos y no se terminó el trabajo satisfactoriamente.
En [3] se implementó un sistema de adquisición de datos que se comunica a través de Bluetooth a un dispositivo con sistema operativo Android, pero con una frecuencia de muestreo baja y un solo canal.
De forma externa a la universidad ha habido varios trabajos en donde se diseñaron osciloscopios de bajo costo usando microcontroladores y otros tipos de integrados, tal como en el trabajo de Lakkoju et al. [4], desafortunadamente muchos de esos trabajos no indican en detalle la forma en que se desarrollaron, minimizando su utilidad para hacer proyectos semejantes.
Sistema de Adquisición de Datos con Android
6
5
DEFINICION Y ESPECIFICACION DEL TRABAJO
5.1 Definición
Este proyecto busca desarrollar un sistema de adquisición de datos de bajo costo para uso en un contexto académico, que tenga las especificaciones descritas en los objetivos.
El proyecto desde el comienzo fue desarrollado pensado en llevarlo a un contexto académico, probablemente escolar, por eso se tuvo en cuenta la accesibilidad del sistema tanto en términos económicos como funcionales. Sin embargo, rápidamente se comprobó que hacer un producto comercialmente viable, fácil de usar y que cumpla las normativas vigentes es un trabajo largo y no apto solo para una tesis de pregrado.
5.2 Especificaciones
Las especificaciones cuantitativas son las siguientes:
Parámetro Rango deseado Implementado Resolución del ADC 8 – 12 bits 8bits
Frecuencia de Muestreo
> 0 – 2 M sps 500 ksps
Velocidad de Transmisión del Bluetooth
> 0 – 375 KBs 114.75 KBytes/s
Canales 2 2
Frecuencia de muestreo ajustable
- Sí
Ganancia variable antes del ADC
- Sí
Auto calibración Sí No Bluetooth Encriptado - Sí Diseñado para los
siguientes dispositivos.
Tablets y Celulares corriendo desde Android 2.3
Tablet con sistema operativo Android 4.03.
Especificaciones:
Parámetro Deseado Logrado
Portabilidad Sí Sí, funciona con baterías. Costo del prototipo (no
incluye la Tablet)
$0.0 $150,000
(Nota: el precio es dependiente de la cantidad)
Sistema de Adquisición de Datos con Android
7
datos
Facilidad de Uso Alta Aceptable Seguridad para el
usuario
Alta Alta
6
METODOLOGÍA DEL TRABAJO
6.1 Plan de trabajo
El proyecto ha consistido en la búsqueda de información general y luego especifica de los temas y módulos usados, para luego pasar a una etapa de uso e implementación.
Los temas generales abordados y su tiempo de uso se ilustrarán en el siguiente diagrama:
Diseño de Hardware
Diseño del Firmware
Diseño Software
Diseño PCB
1-15 1-30 1-15 1-30 1-15 1-30 1-15 1-30 1-15 1-30 Enero Febrero Marzo Abril Mayo
La etapa de diseño Hardware-Firmware involucró el uso de los siguientes módulos:
Microcontrolador
o USART (para comunicarse con el Bluetooth)
o ADC
o DAC
o TC y RTC (contadores)
o EEPROM
o Interrupciones
o I/O pins
LCD (para pruebas)
Módulo Bluetooth
o Configuración
o Protocolo
La etapa de diseño Software involucró el uso de:
Sistema operativo Android.
Sistema de Adquisición de Datos con Android
8
o Interacción entre los componentes de una aplicación.
Librerías para usar el Bluetooth
Creación del software para generar gráficas en tiempo real.
Concurrencia e hilos de ejecución.
Interfaz gráfica.
o Botones
o Menús
o Configuraciones con las APIs correspondientes.
En la siguiente tabla se observa el cronograma detallado por semanas.
Semana Actividades
1 Diseño de Hardware 2 Diseño de Hardware 3 Diseño de Hardware
4 Estudio del caso de ejemplo de Bluetooth 5 Diseño de Bluetooth
6 Diseño de Maquina de Estados. 7 Diseño de Maquina de Estados. 8 Maquina de Estados
9 Gráficas
10
Semana
Santa Finalización de Maquina de Estados 11 Aplicación Tablet
12 Aplicación Tablet
13 Aplicación Tablet, Gráficas 2 14 Aplicación Tablet, Gráficas 2 15 Aplicación Tablet
16 PCB
17 PCB y Modificaciones finales
Se realizaron reuniones con el asesor cada dos semanas, en las cuales se fueron presentando los avances del proyecto.
6.2 Búsqueda de información
Al inicio del proyecto se intentó buscar material de proyectos parecidos, pero se abandonó este acercamiento porque la mayoría de la información encontrada era de carácter específico, con descripciones genéricas, difíciles de usar o que no aportaba mucho. El método final usado fue el de buscar fuentes de los productores,
Sistema de Adquisición de Datos con Android
9
principalmente datasheets, paginas oficiales y ocasionalmente en libros del tema que abarcan la implementación y protocolos de interés.
Los temas más importantes investigados, están relacionados con las tecnologías usadas como: el microcontrolador, el módulo Bluetooth y Android.
6.3 Alternativas de desarrollo
Para los componentes hardware se pensó en primera instancia la posibilidad de importar cualquier elemento requerido para el proyecto, esto en teoría hubiera llevado a un sistema con mejores especificaciones técnicas, pero a un substancialmente mayor precio (al menos para el prototipo), una mayor incertidumbre y con la posibilidad de retardos por los tiempos de envió.
Para evitar todos estos problemas se decidió usar elementos que se pudieran comprar localmente, se buscaron los conversores análogos digitales más rápidos en el mercado local y los módulos que mejor complementaban esa selección.
Como las APIs de Android son muy estándares, por lo que en general, se usaron las APIs de la forma sugerida en la documentación. La única excepción fueron las gráficas para las que al principio se pensó usar la librería “AChartEngine”. Al final se abandonó este camino debido a que la librería no fue diseñada para gráficas en tiempo real y en algunos casos causó inconvenientes, por lo que se implementaron las gráficas con ayuda de las APIs de Android para hacer dibujos genéricos.
7
TRABAJO REALIZADO
7.1 Descripción del Resultado Final
Sistema de Adquisición de Datos con Android
10
Figura 1. Diagrama de Bloques
El modulo nombrado “Circuito Análogo (IN)” se refiere a todos los circuitos que hacen el procesamiento análogo de las señales de entrada antes de ser leídas por el conversor análogo a digital (ADC incluido en el microcontrolador). Este módulo incluye amplificación, ajuste de los voltajes de entrada, circuitos de protección, para no dañar el ADC, y filtros para limitar el ruido.
La comunicación es relativamente sencilla. Cuando el microcontrolador lee el ADC coge la representación binaria, se guarda como en bytes y estos son mandados al “modulo Bluetooth”, para que se transmitan inalámbricamente al módulo Bluetooth de la “Tablet” para la visualización.
“La Tablet” debe procesar la representación binaria de la señal que recibe, para poder hacer una visualización útil, que tenga en cuenta la gran cantidad de datos recibidos (hasta 114.75 KBytes/s).
Las flechas y rectángulos azul claro, representan componentes que no se incluyen en el diseño final, son componentes que se usaron para desarrollar y verificar el correcto funcionamiento del programa.
Los LEDs indican si el sistema esta prendido y si tiene poca batería.
Firmware
El programa que corre en el microcontrolador es el encargado de hacer las siguientes operaciones:
Configurar el módulo Bluetooth.
o Frecuencia,
o Encriptación.
Sistema de Adquisición de Datos con Android
11
Configurar el ADC y todos los módulos relacionados.
Hacer uso de un protocolo particular para la configuración y el envío de datos.
El Firmware ejecuta la siguiente máquina de estados:
Figura 2. Diagrama de Estados del micrcontrolador/Bluetooth
La siguiente tabla muestra el protocolo de comunicaciones, implementado sobre el protocolo Bluetooth, en el protocolo el “maestro”. En este caso, la Tablet manda una instrucción y el “esclavo” responde (el microcontrolador).
PROTOCOLO
DAQ
Instrucción Forma de la instrucción CHAR
RUN RUN% R
RUN_OK% R
RUN_NOK% r
STOP STOP% S
STOP_OK% S
STOP_NOK% s
CONF_ADC CONF_ADC(canal, enable, gain, frec, res)% A
CONF_ADC_OK% A
CONF_ADC_NOK% a
Sistema de Adquisición de Datos con Android
12
CONF_DAC_OK% D
CONF_DAC_NOK% d
READ_DAC READ_DAC% V
READ_DAC_OK(num)% V
READ_DAC_NOK% v
READ_BATT READ_BATT% B
READ_BATT_OK(num)% B
READ_BATT_NOK% b
NAME NAME% N
NAME_OK(name)% N
NAME_NOK% n
FAST_ADC FAST_ADC(enable_ch0,trigger0, enable_ch1,trigger1)% F
FAST_ADC_OK% F
FAST_ADC_NOK% f
UNDEF UNDEF% U
La primera columna contiene el nombre de la instrucción, la segunda columna dice como se forma la instrucción (parámetros) seguido de sus posibles respuestas, la tercera columna indica con qué letra comienza. Por ejemplo, la instrucción con nombre “READ_BATT” seria: “B%” (“%” es el carácter de terminación especial) y la respuesta a “READ_BATT” es “B(” , seguido por el nombre del microcontrolador y por “)%”.
Para enviar los datos, primero se mandan las instrucciones que configuran el módulo (CONF_ADC) y luego RUN. Desde ahí el microcontrolador manda los datos adquiridos usando el siguiente formato:
Sistema de Adquisición de Datos con Android
13
Figura 3. Formato para él envió de datos, de arriba abajo: 8bit un canal, 8bit dos canales, 12 bit un canal y 12 bit dos canales.
Cada cuadrado azul representa un Byte (8bits), los cuadrados verdes claros representan los datos de un canal, los amarillos los datos del otro y los rojos la terminación. El último diagrama indica que en tres Bytes se envía un dato de 12bits de un canal y 12bits del otro canal.
Aplicación de la Tablet
Las clases más importantes de la aplicación se pueden observar en la figura siguiente. La clase BluetoothService fue basada en una aplicación de ejemplo de Android “BluetoothChat”. Las responsabilidades de cada clase son las siguientes:
BluetoothService: Encargada de manejar la comunicación con el módulo; crea la conexión a nivel de “IOStream”.
ProtocolEnforcer: Sigue e implementa el protocolo descrito anteriormente; se encarga de decodificar los datos y decidir en qué estado está el microcontrolador.
SignalProcesor: módulo encargado de procesar los datos antes de graficar.
GraphThread: grafica los datos.
DAQ_Manager: Sincroniza a todas las clases anteriores y es la clase que hace la comunicación entre la interfaz del usuario y el mundo.
MainActivity: Contiene y maneja la interfaz gráfica además de las entradas del usuario.
Sistema de Adquisición de Datos con Android
14
Figura 4. Diagrama de Clases del “Mundo” para la aplicación de la Tablet.
Las clases para la interfaz gráfica responden más a la estructura gráfica que a otra función y las responsabilidades son:
Conf_Activity: Deja que el usuario seleccione las configuraciones del sistema tal como la resolución del ADC, ganancia, etc.
DeviceSelectionActivity: Escoge el dispositivo Bluetooth a conectarse (basada en la aplicación de ejemplo de Android BluetoothChat).
MainActivity: Contiene la gráfica y demás controles de la visualización; es la única clase que se comunica con el “mundo”.
Figura 5. Diagrama de Clases de la “Interfaz grafica” para la aplicación de la Tablet.
Generación de las gráficas
Para generar las gráficas en tiempo real, las dos clases claves son “AndesGraphView” y “Graph Thread”. La primera extiende de “SurfaceView” y actúa como la superficie sobre la que se puede graficar y contiene todas las facilidades para hacerlo. La segunda, “GraphThread” es un hilo de ejecución diferente al de la interfaz gráfica donde se hacen todos los dibujos, la importancia de esta clase es que
Sistema de Adquisición de Datos con Android
15
no detiene el hilo principal de la interfaz gráfica, lo cual deja la interfaz libre para atender a los eventos del usuario.
AndesGraphView: Vista sobre la cual se grafica.
GraphThread: Hilo de ejecución sobre el que se hacen las gráficas.
GraphManager: Clase que configura el cómo se grafican los datos.
BackGrond: Dibuja el fondo y la cuadrícula.
Series: Dibuja una serie de datos.
Trigger: dibuja una línea horizontal o vertical para mostrar un trigger.
Request: objeto que representa una solicitud para hacer un cambio en la gráfica actual.
Figura 6. Diagrama de Clases, para generar las graficas.
Sistema de Adquisición de Datos con Android
16
Figura 7. Circuito implementado.
El circuito diseñado incluye las siguientes conexiones pertinentes:
Conexión serial entre el Bluetooth y el microcontrolador.
Alimentación desde una fuente de voltaje continuo y generación del voltaje negativo con el conversor de voltaje a voltaje ICL7660.
Para cada entrada hay un divisor de voltaje, un filtro RC, protecciones y un amplificador de instrumentación AD620 que luego llegar a la entrada. Para la etapa de entrada se supuso que el voltaje que se va ha medir es de baja impedancia y que tiene un rango de +-15V, para el cual debe haber una salida de +-0.5V. Para cumplir las especificaciones anteriores la ganancia debía ser de 1/30, por lo tanto se usaron divisores de 470kΩ y 15kΩ que dan una ganancia de 0.0309, cercana a la deseada. El filtro, considerando que 15kΩ es mucho menor a 470kΩ, consiste en la resistencia de Thevenin de la entrada (aproximadamente 15kΩ) y un condensador de 100pF, lo que da una frecuencia de corte de 1/(2*π*R*C) = 106.103kHz, que es la que se deseaba. Los diodos de protección son limitador de voltaje de +-3V a la entrada para no dañar los amplificadores en caso de un sobre voltaje.
Conexión para los LEDs que indican si está encendido y si hay baja batería.
7.2 Trabajo computacional
Sistema de Adquisición de Datos con Android
17
Figura 8. Circuito de acondicionamiento.
Figura 9. Respuesta en tiempo simulado, del circuito de acondicionamiento.
Sistema de Adquisición de Datos con Android
18
La simulaciones nos confirman que los cálculos son correctos. No dicen que para una entrada de -15V a 15V, la salida es 1V-0V, que es el rango que puede leer el ADC del microcontrolador. Además la respuesta tiene una frecuencia de corte de alrededor de 100kHz, la cual es la frecuencia máxima que se quiere medir.
En Eagle se hizo el diseño del circuito impreso que se ilustra a continuación:
Figura 11. Circuito impreso (PCB).
Figura 12. Circuito impreso implementado.
Sistema de Adquisición de Datos con Android
19
8
VALIDACIÓN DEL TRABAJO
8.1 Metodología de prueba
Las pruebas se enfocaron en determinar que el prototipo realizado adquiriera los datos correctamente.
Una de las pruebas consistió en verificar que la respuesta a la entrada del circuito de acondicionamiento fuera la esperada, para esto se ingresaron señales sinusoidales en una entrada con un generador de señales y se guardaron los datos.
Para el sistema como un todo, se ingresaron varias señales por las entradas y se validó que lo mostrado en el Tablet correspondiera.
8.2 Validación de los resultados del trabajo
Se tomaron datos para encontrar la respuesta del circuito de acondicionamiento. En la siguiente figura se observa el diagrama de Bode que concuerda con el diagrama de Bode simulado.
Figura 13. Respuesta en frecuencia practico, del circuito de acondicionamiento.
A continuación se presentan las gráficas generadas por la aplicación.
-50 -40 -30 -20 -10 0
1 10 100 1000 10000 100000 1000000 10000000
20*
Log10
(Vi
n
/Vo
u
t)
Frecuencia
Sistema de Adquisición de Datos con Android
20
Figura 14. Grafica de un solo canal, 8bits.
Figura 15. Gráfica de dos canales 8bits, se observa dos sinusoidales de 60Hz desfasadas 180 grados.
8.3 Evaluación del plan de trabajo
Las actividades realizadas y el plan de trabajo concuerdan bastante bien con la propuesta de grado (se hicieron todos los pasos debidos).
Sistema de Adquisición de Datos con Android
21
9
DISCUSIÓN
Al inicio, cuando se hizo la propuesta de tesis se sabía solo de forma general qué temas se debían investigar, no se tenía mucha experiencia en proyectos de este tipo, para usar como referencia. El trabajo realizado terminó siendo muy extenso, ya que pasar de una idea y unos diagramas conceptuales a una implementación requirió mucha más investigación de la que se esperaba, además se debieron usar muchas herramientas y dos lenguajes de programación.
10
CONCLUSIONES
Se realizó un prototipo de un sistema de adquisición de datos con dos canales, los cuales se pueden graficar en una Tablet. El prototipo tiene todos los componentes necesarios para usarse de forma práctica y podría ser usado como un punto de partida para trabajos futuros, comerciales, etc.
En particular la interfaz grafica puede ser modificada y mejorada para que la interacción con las graficas sea más amigable y si se desea muestre datos que sean de interés tales como el valor medio, la varianza y otros.
Los circuitos de entrada también pueden ser cambiados para ajustarse mejor a la aplicación particular, tal como en un electrocardiograma en el que puede ser deseable agregar más ganancia y poner un filtro pasa altas.
El trabajo cumplió con los objetivos que se plantearon en la propuesta de grado.
11
AGRADECIMIENTOS
Quiero agradecer a la Universidad de los Andes por apoyarme y hacer que este proyecto se pudiera realizar. También quisiera agradecer a mi familia por su apoyo constante. A Francisco Amórtegui por su guía y grandes consejos y finalmente agradezco a mi asesor de tesis Fredy Segura por su guía y críticas constructivas.
12
REFERENCIAS
[1] V. T. R. David A. Rauth, «Analog to Digital Conversion, Part 5 in a series of tutorials in instrumentation and measurement,» IEEE Instrumentation & Measurement Magazine, 2005.
[2] S. Mora, "Sistema embebido portátil de bajo costo para la adquisición de datos" tesis Universidad de los Andes, Bogotá, Colombia, 2011.
Sistema de Adquisición de Datos con Android
22
[3] V. S. a. J. Cifuentes., «Dispositivo de monitoreo de señales EEG,» 2012. [En línea]. Available: http://ttde.uniandes.edu.co/. [Último acceso: 2013].
[4] N. K. Lakkoju, «"AVR-USB data acquisition" in Electronics Computer Technology (ICECT), 2011 3rd International Conference on,» Visakhapatnam, A.P. INDIA., 2011. [5] Atmel Corporation, XMEGA AU MANUAL, 8-bit Atmel XMEGA AU Microcontroller,
2012.
[6] M. P. Hoffman, «Osciloscopio USB,» 2006. [En línea]. Available: http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/WebHome. [Último acceso: 2013].
[7] R. Meier, Professional Android 4 Application Development, Indianapolis, Indiana, USA: John Wiley & sons Inc., 2012.
[8] D. Marshall, «Programming in C UNIX System Calls and Subroutines using C.,» 2005. [En línea]. Available: http://www.cs.cf.ac.uk/Dave/C/. [Último acceso: 2013]. [9] N. Mahmud, «“Desigining the PC-Based 4-Channel Digital Storage Oscilloscope by
using DSP Techniques” en Research and Development, 2007. SCOReD 2007. 5th Student Conference on,» 2007.
[10] C. T. Bhunia, «“A Low-Cost PC-Based Virtual Oscilloscope”,» Shibpur, India, 2004. [11] KC Wirefree Corporation, kcSerial 3.0 Firmware User Guide, 2011.
[12] KC Wirefree Corporation, KC-21 Class 2 Bluetooth Data Module, 2011.
[13] Atmel Corporation, AVR1000: Getting Started Writing C-code for XMEGA, 2008. [14] Atmel Corporation, «Atmel Software Framework,» [En línea]. Available:
http://asf.atmel.com. [Último acceso: 2013].
[15] Atmel Corporation, Atmel AVR4030: Atmel Software Framework, 2012.
[16] Android, «Android Developers,» [En línea]. Available: http://developer.android.com. [Último acceso: 2013].
[17] Atmel Corporation, 8/16-bit Atmel XMEGA Microcontroller, Atxmega128A4U, Atxmega64A4U*, Atxmega32A4U, Atxmega16A4U, *Preliminary”, 2012.
[18] «AChartEngine,» [En línea]. Available: http://www.achartengine.org/. [Último acceso: 2013].
[19] Oracle, «Java Platform, Standard Edition 7 API Specification,» [En línea]. Available: http://docs.oracle.com/javase/7/docs/api/.
[20] Oracle, «The Java Tutorials,» [En línea]. Available:
http://docs.oracle.com/javase/tutorial/. [Último acceso: 2013].
Sistema de Adquisición de Datos con Android
23
13
APÉNDICES
El circuito impreso se mando a fabricar en: “schuster circuitos impresos”, Carrera 20 No. 73-16 Bogotá, D.C. –Colombia.
Los demás componentes se compraron en “Sigma Electrónica” Av. Cra 24 No 61D-65 Bogotá (Colombia).
Lista de componentes:
LISTA DE COMPONENTES
Referencia Descripción Cantidad
-- Uc --
ATXMEGA32A4U-A Microcontrolador 1 IND0805 47NH Ferrita superficial 47nH 2 CC0805 0.1UF50 Condensador cerámico 4 P10KECT Resistencia Reset 1
KC-21 Bluetooth 1
CC0805 1UF 50V Condensador 1
-- Entrada análoga -- AD620AR ADC superficial 2
P470kECT Resistencia 4
P15KECT Resistencia 4
CC0402 100PF50 Condensador 4
1N5817 Diodo(no superficial) 2
FDLL4148 Diodo 8
-- Alimentación --
ICL7660CBA Conversor de voltaje dc 1 CC0805 10UF6.3 Condensador cerámico 2
LM1117DT-3.3 Regulador 1 CT1206 10UF16V Condensador 1 CC0805 10UF6.3 Condensador cerámico 1
Sistema de Adquisición de Datos con Android
24
P10KECT Resistencia 10k 1
LED 0805 AZUL LED 1
-- Batt --
P20KECT 20k 1
P6.98KECT 6.98k 1
P10KECT Resistencia 10k 1
LED 0805 ROJO LED 1
Conectores 4
Switch 1
Sistema de Adquisición de Datos con Android
25
Propuesta Proyecto de Grado:
UNIVERSIDAD DE LOS ANDES
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
PRESENTACIÓN DE PROPUESTA DE PROYECTO DE GRADO
SEMESTRE: 2013-10 FECHA: 1 Diciembre 2012
PROYECTO O TESIS DE GRADO PARA OPTAR EL TÍTULO DE: Ingeniero Electrónico
ESTUDIANTE: Luis Esteban Flórez CÓDIGO: 200923473
TÍTULO DE LA TESIS O PROYECTO:
Sistema de Adquisición de Datos con Android
__________________________________________________________________________
DECLARACIÓN:
1 - Soy consciente que cualquier tipo de fraude en esta Tesis es considerado como una falta grave en la Universidad. Al firmar, entregar y presentar esta propuesta de Tesis o Proyecto de Grado, doy expreso testimonio de que esta propuesta fue desarrollada de acuerdo con las normas establecidas por la Universidad. Del mismo modo, aseguro que no participé en ningún tipo de fraude y que en el trabajo se expresan debidamente los conceptos o ideas que son tomadas de otras fuentes.
2- Soy consciente de que el trabajo que realizaré incluirá ideas y conceptos del autor y el Asesor y podrá incluir material de cursos o trabajos anteriores realizados en la Universidad y por lo tanto, daré el crédito correspondiente y utilizaré este material de acuerdo con las normas de derechos de autor. Así mismo, no haré publicaciones, informes, artículos o presentaciones en congresos, seminarios o conferencias sin la revisión o autorización expresa del Asesor, quien representará en este caso a la Universidad.
_____________________________________ Firma (Estudiante)
Código: 200923473 CC: 1032452309
_____________________________________ __________________________________
Vo.Bo. ASESOR (Firma) Vo.Bo. COASESOR (Firma)
Sistema de Adquisición de Datos con Android
26
1. Caracterización del problema (Justificación)
En la actualidad existen muchos sistemas para la adquisición de señales de muy diversos tipos, muchos de ellos especializados y que no están al alcance de una persona promedio. Las “tablets” y los teléfonos por su masificación están al alcance de millones de personas, por lo que podrían ser usados como sistemas con funcionalidades adicionales tanto en software como en hardware. Un ejemplo seria un sistema de adquisición de datos el cual podría servir para muchas aplicaciones, incluyendo osciloscopios para estudiantes o como visualizadores de señales de electrocardiogramas, entre otros. En este proyecto se busca diseñar e implementar un sistema que pueda recibir datos en tiempo real y se puedan graficar en una Tablet. Las señales que se quieren medir son principalmente del orden de +-5V y se espera tener dos canales independientes que permitan adquirir dos señales simultáneamente.
2. Marco Teórico
Hay muchos trabajos referentes a sistemas de adquisición de datos. A nivel de la Universidad de los Andes hay dos trabajos que tienen relación directa con el tema. En el trabajo de Mora [1] se intentó hacer un sistema de adquisición de datos con visualización en un “iPod” de Apple, desafortunadamente para desarrollar en el sistema operativo “iOS” era necesario comprar software especializado y no se terminó el trabajo satisfactoriamente.
En el trabajo de Salcedo y Cifuentes se implementó un sistema de adquisición de datos que se comunica a través de Bluetooth a un dispositivo con sistema operativo Android, pero con una frecuencia de muestreo baja, del orden de los 100Hz.
De forma externa a la universidad ha habido varios trabajos en donde se diseñó un osciloscopio de bajo precio usando micro controladores y otros tipos de integrados, tal como en el trabajo de Lakkoju et al. [3], desafortunadamente muchos de esos trabajos no indican a fondo como se desarrollaron, aun cuando hay excepciones como en Hoffman [6] que ha documentado la mayor parte de su trabajo.
3. Caracterización del proyecto
a. Objetivos generales:
Diseñar un sistema de adquisición de datos con visualización en una Tablet, probablemente con un sistema operativo Android. Se busca tener un sistema completo, integral, de bajo costo, con dos canales y que pueda ser replicado fácilmente por otras personas. Las especificaciones del sistemas son medida de señales de +-5V, a frecuencias inferiores a 10KHz. Como alternativa inicial se propone el uso de comunicaciones por WI-FI.
Sistema de Adquisición de Datos con Android
27
b. Objetivos específicos
A. Diseño de la plataforma hardware para la adquisición de las señales para dos canales.
B. Diseño del software de control, visualización y operación.
C. Integración del sistema hardware software y generación del manual de usuario y manual de operación con algunas demostraciones orientadas a la enseñanza en escuelas y colegios.
c. Alcance (compromisos)
En lo posible se terminará un prototipo completo, salvo el caso en el que aparezcan situaciones cuya complejidad se salgan del alcance del proyecto. Se hará un manual del usuario con demostraciones significativas.
4. Contexto del proyecto y tratamientos
Se intentará que los componentes sea puedan adquirir localmente, aunque no es una limitante para la replica del prototipo.
a. Suposiciones
Se supone que todos los materiales que se requieran serán fácilmente accesibles para comprar, o en caso de que toque importarlos, el tiempo de importación no retardará el proyecto.
Algunos materiales que se tienen planeados para usar en el prototipo final, se pueden conseguir fácilmente localmente:
ATxmega32A4U, micro controlador de 32k de memoria, 32MHz, 1 ADC de 12 bits 2Msps, 1 ADC de 12 bits 1Msps.
KC-21, Modulo Bluetooth 3Mbs
MRF24WB0MA/RM, Modulo Wi-Fi 2Mbs
La “Tablet” se puede conseguir en varios centros electrónicos.
b. Restricciones
Las principales restricciones son de tiempo (un semestre), por lo que no se podrán hacer diseños excesivamente complejos.
c. Factores de Riesgo
El factor más grande es el tiempo de desarrollo, no se sabe exactamente cuanto se pueda demorar el proyecto.
Debido a que es un tema del cual no se conoce mucho pueden haber problemas inesperados principalmente a nivel de software y quizás de Hardware.
Sistema de Adquisición de Datos con Android
28
a. Identificación y descripción de hitos
Hitos:
Diseño del Hardware. Incluye conexiones para el micro controlador, la alimentación, el acondicionamiento de las señales, los módulos RF y demás.
Diseño del Firmware (Programa del micro controlador).
Implementación del Software (programa para la “Tablet”) que incluye la interfaz del usuario, el manejo de los datos y las gráficas de los mismos. Diseño de el circuito impreso final.
Manual del usuario. Descripción breve del funcionamiento del dispositivo, sus características y limitaciones.
b. Cronograma (Gantt)
Diseño de Hardware
Diseño del Firmware
Diseño Software
Diseño PCB
Manual del Usuario
1-15 1-30 1-15 1-30 1-15 1-30 1-15 1-30 1-15 1-30 Enero Febrero Marzo Abril Mayo
Cronograma para las Entregas (Propuesto por el Asesor):
Semana Entregas Reuniones Obligatorias
1
2 X
3
4 (15%) Entrega Alcance A
(Formato presentación). X
5 (10%) Entrega Documento
Ítems 1,2,3,4,5 (formato word)
(10%) Entrega Documento Ítems 6,7,8, para Alcance A (formato word)
6 X
7 8
Sistema de Adquisición de Datos con Android
29
(Formato presentación).
10 (10%) Entrega Documento
Ítems 6,7,8 para Alcance B (formato word)
11
12 X
13
14 (15%) Entrega Alcance C
(Formato presentación). X
15 (10%) Entrega Documento
Ítems 6,7,8 para Alcance C (formato word)
16 (5%) Entrega Documento
completo y Resumen
ejecutivo.
(10%) Entrega
Presentación completa.
6. Recursos
Es probable que se utilicen los siguientes recursos:
ATxmega32A4U, micro controlador de 32k de memoria, 32MHz, 1 ADC de 12 bits 2Msps, 1 ADC de 12 bits 1Msps.
KC-21, Modulo Bluetooth 3Mbs
MRF24WB0MA/RM, Modulo Wi-Fi 2Mbs
Amplificadores de Instrumentación AD-620 ó AD-622. Etc.
7. Bibliografía
Locales:
[1] S.M. Mora, “Sistema embebido portátil de bajo costo para la adquisición de datos”, Universidad de los Andes, Bogotá, Colombia. 2011.
[2] V. Salcedo and J.S. Cifuentes. (2012) “Dispositivo de monitoreo de señales EEG” [Online]. Available: http://ttde.uniandes.edu.co/
Externas:
[3] N.K. Lakkoju et al., “AVR-USB data acquisition” RAGHU Eng Coll.,
Sistema de Adquisición de Datos con Android
30
This paper appears in “Electronics Computer Technology (ICECT), 3rd International conference on” 8-10 April 2011.
Sacado de la base de datos de la IEEE, IEE Xplore.
[4] N.Sulaiman and N.A. Muahamud, “Desigining the PC-Based 4-Channel Digital Storage Oscilloscope by using DSP Techniques”, Malaysia. December 2007. The 5th Student Conference on Reserch and Development –SCOReD 2007. Sacado de la base de datos de la IEEE, IEE Xplore.
[5] S. Giri et al., “A Low-Cost PC-Based Virtual Oscilloscope” Bengal Eng. Coll., Shibpur, India. May 2004.
[6] (2012) P. Hoffman and M. Szmulewicz, “Osciloscopio USB” [Online] Available:
http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/WebHome
[11] “Atmel AVR042:AVR Hardware Design Considerations” Atmel Corporation, March. 2011. Available: http://www.atmel.com/
[12] “AVR040: EMC Design Considerations” Atmel Corporation, July. 2006. Available: http://www.atmel.com/
[13] “Atmel AVR1629: XMEGA ACD Oversampling” Atmel Corporation, March. 2012. Available: http://www.atmel.com/
[14] “AVR:1300: Using the Atmel AVR XMEGA ADC” Atmel Corporation, Dec. 2010. Available: http://www.atmel.com/