Experimentación con una tarjeta BusPirate y migración a una tablet

thumbnail

Tutor / Supervisor

Student

Cantador Fernández, Cristian

Document type

Master thesis

Date

2017

rights

Open AccessOpen Access

Publisher

Universitat Politècnica de Catalunya



Abstract

El objetivo del proyecto es desarrollar una aplicación para dispositivos que funcionen con el sistema operativo Android que simule un osciloscopio muy básico. Así se puede conseguir un osciloscopio accesible a todo el mundo y que, a diferencia de los programas ejecutables por medio del PC, no requiera de instalación de librerías para que funcione. Como hardware se ha utilizado una placa Bus Pirate, con la versión 3.6, para conseguir tal objetivo. Los pasos a seguir en el proyecto son el estudio de las especificaciones de la placa, desarrollar un código que garantice una correcta lectura de datos del puerto serie de la placa y lo transmita mediante USB al dispositivo y, por último, integrar este programa en un osciloscopio y adaptarlo para que funcione tal y como se quiera. Del estudio de la placa se ha podido conocer que ésta tiene dos modos de acceso: el modo de acceso por terminal de usuario y el modo de acceso binario. Como en el primero los datos que se envían son en formato texto hace que la velocidad de lectura de datos resulte muy lenta para el desarrollo de un osciloscopio. Por tanto, se decide trabajar en el modo de acceso binario en donde esta información es en formato de bytes. En el modo acceso binario interesa trabajar en el modo Bit Bang, ya que proporciona un control directo sobre los pines de la placa con tan solo mandar un byte, proceso que resulta muy rápido. Para entrar en este modo, se envía veinte veces el byte 0x00 y una vez dentro se puede hacer mediciones a través de la sonda ADC (conversor analógico digital del microcontrolador interno de la placa Bus Pirate) enviando a la placa el byte 0x14 (una vez) o el byte 0x15 (varias veces). Lo que la placa nos devuelve es una pareja de bytes en formato Motorola, es decir, los 8 bits más significativos van primero. Esto se tiene en cuenta a la hora de desarrollar el código para que no se mezcle una lectura con otra. Una vez realizado el estudio de la placa se procede al desarrollo del programa. En un primer instante, se había pensado en escribir este código en Python y desarrollar la aplicación en una librería de Python llamada Kivy. Al crear un primer intento en el que se intentaba acceder al USB del terminal móvil/Tableta se observó que no se tenían los permisos suficientes y que, por tanto, para poder acceder a él se tenía que “rootear” el dispositivo, hecho que contradice uno de los objetivos del proyecto que era la accesibilidad del osciloscopio sin necesidad de ninguna instalación adicional. Por tanto, se decide desarrollar el programa en el lenguaje de programación Basic for Android (B4A a partir de ahora), que es un lenguaje basado en Visual Basic y que no requiere de permisos adicionales para acceder al USB del terminal ni ningún otro tipo de dependencia. Una vez se ha desarrollado el código para que se recojan los datos de la sonda ADC del Bus Pirate y se han convertido a Voltios para que resulte funcional en el osciloscopio, se integra en el código del osciloscopio que se ha tomado como base. Se eliminan las curvas adicionales, ya que sólo se necesita una variable que mostrar (voltaje) y se trabaja sobre el modo Single Shot, en el que se toman un número determinado de muestras y una vez tomadas todas esas muestras se dibuja en la pantalla, siendo el eje Y el voltaje y el eje X el tiempo.
user

Participating teacher

Files