Ich habe gestern meinen ersten 3,5-Zoll-Touchscreen für meinen Raspberry Pi gekauft. (Elegoo 3,5-Zoll-TFT-LCD-Touchscreen-Monitor) Auf meinem Raspberry läuft ein OctoPrint-Bild (Raspbian-basiert).
Das Display funktioniert. Mein Problem ist die Berührungsfunktion; es ist irgendwie umgekehrt. Wenn ich oben rechts berühre. Mein Cursor befindet sich unten rechts. Wenn ich von links nach rechts ziehe, geht mein Kurs nur auf und ab.
Ich habe diesen Treiber / dieses Programm heruntergeladen .
Ich habe auch einen Kalibrierungstest mit versucht
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test`
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate
Und das funktioniert gut. Nachdem ich xinput_calibrator verwendet habe, um die neuen Kalibrierungsdaten zu lesen und sie unter einzufügen /etc/X11/xorg.conf.d/99-calibration.conf
. Nach dem Neustart oder Neustart des "LCD-Show" -Treibers ändert sich nichts.
Normalerweise überschreibt das verwendete Programm (LCD-Show) jede Konfiguration. Aber ich habe es deaktiviert, um Fehler zu beheben und meinen Fehler zu finden.
Im Moment weiß ich nicht, was ich tun soll. Ich habe verschiedene Werte (SwapAxes) geändert, aber es ist immer invertiert.
Bearbeiten - Schritte, die ich mit dem xinput-Kalibrator ausgeführt habe:
DISPLAY=:0.0 xinput_calibrator
Ich habe den Abschnitt Abschnitt in EndSection kopiert in:
/etc/X11/xorg.conf.d/99-calibration.conf
Nach dem Neustart ändert sich nichts. Ich habe auch versucht, den "SwapXY" -Wert auf 0 zu ändern. Wieder keine Änderungen.
quelle
lcd_rotate=2
, config.txt hinzuzufügen? Mir ist klar, dass das Display nicht die Eingabe umdreht, aber wenn das gedrehte Display die Eingabe richtig ausrichtet, kann dies eine schnelle Lösung sein, bis Sie die Eingabeebene sortieren können.Antworten:
Herunterladen
Laden Sie zunächst die Datei von diesem Link waveshare-dtoverlays herunter
Installation
Mein Touchscreen ist Waveshare 3,5 "LCD. Ich habe" waveshare35a-overlay.dtb "nach" / boot / Overlays "kopiert.
Bearbeiten Sie dann die Startkonfiguration mit root
dann füge hinzu :
"drehen" kann 0,90,180 oder 270 sein. Es hängt von Ihnen ab, es dreht Ihren Bildschirm (Ausgabe), aber nicht Ihren Touchscreen (Eingabe).
Dann neu starten.
Kalibrierungs-Touchscreen
Um auch Ihren Touchscreen (Eingabe) zu drehen, müssen wir diese Datei ändern.
oder
Ich habe den zweiten benutzt. Legen Sie dann durch Hinzufügen eine Optionstransformationseinstellung fest
Diese Transformationsmatrix ist für 90 Grad rechts (gegen den Uhrzeigersinn), da ich den Bildschirm bereits auf 270 Grad gedreht habe. Sie können auch die anderen Transformationsmatrix-Einstellungen unter dem angegebenen Link sehen. Vergessen Sie nicht, es muss mit der Dreheinstellung übereinstimmen. Fügen Sie dann die obige Zeile in den folgenden Abschnitt in der Datei "40-libinput.conf" ein.
Speichern Sie es dann und starten Sie es neu.
Schließlich funktioniert mein Touchscreen richtig.
Für einen detaillierten Schritt können Sie diesem Link folgen
quelle
Ähnlich wie bei Dmitry hat hier Folgendes für mich auf einem Waveshare 4 "-Touchscreen und Xinput-Calibrate funktioniert, als keine meiner Änderungen in 99-calibration.conf etwas zu bewirken schien.
Sollte alles funktionieren, aber mein
xinput list-props 6
gab mir drei verschiedene Eigenschaften:Jedes davon wird mit einer 3x3-Matrix geliefert, die wie folgt aufgebaut ist:
wobei jede bis zu 6 Dezimalstellen sein kann.
Mit ein bisschen Google-Fu habe ich diesen Link gefunden, der die Transformationen erklärt, mit denen Sie die Eingabe des Bildschirms mit bearbeiten können
Auf meinem speziellen Bildschirm konnte ich sowohl die Inversion als auch den Achsenwechsel korrigieren, indem ich Folgendes tat:
Aber Ihre könnte anders sein, wenn Sie den obigen Wiki-Link verwenden, erhalten Sie einige hilfreiche Transformationen. Dies wird leider auch beim Neustart rückgängig gemacht.
quelle
xinput set-prop 6 "Coordinate Transformation Matrix" 0 -1 1 -1 - 1 0 0 1
tslib
(Die Bibliothek, die Sie anscheinend verwenden) sollte ihre Konfiguration in speichern/etc/pointercal
. Dieser Speicherort kann über eineTSLIB_CALIBFILE
Umgebungsvariable geändert werden , es gibt jedoch selten einen legitimen Grund dafür. Stellen Sie also sicher, dass Sie diese Datei während der Kalibrierung verwenden, öffnen Sie eine Root-Konsole und geben Sie Folgendes ein:Überprüfen Sie nach Abschluss der Kalibrierung, ob diese
/etc/pointercal
aktualisiert wurde.Eine weitere wichtige Datei, die Sie kennen sollten, ist
/etc/ts.conf
.PS. Nach dem Austausch, den wir in Kommentaren hatten, wurde klar, dass Sie
xinput_calibrator
anstelle von verwenden solltents_calibrate
. Ich werde eine neue Antwort schreiben, aber diese für Personen aufbewahren, diets_calibrate
aus irgendeinem Grund speziell verwendet werden müssen (z. B. über den Touchscreen in SDL-Spielen).quelle
99-calibration.conf
in Ihre Frage auf. Vielleicht schaffen wir es, dass es auf Ihre Weise funktioniert.xinput-calibrator
soll eine Konfiguration ausgeben, die Sie dann eingeben sollten.99-calibration.conf
Versuchen Sie es also erneut und ersetzen Sie Ihre aktuelle Konfiguration durch die Ausgabe. Wenn das nicht funktioniert, kopieren Sie bitte diese Konfiguration und fügen Sie sie in Ihre Frage ein.Wenn Sie zufällig eine Datei mit dem Namen haben
/etc/X11/xorg.conf
, sollten Sie wissen, dass diese Datei Vorrang/etc/X11/xorg.conf.d/99-calibration.conf
hat. Sie müssen sie also entweder entfernen,/etc/X11/xorg.conf
wenn Sie sie nicht benötigen, oder den Inhalt von/etc/X11/xorg.conf.d/99-calibration.conf
am Ende von hinzufügen,/etc/X11/xorg.conf
wenn Sie dies tun.Eine Möglichkeit, festzustellen, ob diese Optionen wirklich effektiv sind, besteht darin, Folgendes zu verwenden
xinput
:Wenn Sie alles richtig gemacht haben, sollten Sie Ihre Kalibrierungswerte in der Ausgabe sehen.
Überprüfen Sie auch die
/var/log/Xorg.0.log
Datei: Möglicherweise werden Meldungen angezeigt, dass einige Konfigurationsoptionen aus verschiedenen Gründen ignoriert werden.Eine weitere Möglichkeit (wenn die Konfigurationsdatei nicht funktioniert) besteht darin, die Kalibrierungsdaten zur Laufzeit mithilfe eines Shell-Skripts festzulegen:
(Stellen Sie sicher, dass Sie durch
6
die ID ersetzen, die Sie in Ihrem System erhalten.)Beachten Sie, dass diese
SwapXY
Option genau das tut: Vertauscht die X- und Y-Achse. Wenn Sie auch eine Achse umkehren müssen , sollten Sie Folgendes verwenden:quelle
Die
SwapXY
Funktion in der99-calibration.conf
Datei funktioniert nur dann gut, wenn das Paketxserver-xorg-input-evdev
ordnungsgemäß installiert wurde.Versuchen Sie einfach, es zu installieren:
sudo apt-get update sudo apt-get install xserver-xorg-input-evdev
Und starten Sie das System neu.
quelle