Cómo usarlo
Aquí veremos cómo utilizar la aplicación del osciloscopio. En realidad existen tres aplicaciones presentadas en este proyecto, existe un generador de funciones sinusoidales, una aplicación que actúa como intermediario (o traductor) entre el puerto serial al que está conectado el ESP-32 y por último, una aplicación en la cual se grafican las señales leídas.
Graficador
La interfaz al abrir el programa llamado "graficador-multicanal-udp.jar" debería de ser como la siguiente aquí mostrada. En caso de no poder ver la ventana secundaria (En la que se muestra la escala X, escala Y etc) presione la tecla F1 de su teclado.
En esta aplicación es en donde podremos ver las señales que leamos con nuestro osciloscopio o las señales que simulemos con el generador de señales sinusoidales. Estas tres aplicaciones estarán conectadas por puertos UDP (un protocolo de transferencia de datos que tiene la propia computadora) por defecto, el programa para la graficación estará conectado a los puertos 8080 y 8081. Esto vale la pena tenerlo presente.
En este momento no podemos visualizar nada en esta aplicación ya que no estamos enviando ningún valor para que se grafique, para ello deberemos iniciar los otros programas.
Exploraremos más adelante cómo manipular la imagen que estamos viendo, por el momento nos enfocaremos en obtener una lectura de voltaje en pantalla.
Generador de función seno
Podemos arrancar entonces el programa llamado "generador-seno-udp.jar" y deberíamos ver una ventana como la siguiente:
Por defecto, esta aplicación siempre se abrirá con los valores ahí marcados, hagamos una breve revisión de qué significa cada uno de ellos:
- PUERTO -> Es el puerto UDP al cual se encuentra conectado (recordar que el graficador solo puede leer dos puertos, el 8080 y el 8081 por defecto).
- PERIODO -> Es el periodo de la señal sinusoidal que generaremos, este tiempo siempre estará en nanosegundos. El valor escrito por defecto (1000_000_000) es equivalente a un segundo. Al momento de introducir números se puede usar el guión bajo "_" como separador.
- AMPLITUD -> Será la amplitud de la señal que generaremos en Volts.
- DESFASE -> La señal sinusoidal aquí generada se genera a partir de la función matemática Math.sin() y usamos el argumento usado es siempre el tiempo en nanosegundos. Esto significa que si abrimos dos generadores de sinusoidales y a los dos les damos el mismo desfase, estarán en fase entre ellas.
NOTA: Para aplicar los cambios de los valores es importante SIEMPRE presionar la tecla Enter en las celdas que hayan sido modificadas.
Podemos comenzar encendiendo nuestro generador de senos mientras tengamos ya abierto el graficador. Deberíamos de obtener algo como lo siguiente:
Parecería que únicamente apareció una línea amarilla, sin embargo, si observamos con detalle podremos ver que esa línea está en movimiento. Podemos cambiar la amplitud de la señal que generamos seleccionando la celda de AMPLITUD y escribiendo un número, como 100. No es necesario pero se puede agregar el punto decimal. Presionamos Enter y deberíamos observar los cambios en el graficador.
Podríamos agregar un segundo generador de señales sinusoidales y manipular el periodo, el desfase y la amplitud a voluntad. Intentémoslo:
Podemos observar que cláramente hay un error en la representación de las señales que estamos mandando. Este error es muy común y por ello es importante tener cuidado; en este caso se están mandando las lecturas de ambos generadores de señal por medio de los puertos 8080. Tenemos que cambiar uno de los dos para que se envíen por medio de otro puerto (el 8081). Así, si cambiamos el puerto de uno de los dos generadores obtendremos lo siguiente:
Tal y como esperábamos.
Podemos cerrar las aplicaciones de generación de señal en cualquier momento y no habrá ningún problema en cuanto al graficador de señales se refiere. Podríamos abrir y cerrar tantos generadores de señales como quisiéramos. Igualmente, si llegáramos a cerrar el graficador por error, podríamos volverlo a abrir e inmediatamente comenzaría a graficar los valores en caso de que un generador de señales ya se encontrara encendido.
Traductor Monitor Serial - UDP
Este programa tiene la función de actuar como intermediario entre la conexión de la ESP-32 con la computadora y así poder manipular los valores brindados por la tarjeta de una manera útil.
Podemos arrancar la aplicación al igual que con las otras abriendo el archivo "traductor-serial-udp.jar" con el cual deberíamos ver una ventanita de este estilo:
En esta ventanita tenemos más opciones que en el generador de funciones seno ya que hay una serie de cosas adicionales que tenemos que contemplar al momento de traducir los valores que nos suministra la ESP-32. De manera general, si el circuito que usted armó es exactamente igual al propuesto en el capítulo anterior, lo único que deberá cambiar es el valor del PUERTO cuando quiera conectar dos señales (sinusoidales o incluso dos traductores de la ESP-32) tal y como lo hicimos en el ejemplo pasado. Además, también deberá cambiar la celda que está marcada como COMPORT. Esta celda sirve para seleccionar el puerto serial al que queremos que nuestro programa se conecte.
Si quisiera utilizar un arreglo diferente de resistores (por ejemplo, para tener una menor atenuación de los voltajes o tener una mayor atenuación para lectura de voltaje más elevados a los 50V de diseño, tendrá que registrar los valores de los resistores tal y como se indica en la sección del diseño avanzado) Aquí
Para el grueso de los usuarios, se espera que se pueda conectar directamente al conectar nuestro dispositivo armado con los resistores y la tarjeta ESP-32.
Comencemos entonces con un ejemplo. Se sugiere ya tener conectada la tarjeta ESP-32 al momento de arrancar el programa traductor, sin embargo, no es indispensable.
Es necesario picar la celda marcada con COMPORT. Presionar esta celda abrirá una pequeña ventana donde estarán listados todos los dispositivos conectados por medio de comunicación serial. El número a la izquierda es el índice que ocupan, el nombre a la derecha es el nombre que les asigna el sistema operativo. De no abrirse con el primer clic, vuelva a presionar la celda.
Debería abrirse una pequeña ventana como ésta:
Identifique el índice del dispositivo que desea conectar. En Windows generalmente buscaremos conectarnos al dispositivo COM0, sin embargo, esto puede cambiar de equipo en equipo. En el caso de Mac y Linux buscaremos conectarnos al dispositivo de nombre tty.usbserial-####. En la presentación realizada aquí con Mac nos conectaremos entonces al índice 7. En el ejemplo en Windows nos conectaremos al índice 0.
Cambiamos el valor en COMPORT y presionamos Enter. Nota: Podemos estar seguros de que el cambio se realizó si al presionar Enter nos cambia a la celda siguiente.
Tras asegurarnos que la celda COMPORT y la celda PUERTO estén en los valores que deseamos podemos presionar el botón de "Encender". En el caso de esta presentación, dado que no se está aplicando ningún voltaje y la conexión con el COMPORT fue exitosa, podemos observar la línea amarilla de voltaje en el voltaje de 0V.
Podemos asegurarnos que ya existe lectura de voltaje si tocamos las conexiones de la ESP-32 con la mano y ocasionamos ruido. No es la mejor manera de asegurarnos de la conexión pero es una manera rápida y efectiva en campo.
Error de conexión
Al presionar el botón de encendido o actualizar la celda COMPORT existe la posibilidad de que la conexión no se realice de manera correcta. Si esto llegara a pasar aparecerá una ventanita como la siguiente:
Cuando esto suceda, cierre la ventana, actualice el puerto COMPORT y vuelva a presionar el botón de "Apagado" para encender.
Controles del graficador
Todos los controles son accesibles desde el teclado, sin embargo, se pueden realizar los mismos cambios desde la interfaz gráfica al presionar F1.
Las unidades son un poco extrañas al momento de trabajar en la GUI por lo que requieren un poco de explicación. Al presionar F1 obtendremos esta pequeña interfaz:
Las unidades en la sección de Escala X son los nanosegundos representados en cada pixel en la escala original de la ventana. Las unidades en la sección de Escala Y son los voltios representados en cada pixel en la escala original de la ventana en el eje Y. Al modificar este valor también se modifica el valor de voltaje en el eje Y al realizar graficaciones en modo Lissajous.
El desplazamiento en X y Y están marcados con un % ya que se pueden realizar desplazamientos de 1% de la ventana en los ejes izquierda-derecha o arriba-abajo. Al presionar el modo Lissajous se entra en modo de graficación de figuras Lissajous.
Para realizar los cambios en las celdas es necesario presionar el botón Enter al igual que en el resto de las aplicaciones.
Atajos de teclado (RECOMENDADOS)
Los mismos cambios que se pueden realizar en la interfaz de usuario se pueden realizar desde el teclado. Además, se puede pausar la graficación desde el teclado.
Incremento | Decremento | |
---|---|---|
Escala Y | Q | A |
Escala X | W | S |
Despl. X | Z | X |
%Despl. Y1 | U | J |
%Despl. Y2 | I | K |
Pausa | Barra | espaciadora |
Modo Lissajous | L | L |
Los atajos tienen un poquito de lógica una vez uno empieza a usarlos. Es más rápida la navegación por medio de teclado por lo que es recomendable para todos los usuarios.
NOTA: El uso de la interfaz gráfica o del teclado ambos realizarán los cambios aún cuando la graficación esté pausada. Para realizar el análisis de señales con cuidado se recomienda presionar la barra espaciadora para pausar la lectura de señales y posteriormente manipularlas ya sea con teclado o con la interfaz gráfica.
NOTA: La ventana de graficación se puede escalar a placer, el tamaño de las etiquetas escalará de acuerdo al tamaño de la ventana en el eje horizontal.