Forum: Mikrocontroller und Digitale Elektronik Mensch-Maschiene-Schnittstelle mit Raspberry PI


von Markus W. (kornbanane)


Lesenswert?

Hallo zusammen,

ich habe vor mit einem Raspberry Pi 3, einem handelsüblichem 10" TFT 
Bildschirm und 4 Tastern eine Mensch-Maschinen-Schnittstelle bzw. ein 
"User Interface" aufzubauen. Die eben genannte Kombination soll dann 
über die serielle Schnittstelle mit der Maschine kommunizieren.

Die Aufgabe vom User Interface ist somit:

-Tastendrücke an die Maschine melden
-Informationen (Parameter) von der Maschine über das Display ausgeben


Jetzt gibt es sicherlich "fertige" Softwarelösungen, um sich solch ein 
User Interface zusammenzustricken. Da ich aber völlig offen sein will, 
was die Gestaltung und Funktionen des User Interface angeht, will ich 
alles selbst entwickeln.

Ich habe derzeit eine fertige Lösung am laufen die wie folgt aussieht:
Auf dem Rspberry läuft als Betriebssystem Raspbian Stretch with desktop 
(Version vom September 2017). Die Realisierung des User Interface läuft 
über NodeJS und einem Webbrowser, der direkt nach dem bootvorgang 
aufgerufen wird.
Es ist also über einen Webserver und einer Website realisiert. Auf dem 
Webserver läuft ein Programm ab, welches die Kommunikation mit der 
Maschine regelt und die Tastendrücke auswertet. Über ein Websocket 
(socket.io) werden dann die nötigen anzuzeigenden Werte auf die Website 
übertragen.

Funktioniert soweit alles, wirkt mir jedoch sehr aufgebläht und träge.

Es gibt doch sicher eine smartere Lösung? Mal als Beispiel denke ich da 
an die neue Lidl Monsieur Cuisine Connect Küchenmaschine. Dort dient ein 
Touch Screen als User Inferface. Dieses muss ja auch in irgendeiner Form 
mit der Hardware kommunizieren, um z.B. den Motor zu starten.

Hier läuft Android unter der Haube, dazu gibt es ein Video unter YouTube

https://www.youtube.com/watch?v=4JxfYi2V_3s

Dies erscheint mir eine elegantere Lösung zu sien, als meine bisherige.
Könnte ihr mir einen Rat geben, wie ich da am besten rangehen kann? Ich 
habe schon nach Fachbüchern oder auch bei google gesucht, aber ich finde 
nichts passendes.

Im Prinzip geht es darum ein User Interface mit Zugriff auf 
Hardwareschnittstellen (GPIO, serielle Schnittstelle) auf dem Raspberry 
Pi 3 mithilfe von Android zu realisieren.

von Micha (nichtgast)


Lesenswert?

Du kannst das UI mit z.Bsp. QT machen. Das läuft dann halt nativ auf 
deinem RaspPi.

Als nächstes kannst du dir überlegen ob dein Programm als Blob 
daherkommt und auch die Ansteuerung der Maschine macht, oder ob du das 
in einen Service auslagerst und über z.Bsp. Sockets ansprichst.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Ich habe nicht sooo viel Erfahrung mit dem Pi, aber warum arbeitest Du 
mit einem Webbrowser und Webserver?

Android ist mEn auch nicht wirklich schnell.

Ich würde die Oberfläche direkt auf Raspbian aufsetzen, wenn sonst 
nichts gefordert ist, kannst Du sogar den Windowmanager rausschmeißen 
und direkt auf X starten.

Es gibt verschiedene Möglichkeiten, das Benutzerinterface mit direkter 
Ansteuerung der Hardware zu bauen.

Eine davon ist Tcl/Tk mit der passenden Bibliothek für die 
Hardwareansteuerung:

http://chiselapp.com/user/schelte/repository/piio/wiki?name=Build+instructions

Damit hast Du dann Benutzerinterface und Ansteuerung "aus einem Guss" 
und Du musst auch nur dieses Programm starten: kein Webbrowser, kein 
Server etc.

Für Deine Geschwindigkeitsanforderungen sollte das schon reichen.

Direkte Anbindung der Hardware gibt es natürlich auch für andere 
Sprachen (Qt, GTk, Python) - ich bin halt einfach sehr Tcl/Tk-affin ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.