¿Cuál es el mejor método para monitorear la GUI de una simulación de python?

Tengo un robot basado en Raspberry Pi que tiene algoritmos de control de ejecución en tiempo real, lee datos de sensores y tiene que servir datos en tiempo real. Esto hará un uso intensivo de la CPU para Pi, por lo que necesito un método ligero para simplemente monitorear mis datos (curvas, matrices, vectores y mapas 2D)

Sé que hay muchas posibilidades para esto, que se enumeran aquí . Ya probé

  • TKinter : parece ser un buen módulo para las aplicaciones GUI puramente interactivas. Aunque no puede ejecutarse en otro subproceso paralelo, debo mover mi aplicación principal a otro subproceso (que también es multiproceso). Esto se volvió muy difícil e inestable para mí. Tampoco era mi enfoque.

  • PyGame : funciona lento para mí y también eventos inestables. En ambos casos (TKinter y Pygame), la Pi tiene que funcionar con una pantalla X que también consume mucha CPU.

  • Servidor web: controlar el Pi con un servidor web usando, por ejemplo, javascript. ¿Es un método bueno y eficiente? Todavía no lo he probado y varios otros métodos enumerados en el enlace.

Teniendo en cuenta que esta es una pregunta un poco subjetiva, en este punto me gustaría preguntarle a la comunidad qué usaría para este enfoque.

Respuestas (1)

Depende de cuánto control desee sobre mostrar/visualizar los datos después de que se hayan servido.

Utilicé Plotly en el pasado y lo recomiendo encarecidamente por lo increíblemente fácil que fue para mí escribir código en una raspberry pi y transmitir datos a un sitio web al que otras personas pueden acceder, y donde luego pueden manipular los datos. . Por ejemplo, consulte su feed , que es básicamente Facebook para científicos de datos. Haga clic en cualquier gráfico de interés e inmediatamente tendrá acceso a los datos en una hoja de cálculo, así como al código para compartir ese gráfico a través de cualquier cosa, desde MATLAB hasta R y Julia. Tenga en cuenta que servir curvas, matrices, vectores y mapas 2d no debería ser un problema si está escribiendo en python y enviándolo a la gráfica desde el pi.

Consulte el siguiente tutorial rápido que es lo que me permitió transmitir datos compartibles desde el pi muy rápido con mi propio dominio gratuito: https://plot.ly/raspberry-pi/tmp36-temperature-tutorial/

¿Desventajas de Plotly? Es una herramienta de visualización de datos en línea. No es un marco de aplicación web. En consecuencia, si desea agregar sus propios widgets a un sitio web que los usuarios pueden usar para manipular los datos de transmisión, no tiene suerte. Pero no parece que esto sea lo que realmente está buscando, es una GUI, si solo desea monitorear datos complicados en tiempo real a través de la web, plotly es su amigo.