1
Proyecto final: Giroscopio comandado desde aplicativo móvil. Pablo Andrés Sáenz Arias - Daniel Calle
[email protected] -
[email protected] Universidad Politécnica Salesiana Circuitos Digitales Avanzados
Resumen—En el presente documento se detallan el desarrollo de un sistema, el cual permite obtener valores de angulo de un celular sansung, para ser procesados y transmitidos por el fpga. Todo esto realizado en lenguaje VHDL. Index Terms—Comunicación,
giroscopio, vhdl.
I. INTRODUCC INTRODUCCIÓN IÓN Este paper esta encargado de recopilar y da a exponer el desarrollo del giroscopio, el cual utiliza un modulo bluethooth para la transferencia de datos entre el celular y el arduino. El arduino actuá como pasarela entre en celular sansung y el fpga. Antes de comenzar el mismo vamos a detallar los elementos y protocolos utilizados.
Figura 1. Dispositivos Dispositivos Bluetooth Bluetooth
I-B1. I-A.
Comunicación paralela
la comuni comunicac cación ión parale paralela la es un método método para para transm transmiti itirr múltiple múlti pless díg dígito itoss bin binari arios os (bits) (bits) de manera manera simult simultane anea. a. A diferencia con la comunicación serie, la cual solo transmite un bit cada vez; esta es una de las características básicas que distinguen a los tipos de comunicaciones. La diferencia básica entre un canal de comunicación en serie y uno en paralelo radica en el número de conductores eléctricos usados en la capa física para transmitir bits. La comunicación en paralelo implica el uso de más de uno de estos conductores. Por ejemplo, un canal de 8 bits transmitirá 8 bits (o un byte) de manera simultanea, mientras que un canal en serie solo podrá transmitir esta cadena de manera secuencial. Si ambos canales operan a la misma frecuencia de reloj, el canal paralelo seria ocho veces más rápido. Un canal paralelo puede tener conductores adicionales para otras señales, como una señal de reloj para moderar el flujo de dados, una señal para controlar el direccionamiento de datos y señales de handshaking.[1][2] I-B.
BLUETOOTH
Creada en 1994, esta tecnología fue concebida como una alternativa para el intercambio inalámbrico de datos usando transmisión por radio. Una de las aplicaciones mas populares de Bluetooth ha sido la reproducción de audio de manera inalámbrica conectando audífonos o manos libres a teléfonos, el uso de esta versión fue llamada BR/EDR (bit rate/enhanced data rate) caracterizada por enviar audio en tiempo real de alta calidad.
Protocolo Protocolo Bluetooth: La pila de protocolo Bluetooth
se puede dividir en cuatro capas acorde a su propósito como se indica:
Cuadro I PROTOCOLOS Y CAPAS DE BLUETOOTH Capa Bluetoot Bluetoothh Core Protocols Protocols Cable Replacement Protocol Telephony elephony Control Control Protocols Protocols Adopted Protocols
Protocolo Baseband, Baseband, LMP, LMP, L2CAP L2CAP, SDP RFCOMM TCS Binary Binary,, AT-commands -commands PPP, UDP/TCP/IP, OBEX, WAP, vCard, vCal, IrMC, WAE
Además de las capas de protocolos estos definen las especificaciones del HCI (Host controller interface) que proporciona una interfaz de comandos al controlador de banda base, control de enlace, acceso al estado del hardware y control de registros. Los protocolos del core comprenden protocolos exclusivos para este, los que son requeridos para dispositivos Bluetooth mientras que los otros son opcionales acorde a la necesidad a solventar. Los protocolos de las dos capas restantes, control de telefonía y adaptados, son protocolos orientados para aplicaciones las cuales corren sobre los protocolos del core.
2
libre (MIT License). El compilador que traduce el lenguaje visual de los bloques para la aplicación en Android utiliza Kawa como lenguaje de programación, distribuido como parte del sistema operativo GNU de la Free Software Foundation. [6]
Figura 2. Pila de protocolos de Bluetooth I-C.
Lenguaje VHDL
HDL fue desarrollado originalmente por orden del Departamento de Defensa de Estados Unidos con el fin de documentar el comportamiento de los ASIC que las empresas proveedoras fueron incluyendo en los equipos.[3] Luego se desarrollaron herramientas de síntesis lógica que leen el VHDL, y la salida de una definición de la implementación física del circuito.[3] La versión inicial de VHDL, diseñado con el estándar IEEE IEEE 1076-1987 incluye una amplia gama de tipos de datos, incluyendo numérico (entero y real), lógica (bit y booleanos), carácter y tiempo, además de las matrices de bits llamado bit_vector y de carácter llamado cadena.[3] I-D.
II. F UNCIONAMIENTO DEL SISTEMA
El siguiente funcionamiento se resume a un digrama de flujo, el cual se puede apreciar en la figura 3.
FPGA
Estos son dispositivos programables que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada ’in situ’ mediante un lenguaje de descripción especializado. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip. Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.[4] I-E.
MIT App Inventor
MIT App Inventor es una introducción innovadora para principiantes en la programación y la aplicación de creación que transforma el complejo lenguaje de codificación basada en texto en bloques de construcción visual, arrastrar y soltar. Las simples interfaces gráficas permiten que incluso un novato sin experiencia tenga la posibilidad de crear una aplicación básica, completamente funcional dentro de una hora o menos. [6] El editor de bloques de la plataforma App Inventor, utiliza la librería Open Blocks de Java para crear un lenguaje visual a partir de bloques. Estas librerías están distribuidas por Massachusetts Institute of Technology (MIT) bajo su licencia
Figura 3. Diagrama de flujo del sistema.
3
Figura 5. Entorno de desarrollo de la aplicación.
Por otro lado tenemos las programación realizada en arduino la cual esta encargada de tomar valores de datos en serial y pasarlo a paralelo. El código encargado se encargara en anexos. Figura 4. Diagrama de flujo del sistema.
Figura 6. Declaración de los pines en arduino.
III. D ESARROLLO
Luego de este breve sustento teórico sobre VHDL, se procede con el desarrollo de la práctica. Esto comenzamos partiendo con el desarrollo de una aplicación en android el cual tomara los datos y enviara los mismo mediante bluetooth. La aplicación se realizo en MTI donde utiliza un lenguaje de programación gráfico.
Por ultimo esta el uso del lenguaje en VHDL para la programación del fpga que va a procesar y mostrar los elementos tomados del celular android.
Figura 7. Lectura de dato en el FPGA.
4
CONCLUSIONES Las comunicaciones empleadas en la actualidad son importantes conocerlas y sabelas manejar,conocer los protocolos que se emplean, para realizar el desarrollo de proyectos utilizando estos tipos de comunicación. Es importante tomar en cuenta durante el desarrollo del programa el manejo de la sintaxis y el tipo de variables que se utiliza, esto debido a que una incorrecta asignación de valores a variables de diferentes tipos puede suscitar problemas en la compilación del programa. De igual manera, es importante tomar en cuenta la frecuencia a la cual se configura el clock, ya que en altas frecuencias no es posible observar el funcionamiento correctamente. Como recomendación, se sugiere revisar las conexiones entre el FPGA y el arduino, debido a que podríamos dañar componentes de uno de los dos componentes antes mencionados; así también la falta de conexiones altera los datos que se aprecian en los displays. R EFERENCIAS [1] Comunicacion paralela. [Online]. Available: https://es.wikipedia.org/wiki/ Comunicaci%C3%B3n_paralela [2] Comunicacion paralela, Pablo Turmero, Disponible [Online]. Avalible: http://www.monografias.com/trabajos107/comunicacion-paralela/ comunicacion-paralela.shtml [3] J. Gonzáles, S. L. Buedo, “Introducción al lenguaje de Descripción Hardware VHDL”, Universidad Autónoma de Madrid, Madrid, España. [4] Field Programmable Gate Array , Disponible [Online]. Avalible: https: //es.wikipedia.org/wiki/Field_Programmable_Gate_Array [5] Funcionamiento Bluetooth, 2012, Disponible [Online]. Avalible: http:// www.monografias.com/trabajos43/bluetooth/bluetooth.shtml [6] “Qué es MIT App Inventor?”, [online]. Massachusetts Institute of Technology, 2015. Disponible en: http://appinventor.mit.edu/explore/aboutus. html