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. |