RaspberryDisplay 7 Zoll Touch mit Pygame nur unter X11 korrekt, mit Pygame alleine Position falsch

  • Hallo zusammen

    • Display: Original Raspberry 7" Touch
    • Pi: Raspberry 3B V1.2
    • Raspbian GNU/Linux 10 (buster)

    Ich zeige mit Pygame Icons an, und löse auf Touch Funktionen aus. Script funktioniert unter X11 hervorragend, Koordinaten von Touch oder Mouseklick passen 100%

    Starte ich das Script ohne X11 direkt, stimmen die Koordinaten nur noch bei Mausbenutzung. Touches stimmen von den Orientierungen (oben/unten/links/rechts), scheinen aber um einen Faktor und Offset falsch zu sein.

    Ich habe im Forum einige ähnliche Fragen gefunden, aber keine brauchbaren Antworten. Wie bekomme ich nur die perfekte Kalibration unter X11 auch ohne grafische Oberfläche zum laufen?

    Vielen Dank!

  • RaspberryDisplay 7 Zoll Touch mit Pygame nur unter X11 korrekt, mit Pygame alleine Position falsch? Schau mal ob du hier fündig wirst!

  • Hallo,

    was Du wissen mußt:

    Touchdisplays bestehen aus 2 Systemen

    • ein Ausgabesystem zur Anzeige (Display) und
    • ein Eingabesystem (Touch-Koordinaten)

    Für Touch gibt es resistive und kapazitive Systeme. Die resistiven muß man kalibrieren, die kapazitiven nicht.

    Zum Kalibrieren von resistiven Touch gibt es 2 Programme, jenachdem ob Du mit grafischer Oberfläche (=Desktop/GUI) oder ohne GUI mit Konsole arbeitest*1:

    *1 Info: boot to Console/CLI oder boot to Desktop/GUI.

    • Konsole/CLI - ts_calibrate
    • Desktop/GUI - xinput-calibrator

    Das Offizielle 7" Touchdisplay hat kapazitiven Touch, das mußt Du nicht kalibrieren.

    Probiere das:

    Display- und Touch-Orientierung stellst Du bei diesem Touchdisplay mit lcd_rotate in der Datei /boot/config.txt ein.

    lcd_rotate=2 bedeutet µUSB, HDMI ünd 3.5mm-Klinke sind oben.

    zeige bitte die Ausgabe von egrep -vn "^#|^$" /boot/config.txt in einem Codeblock (das ist das -Symbol im schwarzen Balken)

    Info: Das kryptische Kommando zeigt die Datei ohne Kommentar- und ohne Leerzeilen an.

    Schönen Gruß, kle

  • Danke für die schnelle Antwort!

    Das 7" Display ist kapazitiv, genau - deswegen wundert mich der Fehler.

    Das ist meine config.txt:

    Code
    19:lcd_rotate=2
    60:dtparam=audio=on
    62:[pi4]
    64:dtoverlay=vc4-fkms-v3d
    65:max_framebuffers=2
    67:[all]
    69:start_x=1
    70:gpu_mem=128
    71:enable_uart=1

    Hier ein kl. Video, in dem der Fehler sichtbar wird:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Danke für deine Hilfe!

    Einmal editiert, zuletzt von snafu (1. Dezember 2019 um 18:34)

  • Wenn ja, zeige es bitte im Codeblock.

    Sorry, dass ich mir alles aus der Nase ziehen lassen muss ;)

    Hier alles abgestrippt, was nicht für die Demo funktional ist:

  • 8. screen = pygame.display.set_mode((size), pygame.NOFRAME)

    ersetze NOFRAME mal durch SRCALPHA

    NOFRAME soll den Fensterrahmen unterdrücken, bei Konsol-Betrieb gibt es keine Fenster.

    Aber ich glaube nicht, daß das was ändert.

    Ich habe ein 7"-Touchscreen, aber den für einen Test zu demontieren ist umständlich.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!