Skip to content

Code for a CanSat or OBCs GUI ground station where different sensor data are displayed in real time. No sensors needed to try it.

License

Notifications You must be signed in to change notification settings

its-villada/CanSat-Ground-station

 
 

Repository files navigation

GUI Estación terrena para la misión mCALCAN

Desarrollo de los alumnos del Instituto técnico salesiano Villada 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

Es requisito instalar Python y pip Abre CMD o PowerShell en la dirección de la carpeta y escribe los siguientes comandos:

> pip install virtualenv
> 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.

About

Code for a CanSat or OBCs GUI ground station where different sensor data are displayed in real time. No sensors needed to try it.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%