Welches ist die beste Methode zur GUI-Überwachung einer Python-Simulation?

Ich habe einen auf Raspberry Pi basierenden Roboter, der in Echtzeit laufende Steueralgorithmen hat, Sensordaten liest und Daten in Echtzeit liefern muss. Dies wird für den Pi sehr CPU-intensiv sein, daher brauche ich eine leichte Methode, um meine Daten (Kurven, Matrizen, Vektoren und 2D-Karten) einfach zu überwachen.

Ich weiß, dass es dafür viele Möglichkeiten gibt, die hier aufgelistet sind, die ich bereits ausprobiert habe

  • TKinter : Scheint ein nettes Modul für die reinen interaktiven GUI-Anwendungen zu sein. Obwohl es nicht in einem anderen parallelen Thread laufen kann, muss ich meine Hauptanwendung in einen anderen Thread verschieben (der auch Multithreading ist). Dies wurde für mich sehr schwierig und instabil. Es war auch nicht mein Ansatz.

  • PyGame : Funktioniert langsam für mich und auch instabile Ereignisse. In beiden Fällen (TKinter und Pygame) muss der Pi ein X-Display bedienen, was ebenfalls CPU-intensiv ist.

  • Webserver : Steuern des Pi mit einem Webserver, der zB Javascript verwendet. Ist es eine gute und effiziente Methode? Ich habe es noch nicht ausprobiert und einige andere Methoden sind im Link aufgeführt.

In Anbetracht dessen, dass dies eine etwas subjektive Frage ist, möchte ich an dieser Stelle die Community fragen, was Sie für diesen Ansatz verwenden würden.

Antworten (1)

Es hängt davon ab, wie viel Kontrolle Sie über die Anzeige/Visualisierung der Daten wünschen, nachdem sie bereitgestellt wurden.

Ich habe in der Vergangenheit Plotly verwendet , das ich sehr empfehlen kann, da es unglaublich einfach für mich war, Code auf einem Himbeer-Pi zu schreiben und Daten auf eine Website zu streamen, auf die andere Personen zugreifen können – und wo sie dann die Daten manipulieren können . Schauen Sie sich zum Beispiel ihren Feed an , der im Grunde genommen Facebook für Datenwissenschaftler ist. Klicken Sie auf ein beliebiges Diagramm von Interesse und Sie haben sofort Zugriff auf die Daten in einer Tabelle sowie Code, um dieses Diagramm über alles von MATLAB über R bis hin zu Julia zu teilen. Beachten Sie, dass das Bereitstellen von Kurven, Matrizen, Vektoren und 2D-Karten kein Problem sein sollte, wenn Sie in Python schreiben und es vom Pi an Plotly senden.

Schauen Sie sich das folgende kurze Tutorial an, das mich dazu gebracht hat, gemeinsam nutzbare Daten vom Pi sehr schnell mit meiner eigenen kostenlosen Domain zu streamen: https://plot.ly/raspberry-pi/tmp36-temperature-tutorial/

Nachteile von Plotly? Es ist ein Online-Tool zur Datenvisualisierung. Es ist kein Framework für Webanwendungen. Wenn Sie also Ihre eigenen Widgets zu einer Website hinzufügen möchten, mit denen Benutzer die Streaming-Daten manipulieren können, haben Sie kein Glück. Aber es klingt nicht so, als ob Sie wirklich nach einer GUI suchen. Wenn Sie nur komplizierte Daten in Echtzeit über das Internet überwachen möchten, ist Plotly Ihr Freund.