Skip to content

Latest commit

 

History

History
113 lines (92 loc) · 4.62 KB

README_ES.md

File metadata and controls

113 lines (92 loc) · 4.62 KB

GUI Estación terrestre para CanSat u OBC's

Código de una GUI para una estación terrestre para CanSats y/o OBCs donde se muestran los datos de diferentes sensores en tiempo real. No se necesitan sensores para probarlo.

imagen

Tabla de contenidos


Apoyo

Si usaste este proyecto o aprendiste algo, por favor dale una estrella a este proyecto para seguir haciendo proyectos de código abierto.


Informacion general

El propósito de este proyecto es hacer una GUI en la que los datos transmitidos por un OBC (ordenador de a bordo) o un CanSat sean comprensibles a primera vista a través de una cadena de texto en un puerto serie.

Este proyecto está fuertemente relacionado con otro proyecto de ciencia de cohetes y CanSat. Está todavía en desarrollo.

Bugs

  • La mayoría de las veces los elementos de texto desaparecen, los invito a resolver esto.

  • A veces no puede convertir el primer valor de la lista a int, pero se resuelve solo al volver a ejecutarlo.

  • el gráfico de velocidad está en desarrollo, crece hasta el infinito.


Librerias

El proyecto se crea con:

  • numpy==1.22.4
  • PyQt5==5.15.6
  • PyQt5-Qt5==5.15.2
  • PyQt5-sip==12.10.1
  • pyqtgraph==0.12.4
  • pyserial==3.5

Configuracion Linux

Para poder ejecutarlo tienes que abrir la terminal en la carpeta y escribir:

$ virtualenv env
$ fuente env/bin/activate
$ pip3 install -r requiments.txt
$ python3 main.py

Si no tienes la electrónica aun puedes probarla! Cuando la terminal te pide que escribas un puerto serie, escribe cualquier cosa y funcionará, graficará datos aleatorios. (pero el error de texto permanece ;v).


Configuracion Windows

Abre CMD o PowerShell en la dirección de la carpeta y escribe los siguientes comandos:

> virutalenv env
> \env\Scripts\activate.bat
> pip install -r requeriments.txt
> python main.py

¿Como funciona?

¿Cómo toma las muestras?

Cada 500 ms toma una muestra, este número proviene de la tasa de datos que tiene el Arduino, si no tiene el Arduino y los sensores, la GUI aún funciona, grafica datos aleatorios. El bucle es:

timer = pg.QtCore.QTimer()
timer.timeout.connect(update)
timer.start(500)

Que valores usa?

La función update() actualiza los gráficos y el texto de la interfaz. Lo primero que hace es obtener una lista de la información a ser actualizada, esta lista es anotada como un value_chain.

Luego, dentro de update se ejecutan los métodos update específicos para cada elemento que depende de esta lista.

Los valores que recibe son: 0. Tiempo de registro

  1. Altura relativa
  2. Está en caída libre (0 o 1)
  3. Temperatura
  4. Presión atmosférica
  5. Pitch
  6. Rueda
  7. Yaw
  8. Aceleración en X
  9. Aceleración del eje Y
  10. Aceleración Z

¿Cómo almacena la información?

Pulsando el botón Start storage llama a una función de la clase data_base que cambia un estado que determina si el método guardar escribe la información en la lista. Lo mismo ocurre con el botón Stop storage.

En este archivo la lista llamada value_chain se almacena en el mismo orden añadiendo al final la fecha que se registra en el ordenador.


Fuentes

"Si he visto más lejos que otros, es por estar parado sobre los hombros de gigantes." - Newton burlándose de la espalda de Hooke.


Licencia

Es MIT <3. (por ahora)

Desarrollado por Daniel Alejandro Rodríguez Suárez, líder del semillero de investigación ATL, vinculado al grupo de investigación LIDER de la Universidad Distrital.