-
Universidad Distrital Francisco Jose de Caldas
Ingeniera Electronica
Osciloscopio y generador de ondascon un sistema embebido,
integrado
con dispositivos Android.
Monografa presentada porJose Domingo Suarez GiraldoJhon
Alejandro Pena Tellez
para obtener el grado de Ingeniero Electronico
2017
Facultad de Ingeniera
-
Indice general
1. Planteamiento del problema 5
2. Justificacion 7
3. Objetivos 8Objetivos Generales . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 8Objetivos especficos . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Marco Teorico 9Sistema Operativo Android . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 9
Cualidades de Android . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 9Arquitectura de Android . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 10
Desarrollo de aplicaciones . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 11Canvas . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 11
Comunicaciones Inalambricas . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 11Tecnologas que permiten la comunicacion
inalambrica. . . . . . . . . . . . . 12
Conversor Digital a analogo . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 14Caractersticas basicas . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 14Especificaciones de un
DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Conversor Analogico a Digital . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 151. Cuantizacion . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 17Teorema de muestreo .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19Analizador Logico . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 22Desarrollo de aplicacion web . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 23
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 23CSS 3 . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 24Javascript . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Bootstrap
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 25Convertidor DC - DC (Bost) . . . . . . . . . . . . . . . .
. . . . . . . . . . . 26
Nube (Cloud) . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 26Que es la nube? . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 26Tipos de Nube . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
27Beneficios de la Nube . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 27
2
-
Indice general 3
Estado del arte . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 28Sistema de Tiempo Real Embebido en un
Microcontrolador de Alto Desem-
peno para el Procesamiento de Audio . . . . . . . . . . . . . .
. . . . 28Oscilocopio WiFi Velleman WFS210 . . . . . . . . . . . .
. . . . . . . . . . 28Wireless Oscilloscope using Android App for
Mobile . . . . . . . . . . . . . . 29Osciprime . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Microcontrolador TIVA C . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 30Descripcion basica . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 30Las caractersticas de
Hardware. . . . . . . . . . . . . . . . . . . . . . . . . .
31Sistema de alimentacion. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 32Software de programacion. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 32
Modulo Bluetooth HC-05. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 33Especificaciones de Hardware. . . . . . . .
. . . . . . . . . . . . . . . . . . . 33Especificaciones de
Conexion. . . . . . . . . . . . . . . . . . . . . . . . . . .
34Especificaciones de software. . . . . . . . . . . . . . . . . . .
. . . . . . . . . 34
5. Desarrollo 35Aplicacion web . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 35Diseno de fuente de
alimentacion . . . . . . . . . . . . . . . . . . . . . . . . . . .
41Aplicacion Android . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 43
Actividad de Seleccion de dispositivo: DeviceListActivity . . .
. . . . . . . . 43Actividad de seleccion de funcion: SelectActivity
. . . . . . . . . . . . . . . . 45Clase para manejo de la
comunicacion Bluetooth: BluetoothRfcommClient . 47Actividad para la
visualizacion de senales: PlotActivity . . . . . . . . . . . .
51Clase para el trazado de los datos en pantalla: PlotView . . . .
. . . . . . . 52Clase para la tarea de dibujado: PlotThread . . . .
. . . . . . . . . . . . . . 55Actividad para la funcion de
Osciloscopio: Oscilloscope . . . . . . . . . . . . 56Actividad para
la funcion de Analizador Logico: Logic Analyzer . . . . . . .
61Clase para el trazado de las senales del Analizador Logico:
PlotLogicAnalyzer 63Actividad para la configuracion de las senales
a generar: Generator . . . . . 63
Sistema de Medicion y Generacion de senales . . . . . . . . . .
. . . . . . . . . . 68Diseno del sistema . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 68Funcionamiento del sistema
. . . . . . . . . . . . . . . . . . . . . . . . . . . 68Funcion
Osciloscopio: . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 70Funcion Analizador logico . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 79Generacion de Senales . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 80Programa en dispositivo
PSoC: . . . . . . . . . . . . . . . . . . . . . . . . . 81
Acondicionamiento de senales . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 87Acondicionamiento sobre senal que sera
medida por el ADC . . . . . . . . . 87
Acondicionamiento sobre senal que sera medida por los puertos
del analizador logico 88Analizador logico . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 88
Acondicionamiento sobre senal de salida del generador . . . . .
. . . . . . . . . . 89Multiplicador de senales analogicas. . . . .
. . . . . . . . . . . . . . . . . . . 89
-
Indice general 4
MPY634 (Multiplicador analogico de precision). . . . . . . . . .
. . . . . . . 89Descripcion de su funcionamiento. . . . . . . . . .
. . . . . . . . . . . . . . . 90Implementacion del MPY634. . . . .
. . . . . . . . . . . . . . . . . . . . . . 91
6. Metodologa 93
7. Conclusion 94
-
Captulo 1
Planteamiento del problema
La universidad Distrital Francisco Jose de Caldas [1], cuenta
con instalaciones de labo-ratorio e instrumentos de medicion de
excelente calidad para realizar pruebas tanto de altacomo de baja
potencia. A pesar de su calidad y las instalaciones adecuadas para
llevar a aca-bo estas tareas, son recursos muy limitados para la
gran cantidad de estudiantes que hacenuso de estos equipos y que en
muchos casos tienen que esperar varios das para obtener untiempo o
espacio para realizar sus pruebas.Las fechas que mas se necesitan
estos recursos son por ejemplo en las ultimas semanas decierre
semestre, por la gran cantidad de proyectos y pruebas que deben
realizar los estu-diantes de diferentes proyectos curriculares como
son ingeniera electrica y electronica. Paraestas fechas, los
recursos terminan siendo muy limitados y se agotan rapidamente,
haciendoque muchos estudiantes no tengan disponibilidad para
realizar sus trabajos adecuadamentepor la falta de equipos y tiempo
de uso. Para tratar de darle solucion a los estudiantes
querequieren mas tiempo, la universidad ha dado a disposicion el
prestamo de los bancos deprueba con horario nocturno, es decir el
prestamo de lo equipos despues de las 8:00 p.mhasta las 6:00 a.m,
pero esta solucion no es la preferida por parte de los estudiantes;
dado aldesgaste que produce en ellos esta jornada y ademas puede
ser causante de que el estudianteno se encuentre a disposicion para
obtener clases el da siguiente del prestamo del banco deprueba.Los
instrumentos mas requeridos en el laboratorio normalmente son los
equipos de medicion,como son los multmetros, osciloscopios y en
algunos casos fuentes de senales AC o DC. Pornormas del laboratorio
el prestamo de la mayora de estos instrumentos se deben hacer
dentrodel laboratorio como tal, es decir con el prestamo de un
banco completo para pruebas.Cabe aclarar que las salas e
instrumentos que hay a la disposicion, no siempre son los
adecua-dos para las experimentaciones que el estudiante quiera
realizar. Esto debido a que algunassalas cuentan con equipos que no
tienen las funcionalidades de los equipos de otras salas ose
encuentran limitados en cuanto a manejo de potencia.Por ello se ve
la necesidad de realizar nuevas herramientas o herramientas
complementariasque permitan aliviar o mitigar un poco este
problema. Realizar una herramienta que presentebeneficios tanto en
portabilidad como calidad de medicion, sin dejar atras un sencillo
manejode este, para que cualquier usuario no le cueste
manipularlo.
5
-
Captulo 1. Planteamiento del problema 6
El hecho de que la herramienta sea portable significa que el
estudiante pueda llevarlo a casao pueda hacer uso de ella fuera de
las instalaciones de la universidad, esto con el fin de
mayorcomodidad y disponibilidad de tiempo para realizar sus
mediciones.
-
Captulo 2
Justificacion
Actualmente la facultad de ingeniera de la Universidad Distrital
cuenta con recursoslimitados para la realizacion de pruebas de
laboratorio, tales como equipos de medicion y ge-neracion de
senales electricas para ciertas practicas de las carreras de
ingeniera electronica yelectrica. Las mediciones que comunmente
realizan los estudiantes requieren del uso de equi-pos como
osciloscopios y multmetros; mientras que en cuestiones de
produccion de senalesse utilizan fuentes reguladas y generadores de
ondas. Sin embargo, la alta demanda de la salade laboratorio en
ciertas epocas del semestre, y la insuficiencia de equipos es un
problemacomun, motivo por el cual se evidencia la necesidad de
buscar herramientas que permitanmitigar este problema, beneficiando
as a estudiantes que requieran equipos de medicion yno les sea
posible acceder a los que proporciona la Universidad.Esta es la
razon por la cual se propone realizar un prototipo de
instrumentacion, que per-mita realizar procedimientos basicos de
medicion y generacion de senales electricas de usocomun en los
laboratorios. Un aspecto fundamental para la realizacion del
prototipo es quesea de bajo costo, con el fin de poder elaborarlo
con un presupuesto adecuado de forma queun estudiante pueda acceder
a el sin tener que realizar una cuantiosa inversion, como s losera
la compra de un dispositivo de instrumentacion profesional. Para
poder lograr realizarun instrumento como estos se ve la necesidad
de usar dispositivos como lo son los sistemasembebidos de bajo
consumo y bajo costo, y que sean vinculables a dispositivos android
parala visualizacion y configuracion remota de las senales
manipuladas en el sistema embebido. Sepropone la utilizacion de
dispositivos android debido a la popularidad de los mismos y
porqueel uso de dispositivos externos para la visualizacion de las
senales reduce los costos del pro-totipo. Ademas de que cuentan con
facilidades para la conexion a internet y almacenamientode datos en
la nube.
7
-
Captulo 3
Objetivos
Objetivos Generales
Elaborar un prototipo de un sistema integrado que contenga un
sistema embebido y unaplaca de expansion que permita realizar
mediciones de senales AC y DC; que de igual manerapermita generar
senales basicas de laboratorio y que se permita configurar y
visualizar desdeun dispositivo Android por medio de una conexion
inalambrica.
Objetivos especficos
Disenar el acondicionamiento necesario para la medicion tanto de
senales DC comosenales AC de baja frecuencia (Max. 100khz), usadas
comunmente en los laboratoriosde la Universidad.
Disenar las protecciones necesarias de tal manera que sea
posible introducir senalescontinuas y alternas de niveles de hasta
10v.
Elaborar estos acondicionamientos y protecciones en un shield
ensamblable a la boarddel sistema embebido.
Permitir visualizar en la pantalla de un dispositivo Android las
mediciones previamenteconfiguradas.
Permitir la configuracion de amplitud, frecuencia y tipo de
senales AC o DC generablespor la Board, desde el dispositivo con
sistema operativo Android.
Permitir el almacenamiento de los datos de las mediciones en la
nube, aprovechando laconexion a internet con la que cuente el
dispositivo Android.
Proporcionar un manual para el manejo del dispositivo dentro de
la aplicacion en An-droid para la configuracion de medidas del ADC,
salidas de PWM ademas de generacionde senales AC y DC de baja
potencia.
8
-
Captulo 4
Marco Teorico
Sistema Operativo Android
Cualidades de Android
Android ofrece una forma sencilla y novedosa de implementar
potentes aplicaciones paradiferentes tipos de dispositivo. Sus
cualidades le han permitido imponerse como el sistemaoperativo para
dispositivos moviles con mas cuota de mercado en la actualidad. A
continua-cion se mencionan algunas de ellas [4]:
Plataforma abierta: Es una plataforma de desarrollo basada en
Linux y de codigoabierto. Una de sus ventajas es que se puede usar
y personalizar el sistema sin pagarderechos de autor.
Adaptable a cualquier plataforma: No solamente es exclusivo para
telefonos y tablets.Es posible hallarlo en muchos sistemas
embebidos para los cuales el desarrollo de unaaplicacion esta
soportado para estos diferentes dispositivos siempre y cuando
cuentencon los elementos de acceso necesarios tales como entradas,
pantalla, memoria, etc.
Portabilidad: La aplicaciones son desarrolladas en Java, lo que
permite que sean ejecu-tadas en cualquier plataforma gracias al
concepto de maquina virtual.
Servicios incorporados: Tales como sistemas de localizacion
basados en GPS o internet,manejo de bases de datos con SQL,
navegadores, multimedia, reconocimiento de voz,etc.
Filosofa de dispositivo siempre conectado a internet: Esto
sumado a la tendencia cre-ciente del internet de las cosas lo hace
una herramienta formidable de desarrollo convinculacion permanente
a la red.
Seguridad: Los programas se encuentran aislados unos de otros
gracias al concepto deejecucion dentro de una caja heredado de
Linux. Ademas de limitaciones en cuanto apermisos de acuerdo al
tipo y accion de cada aplicacion.
9
-
Captulo 4. Marco Teorico 10
Calidad Grafica: Cuenta con herramientas graficas basadas en
OpenGL. Ademas incor-pora codecs estandar comunes para reproduccion
de audio y video.
Arquitectura de Android
La arquitectura de Android se encuentra basada en 4 capas, las
cuales tienen como ca-racterstica importante que estan basadas en
software Libre. En la figura 4.1 se muestra ladistribucion de estas
capas [5].
Figura 4.1: Capas de la arquitectura de Android. Tomada de
[5]
Nucleo Linux: El nucleo de Android esta formado por el sistema
operativo Linux 2.6,el cual se encarga de proporcionar servicios
como la seguridad, manejo de memoria, multi-proceso, soporte de
drivers, entre otros. Esta capa realiza la abstraccion entre el
hardware yel resto de las capas.
Runtime de Android: Se basa en el concepto de maquina virtual
utilizado en Java. Sinembargo, debido a que los dispositivos
moviles tienen limitaciones en cuanto a memoria yprocesador, no les
es posible ejecutar la maquina virtual Java estandar, por lo que
fue nece-saria la creacion de la maquina virtual Dalvik por parte
de Google la cual responde mejor aestas limitaciones. A partir de
Android 5.0, se reemplaza a Dalvik por ART, la cual consigueuna
reduccion del tiempo de ejecucion de codigo Java en un 33 %.
Tambien se encuentraincluido en el Runtime el core libraries, con
la mayora de libreras del lenguaje Java.
Libreras Nativas: Incluye un conjunto de librera en C/C++ usadas
en varios compo-nentes de Android. Estan compiladas en codigo
nativo del procesador. La mayora de estaslibreras utilizan
proyectos de codigo abierto.
Entorno de aplicacion: Esta capa ha sido disenada para
simplificar la reutilizacion decomponentes, las aplicaciones pueden
publicar sus capacidades para que otras puedas hacer
-
Captulo 4. Marco Teorico 11
uso de ellas sujetas a restricciones de seguridad. Proporciona
una plataforma de desarrollolibre para aplicaciones con gran
riqueza e innovaciones.
Aplicaciones: Capa superior formada por el conjunto de
aplicaciones instaladas en unamaquina Android. Todas deben correr
en la maquina Virtual Dalvik o ART para garantizarla seguridad del
sistema. Las aplicaciones normalmente estan escritas en Java las
cuales sondesarrolladas mediante el Android SDK.[6]
Desarrollo de aplicaciones
El desarrollo de aplicaciones se realiza en un equipo con
ciertas caractersticas de hard-ware y sistema operativo Windows,
Linux o MacOs, donde sea posible instalar la maquinavirtual Java.
Adicionalmente se requiere de un entorno de desarrollo dentro de
los cualesexisten dos opciones:Eclipse y plug-in ADT (Android
Development Tools): Este IDE sola ser el de uso tradicionalpara el
desarrollo de aplicaciones Android, hasta el lanzamiento de Android
Studio. Constade tres componentes necesarios para su uso: Eclipse,
Android SDK y el plug-in ADT propor-cionado por Google.Android
Studio: Entorno de desarrollo de Android lanzado por Google basado
en el IDEIntelliJ IDEA [7]. Incorpora caractersticas nuevas no que
no se encuentran en el IDE tradi-cional basado en Eclipse. Por
tratarse del entorno de desarrollo Android oficial proporcionadopor
Google, es el mas recomendable de usar, debido a que desde su
aparicion, el soporte alentorno Eclipse ha dejado de mantenerse y
por tanto ha dejado de actualizarse.[8]
Canvas
La clase Canvas representa una superficie donde se puede
realizar dibujos en Android.Esta clase dispone de una serie de
metodos que permite representar lneas, crculos, texto,etc. Para
dibujar en Canvas se necesita de un Pincel (Paint) donde se define
el color, grosordel trazo, transparencia. Tambien se puede definir
una matriz de 3x3 que permite transformarcoordenadas aplicando una
translacion, escala o rotacion. Otra opcion consiste en definir
unarea conocida como Clip, de forma que los metodos de dibujo
afecten solo a esta area. [9]
Comunicaciones Inalambricas
La comunicacion inalambrica son aquellas en la que la
comunicacion entre emisor y re-ceptor no se encuentra unida por un
medio fsico, sino que se utiliza la modulacion de
ondaselectromagneticas a traves del espacio el cual es su medio de
propagacion. Los dispositivosfsicos o hardware como tal solo estan
presentes en los emisores y receptores de la senal, entrelos cuales
se encuentran: las antenas, computadoras portatiles, PDA, telefonos
moviles, etc.La comunicacion inalambrica, que se realiza a traves
de ondas de radiofrecuencia, permitefacilitar la operacion en
lugares donde el dispositivo no se encuentra en una ubicacion
fija
-
Captulo 4. Marco Teorico 12
como por ejemplo; almacenes, oficinas de varios pisos, etc. Cabe
tambien mencionar que ac-tualmente las redes cableadas presentan
ventaja en cuanto a transmision de datos sobre lasinalambricas.
Mientras que las cableadas proporcionan velocidades de hasta 1
Gbit/s (RedGigabit), las inalambricas alcanzan solo hasta 108
Mbit/s, ademas de producir mayor esta-bilidad y seguridad en
transmision.Actualmente, las transmisiones inalambricas constituyen
una eficaz herramienta que permi-te la transferencia de voz, datos
y vdeo sin la necesidad de cableado. Esta transferenciade
informacion es lograda a traves de la emision de ondas de radio
teniendo dos ventajas:movilidad y flexibilidad del sistema en
general.[10]
Tecnologas que permiten la comunicacion inalambrica.
WIFI: Es una tecnologa inalambrica utilizada para conectar e
intercambiar informa-cion entre dispositivos electronicos sin
necesidad de conectarlos mediante cables.[11]Wifi pertenece al
conjunto de tecnologas conocidas como Wireless (sin cables)
conmayor aceptacion y uso en la mayora de dispositivos electronicos
como smartpho-nes, tablets, ordenadores de sobremesa y portatiles,
camaras digitales o consolas devideojuegos gracias al cual se puede
disponer de una red de comunicacion entre variosdispositivos y con
acceso a Internet.
Figura 4.2: Logo de WiFi.
Una de las principales ventajas del wifi es la posibilidad de
conectar multiples disposi-tivos electronicos a internet con un
solo dispositivo. Estrictamente la palabra wifi hacereferencia a
todos los dispositivos electronicos disenados para establecer una
comuni-cacion inalambrica y que han sido certificados por la
organizacion WiFi Alliance.
Bluetooth: Es una tecnologa de red de area personal inalambrica,
una tecnologade red inalambrica de corto alcance, que se utiliza
para conectar dispositivos entre sde manera inalambrica. A
diferencia de la tecnologa IrDa (que utiliza una
conexioninfrarrojo), los dispositivos Bluetooth no necesitan una
lnea de visualizacion directapara comunicarse.[12] El objetivo de
Bluetooth es transmitir voz o datos entre equiposcon circuitos de
radio de bajo costo, a traves de un rango aproximado de entre diez
ycien metros, utilizando poca energa lo cual lo hace bastante
practico.
-
Captulo 4. Marco Teorico 13
Figura 4.3: Logo de Bluetooth.
La tecnologa Bluetooth se diseno principalmente para conectar
dispositivos (comoimpresoras, telefonos moviles, artculos para el
hogar, etc.), equipos o PDA es decircomunicaciones simple a corta
distancia y con fines de conexion Uno A Uno. Bluetoothtambien se
utiliza cada vez mas en telefonos moviles especialmente para
conectarse alos accesorios manos libres, como los auriculares
Bluetooth. Los auriculares Bluetoothson auriculares avanzados que
incluyen funciones de control remoto.La tecnologa Bluetooth
originalmente fue desarrollada por Ericsson en 1994.
Normas Bluetooth.El estandar Bluetooth se divide en multiples
normas:
IEEE 802.15.1 define Bluetooth 1.x, que puede alcanzar
velocidades de 1 Mbps. IEEE 802.15.2 recomienda practicas para
utilizar la banda de frecuencia de 2.4
GHz (la frecuencia tambien utilizada por WiFi). Sin embargo,
este estandar to-dava no se ha aprobado.
IEEE 802.15.3 es un estandar que actualmente se esta
desarrollando, que ofreceravelocidad de banda ancha (20 Mbps) con
Bluetooth.
IEEE 802.15.4 es un estandar que actualmente se esta
desarrollando para el usocon aplicaciones Bluetooth de baja
velocidad.
ZigBee: Es un estandar de comunicaciones inalambricas disenado
por la ZigBee Allian-ce. Es un conjunto estandarizado de soluciones
que pueden ser implementadas porcualquier fabricante.[13] ZigBee
esta basado en el estandar IEEE 802.15.4 de redesinalambricas de
area personal (wireless personal area Newark, WPAN) y tiene
comoobjetivo las aplicaciones que requieren comunicaciones seguras
con baja tasa de envode datos y maximizacion de la vida util de sus
bateras.
Figura 4.4: Logo de ZigBee.
Caractersticas:
-
Captulo 4. Marco Teorico 14
ZigBee es una tecnologa inalambrica con velocidades comprendidas
entre 20 kB/sy 250 kB/s.
Los rangos de alcance son de 10 m a 75 m. Puede usar las bandas
libres ISM (6) de 2,4 GHz (Mundial), 868 MHz (Europa)
y 915 MHz (EEUU).
Una red ZigBee puede estar formada por hasta 255 nodos los
cuales tienen lamayor parte del tiempo el transceiver ZigBee
dormido con objeto de consumirmenos que otras tecnologas
inalambricas.
Soporta diferentes tipos de topologas como estrella, punto a
punto, malla, arbol. Escalabilidad de red Un mejor soporte para las
redes mas grandes, ofreciendo
mas opciones de gestion, flexibilidad y desempeno.
Fragmentacion: Nueva capacidad para dividir mensajes mas largos
y permitir lainteraccion con otros protocolos y sistemas.
Localizacion grupal: Ofrece una optimizacion adicional de
trafico necesaria paralas grandes redes.
Conversor Digital a analogo
Es un dispositivo para convertir un codigo digital (generalmente
binario) a una senalanalogica (corriente o voltaje). Hay distintos
componentes que pueden intervenir en esteproceso, como
interruptores simples, red de resistores, fuentes actuales o
condensadores.[14]
Figura 4.5: Conversion de senal analogica a digital.[14]
Caractersticas basicas
Los principales parametros que definen un convertidor digital a
analogico es principal-mente su resolucion, que depende del numero
de bits de entrada del convertidor. Otra carac-terstica basica es
la posibilidad de conversion unipolar o bipolar (senales positivas
o negativas
-
Captulo 4. Marco Teorico 15
de salida). El tiempo de conversion es otra particularidad que
define al convertidor necesariopara una aplicacion determinada. Es
el tiempo que necesita para efectuar el maximo cambiode su tension
con un error mnimo en su resolucion. Otros aspectos que posee el
convertidorson: su tension de referencia, que puede ser interna o
externa (si es externa puede ser variadaentre ciertos margenes); la
tension de salida vendra afectada por este factor,
constituyendoseeste a traves de un convertidor multiplicador; as
mismo, debera tenerse en cuenta la tensionde alimentacion, el
margen de temperatura y su tecnologa interna. [15]
Especificaciones de un DAC (Digital to Analog Converter)
Existe una amplia variedad de DAC como circuitos integrados o
bien como paquetesencapsulados. Hay que conocer las
especificaciones mas importantes de los fabricantes con elfin de
evaluar un DAC, en una determinada aplicacion [16].
Resolucion: La resolucion porcentual de un DAC depende unica y
exclusivamente delnumero de bits. En las fichas tecnicas se detalla
de esta manera. Un DAC de 10 bitstiene una resolucion mas sensible
(mayor exactitud) que uno de 8 bits.
Precision: Los fabricantes de DAC tienen varias maneras de
establecer la precisiono exactitud. A las dos mas comunes se las
llama Error de Escala Completa y Errorde Linealidad (o en
ocasiones, directamente linealidad), que normalmente se
expresancomo un porcentaje de la salida de escala completa del
convertidor ( %FS).
Tiempo de respuesta: La velocidad de operacion de un DAC se
explica como tiempode respuesta, que es el periodo que se requiere
para que la salida pase de cero a escalacompleta cuando la entrada
binaria cambia de todos los ceros a todos los unos. Losvalores
comunes del tiempo de respuesta variaran de 50 ns a 10 ms. En
general, losDAC con salida de corriente tendran tiempos de
respuesta mas breves que aquellos conuna de voltaje.
Conversor Analogico a Digital (ADC)
Un conversor analogico-digital, (ADC del ingles
.Analog-to-Digital Converter) es un dis-positivo electronico capaz
de convertir una entrada analogica de voltaje o corriente en
unvalor binario, Se utiliza en una gran variedad de equipos
electronicos como ordenadores, gra-badores de sonido y de vdeo, y
equipos de telecomunicaciones [17].
-
Captulo 4. Marco Teorico 16
Figura 4.6: Conversion de senal analogica a digital.[17]
La senal analogica, que vara de forma continua en el tiempo, se
conecta a la entrada deldispositivo y se somete a un muestreo a una
velocidad que puede ser tanto fija como variable.La digitalizacion
consiste basicamente en realizar medidas de la amplitud (tension)
de unasenal, redondear sus valores a un conjunto finito de niveles
preestablecidos de tension (cono-cidos como niveles de
cuantificacion) y registrarlos como numeros enteros segun su
resoluciony almacenarlos en cualquier tipo de memoria o soporte.
Los procesos que dan lugar a estaconversion son el muestreo, la
retencion, la cuantificacion y la codificacion: [18]
Muestreo: el muestreo (en ingles, sampling) consiste en tomar
muestras periodicas de laamplitud de onda. La velocidad con que se
toma esta muestra, es decir, el numero de mues-tras por segundo, es
lo que se conoce como frecuencia de muestreo. Nyquist formulo el
si-guiente teorema para obtener una grabacion digital de calidad.La
frecuencia de muestreomnima requerida para realizar una grabacion
digital de calidad, debe ser igual al doble de lafrecuencia de
audio de la senal analogica que se pretenda digitalizar y
grabar.Sino se cumpleeste requisito aparecera el fenomeno de
aliasingel cual propiciara la aparicion de frecuencias.alias, y la
senal original no puede ser reconstruida de forma correcta a partir
de la senaldigital.[18]
Retencion: las muestras tomadas deben ser retenidas (sistema de
retencion) el tiempo su-ficiente para permitir evaluar su nivel
(cuantificacion). Desde el punto de vista matematicoeste proceso no
se contempla, ya que se trata de un recurso tecnico debido a
limitacionespropias del dispositivo que realiza la conversion.
Cuantificacion: en el proceso de cuantificacion se mide el nivel
de voltaje de cada unade las muestras. Consiste en asignar un
margen de valor de una senal analizada a un uniconivel de salida
designandolo con un valor entero.
Error de cuantificacion: es el error que se produce debido a las
pequenas variaciones queno son tenidas en cuenta por al realizar la
cuantificacion. Ruido de cuantificacion:senalen tiempo discreto y
amplitud continua que resulta de igualar los niveles de las
muestras de
-
Captulo 4. Marco Teorico 17
amplitud continua a los niveles de cuantificacion mas
proximos.
Codificacion: la codificacion consiste en traducir los valores
obtenidos durante la cuan-tificacion al codigo binario. Hay que
tener presente que el codigo binario es el mas utilizado,pero
tambien existen otros tipos de codigos que tambien son
utilizados.Este modelo es una base para la digitalizacion
utilizandose en la actualidad variantes que seacoplan mas a las
capacidades de los equipos.[19]
1. Cuantizacion
En la figura 4.7 se observa una forma de onda de una conversion
tpica de una senalanalogica. Como se puede observar en las
etiquetas de la grafica, la senal representa el voltajeque vara en
el tiempo. Se hace una suposicion para que sea de manera mas
sencilla el analisis,que la onda es de 0 a 4.095 voltios, lo cual
corresponde a un numero digital entre 0 y 4095que es producido por
un conversor de 12 bits. Si se observa el diagrama de bloque de
lafigura 4.8 se encuentra dividido en 2 segmentos, el resultado del
modulo de muestreo yretencion (S/H) y el conversor de analogico a
digital (ADC). Como bien se sabe, el modulode muestreo y retencion
es necesario para mantener el voltaje entrante al conversor ADC
demanera constante mientras la conversion se realiza (debido al
tiempo que toma el dispositivoen realizar la conversion). Sin
embargo, esa no es la razon por la cual se observa all, la razonpor
la cual debe estar all se explicara con mas detalle a
continuacion.[20]
Figura 4.7: Senal analogica.
Figura 4.8: Diagrama de bloque ADC.
-
Captulo 4. Marco Teorico 18
Como se observa la diferencia entre las graficas 4.7 y 4.9, la
salida del modulo de muestreoy retencion es permitir el cambio solo
en intervalos periodicos, en el cual hace una fotoinstantanea de la
senal de entrada. Los cambios producidos en la senal de entrada
producidosen el momento de muestreo son totalmente ignorados. Esto
significa, que el muestreo es unasenal independiente (del tiempo en
este caso) en la conversion de continuo a discreto. Comose puede
ver en la diferencia entre las senales de 4.9 y 4.10, el ADC
produce un valor enteroentre 0 y 4095 por cada region plana en la
figura 4.9. Esto produce un error, porque puedehaber un valor de
voltaje entre 0 y 4.095 voltios y este lo representa al valor mas
cercano a lacuanta. En otras palabras, la cuantizacion se convierte
una variable dependiente (del voltajeen este caso) de la conversion
de la senal de continuo a discreto.[21]
Figura 4.9: Senal resultante del muestreo.
Figura 4.10: Senal resultante de la cuantizacion.
Se debe ser cuidado al comparar la senal 4.7 y la senal 4.10,
porque se podra confundir elmuestreo y cuantizacion juntas y hay
etapas que se deben tener en cuanta antes de llegar atal
conclusion. Primero se debe analizar los efectos del de la
cuantizacion. Cualquier muestraen la senal digitalizada puede haber
un maximo error de # LSB (el bit menos significativo,debido a que
es la diferencia mas adyacente entre los niveles de cuantizacion).
En la figura
-
Captulo 4. Marco Teorico 19
4.11 se ve como el error de cuantizacion para este caso, se
puede encontrar restando la senal4.9 y la senal 4.10. En otras
palabras, la salida digital de la senal 4.10, es equivalente a
laentrada continua de la senal 4.9, mas el error de cuantizacion en
la figura 4.11. Lo importantede este analisis es que se puede
considerar el error de cuantizacion como un ruido aleatorio.
Figura 4.11: El resultado de la resta entre el muestreo y la
cuantizacion.
Al tenerse claro los efectos de la cuantizacion y del muestreo,
se debe concluir que entremayor sea el numero de la resolucion en
el conversor ADC (mas bits en la cuantizacion)se puede reducir el
ruido propio que genera el proceso de la cuantizacion. Tambien se
debetener en cuenta las velocidades a nivel de hardware del propio
conversor, porque el modulode muestreo y retencion puede tomar
bastante tiempo a comparacion de la frecuencia de lasenal analogica
y esto genera ruido tambien.[22]
Teorema de muestreo
La definicion de muestreo es un poco simple y para ellos se
usara un ejemplo. Se va asuponer que se esta muestreando una senal
continua de alguna manera, no interesa como. Sise busca poder
reconstruir de manera exacta la senal analogica con base a las
muestras obte-nidas, se debe tener un diseno de muestreo bien
elaborado. Incluso si los datos muestreadosparezcan confusos o
incompletos, la informacion clave pudo ser captura y con esto es
capasde realizarse el proceso de reconstruccion.[23]
-
Captulo 4. Marco Teorico 20
Figura 4.12: Muestreo de una senal DC.
En la figura 4.12 se observa una gran cantidad de senales
sinusoidales antes y despuesde la digitalizacion. Las lineas
continuas representan la senal analogica que ingresa al
ADC,mientras que las marcas de cuadros son las senales que salen
del ADC. En la figura 4.12, lasenal analogica es un valor constante
DC, es decir una senal coseno con frecuencia cero. Enla senal
analogica hay una serie de lineas rectas entre cada una de las
muestras, se puedeobservar que toda la informacion necesaria para
la reconstruccion de la senal analogica estadentro de los datos
digitales (los valores tomados). Acorde a la primera definicion,
este el eltipo de muestreo que se encuentra bien disenado.
Figura 4.13: Muestreo de una senal seno, con frecuencia al 0.09
de la tasa de muestreo.
La onda seno en la figura 4.13 tiene una frecuencia de 0.09 de
la tasa de muestreo. Esto sepodra representarse, por ejemplo, en 90
ciclos/segundo de la onda seno siendo muestreada en1000 muestras
por segundo. Expresado de otro forma, hay 11.1 muestras tomadas por
cadaciclo completado de la senal seno. Este caso es mas complejo
que el caso previo, porque la
-
Captulo 4. Marco Teorico 21
senal analogica no puede ser reconstruida dibujando simples
lineas rectas entre los puntos delos datos. Lo que si se puede
afirmar es que los datos muestreados fueron lo suficientes comopara
reconstruir la senal, demostrando que fue una manera apropiada de
hacer el muestreo.
Figura 4.14: Muestreo de una senal seno, con frecuencia al 0.31
de la tasa de muestreo.
En la figura 4.14, la situacion es mas compleja porque se
incrementa la frecuencia a 0.31de la tasa de muestreo. Esto
significa que solo se toman 3.2 muestras de la senal seno porciclo.
Pero parece que las muestras estan muy esparcidas con base a la
reconstruccion de lasenal; con lo cual deja la duda si son
suficientes para reconstruir la senal. En este caso, lasmuestras
son la unica representacion de una senal analogica. Toda la
informacion tomada enen la etapa del muestreo necesaria, llego a
obtenerse para la reconstruccion.
Figura 4.15: Muestreo de una senal seno, con frecuencia al 0.95
de la tasa de muestreo.
En la figura 4.15, la frecuencia de la senal analogica es
incluso puesta a 0.95 de la tasa demuestreo. Es decir toma 1.05
muestras por ciclo de la senal seno. Se podra considerar que
-
Captulo 4. Marco Teorico 22
son los datos necesarios para reconstruir la senal?. No, en este
caso no se puede. Las muestrasque se tomaron pueden representar
senales diferentes de una misma senal analogica. En estecaso en
particular, la senal seno al ser muestreada produce una senal
digital representadacon el 0.05 de frecuencia de la senal original.
Este fenomeno de senales senosoidales confrecuencias diferentes,
producidas en el muestreo se conoce como aliasing. Este nombre
vienea que la senal toma otra identidad (alias), porque asume una
frecuencia que no es la propiaa la original.En el proceso digital
de senales se genero un teora conocida como el teorema de muestreo
deshannon, o el teorema de muestreo de Nyquist. El teorema de
muestreo indica que la senalcontinua puedes ser muestreada
propiamente, solo si los componentes de frecuencia no
estanalrededor de la media tasa de muestreo. Es decir, una tasa de
muestreo de 2000 muestraspor segundo requiere que la senal
analogica este compuesta por frecuencias menos a 1000ciclos por
segundo. Si la frecuencia es mayor a este limite, se puede producir
el fenomeno dealiasing.
Fm = 2 B
donde B es el ancho de banda, o la frecuencia maxima de la senal
a muestrear.Tambien se puede considerar la siguiente imagen,
Figura 4.16: la tasa de muestreo para evitar Aliasing.
Analizador Logico
Un analizador logico es un dispositivo electronico que tiene la
finalidad de verificar los cir-cuitos digitales secuenciales o con
variaciones en el tiempo. Es un dispositivo cuyo objetivo es
-
Captulo 4. Marco Teorico 23
visualizar los valores de las senales digitales durante un
periodo de tiempo de adquisicion.[24]Por lo general un analizador
logico cumple con:
Adquirir muestras que tomen unos valores discretos (entre 1 y 0
logico).
Adquiere varias muestras simultaneamente para poder observar un
conjunto de lneasdigitales (por ejemplo un bus de datos).
Las muestras se almacenan en una memoria digital interna,
llamada memoria de ad-quisicion, para su posterior observacion.
Un analizador logico muestra las senales de manera muy similar a
un osciloscopio: el eje hori-zontal representa el tiempo y el eje
vertical el valor de la senal. A diferencia del osciloscopio,que
trata de representar las senales con gran resolucion de voltaje y
precision temporal, losobjetivos de los analizadores logicos son
los siguientes:
Representar simultaneamente un gran numero de senales.
Observar el estado de las senales entorno a la aparicion en
varias lneas de un determi-nado patron de bits (condicion de
disparo o trigger).
A continuacion se observa un ejemplo de las mediciones de un
analizador logico.
Figura 4.17: Senales tomadas desde un analizador logico.
Desarrollo de aplicacion web
HTML
Que significa HTML y que es?
HTML significa Lenguaje de Marcado de Hypertexto(HyperText
Markup Language), esun lenguaje que pertenece a la familia de los
lenguajes de etiqueta 2es utilizado para la
-
Captulo 4. Marco Teorico 24
elaboracion de paginas web.[25]Cabe destacar que HTML no es un
lenguaje de programacion ya que no cuenta con funcionesaritmeticas,
variables o estructuras de control propias de los lenguajes de
programacion, porlo que HTML genera unicamente paginas web
estaticas, sin embargo, HTML se puede usar enconjunto con diversos
lenguajes de programacion para la creacion de paginas web
dinamicas.
Proposito de HTML.
Basicamente el lenguaje HTML sirve para describir la estructura
basica de una pagina (elesqueleto) y organizar la forma en que se
mostrara su contenido, ademas de que HTMLpermite incluir enlaces
(links) hacia otras paginas o documentos.[25]
CSS 3
CSS son las siglas de Cascading Style Sheets(Hojas de Estilo en
Cascada) que es unlenguaje que describe la presentacion de los
documentos estructurados en hojas de estilo paradiferentes metodos
de interpretacion, es decir, describe como se va a mostrar un
documentoen pantalla.[26]
Funcion de CSS
CSS es una especificacion desarrollada por el W3C (World Wide
Web Consortium) para per-mitir la separacion de los contenidos de
los documentos escritos en HTML, XML, XHTML,SVG, o XUL de la
presentacion del documento con las hojas de estilo, incluyendo
elementostales como los colores, fondos, margenes, bordes, tipos de
letra, etc. modificando la aparienciade una pagina web de una forma
mas sencilla, permitiendo a los desarrolladores controlar elestilo
y formato de sus documentos.
Manejando CSS
El lenguaje CSS se basa en una serie de reglas que rigen el
estilo de los elementos en losdocumentos estructurados, y que
forman la sintaxis de las hojas de estilo. Cada regla consis-te en
un selector y una declaracion, esta ultima va entre corchetes y
consiste en una propiedado atributo, y un valor separados por dos
puntos.
Definiciones basicas
Selector: El Selector especifica que elementos HTML van a estar
afectados por esa declara-cion, de manera que hace de enlace entre
la estructura del documento y la regla estilstica enla hoja de
estilo.
Declaracion: La Declaracion que va entre corchetes es la
informacion de estilo que indi-ca como se va a ver el selector. En
caso de que haya mas de una declaracion se usa punto ycoma para
separarlas.
-
Captulo 4. Marco Teorico 25
Propiedad o Atributo y Valor: Dentro de la declaracion, la
Propiedad o Atributo definela interpretacion del elemento
asignandosele un cierto Valor, que puede ser color, alineacion,tipo
de fuente, tamano,etc; es decir, especifican que aspecto del
selector se va a cambiar.
Javascript
Javascript es un lenguaje que puede ser utilizado por
profesionales de software y paraquienes se inician en el desarrollo
y diseno de sitios web.[27] No requiere de compilacion yaque el
lenguaje funciona del lado del cliente, lo que significa que los
navegadores son losencargados de interpretar estos codigos. Que es
Javascript?
Javascript es un lenguaje con muchas posibilidades, utilizado
para crear pequenos programasque luego son insertados en una pagina
web y en programas mas grandes, orientados a objetosmucho mas
complejos. Con Javascript se puede crear diferentes efectos e
interactuar con losusuarios de la aplicacion web.[27]Es necesario
resaltar que hay dos tipos de JavaScript: por un lado esta el que
se ejecuta en elcliente (interacion del usuario con la web), este
es el Javascript propiamente dicho, aunquetecnicamente se denomina
Navigator JavaScript. Pero tambien existe un Javascript que
seejecuta en el servidor, es mas reciente y se denomina LiveWire
Javascript (Manipulacion deinformacion y solicitudes al
servidor).
Bootstrap
Bootstrap es un framework originalmente creado por Twitter, que
permite crear interfacesweb con CSS y JavaScript dentro de la
pagina html, cuya particularidad es la de adaptar lainterfaz del
sitio web al tamano del dispositivo en que se visualice [28]. Es
decir, el sitio webse adapta automaticamente al tamano de un
computador de escritorio, una Tablet u otrodispositivo movil. Esta
tecnica de diseno y desarrollo se conoce como responsive
designodiseno adaptativo. El beneficio de usar responsive designen
un sitio web, es principalmenteque el sitio web se adapta
automaticamente al dispositivo desde donde se acceda. En
pocaspalabras no es necesario generar disenos diferentes de la
misma pagina web, para ser visua-lizado en diferentes dispositivos,
debido a que incrementa el codigo y termina siendo tediosala labor
debido a la gran cantidad de tamanos que pueda solicitar dicha
pagina web.Aun todas las posibilidades que ofrece Bootstrap a la
hora de crear interfaces web, los di-senos creados con Bootstrap
son simples, limpios e intuitivos, esto les da agilidad a la horade
cargar y al adaptarse a otros dispositivos.
Es uno de los frameworks mas usados por los disenadores de
aplicaciones web, debido asu facilidad de uso y la gran cantidad de
documentacion y comunidades que dan soporte a
-
Captulo 4. Marco Teorico 26
este.
Convertidor DC - DC (Bost)
El convertidor Boost (o elevador) es un convertidor DC a DC que
obtiene a su salidauna tension continua mayor que a su entrada.[29]
Es un tipo de fuente de alimentacion con-mutada que contiene al
menos dos interruptores semiconductores (diodo y transistor), y
almenos un elemento para almacenar energa (condensador, bobina o
combinacion de ambos).Frecuentemente se anaden filtros construidos
con inductores y condensadores para mejorarel rendimiento.Un
conector de suministro de energa habitual no se puede conectar
directamente a dispo-sitivos como ordenadores, relojes o telefonos.
La conexion de suministro genera una tensionalterna (AC) y los
dispositivos requieren tensiones continuas (DC). La conversion de
potenciapermite que dispositivos de continua utilicen energa de
fuentes de alterna, este es un pro-ceso llamado conversion AC a DC
y en el se usan convertidores AC a DC como rectificadores.
La energa tambien puede provenir de fuentes DC como bateras,
paneles solares, rectifica-dores y generadores DC, pero ser de
niveles inadecuados. El proceso de cambiar una tensionde continua a
otra diferente es llamado conversion DC a DC. Un convertidor Boost
es unode los tipos de convertidores DC a DC. Presenta una tension
de salida mayor que la tensionde la fuente, pero la corriente de
salida es menor que la de entrada.[30]
Nube (Cloud)
Que es la nube?
Muchos desarrolladores de TI sostienen que la computacion en la
nube no es mas queotra alternativa de subcontratacion a la
contratacion de un centro de datos. Si bien existensemejanzas, la
computacion en la nube se diferencia por sus principales
caractersticas deautoservicio a pedido, agrupacion de recursos,
elasticidad rapida y pagos de acuerdo con elconsumo.[31] En virtud
de estas caractersticas, resulta atractiva para algunos y
problematicapara otros; por ejemplo, el autoservicio a pedido y la
elasticidad de la potencia de compu-tacion y los sistemas de
almacenamiento pueden ser opciones atractivas para un
cientficoinvestigador, pero un posible problema para el centro de
investigacion de una universidad,que debe dar cuenta de la
integridad de los datos de los trabajos de investigacion. Se
promo-ciona la computacion en la nube principalmente porque se
reconoce que los grandes centrosde datos cuentan con miles de
servidores que, en general, no funcionan a capacidad plena,lo que
crea un excedente de capacidad de computacion. Como utiliza estos
recursos con maseficiencia mediante su visualizacion, la
computacion en la nube permite obtener un mayorretorno de la
inversion en el centro de datos. Ademas, permite a una universidad
crear supropia nube privada dentro de su propia
infraestructura[32].
-
Captulo 4. Marco Teorico 27
Tipos de Nube
Nube privada. La infraestructura en la nube se opera
exclusivamente para una organi-zacion. Puede ser administrada por
la propia organizacion o un tercero y puede hallarsedentro de las
instalaciones o fuera de ellas [33].
Nube comunitaria. La infraestructura en la nube es compartida
por varias organiza-ciones y da soporte a una comunidad especfica
que posee inquietudes comunes. Puedeser administrada por las
propias organizaciones o un tercero y puede hallarse en
lasinstalaciones o fuera de ellas.
Nube publica. La infraestructura en la nube esta a disposicion
del publico en generalo de un grupo grande del sector y su
propietario es la organizacion que comercializaservicios en la
nube.
Nube hbrida. La infraestructura en la nube se compone de dos o
mas nubes (privada,comunitaria o publica) que, si bien son
entidades unicas, estan vinculadas por tecnologaestandarizada o
propia que permite la portabilidad de datos y aplicaciones.
Beneficios de la Nube
Reduccion de costos. Las organizaciones pueden reducir o
eliminar los gastos de capitalde TI y disminuir los gastos
operativos al pagar unicamente los servicios que utilizan yal poder
reducir o reubicar al personal de TI [34].
Facilidad de implementacion. Como no es necesario comprar
hardware y licencias desoftware ni contratar servicios de
implementacion, una organizacion puede implementarla computacion en
la nube con rapidez.
Flexibilidad. La computacion en la nube ofrece mas flexibilidad
a la hora de asignarrecursos de TI a funciones comerciales, en
comparacion con metodos de computaciondel pasado. Tambien puede
aumentar la movilidad del personal ya que facilita el accesoa
informacion y aplicaciones empresariales desde una gama mas amplia
de ubicacionesy servicios.
Acceso a funciones de TI de alta gama. En especial para las
organizaciones mas pe-quenas, la computacion en la nube permite el
acceso a hardware, software y personalde TI de mas alto nivel que
el que pueden atraer o proporcionarse por s mismas.
Sostenibilidad. Hoy se comprende que la baja eficiencia
energetica de la mayora de loscentros de datos, a causa de su
diseno deficiente o del uso poco eficaz de los recursos,no es
sostenible desde un punto de vista ambiental y economico.
-
Captulo 4. Marco Teorico 28
Estado del arte
Sistema de Tiempo Real Embebido en un Microcontrolador de
AltoDesempeno para el Procesamiento de Audio
En este proyecto se realizo el procesamiento de senales
realizado por un sistema operativoen tiempo real embebido en un
microcontrolador ya que permite optimizar el tiempo de eje-cucion
de las tareas crticas y no crticas asignadas para el procesamiento
de audio y reducircostos en la unidad de procesamiento. Se
implemento la realizacion de multitareas a travesde un sistema de
tiempo real embebido en un microcontrolador para el procesamiento
deaudio. Se genero la comunicacion entre microcontroladores para as
tener una mayor eficaciacon respecto a la respuesta de las tareas
asignadas y finalmente integro una etapa de pro-cesamiento de
senales en el sistema operativo en tiempo real, minimizando los
componentesempleados para la reduccion de costos materiales.
Oscilocopio WiFi Velleman WFS210
Figura 4.18: Oscilocopio WiFi Velleman WFS210 [36].
Osciloscipio digital de 2 canales vinculable a tablets. Es de
tamano compacto y alimentadomediante bateras [36]. En lugar de
utilizar una pantalla integrada, puede hacer uso de unatablet con
sistema operativo iOS, Android o un computador con Windows para
mostrar lasmediciones. El intercambio de datos entre la tablet y el
osciloscopio es mediante red localinalambrica.Sus especificaciones
son:
Rango de entrada: 5mV/div a 20V/div.
Base de tiempo: 1us/div a 1s/div.
Entrada maxima de 30 Vpp.
Tasa de muestreo tiempo real: 2x10MS/s.
Impedancia de entrada: 1Mohm.
Acople de entrada: AC + DC, AC y GND.
-
Captulo 4. Marco Teorico 29
Ancho de banda: 2 x 10Mhz.
Resolucion Analoga a digital: 8 bits.
Buffer de muestras: 4K/canal.
Consumo(Batera): 160mA.
Batera: ion de litio 3.7V 1800mAh.
Sus requerimientos:
iOS.
Android 4.0.
Sistema operativo Windows XP o mayor.
Tablet o PC.
Wireless Oscilloscope using Android App for Mobile
En el artculo[ref] se describen los componentes de un
osciloscopio inalambrico que haceuso de una aplicacion Android en
un smartphone para la visualizacion de las mediciones [37].
Figura 4.19: Oscilocopio Wireless [37].
El transmisor consiste en un modulo serial Wi-Fi y un
microcontrolador Atmega8. Lasenal transmitida es recibida mediante
WiFi en un Smartphone o tablet que ejecute el sistemaoperativo
Android y tenga instalada la aplicacion encargada de graficar en 2D
la forma deonda de la senal medida. A aplicacion permite cambiar la
division de voltaje y tiempo. Laforma de onda puede ser guardada
como un videoclip o una imagen formato jpeg.
Osciprime
Es una plataforma de hardware para adquisicion de datos de alta
velocidad y una aplica-cion Android de visualizacion. Mediante el
uso de USB, el hardware se conecta a dispositivosAndroid que
soporten Host USB. El hardware consiste en dos partes: la interfaz
analoga,donde una senal es ajustada a los conversores analogo a
digital y una interfaz digital dondelos datos adquiridos son
cuantificados y preparados para la transmision USB. Los
elementos
-
Captulo 4. Marco Teorico 30
principales son un dispositivo complejo programable Xilinx
Coolrunner y un microcontroladorCypress FX2 [38].
Figura 4.20: Oscilocopio Wireless [38].
Microcontrolador TIVA C
Descripcion basica
El Tiva C es una plataforma de desarrolla propia de Texas
Instruments de bajo costo queesta basado en el microcontrolador
TM4C123GH6PM el cual esta desarrollado para reali-zar aplicaciones
con fines industriales, incluyendo monitoreo remoto, maquinas
electronicaspara los puntos de venta, equipos de pruebas y
mediciones, switches y aplicaciones en re-des informaticas,
automatizacion de produccion, HVAC y desarrollo de control, equipos
devideojuegos, control de movimiento en maquinas, transporte,
deteccion de fuego y seguridad.
-
Captulo 4. Marco Teorico 31
Figura 4.21: Microcontrolador TIVA C de Texas Instruments.
Las caractersticas de Hardware.
Tiene un procesador con un nucleo de 32-bit ARM Cortex-M4 de
80Mhz con un siste-ma de temporizacion (SysTick), integrado un
vector de interrupcion Nested VectoredInterrupt Controller (NVIC),
Wake-Up Interrupt Controller (WIC) con reloj incor-porado,
proteccion de memoria Memory Protection Unit (MPU), permite
operacionesde unidad de punto flotante (FPU).
Maneja una memoria interna de 256 KB flash de ciclo sencillo que
puede llegar a masde 40Mhz, 32KB SRAM de ciclo sencillo; una ROM
interna cargada con TivaWare paraprogramar en C; 2 KB EEPROM.
Tiene dos modulos de control de area (CAN), el cual usa el
protocolo CAN version 2.0parte A y B con una tasa de 1Mbps.
Controlador de USB con protocolo USB 2.0 a maxima velocidad
(12Mpbs) y bajavelocidad (1.5Mbps), con 32 terminaciones y permite
el modo USB OTG Host Device.
Tiene integracion a comunicacion serial avanzada: maneja 8 UARTs
con IrDA de 9bits y soporta ISO 7816; tiene 4 modulos de interfaz
serial sincronica (SSI), soportaoperaciones de SPI de Freescale,
MICROWIRE o interfaces seriales sincronicas propiasde Texas
Instruments; maneja 4 modulos I2C, brindando velocidades estandares
comoson 100Kbps y altas a 400Kbps en transmision. Soporta el envo y
recepcion de datostanto en maestro como en esclavo.
Soporta caractersticas analogicas. Tiene 2 conversores de 12
bits de senales analogicasa digital con 12 canales analogicos de
entrada y una tasa de muestro de hasta 1 millonde muestras por
segundo; dos comparadores analogicos, 16 comparadores digitales;
unregulador de voltaje incorporado.
Control para movimiento avanzado. Tiene 8 bloques de generadores
de PWM, cadauno tiene un contador de 16 bits, dos comparadores PWM,
un generador de senales
-
Captulo 4. Marco Teorico 32
PWM, un generador de banda muerta y un selector de disparo de
ADC o interrupcion;2 modulos de interfaz codificador de cuadratura
(QEI).
Maneja dos temporizadores de tipo Watchdog; tiene temporizadores
de 32 bits deproposito general; temporizadores de 64bits de
proposito general; 12 pines de 16, 32,64bits como comparadores de
PWM.
Mas de 43 GPIOS (dependiendo de la configuracion), con un
control programable deinterrupciones de GPIO.
Modulo de hibernacion de bajo consumo de energa, con reloj de
tiempo real.
Multiples fuentes de reloj: Oscilador de precision (PIOSC),
Oscilador Principal (MOSC),un oscilador externo de 32.768Khz y un
oscilador interno de 30Khz.
Sistema de alimentacion.
La placa de desarrollo se puede alimentar por el puerto USB que
tiene para realizar elDebug y que tambien permite cargar el codigo
que lo controla. Adicionalmente tiene otropuerto USB que permite
alimentar al microcontrolador desde otro sistema, pero el cual
nodeja hacer Debug ni cargar el software al microcontrolador.
Finalmente, esta la alimentaciondirecta al microcontrolador en un
pin dedicado en la placa el cual debe ingresar 5 voltios.
Elmicrocontrolador se alimenta con 3.3 voltios, pero la placa en
ese pin dedicado maneja unregulador de proteccion y establece el
voltaje a la alimentacion necesaria.
Figura 4.22: Pin de alimentacion externa al Tiva C.
Software de programacion.
Este microcontrolador se puede programar desde Keil ARM
(software que permite pro-gramar microcontroladores de ARM), Energa
(Programacion similar al de arduino ya que
-
Captulo 4. Marco Teorico 33
maneja libreras similares), Code Composer Studio con IDE Eclipse
que permite asociar li-breras propias de Texas Instruments como son
TivaWare C que puede manipular de maneramas facil los modulos
internos del microcontrolador y tambien el hardware externo
disenadopara este. Tambien se puede desarrollar codigo desde la
aplicacion Cloud de Code ComposerStudio, pero con limitaciones de
libreras.
Figura 4.23: Software para programa el TIVA C.(Energia, Code
Composer Studio, Keil ARM)
Modulo Bluetooth HC-05.
EL modulo Bluetooth HC-05 es un modulo Bluetooth SPP (Serial
Port Protocol) de faciluso, disenado para configurar conexiones
seriales Wireless transparentes. Estas comunicacio-nes por el modo
serial hacen que sea un metodo de interfaz facil de controlar desde
una PCo dispositivo con Bluetooth. Este modulo brinda la opcion de
intercambiar entre el modoeslavo y maestro, es decir la capacidad
de enviar o transmitir datos.
Figura 4.24: Modulo Bluetooth HC-05.
Especificaciones de Hardware.
Sensibilidad tpica de -80dBm.
Mas de +4dBm en energa de transmision en RF.
Operaciones de bajo consumo (1.8v), con entradas y salidas de
3.3 a 5 voltios.
-
Captulo 4. Marco Teorico 34
Control de perifericos de entrada y salida.
Interfaz UART con tasa de transmision programable.
Tiene la antena integrada.
Especificaciones de Conexion.
Pin Descripcion FuncionVCC 5 Voltios Conectar a 5 voltios.GND
Ground - Tierra Conectar a tierra.TXD UART TXD, senal serial que Se
conecta al
enva el Bluetooth microcontrolador en el pin RXD.RXD UART RXD,
senal serial que Se conecta al
recibe Bluetooth microcontrolador en el pin TXDKEY Codificacion
Cuando se deja al aire, se
transmiten datos.Cuando se conectaa 3.3 o 5 voltios se envia el
comandoAT.
Especificaciones de software.
En modo esclavo tiene una tasa de transmision: 9600, bits de
datos: 8, bit de parada:1, paridad: sin paridad.
Se puede conectar el pin 9 y 8 a un led rojo y azul de manera
separada. Cuando elmaestro y el esclavo son emparejados, el led
rojo y azul son intermitentes en un intervalode 1 y 2 segundos, si
se desconecta solo el led azul alumbrara.
Se auto conecta al ultimo dispositivo que fue emparejado cuando
este este activo.
Para el emparejamiento, por defecto el PIN es:1234.
-
Captulo 5
Desarrollo
Aplicacion web
Basicamente se busco realizar una aplicacion web que simulara
una plataforma cloud quepermitiera guardar y visualizar las
mediciones obtenidas en el prototipo de osciloscopio.La aplicacion
web tiene un sistema de logueo para el usuario.
Figura 5.1: Login desde un PC
35
-
Captulo 5. Desarrollo 36
Figura 5.2: Login desde un movil Android
En el caso de que la persona que quiere ingresar a la plataforma
no tenga usuario; tienela opcion de registrarse creando un usuario
y contrasena.
Figura 5.3: Registro en la pagina web, visto desde un PC
-
Captulo 5. Desarrollo 37
Figura 5.4: Registro en la pagina web, visto desde un movil
Android
Al momento de ingresar el sistema le da la bienvenida y puede
hacer uso de la herramienta.
Figura 5.5: Inicio de la pagina web, visto desde un PC
-
Captulo 5. Desarrollo 38
Figura 5.6: Inicio de la pagina web, visto desde un movil
Android
Cuando se ingresa desde el celular o en un computador y quiera
subir el archivo seselecciona la opcion de subir archivo.
Figura 5.7: Subir archivo en la pagina web, visto desde un
PC
-
Captulo 5. Desarrollo 39
Figura 5.8: Subir archivo en la pagina web, visto desde un movil
Android
Si se ingresa desde una PC y se quiere visualizar la senal se
ingresa a la opcion almacen,donde permite ver todos los archivos
almacenados para el usuario. Al seleccionar el archivoo el
documento se ingresa a la pantalla de visualizacion de la
senal.
Figura 5.9: Ver archivos almacenados en la pagina web, visto
desde un PC
-
Captulo 5. Desarrollo 40
Figura 5.10: Ver archivos almacenados en la pagina web, visto
desde un movil Android
En este medio de visualizacion le permite ver la senal con los
valores obtenidos y puedeobservar un rango definido de la senal, ya
sea solo una parte o toda la senal completa.
Figura 5.11: Visualizacion de la senal en la pagina web, visto
desde un PC
-
Captulo 5. Desarrollo 41
Figura 5.12: Visualizacion de la senal en la pagina web, visto
desde un movil Android
Finalmente esta la opcion de salir. Que le permite salir de la
aplicacion y cerrar sesion.
Diseno de fuente de alimentacion
Para poder alimentar toda la board, se debe buscar obtener una
senal dual que puedaalimentar los amplificadores operacionales con
base a la senal de un adaptador de +12V.Para poder lograr este
objetivo se debe pensar primero en como obtener la senal dual,
paraello se propone el siguiente circuito.
Figura 5.13: Circuito que genera senal dual
El circuito como se puede observar la senal de entrada es de
+30V, como salida se produceuna fuente dual con una tierra virtual
que es totalmente diferente a la de la senal de entrada.Para lograr
que la salida sea de +15V y -15V, se utiliza un divisor de voltaje
compuesto pordos resistencias R1 y R2 del mismo valor y un diodo
rectificador comun en serie como se veen el circuito. Los voltajes
en el anodo y el catodo del diodo, estan un poco por encima y
-
Captulo 5. Desarrollo 42
por debajo de 0 voltios y esto permite alimentar las bases de
los transistores Q1 y Q2, quea su vez permiten controlar los
transistores de salida Q3 y Q4. El valor maximo de corrienteque
puede brindar estara limitado por dos cosas: la corriente maxima
que puede producir lafuente de alimentacion y la corriente que
soporten los transistores de salida Q3 y Q4.
Ahora ya que se tiene la produccion de la senal dual, se
entiende como se podra alimen-tar los amplificadores operacionales;
pero queda pendiente el como poder obtener los 30Voltios de entrada
al circuito.Para lograr esto, se debe emplear un circuito
convertidor DC a DC conocido como Boost. Elcircuito que se emplea
en este proyecto se desarrolla busca tener una dimension pequena
yde gran sencillez; por lo tanto se empleo un circuito integrado
que permita esta tarea.El XL6009 de Kylinchip Electronic (de
Shanghai), es un regulador que permite como entradaun rango amplio
de voltaje el cual se comporta como conversor DC a DC que permite
generarsenales de voltaje tanto positivas como negativas. Este
puede ser configurado como Boost,Flyback o conversor inversor. A
continuacion se muestra el circuito que permite funcionarcomo Boost
al integrado XL6009.
Figura 5.14: Circuito Boost, con el integrado XL6009
Como se puede observar, se tiene los pines tanto de entrada como
salida de voltaje. Parapoder variar el voltaje de salida del
circuito es variando el potenciometro de 100K. El in-tegrado
permite salidas maximas de 35 voltios lo cual es suficiente para el
proposito que sebusca.
Con esto se tiene definido todo el circuito para producir una
fuente dual de 15 voltios.Ahora falta producir las senales de
voltaje +5V, +3.3V y 12V. La senal de 12V sonlos que alimentaran
los amplificadores operacionales, los +5V permitiran alimentar
modulosdel generador de senales y el microcontrolador Tiva C.
finalmente se usa el valor 3.3V paralimitar la senal en el modulo
de analizador logico y tambien para la referencia que usara elDAC
en el modulo de generador de senales.Para lograr este proposito lo
unico que hay que realizar es poner en cascada los circuitos
-
Captulo 5. Desarrollo 43
integrados que funcionen como reguladores. Hay en el mercado
reguladores que producensenales de salida como +12V, -12V, +5V y
+3.3V as que es la solucion mas sencilla.
Aplicacion Android
Esta aplicacion fue disenada para ser compatible con
dispositivos con sistema operativoAndroid version mayor o igual a
4.4.4 Kit Kat. Es necesario que el dispositivo sea compati-ble con
el sistema de comunicacion bluetooth del tipo clasico, ya que
permite un mayor flujode datos a diferencia del bluetooth LE (Low
Energy) el cual maneja un protocolo distinto decomunicacion. La
comunicacion se realizara entonces con el modulo bluetooth HC06 el
cualpermite la comunicacion inalambrica como si se tratara de una
comunicacion serial. Es decir,se hace transmision de datos por lo
general de ocho bits y a una velocidad predeterminadade baudios.La
primera vez que es utilizado el modulo Bluetooth, es necesario que
sea sincronizado con elcelular antes de iniciar la aplicacion. La
forma de hacerlo es ingresando a la configuracion delcelular,
activar el Bluetooth e iniciar una busqueda de dispositivos. Se
selecciona el moduloHC06 el cual tendra el nombre que se le haya
configurado y se solicitara el PIN de vinculacioncon el modulo, que
por lo general es 0000 o 1234 sin las comillas. Esto permitira
quesea incluido en la lista de dispositivos sincronizados y pueda
ser accedido desde la aplicacion.Dicha tarea solo requiere ser
realizada una unica vez a menos de que el dispositivo haya
sidoeliminado de la lista de dispositivos sincronizados.La
aplicacion no requiere que el Smartphone tenga que ser modificado
de alguna maneraen terminos de Hardware, ni de software o sistema
operativo, no requerira que se encuentreruteado ni con una
aplicacion adicional.A continuacion se explicara detalladamente en
que consiste cada una de las actividades dela aplicacion, se
describiran las interfaces graficas correspondientes, las clases y
funcionescreadas para garantizar la comunicacion con el modulo y la
visualizacion de las formas deonda correspondientes.
Actividad de Seleccion de dispositivo: DeviceListActivity
Esta actividad es la que se lanza al inicio de la aplicacion. Es
la que permite realizar laconexion al modulo bluetooth con el cual
se establece la comunicacion serial con la board.En esta actividad
se declara el objeto mBtAdapter de la clase BluetoothAdapter [41],
elcual permite consultar la lista de dispositivos previamente
emparejados con el Smartphonee instanciar un objeto bluetooth
(BluetoothDevice [42]) a partir de una MAC conocida.
-
Captulo 5. Desarrollo 44
Figura 5.15: Diagrama de Herencia para DeviceListActivity
La actividad se crea configurando la interfaz de usuario con el
layout [43] activity device list,el cual esta formado por TextViews
[44] y un ListView [45]. Al resumirse la actividad, se veri-fica
que el bluetooth este activado en el dispositivo mediante el metodo
checkBtState(). Si elbluetooth se encuentra desactivado, se lanza
la solicitud de permiso para activarlo medianteun Intent [46], como
se muestra en la figura 5.16.
Figura 5.16: Imagenes en aplicacion de Bluetooth
Cuando el bluetooth esta activado en el Smartphone, se despliega
la lista de dispositivoscon los que ha sido sincronizado en algun
momento. Para que se muestre en pantalla eldispositivo bluetooth
con el cual se hara la conexion, es necesario que sea sincronizado
[47]
-
Captulo 5. Desarrollo 45
en la configuracion de Android. Los elementos listados se
mostraran con informacion delnombre del dispositivo y direccion
MAC, como se muestra en la figura 5.17.
Figura 5.17: Imagenes de seleccion de dispositivo Bluetooth
Al seleccionar uno de los dispositivos de la lista, se ejecuta
un Intent que inicia la activi-dad SelectActivity, y enva en el
Intent la informacion de la direccion MAC del
dispositivoseleccionado.
Actividad de seleccion de funcion: SelectActivity
Esta actividad permite seleccionar la funcion a realizar, siendo
las opciones disponiblesOsciloscopio, Generador, Analizador Logico
y Subir datos. Implementa la interface OnClic-
-
Captulo 5. Desarrollo 46
kListener [48], la cual permite informar cuando se registre un
evento de toque sobre el Viewde la actividad.
Figura 5.18: Imagenes en aplicacion de Bluetooth
El metodo onClick() asociado a esta interface se encarga de
identificar el elemento queha sido seleccionado de los cuatro
botones disponibles, creando un Intent sobre el cual seenviara la
informacion con la direccion MAC del dispositivo Bluetooth, para
posteriormenteiniciar la actividad asociada a cada intent.
-
Captulo 5. Desarrollo 47
En el metodo de creacion (onCreate()) la actividad se configura
el layout o interfaz graficaque consta de un TextView y cuatro
Buttons [49]. Al seleccionar uno de estos botones, selanzara
mediante un Intent la actividad correspondiente a la opcion
escogida. Este Intentcontiene tambien la informacion de la
direccion MAC del dispositivo.
Figura 5.19: Seleccion de actividad en la aplicacion
Clase para manejo de la comunicacion Bluetooth:
BluetoothRf-commClient
Esta clase permitira que se pueda establecer comunicacion con el
dispositivo bluetooth.Para que se puedan leer las propiedades del
adaptador bluetooth local y encontrar los disposi-tivos
emparejados, es necesario incluir los permisos BLUETOOTH ADMIN y
BLUETOOTHen el Android Manifest. Esta clase tiene como atributos
los siguientes elementos:
-
Captulo 5. Desarrollo 48
Clase\ Objeto FuncionUUID MY UUID Almacena el identificador
unico del
tipo de dispositivo Bluetooth con elque se hara la conexion.
BluetoothAdapter mAdapter Objeto encargado de representar
eladaptador bluetooth local.
Handler mHandler Objeto que permite comunicarsecon la interfaz
de usuario.
ConnectThread mConnectThread Objeto que representa elthread
encargado de establecerconexiones.
ConnectedThread MConnectedThread Objeto que representa el
threadencargado de manejar conexionesestablecidas.
int mState Variable que representa el estadode la conexion,
descrita por los tresatributos constantes de la clase.
Final int STATE NONE Constante que indica que no hayninguna
conexion establecida. Ni seesta intentando realizarla. Suvalor es
0.
Final int STATE CONNECTING Constante que indica que se
estaintentando establecer una conexion.Su valor es 1.
Final int STATE CONNECTED Constante que indica que hay
unaconexion establecida. Suvalor es 2.
El constructor de esta clase recibe el context y el handler que
maneja la comunicacioncon la interfaz de usuario. Asigna al objeto
mAdapter el adaptador local mediante el metodogetDefaultAdapter()
de la clase BluetoothAdapter. Asigna a la variable mState el valor
STA-TE NONE y asigna el handler recibido al objeto local mHandler.
Esta clase maneja threadsque pueden modificar los valores de
variables u objetos de la misma. Para que esto se puedarealizar sin
intervencion de otros threads que tambien intenten modificar una
misma variable,se utilizan metodos sincronizados, los cuales evitan
que varios threads intenten modificar unavariable al mismo tiempo,
lo cual puede causar conflictos.SetState es un metodo sincronizado
que configura el estado actual de la conexion, y enva asu vez dicha
informacion al handler para ser actualizado en la interfaz de
usuario.GetState es otro metodo sincronizado que retorna el estado
actual de la conexion. El Metodosincronizado Start() inicializa el
cliente RFCOMM. Cancela los threads que esten intentandoestablecer
una conexion o que tengan una conexion activa. Luego, asigna a la
variable mStateel valor STATE NONE. Un objeto de la clase
BluetoothDevice [50], representa un dispositivo
-
Captulo 5. Desarrollo 49
bluetooth. Con este es posible crear una conexion con el
dispositivo, o consultar informacionacerca del mismo, como el
nombre, direccion, clase y estado de conexion.El metodo
sincronizado Connect(BluetoothDevice) recibe como argumento un
objeto de claseBluetoothDevice. Este metodo cancela todo thread que
se encuentre intentando realizar unaconexion, y cancela los threads
de conexiones existentes. A continuacion crea una instanciadel
thread para establecer conexiones ConnectThread y lo inicializa.
Luego se establece seasigna el valor STATE CONNECTING a la variable
mState para indicar que se esta inten-tando una conexion.La clase
BluetoothSocket [51] instancia objetos que permiten representar un
punto final decomunicacion bluetooth entre dos dispositivos. El
tipo mas comun de socket bluetooth esel RFCOMM, el cual es el tipo
soportado por las APIs de Android. RFCOMM maneja unstreaming de
transporte sobre bluetooth orientado a la conexion. Es conocido
tambien comoel Perfil de puerto serial SPP.El metodo sinctronizado
connected() es ejecutado al momento de que se ha establecido
unaconexion exitosa con el dispositivo Bluetooth. Este metodo
recibe como argumentos un obje-to de la clase BluetoothSocket y un
objeto de la clase BluetoothDevice. La primera tarea querealiza es
cancelar el thread que ha completado la conexion. Luego de esto,
cancela todos losthreads que hayan establecido una conexion, para
evitar que interfieran con la conexion ac-tual. A continuacion se
crea la instancia del thread que se encarga de manejar la conexion
quepermite transmitir la informacion. Se inicializa con el metodo
start(). Luego de esto, se envael nombre del dispositivo conectado
a la actividad de interfaz de usuario, usando el
handler.Finalmente, se configura el estado de la conexion a STATE
CONNECTED, que indica quehay una conexion establecida. El metodo
sincronizado stop() detiene todos los threads deintento de conexion
y conexiones establecidas. Luego cambia el estado a STATE NONE.El
metodo write(byte) escribe un arreglo de tipo byte. Primero se crea
un objeto temporal dela clase ConnectedThread. Si hay una conexion
establecida, es decir, el estado de la conexiones STATE CONNECTED,
se crea una copia del thread de conexion en el objeto temporal,y
luego se realiza la escritura con el metodo write() del thread,
pasandole como argumentoel arreglo de tipo byte.El metodo
ConnectionFailed() indica que el intento por establecer una
conexion ha presen-tado fallas y se notifica a la actividad de
interfaz de usuario mediante un toast. Primero seconfigura el
estado de la conexion a STATE NONE, y luego mediante el handler se
comunicaa la actividad de intefaz de usuario que la conexion no
pudo ser establecida.El metodo ConnectionLost() es llamado cuando
se ha detectado que la conexion se ha per-dido. Se encarga de
comunicar a la actividad de interfaz de usuario acerca de este
incidente.Primero se configura el estado de la conexion a STATE
NONE y luego mediante el handlerse enva el mensaje a la interfaz de
usuario.
Thread para el establecimiento de conexiones ConnectThread:Este
thread se mantiene en ejecucion cuando se intenta establecer una
conexion con un dis-positivo. Deja de correr cuando se ha podido
hacer una conexion exitosa o si despues deun intervalo tiempo
determinado no es posible establecerla. Tiene como atributos un
objetodenominado mDevice de la clase BluetoothDevice y uno
denominado mSocket de la clase
-
Captulo 5. Desarrollo 50
BluetoothSocket. El constructor recibe como parametro un objeto
de la clase BluetoothDe-vice y lo asigna al valor local. Para
inicializar el objeto BluetoothSocket se crea una variabletemporal
de la misma clase y mediante un try se utiliza el metodo
createRfcommSocketTo-ServiceRecord sobre el objeto device que
recibe como parametro el UUID utilizado cuando serealizaran
conexiones con dispositivos bluetooth que manejan serial. Si la
creacion del Socketha sido exitosa, se asigna el objeto temporal a
la variable local.El metodo run() de este Thread inicia cancelando
cualquier intento de descubrimiento dedispositivos, con el metodo
cancelDiscovery() del objeto que se ha instanciado del
adaptadorbluetooth mAdapter. A continuacion se intenta establecer
la conexion con el socket blue-tooth, mediante el metodo connect()
del objeto mSocket, esto podra generar algun error almomento de la
ejecucion, por lo que se pone dentro de una estructura para la
gestion deexpeciones, try-catch. Si no se genera ninguna excepcion,
se finaliza el thread para el intentode conexion, y luego se
inicializa se llama al metodo connected(), para poder manejar
laconexion que acaba de ser establecida, pasando como argumentos
los objetos mmSocket ymmDevice.Si ocurre una excepcion, se ejecuta
el metodo connectionFailed(), para actualizar el estadode la
conexion. Luego de esto, mediante un try-catch se intenta cerrar el
socket mediante elmetodo close() del objeto mSocket.
Thread para el manejo de conexiones establecidas
ConnectedThread:Este thread se ejecuta durante la conexion con un
dispositivo. Se encarga de manejar lastransmisiones entrantes y
salientes. Cuenta con tres atributos. Un objeto de la clase
Blue-toothSocket, mmSocket; un objeto de tipo InputStream,
mmInStream; y un objeto de laclase OutputStream, mmOutStream. El
constructor recibe un objeto de tipo BluetoothSoc-ket y lo asigna a
la variable local mmSocket. Los valores socket.getInputStream() y
soc-ket.getOutputStream() alimentaran las otras variables locales,
realizando la asignacion me-diante variables temporales y una
estructura try-catch.El metodo run() de este thread tiene otras dos
variables locales; una es un arreglo de tipobyte denomindado buffer
que sera donde se almacenen los datos de la transmision recibida,
yla variable bytes, que almacenara la cantidad de bytes recibidos.
Mediante un bucle infinitose realiza la lectura de las
transmisiones entrantes, con una estructura try-catch. Dentro
deltry se ejecuta la instruccion:
bytes = mmInStream.read(buffer);
El metodo read() [52] recibe como argumento la variable buffer y
almacenara en ella los datosde la transmision. En bytes se guardara
la cantidad de bytes que han sido recibidos. Estemetodo no avanzara
hasta que no haya datos de entrada disponibles, se haya detectado
unfinal de archivo o se lance una excepcion. Luego, este mensaje
que ha sido recibido, se envaa la actividad de interfaz de usuario,
haciendo uso del handler. Si llega a lanzarse una excep-cion, se
ejecuta el metodo connectionLost() y se finaliza el bucle infinito
con la instruccionbreak.El metodo write() del thread recibe como
argumento un arreglo de tipo byte. Mediante el
-
Captulo 5. Desarrollo 51
metodo write del objeto mmOutStream transmite los datos del
arreglo al dispositivo blue-tooth.
Actividad para la visualizacion de senales: PlotActivity
Esta actividad es una clase abstracta que permite manejar la
conexion bluetooth con eldispositivo bluetooth vinculado a la board
para enviar datos, recibir datos, y graficar losdatos recibidos.
Esta clase no esta asociada a un archivo de layout, por lo cual no
tiene unainterfaz de usuario [? ]. Sin embargo partir de ella se
heredan las actividades para las funcio-nes de Osciloscopio,
Generador y Analizador Logico, las cuales si cuentan con una
interfazde usuario, establecida de acuerdo al tipo de funcion que
se realizara. Como clase padre, per-mite establecer atributos y
metodos generalizados, que heredaran las clases hijas los
cualespodran a su vez modificarse en las clases hijas para
comportarse de acuerdo a las necesidadesparticulares de cada
una.
Figura 5.20: Diagrama de Herencia
Dentro de la definicion de esta clase, se cuenta con diferentes
atributos como por ejemploconstantes que permiten manejar la
conexion bluetooth e identificar ciertos comandos pro-venientes de
la comunicacion para la ejecucion dentro de la actividad. El metodo
de creacion(onCreate()) de esta actividad se encarga de ajustar la
visualizacion a pantalla completa yverificar que la conexion
bluetooth esta disponible; en caso de no estarlo, se finalizara
laactividad. La actividad no se asocia a ningun archivo de layout,
ya que estoy lo hara cadaclase hija sobrescribiendo el metodo de
creacion, heredando el metodo de creacion de la clasey haciendo la
asociacion al layout respectivo.En el metodo de inicio (onStart())
se verifica que el bluetooth este habilitado. En caso de noestarlo,
se finaliza la actividad y regresa a la actividad anterior. Si se
encuentra activado, severifica si el objeto de cliente bluetooth ya
ha sido creado. Si no es as, se procede a ejecutarel metodo
abstracto de inicializacion, setUpScope().Dentro del metodo de
resumen se verifica que el objeto de cliente bluetooth ha sido
creado,y se verifica su estado. En caso de estar en STATE NONE (que
no se esta haciendo nada) seinicializa el servicio de
comunicacion.
-
Captulo 5. Desarrollo 52
En el metodo de pausa (onPause()) se procede a detener el
servicio del cliente bluetooth,esto sucede cuando la actividad se
cierra o se cambia a segundo plano.Se define el metodo abstracto
setUpScope(), el cual se implementa en las clases hijas, loque
permite que se comporte de acuerdo a la funcion a realizar, ya sea
la de osciloscopioo la de generador. El metodo BTconnect() se
encarga de realizar la conexion al dispositivoBluetooth. Esto
mediante la creacion de un objeto llamado device de la clase
BluetoothDevi-ce. Este objeto se inicializa con el valor recibido
por el metodo getRemoteDevice del objetode la clase
BluetoothAdapter, pasandole la direccion MAC recibida en la
informacion delintent. Luego se realiza la conexion con el
dispositivo usando el metodo connect del objetomRfcommClient,
pasando como argumento el objeto device.El metodo sendMessage()
recibe un elemento de tipo String, el cual sera transmitido porel
dispositivo. Antes de intentar enviar el mensaje se verifica que la
conexion se encuentreestablecida. Se obtiene el status del
dispositivo y en caso de no estar conectado, se notificamediante un
Toast [49] que no hay ningun dispositivo conectado y se retorna. Si
la conexionesta establecida, se verifica que la cantidad de
caracteres a transmitir sea mayor a cero. Elmensaje de tipo String
debe convertise a bytes para poder ser transmitido, esto aplicando
elmetodo getBytes() del objeto String y almacenando el resultado en
el arreglo de tipo bytellamado send. Este objeto se pasara como
argumento del metodo write() del objeto mRf-commClient.El metodo
get12BitsData() se encarga de tomar los datos recibidos en la
comunicacion, yconvertirlos en valores de 12 bits. Los valores
recibidos en la comunicacion vienen ordenadosen parejas de byte
alto y byte bajo, cada uno con una bandera que indica la posicion
delbyte, para que al hacer la reconstruccion del dato completo, se
eviten errores por perdida dealgun dato. Luego de obtener los datos
recuperados, se retorna un arreglo con estos valores.
Clase para el trazado de los datos en pantalla: PlotView
Esta clase permite crear un View con el cual se pueden dibujar
las graficas de los datosrecibidos. Se hereda de la clase
SurfaceView [50], la cual proporciona una superficie dedicadade
dibujo dentro de una jerarqua de View. Esta clase implementa ademas
la interface Surfa-ceHolder. Callback [51] la cual recibe
informacion de los cambios de la superficie de dibujo,tales como
cuando es creada, cambiada o destruida. Estos eventos son
importantes ya quepermiten saber cuando se puede empezar a dibujar,
si se deben hacer ajustes basados ennuevas propiedades de la
superficie, o cuando parar de dibujar y liquidar procesos.
-
Captulo 5. Desarrollo 53
Figura 5.21: Diagrama de Herencia para PlotView
Mediante un objeto de la clase DisplayMetrics se obtienen las
dimensiones del disposi-tivo, es decir, el ancho y alto de la
pantalla, valores que se usaran para la definicion de loslmites del
area trazable en la pantalla. Para ubicarse en el Canvas y poder
realizar trazos,hay que tener claro el sistema de coordenadas que
utiliza esta clase. Este sistema es relativoa la orientacion de la
pantalla del telefono, ya sea vertical u horizontal. En la imagen
5.22 sepuede visualizar que los ejes X y Y tiene origen en la parte
superior izquierda de la pantalla.El eje X aumenta ascendentemente
de izquierda a derecha y alcanza su valor maximo en elextremo
derecho de la pantalla. El eje Y aumenta ascendentemente de arriba
hacia abajo yalcanza su valor maximo en el extremo inferior de la
pantalla:
Figura 5.22: Eje X y eje Y en la pantalla de Android
La clase Canvas representa una superficie donde se puede
dibujar. Cuenta con metodospara la representacion de puntos, lneas,
crculos, etc. Para dibujar en esta superficie se re-quiere un
pincel (Paint) el cual permite definir caractersticas del trazo
tales como color,grosor, transparencia, etc. Para graficar la senal
se crea los siguientes Paint:
-
Captulo 5. Desarrollo 54
Paint DescripcionCh1Color Define el color del trazo de la
senalgridPaint Define el color del trazo de la
cuadriculaoutlinePaint Define el color de los bordes del area de
trazado
El framework de APIs de Android proporciona un conjunto de APIs
de dibujo 2D quepermite crear graficas personalizadas en un canvas.
La mejor opcion para realizar el trazadode graficas en 2D, es
dibujar directamente en un Canvas, usando el metodo onDraw() [51]y
pasando como argumento el Canvas en cuestion. Mediante el uso de un
Thread separado,se maneja el SurfaceView, y realiza los dibujos tan
rapido como el Thread lo permita. Lainterface
SurfaceHolder.Callback requiere la implementacion de los tres
metodos indicadosen la Tabla 1:
Metodo Publico Intervencion ImplementacionsurfaceCreated Es
llamado inmediatamente Se inicializa el Thread para(SurfaceHolder
holder) la superficie es creada el trazado: plotThread.start()
por primera vezsurfaceChanged Es llamado inmediatamente
Ninguna.(SurfaceHolder holder, despues de que algunint format, int
width, cambio que se ha hechoint height) a la
superficie.surfaceDestroyed Es llamado inmediatamente antes Se
detiene el Thread para(SurfaceHolder holder) de que la superficie
es destruida. el trazado: plotThread.join()
Cuadro 5.1: Metodos de la interface SurfaceHolder.Callback
El metodo plotPoints(canvas) es llamado dentro del metodo de
onDraw(canvas) y se en-carga de realizar las siguientes tareas de
forma consecutiva:
1. Limpiar el View para que al realizar un nuevo trazado, no
queden rastros del trazadoanterior. Esto se logra mediante el
metodo canvas.drawColor(color), el cual recibe comoargumento un
elemento de tipo int que define un color RGB con el cual se
rellenacompletamente el View, cubriendo uniformemente toda la
superficie, borrando a su veztodo lo que se haya dibujado
anteriormente.
2. Luego de pintar el fondo, se llama el metodo
drawGrid(canvas), el cual se encarga de:
Calcular la cantidad de divisiones horizontales que habra en la
grafica, de talmanera que esten separadas entre s por 80
pixeles.
-
Captulo 5. Desarrollo 55
Se itera entonces sobre esta cantidad de divisiones y se traza
una lnea vertical paradelimitarlas, usando el metodo drawline [53].
Este metodo dibuja un segmento delnea con las coordenadas X, Y de
inicio y fin del trazo, usando el paint especificado,en este caso
gridPaint.
Se establece que las divisiones verticales sean 10 en total.
Se itera sobre las divisiones verticales, trazando lneas
horizontales para delimi-tarlas, usando nuevamente el metodo
drawline, ingresando los parametros de lascoordenadas de inicio y
fin, y el gridPaint.
Se realiza el trazado del margen exterior de la grafica, usando
nuevamente el meto-do drawline para trazar las lneas en los bordes
y usando la brocha outlinePaint.
3. Los datos recibidos de la comunicacion, se encuentran
almacenados en un arreglo yse utilizan como puntos coordenados. Se
itera sobre el ancho del View de izquerda aderecha, ubicando cada
punto y uniendolo al siguiente con una lnea recta generadacon el
metodo drawline.
El metodo setData es el que se encarga de recibir el arreglo de
los datos que fueron reco-lectados y ajustados mediante la
comunicacion bluetooth por el handle