Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi Multitouch Applikation mit C oder Python


von Alex K. (alexk99123)


Lesenswert?

Hallo zusammen,
für ein Uniprojekt habe ich mir das Ziel auserkoren, eine 
funktionierende Multitouch-App unter Linux zu entwickeln. Natürlich 
hatte ich weder Linux- noch GUI-Programmierungserfahrungen. Es würde mir 
reichen, quasi ein Minimum-Beispiel zu programmieren. Z.B:
-Meine App öffnet ein Bild
-Per 10Punkt Touchscreen können "heutzutage übliche" Gesten verwendet 
werden (Rein-und Rauszoomen, Verschieben, Swipe zum nächsten Bild).

Meine Hardware: Raspberry Pi 3B mit Raspbian, Raspberry Pi 3 7" 
Touchscreen Display (unterstützt 10Finger Multitouch)

Mein erster Ansatz war es, den Bildbetrachter Eye of Gnome dahingehend 
umzuprogrammieren, dass dieser Multitouch unterstützt. Allerdings habe 
ich mich in dem Code nicht gut zurechtgefunden. Daher die Idee des 
Minimum-Beispiels.

Jetzt habe ich auch nach einiger Internetrecherche Probleme 
herauszufinden, wo ich ansetzen muss. Gerne würde ich das Ganze in C 
oder Python mit GTK+ entwickeln.

von Der Otto (Gast)


Lesenswert?

Also ohne mich genau mit Multitouch-Erkennung auszukennen würde ich dir 
trotzdem zu Python raten.
Aus folgendem Grund: Mit Python ist Multithreading sehr viel leichter zu 
handhaben.
Du könntest auf einem Thread die Benutzerinteraktion laufen lassen und 
auf dem anderen Thread deine eigentliche Anwendung.
Außerdem benutzt der Großteil der Raspberry-Community Python, so findest 
du evtl leichter Lösungen im Internet.
Dies sage ich dir obwohl ich absolut kein Freund von Python und 
dynamisch gebundenen Skriptsprachen bin.


Welches Display hast du denn genau?
Hast du schon einen Treiber für das Display?
Irgendwelche Datenblätter, Doku etc.?

von Alex K. (alexk99123)


Lesenswert?

Der Otto schrieb:
> Welches Display hast du denn genau?
> Hast du schon einen Treiber für das Display?
> Irgendwelche Datenblätter, Doku etc.?

https://www.raspberrypi.org/products/raspberry-pi-touch-display/
Es müsste das hier sein. Es ist jedenfalls das offizielle 7" Raspberry 
Touch-Display. Ich finde spontan gerade gar keine Doku davon. Wie ich es 
verstehe, supported das Display bereits Multitouch und kommuniziert über 
I2C mit dem Raspberry Pi

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Alex K. schrieb:
> Jetzt habe ich auch nach einiger Internetrecherche Probleme
> herauszufinden, wo ich ansetzen muss. Gerne würde ich das Ganze in C
> oder Python mit GTK+ entwickeln.

Nimm ein GTK Minimalbeispiel und bau eine Funktion die du brauchst da 
ein. Wobei GTK für den geneigten Anfänger eine steilere Lernkurve als 
z.B. https://www.libsdl.org/ hat.

Matthias

von Alex K. (alexk99123)


Lesenswert?

Μαtthias W. schrieb:
> Nimm ein GTK Minimalbeispiel und bau eine Funktion die du brauchst da
> ein. Wobei GTK für den geneigten Anfänger eine steilere Lernkurve als
> z.B. https://www.libsdl.org/ hat.
>
> Matthias

Hi Matthias,

so weit bin ich schon. Das habe ich vergessen zu erwähnen. D.h. der 
Punkt aus meinem Eingangspost

Alex K. schrieb:
> -Meine App öffnet ein Bild

ist kein Problem (habe C benutzt und nicht Python, aber ist ja erstmal 
egal). Aber um die App für Multitouch vorzubereiten, fehlt mir nun ein 
Ansatz für das weitere Vorgehen. Aus der GTK Dokumentation werde ich 
leider nicht wirklich schlau.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Alex K. schrieb:
> Aus der GTK Dokumentation werde ich
> leider nicht wirklich schlau.

Das https://stackoverflow.com/questions/12520540/multitouch-gtk3-example 
hilft auch nicht?

von Alex K. (alexk99123)


Lesenswert?

Μαtthias W. schrieb:
> Das https://stackoverflow.com/questions/12520540/multitouch-gtk3-example
> hilft auch nicht?

Habe ich auch bereits gefunden. Ich muss mir ansehen, mit welchen 
Abhängigkeiten von g++ ich das Beispiel kompilieren kann.

von Rolf M. (rmagnus)


Lesenswert?

Am einfachsten dürfte sowas mit Qt gehen. Ist dann aber C++ und vor 
allem QML.
https://doc.qt.io/qt-5/qtdoc-demos-photosurface-example.html

von Alex K. (alexk99123)


Lesenswert?

Rolf M. schrieb:
> Am einfachsten dürfte sowas mit Qt gehen. Ist dann aber C++ und vor
> allem QML.

C++ ist auch kein Problem, QML kenne ich noch nicht, werde mir das 
Beispiel aber mal ansehen. Danke!

von Alex K. (alexk99123)


Lesenswert?

Für alle Interessierten: Mit meinem Setup funktioniert Multitouch direkt 
mit QT und QT Creator. Ich habe das jetzt mit den von QT zur Verfügung 
gestellten Beispielen "Fingerpaint"(jeder Finger malt separat auf den 
Bildschirm) und "Pichzoom"(Für 2-Finger Zoom-Geste) ausprobiert. Darauf 
kann ich jetzt aufbauen und schaffe den Rest selbst. Danke für den Tipp!

: Bearbeitet durch User
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.