Ein kurzer Ausflug zu Touchscreens und deren Ansteuerung
Die auf dem Markt erhältlichen Touchscreens können unterschieden werden in „resistive“ und „kapazitive“ Modelle.
- Resistive Touchscreens sind bereits sehr lang auf dem Markt. Sie werden ausgelöst durch einen leichten Druck auf eine Kunststoffscheibe, die über dem eigentlichen Bildschirm liegt. Dadurch verändert sich der Widerstand der Zwischenschicht. Damit kann eine Position ungefähr ermittelt werden. Die Nachteile dieser Technik sind einerseits die Ungenauigkeit, die gewöhnlich eine Kalibrierung erforderlich macht, zum anderen der benötigte Druck, der ein Bewegen des Stifts oder Fingers auf dem Touchscreen erschwert. Sein Vorteil liegt in der Unabhängigkeit vom Eingabeinstrument – es muss kein geerdeter Finger sein, ein isolierter Plastikstift tut es ebenso.
- Kapazitive Touchscreens zeichnen sich gewöhnlich durch eine sehr glatte Glasoberfläche aus. Bei ihnen wird eine Auflagekapazität verändert und mit kleinen Zellen gemessen. Der wesentliche Vorteil: es besteht ein direkter Zusammenhang zwischen der ausgelösten Zelle und der Position – eine Kalibrierung entfällt. Bedingt durch diesen Vorteil sind auch Multi-Touch-Oberflächen möglich, die gleichzeitig mehrere Berührungen auswerten können. Erst mit dieser Technik sind Touchpads wie das iPad oder moderne Smartphones erst möglich geworden. Sie besitzen aber auch den Nachteil, dass der Toucheffekt nur mit dem Finger eintritt. Solle Stifte zum Einsatz kommen, dann müssen diese leitend gestaltet sein. Auch mit einem Handschuh im Winter kann man einen kapazitiven Touchscreen nicht bedienen.
Den kapazitiven Systemen gehört daher die Zukunft, aber für viele Anwendungen genügt nach wie vor auch ein resistiver Touchscreen, und gerade bei Industrieanwendungen sind die robusten und einfach gebauten Systeme gerne gesehen. Sie sind zudem günstiger zu haben als ihre kapazitiven Pendants, und sie sind auch einfacher anzusteuern.
Ein typischer resitiver Touchscreen besitzt meist vier (manchmal fünf) Anschlussdrähte. Diese sind den Seiten zugeordnet und liefern die Widerstandswerte. Da die Änderungen nicht sehr schnell geschehen, ist eine Auswertung der Daten mit einem einfachen ATMega88 Mikrocontroller möglich, der die Differenzen der Widerstandswerte misst und daraus eine Koordinate berechnet.
Im Mikrocontroller werden die eingehenden Werte mithilfe des bordeigenen A/D-Wandlers in Zahlenwerte umgesetzt; diese können dann als Koordinaten nach außen gegeben werden. Ohne Kalibrierung geht aber nichts, da die Widerstände der einzelnen Touchscreens bauartbedingt schwanken.
Der Controller kommuniziert dann über die serielle Schnittstelle und kann dort Koordinaten, aber auch Koordinatenfelder abliefern. Die Kommunikation über Felder vereinfacht das Protokoll, da bereits für ein Feld von 16×16-Feldern ein einziger Byte-Wert genügt. Im hier vorgestellten Beispiel wird das Koordinatenfeld sogar noch gröber gewählt mit 8×6 Feldern. Bei dem verwendeten 4,3″-Bildschirm ist ein solches Feld mit dem Finger noch gut zu treffen.
In der Anwendung im Mikrocontroller Lab wird diese Feldauswertung genutzt, um aus einem auf dem Bildschirm dargestellten, sechszeiligen Menü auszuwählen oder eine komplette Tastatur zu simulieren.
Anbei auch ein Link zu einem Youtube-Video, das den Touchscreen in Aktion zeigt. Er ist noch nicht kalibriert. Daher sind die Treffer manchmal auch noch daneben. Insgesamt sieht es aber schon recht gut aus.
Die Kalibrierung erfordert eine eigene Software, in der der Touchscreen die angeklickten Koordinaten festen, bekannten Werten auf dem Bildschirm zuordnet und diese dann dauerhaft abspeichert. Das interne Koordinatensystem (1024 x 1024) kann dann direkt gemappt werden auf das externe (hier 256 x 252), so dass der angeschlossene Datenempfänger keine Umrechnung mehr vornehmen muss. Auch die Berechnung der genannten „Felder“ (später als Schaltflächen genutzt) erfolgt dann präziser. Ein weiteres Video zeigt den Touchscreen, nachdem er kalibriert wurde.
Hallo,
wieder mal keine Eigenentwicklung. Alles nur nachgebau aus einschlägigen Foren.
Da hätte ich mehr erwartet!!!!
Alles Gute
Habermann
Salut,
Ehrlich gesagt empfinde ich deine Kommentare als äußerst unhöflich und auch in der Sache verfehlt. Vermutlich hast Du nicht verstanden, worum es mir bei der Sache geht – neue Technik mit alten Komponenten zu verbinden. Ich habe keine Hemmungen, auch mal die Ergebnisse anderer Projekte zu benutzen, um sie weiterzuentwickeln. Und wenn Du dir anschaust, was aus Touchscreen, Grafikkarte & Co letztlich geworden ist, dann ist das bisher so noch nicht da gewesen. Insbesondere fließt ein erheblicher Teil der Entwicklung in die Software – etwas, das man einer Schaltung gar nicht ansehen kann.
Was aber das Nachbauen betrifft: der Nachbau einer Bildröhreneinheit ist sicher anspruchsvoll, aber doch ebenso gut dokumentiert wie die Sache mit der Farbgrafik oder dem Touchscreen. Ich sehe den Unterschied nicht.
Wenn Du weiter kommentieren möchtest, dann bitte auf technischer Ebene. Andere Kommentare werde ich löschen. Und bitte verwende eine gültige Mailadresse – die von Dir angegebene existiert nicht. Das ist mindestens peinlich.
Grüße, JL7
Schreib doch mal, welche Auflösung sich in mm erreichen lässt. Wieviele Teilfelder kann man sicher ertasten? Sicher keine 1024×1024.
Wären 192×128 möglich?
Salut Pedro,
gute Frage. Ich habe das ganze ja im Rahmen des Mikrocontrollerprojekts deutlich ausgebaut und nutze den Touchscreen inzwischen für die Steuerung von GUI’s. Darunter ist auch ein Zeichenprogramm, dessen Linie dem Stift sehr exakt folgt, nachdem er einmal kalibriert wurde. Die höchsten Auflösungen der Bildschirme waren dabei 800×480 bei 5″-Diagonale. Die Genauigkeit hängt wesentlich vom Abfrageintervall und der Anzahl der Werte ab, die man für eine Messung nutzt. Ich fasse gewöhnlich 10 Werte zusammen – damit ist der Touchscreen reaktiv genug und liefert zusammen mit einem Stift eine für 800×600 ausreichende Präzision. Mehr zu dem benutzten Display und seinem Touchscreen findet sich unter http://ecksteinimg.de/Datasheet/CP11009.zip .
Grüße, JL7