HISTORIA
Las figuras de Lissajous ocurren cuando se grafican dos señales armónicas entre sí. Fueron estudiadas por el físico francés Jules Antoine Lissajous, por lo que se conocen bajo su apellido.
Antes de la era de los medidores de frecuencia digitales y los bucles de fase bloqueada, las figuras de Lissajous se utilizaban para determinar las frecuencias de sonidos o señales de radio. Se aplicaba una señal de frecuencia conocida al eje horizontal de un osciloscopio, y la señal a medir se aplicaba al eje vertical. El patrón resultante era una función de la relación de las dos frecuencias (fuente: Math.com).
En este ejercicio utilizaremos el motor de variables sintéticas de Ubidots para generar series trigonométricas, y luego las graficaremos en gráficos XY para explorar las figuras de Lissajous.
Creando un gráfico de Lissajous
Crea un dispositivo y una variable "t"
La variable "t" será una serie incremental entre 0 y 1000. Actuará como una variable semilla para que generemos todas las otras funciones como "sin(t)" o "cos(t)". Crearemos esos datos más adelante desde un script de Python. Asegúrate de anotar tu "variable id".
3. Crea funciones trigonométricas utilizando la opción "variables derivadas"
Una de las cosas interesantes de Ubidots es que te permite generar nuevos datos a partir de expresiones matemáticas. Dentro de tu fuente de datos, haz clic en "Agregar Variable Sintética" y escribe la fórmula matemática correspondiente. Realiza este procedimiento una vez para cada función trigonométrica que desees explorar. En nuestro caso, generamos la siguiente función:
Agregando la variable derivada "sin(2t)"
4. Crea un script de Python para enviar datos a la variable semilla "t"
¡Estamos listos para comenzar a enviar datos!
Vamos a obtener tu Api Key de tu perfil de Ubidots:
Asegúrate de tener instalada la biblioteca de Python de Ubidots:
sudo pip install ubidots
Luego crea un archivo "send_t.py" con el siguiente código:
from ubidots import ApiClient# Crear un objeto Ubidotsapi = ApiClient('PUT_YOUR_API_KEY_HERE')# Obtener nuestra variable t usando su ID de variablet = api.get_variable('VARIABLE_ID')# Enviar una serie de valores entre 1 y 1000for i in range(1, 1000): t.save_value({'value':i})
Finalmente, ejecuta el script de Python y observa cómo tus variables se llenan de puntos para crear bonitos gráficos de Lissajous!
python send_t.py
5. Crea los widgets XY en tu tablero
Ahora que tenemos nuestras funciones matemáticas, preparemos el tablero para graficar algunos de los datos. Ve a la pestaña del tablero y haz clic en "Agregar nuevo widget", luego haz clic en el tipo de widget "Dispersión" y selecciona qué series graficar. En nuestro caso, creamos 6 gráficos de dispersión.