TDSO112A

TDSO112A es un programa escrito en Tcl / Tk para controlar el oscilocopio DSO112A. Aunque aún es un WIP es totalmente funcional y extiende la funcionalidad de este pequeño oscilocopio añadiendo:

  • Diferentes espectrogramas
  • Trigger a altas frecuencias (inexistente via hardware: ver documentación oscilocopio User Manual: Setup Trigger)
  • Lectura de protocolos: UART, DHT11… WIP
  • Salvado de forma de onda mediante CSV

Aquí puedes ver el funcionamiento general del osciloscopio.

Lectura del protocolo del sensor de humedad y temperatura DHT11 Lectura de UART NOTA: aún no disponible en la versión exe.

El código fuente y un libro sobre cómo he creado este software estará disponible antes de final de año (si conoces cómo funcion Tcl/Tk ya tienes el código fuente…).

Funcionamiento

La arquitectura es cliente/servidor, donde el servidor (el programa principal) se encarga de comunicarse con el osciloscopio y envía los datos a los clientes (que son los plugins). Básicamente los datos son los recibidos del ADC y la frecuencia de muestreo que se está utilizando.

El fichero tdso112a.bat se encarga de arrancar el servidor y los diferentes clientes. Tras el arranque parecerán 2 ventanas:

  • La del osciloscopio
  • run-clients

¿Por qué dos ventanas y el fichero tdso112a.bat?

El desarrollo principal es utilizando el propio intérprete: tclsh dso112a.tcl. El programa principal crea un servidor que envía/recibe datos de los diferentes clientes (Transformada Discreta de Hartley, DHT, -junto cálculos sencillos de: RMS, VMáx, Vmín, etc-; protocolo del sensor de humedad y temperatura DHT11, protocolo UART,… y lo que se nos ocurra). Éstos realizan los cálculos complejos y avisan al programa principal cuando están listos para mostrarlos. Esto permite una total independencia entre la GUI y los cálculos, y además es tan simple como lanzar exec tclsh client-measures.tcl & para por ejemplo, el DHT y las medidas habituales.

Al usar freewrap para crear el ejecutable, esto ya no es posible tal cual, y se necesitan 2 ejecutables (que en principio también es bueno, ya que ambos son independientes).

Como la intención nunca fue crear un ejecutable, nada de esto se ha tenido en cuenta, pero es cierto que tener un ejecutable facilita el uso del programa.

Cuándo estará disponible el código fuente

En principio, antes de final de año, aunque como digo, si sabes algo de Tcl/Tk ya lo tienes disponible. Aunque evidentemente con cada nueva versión habrá cambios

Actualizaciones

Iré actualizando el software y esta página de ayuda cuando tenga tiempo, pero ya adelanto que las próximas actualizaciones son:

Versión 1.1

  • Protocolo DHT11

Versión 1.0

  • Versión inicial. Cotiene todas las funcionalidades del osciloscopio sin plugins:
    • Control absoluto (o casi) del DSO112A
    • Fix software de errores del firmware como imposibilidad de trigger a altas frecuencias (mencionado en la documentación) o inconsistencias en el control mediante comandos (reportado por otros programadores).
    • Mediciones automáticas: VM, Vm, Vpp, Vavg, Fre
    • Mediciones de tiempo y tensión mediante cursores
    • Salvado de forma de onda mediante CSV
    • Diferentes espectrogramas usando la DHT

Road Map

  • Protocolo UART (en ejecutable)

Actualmente, en la versión del intérprete, tengo una versión preliminar que funciona a 9600bps 8N1 que funciona muy bien. Ahora faltaría darle flexibilidad y poder soportar opciones. Una limitación que voy a tener en este aspecto, es que el osciloscopio solo dispone de un buffer de 1024 puntos, y esta vez no puedo evitarlo con el software, ya que se perderían eventos del puerto, pero es normal porque un osciloscopio está pensado para muestrear señales periódicas.

Como ves, el road map es pequeño, pero es que no quiero poner cosas que no voy a poder conseguir (principalmente por falta de tiempo). Sí es verdad que la intención es ir ampliando el número de protocolos soportados pero en lugar de seguir implementándolos yo mismo, parece que una mejora casi exponencial, sería integrarlo con sigrok-cli. De todas formas, mi meta personal era realizar el protocolo del sensor de humedad y temperatura DHT11 (conseguido) y UART (actualmente conseguido parcialmente).

También quiero experimentar con el entorno gráfico y darle un aspecto más atractivo a la interfaz, simplemente por gusto (y por aprender), porque evidentemente como ingeniero, solo me importa la funcionalidad, aunque es verdad que un aspecto agradable mejora las cosas. Con esto NO QUIERO decir que no me guste lo que me ofrece Tk por defecto, simplemente quiero experimentar y mejorar mis habilidades. Una intefaz que me atrae mucho es la del PicoScope 7.

Sobre el nombre

El deletreado del nombre en castellano es sugerente… y además es un desarrollo en Tcl/Tk sobre un Digital Storage Oscilloscope…

Contacto

Si tienes alguna sugerencia o consulta, estoy disponible en: tdso112a at hykrion com