-
Die vorliegende Erfindung betrifft zweidimensionale (2D) Berührungssensoren und insbesondere die Verarbeitung von Daten, die durch derartige Sensoren erfasst wurden.
-
Es werden verschiedene Techniken für 2D-Berührungssensoren verwendet, wie etwa eine resistive/kapazitive Technik. Unabhängig davon, welche Technik verwendet wird, weisen 2D-Berührungssensoren allgemein einen Aufbau auf, der auf einer Matrix von Sensorknoten beruht, die ein kartesisches, d.h. gitterförmiges 2D-Array bilden.
-
Zwei besonders aktive Entwicklungsbereiche in der kapazitiven Berührungserfassung sind die Mehrberührungs-Verarbeitung (auch als Multitouch bezeichnet) und die Gestenerkennung.
-
Unter „Multitouch“ ist die Fähigkeit eines 2D-Berührungssensors zum Erfassen von mehr als einer gleichzeitigen Berührung zu verstehen. Einfache Berührungssensoren gehen davon aus, dass jeweils nur eine Berührung an dem Sensor vorliegt, und geben jeweils nur einfache x,y-Koordinaten aus. Ein Multitouch-Sensor ist ausgebildet, um mehrere gleichzeitige Berührungen zu erfassen. Die einfachste Form eines Multitouch-Sensors ist ein Two-Touch-Sensor, der ausgebildet ist, um bis zu zwei gleichzeitige Berührungen zu erfassen.
-
Die Two-Touch-Erfassung stellt eine Grundvoraussetzung für eine einfache Tastatur-Emulation dar, bei der eine Umschalttaste wie bei einer herkömmlichen Tastatur betätigt werden soll. Außerdem ist eine Two-Touch-Erfassung für viele Gesten erforderlich. Der Begriff „Geste“ ist nicht eindeutig definiert und wird allgemein für eine Benutzereingabe verwendet, die komplexer als nur ein „Tippen“ oder „Drücken“ an einer bestimmten Position ist. Eine sehr einfache Geste ist etwa ein „Doppel-Tippen“, bei der ein Benutzer die Berührungsfläche zwei Mal schnell nacheinander berührt und wieder loslässt. Gesten sind aber gewöhnlich durch Berührungsbewegungen gekennzeichnet. Einfache Berührungsbewegungsgesten sind etwa ein „Streifen“ oder ein „Ziehen“; und komplexere Two-Töuch-Bewegungen sind etwa ein „Stauchen“, ein „Dehnen“ und ein „Drehen“.
-
Die Fähigkeit zur Multitouch-Erfassung ist natürlich eine. Voraussetzung für Gesten auf der Basis von zwei oder mehr gleichzeitig angezeigten Objekten.
-
Die bestehenden Ansätze zur Gestenerkennung beruhen auf dem Eingeben einer zeitlichen Serie von Berührungskoordinaten aus dem Berührungssensor in einen Gestenerkennungs-Algorithmus, wobei ein Datensatz aus einem bestimmten Zeitintervall nachfolgend als Rahmen oder Rahmendaten bezeichnet wird. Zum Beispiel können die folgenden Daten das Ergebnis der Verarbeitung von vier aufeinander folgenden Zeitrahmen t
1, t
2, t
3 und t
4 auf die Ziehbewegung von bis zu drei Berührungen auf einem Berührungssensor sein:
Zeitrahmen | Berührungen/Objekte Berührungspaneel |
1 | 2 | 3 |
t1 | (4,7) | (4,3) | (10,7) |
t2 | (3,7) | (2,4) | (6,6) |
t3 | (1,8) | (-,-) | (5,7) |
t4 | (3,8) | (-,-) | (6,7) |
-
In der beispielhaften Tabelle sind die x,y-Koordinaten von drei ziehenden Berührungen gezeigt, wobei die zweite Berührung zum Zeitpunkt t3 abgeschlossen wurde. Natürlich können sich die zeitlichen Serien über eine sehr große Anzahl von Zeitinkrementen erstrecken.
-
Die Aufgabe des Gestenerkennungs-Algorithmus besteht darin, die Rahmendaten zu analysieren. Erstes soll identifiziert werden, welche Gesten durch den Benutzer eingegeben werden. Und zweitens sollen die erkannten Gesten parametrisiert werden und sollen die Parameter an eine Verarbeitungssoftware einer höheren Ebene ausgegeben werden. Zum Beispiel kann ein Gestenerkennungs-Algorithmus berichten, dass ein Benutzer eine „Drehen“-Geste eingegeben hat, die eine Drehung um einen Winkel von 67 Grad angibt.
-
Die Erfindung geht über den herkömmlichen Ansatz, dass der Berührungssensor nur Berührungspositionsdaten ausgibt, hinaus, indem sie einen Berührungssensor angibt, der zusätzlich dazu Daten zu der Form einer Berührung ausgibt. Dies wird bewerkstelligt, indem Abtastungsknoten in einem Gitter vorgesehen sind, das feiner als die Größe des Betätigungsobjekts ist, das gewöhnlich ein Finger ist. Jede Berührung eines Fingers veranlasst also allgemein die Aktivierung von mehreren benachbarten Knoten des Sensors, sodass jede Berührung eine Form aufweist, die durch eine Gruppe von Knoten gebildet wird. Auf diese Weise kann der Berührungssensor eine Berührungsposition für jede Berührung ausgeben, wobei die Berührungsposition nicht einfach synonym mit einem einzelnen erfassten Knoten ist, sondern aus einer Analyse einer Gruppe von aktivierten Knoten berechnet wird, die gemeinsam die Berührung wiedergeben. Dabei wird zum Beispiel der Schwerpunkt der aktivierten Knoten berechnet. Außerdem kann der Berührungssensor zusätzlich Daten zu der Form der Berührung ausgeben. Insbesondere kann ein Berührungssensor vorgesehen werden, der einen Berührungswinkel für jede Berührungsposition und optional weiterhin Daten zu der Form der Berührung wie etwa die Länge der Berührung. ausgibt. Wenn die Form einer Berührung ellipsenartig ist, dann kann die Ellipse verwendet werden, um einen Winkel und die Elliptizität anzugeben. Aus der Geometrie ist bekannt, dass die Elliptizität ein Parameter ist, der die Länge einer Ellipse angibt; es handelt sich also um eine Art von Längenfaktor. In einer bevorzugten Implementierung der Erfindung ist jede Berührung eine Kombination aus einer Berührungsposition und einem Berührungsvektor. Sowohl die Berührungsposition als auch der Berührungsvektor können als zweidimensionale Koordinaten ausgedrückt werden, wobei es sich um kartesische oder polare Koordinaten handeln kann. Kartesische Koordinaten sind zu bevorzugen, weil diese bequem auf die übliche Gitterform eines herkömmlichen 2D-Sensor-Arrays abgebildet werden können. Zum Beispiel gibt der Sensor für jeden aus dem Sensor-Array erhaltenen Datenrahmen eine (x,y)-Koordinate der Berührungsposition und einen (x,y)-Vektor aus, wobei der Vektor definitionsgemäß eine Größe und eine Richtung aufweist, wobei die Richtung den Berührungswinkel der Berührung wiedergibt und die Größe die Elliptizität bzw. den Längenfaktor der Berührung wiedergibt.
-
Indem diese zusätzlichen Formdaten als Teil der Rahmendaten vorgesehen werden, wird die Gestenverarbeitung wesentlich vereinfacht, weil die Identifikation von Gesten viel einfacher wird. Ebenso wichtig ist, dass die zusätzlichen Formdaten unbegrenzte Möglichkeiten für die Erfindung neuer Gesten eröffnet, die nur auf der Basis von Berührungspositionsdaten nicht oder nur schwierig identifiziert werden könnten. Außerdem kann die Erfindung wie weiter unten im größeren Detail erläutert unter Verwendung von sehr einfachen Rechenmethoden implementiert werden, die auf einfachen Hardware-Plattformen wie etwa Mikrocontrollern ausgeführt werden können.
-
Die vorliegende Erfindung und/oder ihre bevorzugten Ausführungsformen nutzen die Errungenschaften von drei frühren Erfindungen von Martin Simmons und Daniel Pickett, die zwei der Erfinder der vorliegenden Anmeldung sind. Es handelt sich um:
- US 2010/0097328 A1 vom 21. Oktober 2008, die ein Verfahren und eine Vorrichtung zum Identifizieren von Berührungen auf einem 2D-Berührungssensor beschreibt, wobei die Berührungsgröße größer als ein Knotenabstand ist.
-
US 2010/0097329 A1 vom 21. Oktober 2008, die ein Verfahren und eine Vorrichtung zum Berechnen von Berührungspositionen auf einem 2D-Berührungssensor beschreibt, wobei die Berührungsgröße größer als ein Knotenabstand ist.
-
US 2010/0097342 A1 vom 21. Oktober 2008, die ein Verfahren und eine Vorrichtung zum Verfolgen von mehrfachen Berührungen auf einem 2D-Berührungssensor beschreibt.
-
Der Inhalt dieser drei früheren Anmeldungen ist hier vollständig unter Bezugnahme eingeschlossen.
-
Die Erfindung gibt gemäß einem Aspekt eine Verfahren zum Erfassen von Berührungen auf einem Berührungssensor an, wobei das Verfahren umfasst: Vorsehen eines Berührungssensors mit einem zweidimensionalen Array aus Erfassungsknoten, die über eine Erfassungsfläche verteilt sind; Erfassen eines Rahmens von Berührungssignalwerten von den Erfassungsknoten; Verarbeiten der Berührungssignalwerte, um wenigstens eine Berührung in dem Rahmen zu erfassen, wobei jede Berührung durch eine benachbarten Gruppe von einem oder mehreren Erfassungsknoten gebildet wird; Berechnen der Berührungsposition auf der Erfassungsfläche für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung; Berechnen eines Berührungswinkels, der die Ausrichtung der Berührung auf der Erfassungsfläche angibt, für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung, und Ausgeben von Rahmendaten einschließlich der Berührungsposition und des Berührungswinkels für jeden Rahmen.
-
Das Verfahren kann weiterhin umfassen: Berechnen eines Elliptizitätsfaktors, der die Länge der Berührungsform angibt, für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung; und Ausgeben. des Berührungs-Elliptizitätsfaktors als Teil der Rahmendaten für jeden Rahmen. Die Berührungsposition kann mit einer Korrekturdistanz in einer Korrekturrichtung übersetzt werden die jeweils aus dem Berührungs-Elliptzitätsfaktor und dem Berührungswinkel bestimmt werden.
-
In Ausführungsformen der Erfindung werden der Berührungswinkel und der Berührungs-Elliptizitätsfaktor gemeinsam als Vektor ausgedrückt. Der Vektor kann in der Form von kartesischen. (x,y) oder polaren (r, θ) Koordinaten ausgedrückt werden.
-
In einer spezifischen Implementierung wird der Vektor berechnet, indem Berührungssignalwerte entlang eines ersten und eines zweiten Paars von orthogonalen Richtungen summiert werden, wobei die Paare um jeweils 45 Grad zueinander gedreht werden und wobei ein erstes Verhältnis aus den Summen des ersten Paares und ein zweites Verhältnis aus den Summen des zweiten Paars erhalten werden. Die für die Berechnung der Verhältnisse verwendeten Summen können jeweils die mit einem maximalen Wert in jeder der vier Richtungen sein. Alternativ hierzu kann auch nur eine Summe für jede Richtung berechnet werden, wenn die Berührungsposition als Ursprung verwendet wird und nur eine den Ursprung kreuzende Linie für jede der vier Richtungen verwendet wird.
-
Der Begriff Elliptizität ist hier in einem lockeren Sinne und nicht streng geometrisch zu verstehen und soll die Länge der Berührung wiedergeben, wobei nicht erforderlich ist, dass die Form der Berührung einer Ellipse entspricht.
-
Die Berührungsrichtung wird zusätzlich aus einem binären Zeigerichtungs-Indikator bestimmt, der vorbestimmt sein kann, zum Beispiel auf der Basis des Wissens dazu, wie die Vorrichtung mit dem darin integrierten Berührungssensor während der normalen Nutzung ausgerichtet ist. Alternativ hierzu kann der binäre Zeigerichtungs-Indikator aus den Eigenschaften der erfassten Berührung berechnet werden.
-
Das Verfahren kann weiterhin umfassen: Vorsehen einer Gestenverarbeitungseinrichtung, die angeordnet ist, um die Rahmendaten von dem Berührungssensor zu empfangen, und betrieben werden kann, um die Rahmendaten über die Zeit zu verarbeiten, wobei die Gestenverarbeitungseinrichtung einen Gestenverarbeitungs-Algorithmus ausführt, der Gesten aus den Rahmendaten identifiziert und entsprechende Gestendaten ausgibt. Der Gestenverarbeitungs-Algorithmus kann die Erkennung von wenigstens einer Geste mit einem Parameter mit einer Abbildung auf den Berührungswinkel umfassen. Der Gestenerkennungs-Algorithmus kann betrieben werden, um auf der Basis des Berührungswinkels und vorzugsweise auch des Berührungs-Elliptizitätsfaktors zu bestimmen, ob die Berührung durch eine linke Hand oder eine rechte Hand erfolgt. Dabei kann es sich um einen Finger der linken oder rechten Hand oder um einen in der linken oder rechten Hand gehaltenen Griffel handeln. Diese Funktionalität kann vorgesehen werden, weil in der Hand gehaltene Geräte in einer bestimmten Weise gehalten werden, wenn Tasteneingaben vorgenommen werden, sodass Berührungen der Finger und des Daumens der linken oder rechten Hand innerhalb eines bestimmten voraussagbaren Winkelbereichs liegen.
-
Der Gestenerkennungs-Algorithmus umfasst vorzugsweise eine Erkennung von wenigstens einer Geste auf der Basis einer Analyse des Berührungswinkels und der Berührungsposition über die Zeit, sodass eine Bewegung der Berührungsposition in einer Richtung allgemein quer zu dem Berührungswinkel der Berührung als eine laterale Gleit- oder Kippbewegung eines Fingers erkannt wird.
-
Der Gestenverarbeitungs-Algorithmus umfasst vorzugsweise die Erkennung von wenigstens einer Geste, die einen Parameter mit einer Abbildung auf den Berührungs-Elliptizitätsfaktor aufweist.
-
Der Gestenerkennungs-Algorithmus umfasst vorzugsweise eine Erkennung von wenigstens einer Geste, wobei der Berührungswinkel und der Berührungs-Elliptizitätsfaktor gemeinsam verarbeitet werden und wobei die Größe des Berührungs-Elliptizitätsfaktors verwendet wird, um die Winkelpräzision des Berührungswinkels zu bestimmen.
-
Der Gestenverarbeitungs-Algorithmus kann betrieben werden, um auf der Basis des Berührungs-Elliptizitätsfaktors und optional auch des Berührungswinkels zu bestimmen, ob die Berührung durch einen Daumen oder einen Finger erfolgt. Allgemein sind Berührungen mit dem Daumen runder und sind Berührungen mit einem Finger länglicher, sodass Berührungen mit dem Daumen eine geringere Elliptizität aufweisen. Dieskann bei der Erkennung einer Two-Touch-Geste eines Daumens und eines Zeigefingers nützlich sein. Zum Beispiel kann der Daumen als Ursprung für eine Drehung oder eine andere Bewegung des Zeigefingers definiert werden.
-
Der auf den Berührungswinkel abgebildete Parameter kann eine Drehung (z.B. eines Objekts innerhalb einer Szene oder aber einer gesamten Szene), das Vergrößern oder Verkleinern einer Ansicht (z.B. wird das Vergrößern/Verkleinern auf einen positiven/negativen Winkelfortschritt über die Zeit oder umgekehrt abgebildet), eine Bewegungsrichtung (z.B. in einer Straßenansicht) oder die Betätigung eines Lenkrads (z.B. in einer Fahrzeugsimulation) sein.
-
Der Gestenerkennungs-Algorithmus kann eine Erkennung wenigstens einer Geste auf der Basis einer Analyse des Berührungs-Elliptizitätsfaktors und einer Berührungsposition über die Zeit umfassen, wobei eine Änderung in dem Berührungs-Elliptizitätsfaktors während einer relativ konstanten Berührungsposition als eine vertikale Kippbewegung eines Fingers erkannt wird, bei der der Winkel des Fingers zu der Ebene der Erfassungsfläche variiert wird.
-
Der Berührungssensor kann ein kapazitiver Berührungssensor oder ein anderer Typ von Berührungssensor sein. In der folgenden detaillierten Beschreibung wird auf eine kapazitive Erkennung Bezug genommen, wobei dem Fachmann aber deutlich sein sollte, dass das Verfahren der Erfindung ebenso auf eine 2D-Positionserkennung angewendet werden kann, die auf beliebige Weise Rohdatensätze von der Erfassungsfläche erhält, wobei zum Beispiel Widerstandswerte, die interne Totalreflexion, Ultraschall, Oberflächenakustikwellen oder andere Eigenschaften genutzt werden.
-
Die Erfindung gibt gemäß einem anderen Aspekt einen Berührungssensor an, der umfasst: ein zweidimensionales Array aus Sensorknoten, die über eine Erfassungsfläche verteilt sind; eine Messschaltung, die betrieben werden kann, um Rahmen von Berührungssignalwerten von den Erfassungsknoten zu erhalten; und eine Verarbeitungseinheit, die betrieben werden kann zum: Verarbeiten der Berührungssignalwerte, um wenigstens eine Berührung in dem Rahmen zu erfassen, wobei jede Berührung durch eine benachbarte Gruppe von einem oder mehreren Erfassungsknoten gebildet wird; Berechnen der Berührungsposition auf der Erfassungsfläche für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung; Berechnen eines Berührungswinkels, der die Ausrichtung der Berührung auf der Erfassungsfläche angibt, für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung; und Ausgeben von Rahmendaten einschließlich der Berührungsposition und des Berührungswinkels für jeden Rahmen. Die Verarbeitungseinheit kann vorzugsweise weiterhin betrieben werden zum: Berechnen eines Berührungs-Elliptizitätsfaktors, der die Länge einer Berührungsform angibt, für jede Berührung durch das Verarbeiten der Berührungssignalwerte der Berührung; und Ausgeben des Berührungs-Elliptizitätsfaktors für jeden Rahmen als Teil der Rahmendaten.
-
Der Berührungssensor kann in Kombination mit einer Gestenverarbeitungseinrichtung vorgesehen sein, der angeordnet ist, um die Rahmendaten von dem Berührungssensor zu empfangen, und der betrieben werden kann, um die Rahmendaten über die Zeit zu verarbeiten, wobei der Gestenprozessor weiterhin betrieben werden kann, um einen Gestenerkennungs-Algorithmus zum Identifizieren von Gesten aus den Rahmendaten auszuführen und entsprechende Gestendaten auszugeben.
-
Unter Verwendung eines Berührungssensors mit unabhängig adressierbaren Erfassungsknoten in einem Gitter, das feiner ist als die Berührungsfläche eines Berührungsfingers, wobei der Gitterabstand zum Beispiel kleiner als ungefähr 5 mm ist, kann die Form eines Berührungsobjekts erfasst werden. Unter Verwendung von geeigneten Algorithmen kann der Winkel des Berührungsobjekts relativ zu dem Erfassungsgitter erfasst werden und kann auch die Länge der Berührung erfasst werden. Indem diese Winkeldaten zusammen mit den Berührungspositionsdaten berichtet werden, kann eine neue Klasse von Gesten vorgesehen werden, wobei es sich sowohl um Einfachberührungen als auch um Mehrfachberührungen handeln kann. Zum Beispiel kann unter Verwendung von nur einem Finger eine Vergrößerungs- oder eine Verkleinerungsgeste vorgenommen werden, indem einfach ein Berührungsfinger auf dem Berührungsbildschirm gebogen wird. Es kann aber auch eine Drehbewegung von zwei Fingern für andere Benutzersteuerungen verwendet werden. Der Winkel und der Längenfaktor können jeweils pro Berührung erfasst werden, d.h. jeweils unabhängig für jede Berührung in einer Multitouch-Erfassung. Außerdem kann der Berührungswinkel verwendet werden, um wiederkehrende menschliche Fehler bei der Betätigung von virtuellen Tasten oder Symbolen zu korrigieren.
-
Im Folgenden werden die Erfindung und verschiedene Ausführungsformen derselben mit Bezug auf die beigefügten Zeichnungen verdeutlicht.
- 1 ist ein schematisches Diagram zu einer Ausführungsform der Erfindung.
- 2 ist eine schematische Draufsicht auf die Schaltungselemente eines berührungsempfindlichen, kapazitiven 2D-Positionssensors.
- 3 zeigt einen beispielhaften Ausgabedatensatz aus einem 2D-Berührungssensor für eine einfache Berührung.
- 4 zeigt einen beispielhaften Ausgabedatensatz des 2D-Berührungssensors von 3 für zwei Berührungen.
- 5 zeigt einen beispielhaften Ausgabedatensatz des 2D-Berührungssensors von 3 für drei Berührungen.
- 6 ist ein Flussdiagramm, das ein Verfahren zum Zuordnen von benachbarten Knoten auf einem Berührungspaneel zu einer oder mehreren Berührungen zeigt.
- 7 ist ein Flussdiagramm, das ein Verfahren zum Berechnen der Berührungsposition zeigt.
- 8 ist ein Flussdiagramm, das eine Berechnung der x-Koordinate in dem Verfahren von 7 zeigt.
- 9 ist ein Flussdiagram, das eine Berechnung der y-Koordinate indem Verfahren von 7 zeigt.
- 10 zeigt schematisch einen beispielhaften Ausgabedatensatz aus einem 2D-Berührungsensor für eine einfache Berührung mit Anmerkungen, die sich auf die Berechnung von Formdaten für die Berührung beziehen.
- 11 ist ein Flussdiagramm, das ein Verfahren zum Berechnen eines Berührungsformvektors zeigt.
- 12A bis 12F zeigen verschiedene beispielhafte Ausgabedatensätze aus einem 2D-Berührungssensor mit Anmerkungen, die sich auf die Berechnung von Formdaten für die Berührung beziehen.
- 13 zeigt einen Finger, der eine virtuelle Taste auf einem 2D-Berührungssensor berührt, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
- 14A und 14B zeigen einen Benutzer, der ein Handgerät mit einem berührungsempfindlichen Anzeigepaneel jeweils mit der rechten oder der linken Hand hält, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
- 15 zeigt ein Handgerät mit einer QWERTY-Tastatur, die durch zwei Daumen betätigt wird, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
- 16A und 16B zeigen einen einzelnen Finger, der zwischen zwei Positionen gedreht wird, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
- 17 zeigt zwei Finger derselben Hand, die lateral über einen Berührungsbildschirm bewegt werden, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
- 18A und 18B sind eine Draufsicht und eine Seitenansicht eines einzelnen Fingers, der ein Gerät 20 mit einem berührungsempfindlichen Bildschirm betätigt, um ein Anwendungsbeispiel für die Formdaten zu zeigen.
-
1 ist ein schematisches Diagramm, das einen Berührungssensor 100 zeigt, der eine durch die gepunktete Ellipsenlinie wiedergegebene Fingerberührung erfasst.
-
Der Berührungssensor 100 umfasst ein zweidimensionales Array aus Sensorknoten, die über eine Erfassungsfläche verteilt sind, in Kombination mit einem assoziierten Messschaltungsaufbau. Während des Betriebs gibt jeder Knoten bzw. jede Taste ein Messsignal aus, das die Nähe einer Berührung angibt. Ein Datensatz aus dem Sensor mit einem Messsignalwert von jeder Taste wird als ein Datenrahmen bezeichnet. In der Figur ist ein Array mit 6 × 6 Tasten gezeigt, wobei eine Berührung veranlasst, dass eine Gruppe von 7 benachbarten Knoten die Nähe des Berührungsobjekts erfasst. Tasten, die eine Berührung erfassen, wenn ihr Messsignal über einem Schwellwert liegt, sind in den Figuren schraffiert dargestellt.
-
Der Berührungssensor 100 ist mit einer Berührungsdaten-Erfassungseinheit 110 verbunden, die betrieben werden kann, um Datenrahmen von den Erfassungsknoten zu erhalten.
-
Die Berührungsdaten-Erfassungseinheit 110 gibt die Rahmendaten an eine Berührungserkennungseinheit 120 aus, die betrieben werden kann, um die Berührungssignalwerte zu verarbeiten und dadurch zu erfassen, ob Berührungen in dem Rahmen enthalten sind. In einer einfachen Implementierung kann die Berührungserkennungseinheit nur eine einfache Berührung in einem Rahmen erfassen. Vorzugsweise ist die Berührungserkennungseinheit aber in der Lage, drei gleichzeitige Berührungen oder mehr zu unterscheiden. Jede Berührung wird durch eine benachbarte Gruppe aus einem oder mehreren Erfassungsknoten gebildet. Jede Berührung wird weiterhin verarbeitet, um die Berührungsposition - auf der Erfassungsfläche zu berechnen, d.h. ihre x- und y-Koordinaten. Dies wird bewerkstelligt, indem die Berührungssignalwerte der Berührung verarbeitet werden. Jede Berührung wird weiterhin verarbeitet, um Formdaten zu berechnen. Dabei wird insbesondere ein Berührungswinkel berechnet, der die Ausrichtung der Berührung auf der Erfassungsfläche angibt. Und ein Berührungs-Elliptizitätsfaktor, der die Länge der Berührungsform angibt, wird durch eine Verarbeitung der Berührungssignalwerte der Berührung verarbeitet. In der bevorzugten Ausführungsform werden beide Formparameter in der Form eines Vektors angegeben, dessen Richtung den Winkel wiedergibt und dessen Größe die Elliptizität wiedergibt. Der Vektor kann als ein x,y-Koordinatenpaar angegeben werden, sodass die Position und die Formdaten für jeden Rahmen allgemein als x,y-Koordinatenpaare ausgegeben werden.
-
Die Berührungsposition und die Formdaten werden durch die Berührungserkennungseinheit 120 zu einem Gestenerkennungs-Prozessor 130 ausgegeben. Der Gestenerkennungs-Prozessor 130 kann betrieben werden, um einen Gestenerkennungs-Algorithmus auszuführen, der Gesten anhand der Berührungsposition und der Formdaten identifiziert.
-
Der Gestenerkennungs-Prozessor 130 weist einen Aurfbau auf, der mit einer Software-Verarbeitungseinheit 140 einer höheren Ebene verbunden ist, die programmiert ist, um auf Gestendaten zu agieren. Der Gestenerkennungs-Prozessor 130 wird betrieben, um Gestendaten auszugeben, die die identifizierten Gesten zusammen mit ihren Parameterwerten wie etwa ein Drehen um einen bestimmten Winkel oder ein Doppel-Tippen mit einem gemessenen Zeitintervall zwischen den einzelnen Tippvorgängen anzugeben.
-
2 zeigt den Berührungssensor 100 und seine Verbindungzu der Berührungsdaten-Erfassungseinheit 110 im größeren Detail. Es ist eine berührungsempfindliche Matrix gezeigt, die eine zweidimensionale, kapazitive Transducer-Sensoranordnung vorsieht. Der Berührungssensor 100 umfasst ein m × n großes Array aus m Reihenelektorden und n Spaltenelekroden, wobei m = n = 6. Es ist zu beachten, dass die Anzahl der Spalten und Reihen beliebig gewählt werden kann, wobei etwa in einem anderen Beispiel zwölf Spalten und acht Reihen oder eine beliebige andere Anzahl von Spalten oder Reihen vorgesehen sein können.
-
Das Array aus Erfassungsknoten ist in oder unter einem Substrat wie etwa einem Glaspaneel durch entsprechend geformte und dimensionierte Elektroden vorgesehen. Die Erfassungselektroden definieren eine Erfassungsfläche, innerhalb der die Position eines Objekts (z.B. eines Fingers oder eines Griffels) in Bezug auf den Sensor bestimmt werden kann. Für Anwendungen, in denen der Sensor über einer Anzeige wie etwa einer Flüssigkristallanzeige (LCD) angeordnet ist, kann das Substrat aus einem transparenten Kunststoffmaterial ausgebildet sein und können die Elektroden aus einem transparenten Film aus Indiumzinnoxid (ITO) ausgebildet sein, das unter Verwendung von herkömmlichen Techniken auf dem Substrat aufgetragen wird. Die Erfassungsfläche des Sensors ist also transparent und kann über einem Anzeigebildschirm angeordnet werden, ohne zu verdecken, was hinter der Erfassungsfläche angezeigt wird. In anderen Beispielen kann der Positionssensor nicht für die Anordnung über einem Display vorgesehen sein, wobei in diesem Fall die ITO-Schicht durch ein kostengünstigeres Material wie etwa eine kupferlaminierte Leiterplatte ersetzt werden kann.
-
Der Entwurf kann hinsichtlich des Masters der Erfassungselektroden auf dem Substrat frei gewählt werden. Es ist lediglich wichtig, dass der Erfassungsbereich durch ein Gitter aus in Reihen und Spalten angeordneten Erfassungszellen unterteilt ist. (Die Begriffe „Reihe“ und „Spalte“ werden hier verwendet, um zwischen zwei Richtungen zu unterscheiden, wobei es sich nicht unbedingt um eine vertikale und eine horizontale Ausrichtung handeln muss.) Einige beispielhafte Elektrodenmuster sind zum Beispiel in
US 2008/0246496A1 angegeben, deren Inhalt hier vollständig unter Bezugnahme eingeschlossen ist.
-
Dem Fachmann sollte deutlich sein, dass der gezeigte Sensor vom aktiven Typ ist und also die kapazitive Kopplung zwischen zwei Elektroden (und nicht zwischen einer Erfassungselektrode und einer Systemerde) misst. Die Prinzipien der zugrundeliegenden aktiven, kapazitiven Erfassungstechniken sind in
US 6,452,514 beschrieben. In einem Sensor des aktiven Typs wird eine Elektrode, die so genannte Ansteuerelektrode, mit einem oszillierenden Ansteuersignal versorgt. Der Grad der kapazitiven Kopplung des Ansteuersignals zu der Erfassungselektrode wird bestimmt, indem die durch das oszillierende Ansteuersignal zu der Erfassungselektrode übertragene Ladungsmenge gemessen, wird. Die Menge der übertragenen Ladung, d.h. die Stärke des an der Erfassungselektrode ankommenden Signals, ist ein Maß für die kapazitive Kopplung zwischen den Elektroden. Wenn sich kein Zeigeobjekt in der Nähe der Elektroden befindet, weist das gemessene Signal an den Erfassungselektroden einen Hintergrund- oder Ruhewert auf. Wenn sich jedoch ein Zeigeobjekt wie etwa der Finger eines Benutzers den Elektroden nähert (oder sich insbesondere dem Bereich zwischen den Elektroden nähert), wirkt das Zeigeobjekt als virtuelle Erde und leitet einen Teil des Ansteuersignals (der Ladung) von der Ansteuerelektrode ab. Dadurch wird die Stärke der mit der Erfassungselektrode gekoppelten Komponente des Ansteuersignals reduziert. Eine Verminderung in dem an der Erfassungselektrode gemessenen Signal weist also darauf hin, dass ein Zeigeobjekt vorhanden ist.
-
Das gezeigte m × n große Array ist ein 6 × 6-Array mit sechs Ansteuerleitungen, die nachfolgend als X-Leitungen bezeichnet werden, und mit sechs Erfassungsleitungen, die nachfolgend als Y-Leitungen bezeichnet werden. An den Kreuzungspunkten der X- und Y-Leitungen befinden sich jeweils Erfassungsknoten 205. Tatsächlich befinden sind die X- und Y-Leitungen jeweils in unterschiedlichen Schichten des Berührungspaneels untergebracht und durch ein Dielektrikum voneinander getrennt, sodass sie kapazitiv gekoppelt sind und also keinen Ohmschen Kontakt bilden. An jedem Knoten 205 wird eine Kapazität zwischen benachbarten Teilen der X- und Y-Leitungen gebildet, wobei diese Kapazität im Stand der Technik gewöhnlich als CE oder CX bezeichnet wird und effektiv einen Kopplungskondensator bildet. Das Vorhandensein eines Betätigungskörpers wie etwa eines Fingers oder Griffels führt Nebenleitungskapazitäten ein, die dann über den Körper durch einen äquivalenten Erdungskondensator zu der Erde geführt werden. Das Vorhandensein eines Körpers beeinflusst also die von der Y-Seite des Kopplungskondensators übertragene Ladungsmenge und ermöglicht entsprechend eine Erfassung des Vorhandenseins des Körpers. Der Grund hierfür ist, dass die Kapazität zwischen den X- und Y-„Platten“ in jedem Erfassungsknoten reduziert wird, wenn die durch eine Berührung verursachten Erdungskapazitäten größer werden. Dies ist aus dem Stand der Technik wohlbekannt.
-
Während des Betriebs werden die X-Leitungen nacheinander betrieben, um einen vollen Datenrahmen von dem Sensor-Array zu erhalten. Dazu betätigt die Berührungsdaten-Erfassungseinheit 110 die Ansteuerschaltungen 101.m über die Ansteuerleitungen 103.m, um alle m X-Leitungen nacheinander anzusteuern. Eine weitere Ansteuerleitung 107 zu den Ansteuerschaltungen führt eine Ausgabeaktivierung für das Aktivieren der Ausgabe zu der X-Platte der entsprechenden X-Leitung zu.
-
Für jede X-Leitung wird eine Ladung zu einem entsprechenden Ladungsmessungskondensator Cs
112.n übertragen, der mit entsprechenden der n Y-Leitungen verbunden ist. Die Übertragung der Ladung von den Kopplungskondensatoren
205 zu den Ladungsmessungskondensatoren Cs wird durch die Betätigung von Schaltern unter der Steuerung durch die Steuereinrichtung bewerkstelligt. Der Einfachheit halber sind weder die Schalter noch deren Steuerleitungen gezeigt. Weitere Details hierzu sind in
US 6,452,514 und
WO-00/44018 enthalten.
-
Die an dem Ladungsmessungskondensator Cs 112.n gehaltene Ladung kann durch die Berührungsdaten-Erfassungseinheit 110 über entsprechende Verbindungsleitungen 116.n und über einen Analog-Digital-Wandler (nicht gezeigt) gemessen werden. -
-
Weitere Details zu dem Betrieb eines derartigen Matrix-Schaltungsaufbaus sind in
US 6,452,514 und
WO-00/44018 angegeben.
-
Die Berührungsdaten-Erfassungseinheit 110 wird wie oben beschrieben betrieben, um das Vorhandensein eines Objekts über einer der Matrix-Tasten 205 aus einer Änderung in der Kapazität der Tasten zu erfassen, d.h. aus einer Änderung in der Ladungsmenge, die an der Taste während einer Folge von Messzyklen induziert wird. Es kann aber auch ein Rauschsignal dazu führen, dass eine Ladung an den Tasten eines Berührungssensors induziert wird. Dadurch können eine falsche Erfassung verursacht oder eine korrekte Erfassung verhindert werden.
-
Die Berührungsdaten-Erfassungseinheit
110 kann betrieben werden, um die Anzahl der gleichzeitigen Berührungen an dem Positionssensor zu berechnen und diskrete Tasten zu einer der gleichzeitigen Berührungen unter Verwendung des weiter unten beschriebenen Algorithmus zuzuordnen. Die diskreten Tasten, die jeweils einer der Berührungen zugeordnet werden, werden von der Steuereinrichtung über eine Ausgangsverbindung zu einer Systemkomponente einer höheren Ebene ausgegeben. Alternativ hierzu interpoliert die Berührungsdaten-Erfassungseinheit
110 jeden der Knoten, die den einzelnen Berührungen zugeordnet sind, um die Koordinaten der Berührung zu erhalten. Der rechnerische Ansatz zum Interpolieren der Berührungskoordinaten kann darin bestehen, dass eine Schwerpunktberechnung auf den Signalen von allen einer Berührung zugeordneten Knoten ähnlich wie in
US 2006/0097991 beschrieben durchgeführt wird.
-
3 zeigt ein typisches Datendiagramm aus einem 2D-Berührungspaneel, das aus der Berührungsdaten-Erfassungseinheit 110 ausgegeben werden kann.
-
Das Diagramm zeigt den Signalpegel bei jeder der diskreten Tasten an den Kreuzungen der X- und Y-Leitungslinien. Dabei werden die Kreuzungen der X- und Y-Leitungsdrähte hier als Knoten bezeichnet.
-
Die Signaldaten werden als zweidimensionales Layout in einer Draufsicht auf das Berührungspaneel wiedergegeben. Die Zahlen in den Quadraten geben die Signalwerte an jeder Kreuzung von X- und Y-Leitungsdrähten, d.h. an jedem Erfassungsknoten, wieder. Außerdem geben Kreise in der oberen linken Ecke jedes Knotens an, dass der entsprechende Knoten einen Signalwert über einem Schwellwert aufweist. In den vorliegenden Beispielen liegt der Schwellwert bei 12, sodass ein Wert von 13 eine Erfassung wiedergibt, während ein Wert von 12 keine Erfassung wiedergibt. Die erfassenden Knoten werden schraffiert dargestellt. Es ist zu beachten, dass die Rahmendaten der in 1 gezeigten beispielhaften Berührung entsprechen. Die X- und Y-Leitungslinien werden jeweils durch die vertikalen und horizontalen gepunkteten Linien wiedergegeben. Es sind sechs X-Elektroden 0 bis 5 und acht Y-Elektroden 0 bis 7 vorgesehen.
-
4 zeigt ein anderes Beispiel, in dem zwei gleichzeitige Berührungen erfolgen. Wie zuvor sind die Signalwerte angegeben und sind die erfassenden Knoten schraffiert dargestellt. Außerdem sind Kreise in den Ecken der erfassenden Knoten vorgesehen, wobei die erfassenden Knoten in Verbindung mit einer ersten Berührung durch Kreise in der oberen linken Ecke angegeben werden und die erfassenden Knoten in Verbindung mit einer zweiten Berührung durch Kreise in der unteren linken Ecke wiedergegeben werden: Wie gezeigt, sind zwei der Knoten, nämlich (3,2) und (3,3), in beiden Berührungen enthalten. Die Knoten jeder Berührung mit dem größten Signalwert sind ebenfalls mit ihren Koordinaten angegeben.
-
5 zeigt ein weiteres Beispiel von Berührungsdaten mit drei gleichzeitigen Berührungen. Es werden dieselben Beschriftungskonventionen wie zuvor verwendet. Außerdem wird die Platzierung von Kreisen in den Ecken der erfassenden Knoten derart erweitert, dass die erste, zweite und dritte Berührung jeweils durch Kreise oben links, unten links und unten rechts angegeben werden.
-
6 zeigt ein Flussdiagramm zu dem Verfahren, das verwendet wird, um diskrete Tasten oder Knoten zu einer oder mehreren Berührungen auf einem Berührungspaneel zuzuordnen. Das Flussdiagramm von 6 wird in Verbindung mit 3, 4 und 5 verwendet, um zu zeigen, wie die Signalwerte jedes der Knoten verwendet werden, um zu identifizieren, welche der Knoten zu einer oder mehreren Berührungen zugeordnet sind.
-
In einem nicht in dem Flussdiagramm von 6 gezeigten Vorverarbeitungsschritt wird das Signal von jedem der Knoten mit einem Signalschwellwert verglichen. Ein Knoten, der einen Signalwert unter dem Schwellwert aufweist, wird in dem folgenden Algorithmus nicht berücksichtigt. Dies ist das bevorzugte Verfahren der Erfindung. Alternativ hierzu kann der Vergleich mit einem Schwellwert auch während des Algorithmus durchgeführt werden. Bevor in dem alternativen Verfahren der Knoten einer bestimmten Berührung zugeordnet wird, wird er mit einem Schwellwertsignalwert verglichen. In beiden Verfahren wird der Knoten einer nicht-Berührung zugeordnet, wenn der Signalwert kleiner als der Signalschwellwert ist. Eine „nicht-Berührung“ bedeutet also keine Berührung, wobei der Knoten in den folgenden Schritten des Algorithmus nicht mehr berücksichtigt wird, weil er bereits zugeordnet wurde.
-
In der folgenden Beschreibung wird angenommen, dass die Signale mit einem Schwellwert verglichen werden, bevor der Algorithmus angewendet wird. Der Schwellwert liegt bei 13. Deshalb wird jedes der Knotensignale von 3 mit dem Schwellwert von 13 verglichen, wobei die Knotensignale, die größer oder gleich dem Schwellwert sind, schraffiert dargestellt sind. Die anderen erfassten Knoten mit Signalen unter dem Schwellwert werden einer nicht-Berührung zugeordnet.
-
In Schritt 602 wird der Knoten mit dem größten Signal, das keiner Berührung zugeordnet wurde, gewählt. In 3 befindet sich der Knoten mit dem größten Signal an den Koordinaten (2,3). Der erste gewählte Knoten wird als primärer Knoten oder als Startknoten bezeichnet.
-
In Schritt 602 werden die Signale der direkten Nachbarn zu dem gewählten Knoten mit den Koordinaten (2,3), die noch nicht zugeordnet wurden, mit dem Signal des gewählten Knoten (des primären Knotens) verglichen. In dem Beispiel von 3 sind acht direkte Nachbarn vorhanden. Wenn das Signal des direkt benachbarten Knotens kleiner oder gleich dem Signal des gewählten Knotens (des primären Knotens) ist, dann wird der direkt benachbarte Knoten dem gewählten Knoten (dem primären Knoten) zugeordnet. Dies wird derart interpretiert, dass die einem anderen Knoten zugeordneten Knoten eine einfache Berührung bilden. In dem in 3 gezeigten Beispiel werden die Knoten an den Koordinaten (1,3), (1,4), (2,2), (2,4), (3,2) und (3,3) alle dem gewählten Knoten (primären Knoten) an den Koordinaten (2,3) zugeordnet. Deise werden auch als sekundäre Knoten bezeichnet. Alle anderen benachbarten Knoten wurden bereits in dem oben beschriebenen Vorverarbeitungsschritt einer nicht-Berührung zugeordnet.
-
In Schritt 606 wird der Zuordnungsstatus jeder der direkten Nachbarn jedes der sekundären Knoten identifiziert. Jeder der sekundären Knoten ist jetzt ein Startknoten. Wenn keine direkt benachbarten Knoten vorhanden sind, die nicht bereits einem der sekundären Knoten zugeordnet sind, dann geht die Verarbeitung zu Schritt 612 über. In dem Beispiel von 3 sind alle Nachbarknoten der sekundären Knoten entweder dem primären Knoten oder einer nicht-Berührung zugeordnet. In dem in 3 gezeigten Beispiel geht der Prozess also zu Schritt 612 über. Wenn jedoch direkt benachbarte Knoten vorhanden sind, die keinem der sekundären Knoten zugeordnet sind, werden die Signale dieser Knoten mit den Signalwerten des sekundären Knotens verglichen, dem sie direkt benachbart sind. Dieser Prozess wird für jeden der sekundären Knoten wiederholt, bis keine weiteren nicht zugeordneten Knoten in direkter Nachbarschaft zu jedem der sekundären Knoten mehr vorhanden sind. Wenn einer der direkt benachbarten Knoten ein Signal aufweist, das kleiner oder gleich dem Signal des sekundären Knotens ist, wird der Knoten derselben Berührung zugeordnet.
-
Diese Knoten werden als tertiäre Knoten bezeichnet. Der Prozess der Schritte 608 und 610 wird für quaternäre, quintäre usw. Startknoten wiederholt, bis keine nicht zugeordneten Knoten mehr vorhanden sind, die die Anforderung eines Signalwerts erfüllen, der kleiner oder gleich dem Signalwert des direkt benachbarten Startknotens ist. Mit anderen Worten werden die Schritte 608 und 610 wiederholt, bis keine weiteren neu zugeordneten Startknoten mehr vorhanden sind.
-
In Schritt 612 werde die Knoten nach nicht zugeordneten Knoten durchsucht, die einen Signalwert aufweisen, der größer oder gleich dem Schwellwert ist.
-
In Schritt 614 wird der höchste nicht zugeordnete Knoten gewählt und wird der Prozess der Schritte 604 bis 612 wiederholt.
-
In Schritt
616 werden die Daten in der Form von einer oder mehreren zusammenhängenden Gruppen von Knoten, die jeweils einer Berührung zugeordnet sind, ausgegeben. In dem Beispiel von
3 handelt es sich um eine einfache Berührung. Deshalb bilden die oben identifizierten Knoten eine einfache Berührung, die in der Form einer zusammenhängenden Gruppe von der Berührung T1 zugeordneten Knoten wie in der Tabelle 1 gezeigt ausgegeben werden.
Tabelle 1
Berührung | Knoten-Koordinaten |
primär | sekundär |
T1 | (3,4) | (1,3), (1,4), (2,2), (2,4), (3,2), (3,3) |
-
4 wird in Verbindung mit dem Algorithmus von 6 verwendet, um zu zeigen, wie die Knoten eines Berührungspaneels mehreren Berührungen zugeordnet werden. Es ist zu beachten, dass sich die Array-Größe von 6 × 8 von dem vorausgehenden Beispiel unterscheidet, wobei jedoch dieselben Betriebsprinzipien angewendet werden. Es sind sechs x-Elektroden 0 bis 5 und acht y-Elektroden 0 bis 7 vorgesehen, deren Ausrichtung oben links in 4 gezeigt ist. Der Vorverarbeitungsschritt wird auf jeden der Knoten von 4 angewendet. Das Signal aus jedem der Knoten wird mit einem Schwellwert von 13 verglichen. Die Knoten mit einem Signalwert größer oder gleich 13 werden schraffiert dargestellt. Alle anderen Knoten werden einer nicht-Berührung zugeordnet.
-
Die Signalwerte der nicht zugeordneten Knoten werden nach dem Knoten mit dem höchsten Signalwert durchsucht. Der nicht zugeordnete Knoten mit dem höchsten Signalwert ist der Knoten an den Koordinaten (2,4) mit einem Signalwert von 72. Das ist der primäre Knoten oder Startknoten für diese Berührung. Die Berührung mit dem Startknoten an den Koordinaten (2,4) wird als T1 bezeichnet.
-
Die Signalwerte der nicht zugeordneten Knoten, die direkte Nachbarn des primären Knotens T1 sind, werden mit dem Signalwert des primären Knotens verglichen. Die Knoten an den Koordinaten (1,4), (1,5), (2,3), (2,5), (3,3), (3,4) und (3,5) weisen alle Signalwerte auf, die kleiner oder gleich dem Signalwert des primären Knotens sind. Deshalb werden die Knoten an den Koordinaten (1,4), (1,5), (2,3), (2,5), (3,3), (3,4) und (3,5), die als sekundäre Knoten bezeichnet werden, den primären Knoten und damit der Berührung T1 zugeordnet.
-
Der Prozess wird dann für jeden der sekundären Knoten wiederholt. In 4 sind die sekundären Knoten an den Koordinaten (2,3) und (3,3) die einzigen Knoten, die direkt benachbarte Knoten aufweisen, die nicht zugeordnet sind. Was den Knoten an den Koordinaten (2,3) angeht, werden die Signalwerte aller direkt benachbarten; nicht zugeordneten Knoten mit dem Signalwert des sekundären Knotens an den Koordinaten (2,3) verglichen. Die nicht zugeordneten, direkt benachbarten Knoten zu dem Knoten an den Koordinaten (2,3) sind die Knoten an den Koordinaten (2,2) und (3,2). Die Signalwerte dieser beiden Knoten sind jedoch größer als der Signalwert des Knotens an den Koordinaten (2, 3). Deshalb wird keiner dieser Knoten dem sekundären Knoten (2,3) oder der Berührung T1 zugeordnet. Keiner der anderen sekundären Knoten weist direkt benachbarte Knoten auf, die nicht bereits zugeordnet wurden oder Signale aufweisen, die kleiner oder gleich dem Signalwert einer der sekundären Knoten sind. Deshalb werden keine nicht zugeordneten Knoten mit einem Signalwert identifiziert, der größer oder gleich dem Schwellwert ist.
-
Der Knoten an den Koordinaten (
3,
2) wird als Startknoten oder primärer Knoten für die Berührung T2 identifiziert. Der oben beschriebene Prozess wird mit den nicht zugeordneten Knoten für die Berührung T2 wiederholt. Unter Verwendung des oben beschriebenen Prozesses werden die Konten an den Koordinaten (
1,
2), (
2,
1), (
2,
2), (
2,
3), (
3,
1) und (
3,
3) alle dem primären Knoten an den Koordinaten (
3,
2) und damit der Berührung T2 zugeordnet. Diese Knoten werden auch als sekundäre Knoten bezeichnet. Es gibt keine weiteren nicht zugeordneten Berührungen auf dem Berührungspaneel von
4. Die folgende Tabelle 2 fasst die jeweils den Berührungen T1 und T2 zugeordneten Knoten zusammen. Die in der Tabelle 2 gezeigten Daten werden in der Form von zwei zusammenhängenden Gruppen von Knoten, die jeweils einer der Berührungen zugeordnet sind, ausgegeben.
Tabelle 2
Berührung | Knoten-Koordinaten |
primär | sekundär |
T1 | (2,4) | (1,4), (1,5), (2,3), (2,5), (3,2), (3,3), (3,4) |
T2 | (3,2) | (1,2), (2,1), (2,2), (2,3), (3,1), (3,3) |
-
5 zeigt die Signaldaten aus 5 als ein zweidimensionales Layout in Entsprechung zu 4. Der Vorverarbeitungsschritt wird auf jeden der Konten in 5 angewendet. Das Signal von jedem der Knoten wird mit einem Schwellwert von 13 verglichen. Die Knoten, die einen Signalwert von größer oder gleich 13 aufweisen, werden schraffiert dargestellt. Alle anderen Knoten werden einer nicht-Berührung zugeordnet.
-
Der oben beschriebene Prozess wird auf die Knoten von
5 angewendet. Die folgende Tabelle 3 fasst die Koordinaten die jeweils den drei Berührungen T1, T2 und T3 zugeordneten Koordinaten zusammen.
Tabelle 3
Berührung | Knoten-Koordinaten |
primär | sekundär |
T1 | (2,6) | (1,6), (1,7), (2,5), (2,7), (3,6) |
T2 | (0,1) | (0,0), (1,0), (1,1) |
T3 | (4,1) | (4,2), (5,1), (5,2) |
-
Die zusammenhängenden Gruppen von Knoten in den Tabellen 1, 2 oder 3 werden aus der Berührungsdaten-Erfässungseinheit 110 zu der Berührungserkennungseinheit 120 für eine weitere Verarbeitung ausgegeben.
-
Die Anzahl der durch den oben beschriebenen Prozess gesuchten Berührungen kann auf ein Maximum von zum Beispiel 1, 2, 3 oder 4 beschränkt werden. Wenn zum Beispiel keine der Verarbeitungen auf einer höheren Ebene für die Gestenerkennung oder für andere Aufgaben mehr als zum Beispiel 3 oder 4 gleichzeitige Berührungen erwartet, ist es nicht von Nutzen, wenn das Verfahren der Erfindung für mehr als vier Berührungen wiederholt wird, weil es sich dabei um eine sinnlose Verarbeitung handelt. Außerdem kann der Datensammlungsmodus flexibel variiert werden, indem die festgelegte Anzahl in Abhängigkeit von der Anwendung oder dem Teil einer Anwendung variiert wird, die bzw. der auf dem Gerät ausgeführt wird, für das der Berührungsbildschirm eine Eingabe bereitstellt. Einige Anwendungen benötigen nämlich nur einfache Eingaben, während andere Anwendungen mehrfache Eingaben erwarten, wobei die maximale Anzahl von gleichzeitigen Berührungen häufig festgelegt ist.
-
Dieser Teil der Verarbeitung lasst sich derart zusammenfassen, dass für jeden Rahmen Daten ausgegeben werden, die angegeben, ob und welche Berührungen erfasst wurden und welche Knoten betroffen sind.
-
Es muss dann für jede Berührung die geschätzte Position der Berührung berechnet werden. Dies wird im Folgenden mit Bezug auf 6, 7 und 8 unter Verwendung von Werten aus der beispielhaften Berührung von 3 beschrieben. Das Verfahren berechnet die Berührungsposition als x,y-Koordinaten aus einer Berührung, die sich aus einer beliebigen Anzahl von Knoten zusammensetzt.
-
7 ist ein Flussdiagramm, das ein Verfahren zum Berechnen einer Berührungsposition zeigt. Das Verfahren beginnt mit der Eingabe eines Berührungsdatensatzes. Der Fluss schreitet dann zu Schritten zum Berechnen der x- und y-Koordinaten der Berührung fort. Und schließlich werden diese Koordinaten für die Verwendung durch eine Verarbeitung einer höheren Ebene ausgegeben.
-
8 ist ein Flussdiagramm, das eine Berechnung der x-Koordinate zeigt. Die in dem Flussdiagramm von 8 gezeigten Schritte werden dann in Verbindung mit den Rahmendaten von 3 verwendet, wobei nur die Signale über dem Schwellwert berücksichtigt werden.
-
Die Signale in den einzelnen Spalten werden summiert. Bei dem Ausgabedatensatz von 3 werden die drei Spalten jeweils zu 35, 68 und 37 summiert, indem die Spalten 2, 3 und 4 von links nach rechts durchgegangen werden.
-
Auch die Summen der einzelnen Spalten werden summiert. Bei dem Ausgabedatensatz von 3 werden die summierten Spalten wie folgt summiert: 35+68+37=140.
-
Dann wird die Medianwertposition der Summe aller Signale festgestellt. Bei dem Ausgabedatensatz von 3 liegt die Medianwertposition bei 70.
-
Die Spalte, die die Medianwertposition enthält wird identifiziert, indem von ganz links in dem Ausgabedatensatz mit 1 beginnend nach oben gezählt wird. Bei dem Ausgabedatensatz von 3 wird wie folgt gezählt:
- Spalte 2 zählt von 1 bis 35
- Spalte 3 zählt von 36 bis 1028
- Spalte 4 zählt von 103 bis 140
-
Die Medianwertposition 70 liegt- also- in der Spalte 3. Es wird also festgestellt, dass die x-Koordinate in der vierten Spalte bzw. an Koordinaten zwischen 2,5 und 3,5 liegt.
-
Um zu berechnen, wo die x-Kordinaten zwischen 2,5 und 3,5 liegen, werden die Medianwertposition und der summierte Spaltenwert der Medianwertspalte verwendet. Die summierten Spaltensignale links von der Medianwertspalte werden summiert und von der Medianwertposition subtrahiert. Bei dem Ausgabedatensatz von 3 und der oben berechneten Medianwertposition ergibt sich also: 70-35=35. Das Ergebnis wird dann durch den summierten Signalwert der Medianwertspalte dividiert: 35/68=0,51. Das Ergebnis wird dann mit 2,5 summiert, d.h. mit der x-Koordinate am linken Rand der Medianwertspalte. Deshalb wird die x-Koordinate als 3,01 berechnet.
-
In dem vorstehend beschriebenen Verfahren zum Berechnen der x-Koordinate wird der Medianwert der gesamten summierten Signalwerte verwendet. Wenn jedoch der Medianwert zwischen zwei Spalten wie zum Beispiel bei 1,5 liegt, dann kann auch das Mittel verwendet werden oder kann einfach eine der beiden Spalten gewählt werden.
-
9 ist ein Flussdiagramm, das die Berechnung der y-Koordinate zeigt. Die in dem Flussdiagramm von 9 gezeigten Schritte werden nachfolgend in Verbindung mit dem Ausgabedatensatz von 3 verwendet.
-
Die Signale in jeder der Reihen werden summiert. Bei dem Ausgabedatensatz von 3 werden die drei Reihen jeweils zu 38, 65, 37 summiert, wobei von oben nach unten fortgeschritten wird.
-
Auch die Summen der einzelnen Reihen werden summiert. Bei dem Ausgabedatensatz von 3 werden die summierten Reihen wie folgt summiert: 38+65+37=140. Es ist zu beachten, dass das Ergebnis dieses Schrittes gleich demjenigen der Summierung der Spaltensummen ist.
-
Dann wird der Medianwert der Summe aller Signale festgestellt. Bei dem Ausgabedatensatz von 3 liegt die Medianwertposition bei 70. Es ist zu beachten, dass das Ergebnis dieses Schrittes gleich dem Ergebnis bei der Feststellung des Medianwerts der summierten Spaltensummen ist.
-
Die Reihe, die die Medianwertposition enthält, wird identifiziert, indem oben im Ausgabedatensatz beginnend von 1 nach oben gezählt wird. Unter Verwendung des Ausgabedatensatzes von 3 wird der Ausgabedatensatz wie folgt gezählt:
- Reihe 1 zählt von 1 bis 38
- Reihe 2 zählt von 39 bis 102
- Reihe 3 zählt von 103 bis 140
-
Die Medianwertposition 70 liegt also in der Reihe 2. Es wird also festgestellt, dass die y-Koordinate in der zweiten Reihe bzw. an Koordinaten zwischen 1,5 und 2,5 liegt.
-
Um zu berechnen, wo die y-Koordinaten zwischen 1,5 und 2,5 liegen, werden die Medianwertposition und der summierte Reihenwert der Medianwertreihe verwendet. Die summierten-Reihensignale oberhalb der Medianwertreihe werden summiert und von der Medianwertposition subtrahiert. Bei dem Ausgabedatensatz von 3 und der oben berechneten Medianwertposition ergibt sich also: 70-38=32. Das Ergebnis wird dann durch den summierten Signalwert der Medianwertreihe dividiert: 32/65=0,49. Das Ergebnis wird dann mit 1,5 summiert, d.h. mit der y-Koordinate am oberen Rand der Medianwertreihe. Deshalb wird die y-Koordinate als 1,99 berechnet.
-
Die Koordinaten einer Berührung an dem Berührungspaneel von
3 wurden anhand der Signalwerte von
3 wie folgt berechnet:
wobei der untergestellte Buchstabe „p“ die Position angibt, um diese Koordinaten von den später als Berührungsformparameter berechneten Koordinaten zu unterscheiden.
-
In dem oben beschriebenen Ansatz wird also die Berührungsposition aus einer Berührung berechnet, die eine beliebige Anzahl von Knoten mit jeweils einem Signalwert enthält. Dies wird bewerkstelligt, indem die Berührungsposition in jeder Dimension von dem Knoten erhalten wird, an dem die Summe der zu der Berührung zugeordneten Signalwerte auf beiden Seiten des Knotens gleich oder ungefähr gleich sind. Jeder der Erfassungsknoten wird durch eine Vielzahl von nominalen Erfassungsknoten ersetzt, die um den entsprechenden Erfassungskonten über eine Distanz in Entsprechung zu dem Knotenabstand verteilt sind. Die Berührungskoordinaten werden dann bestimmt, indem die Position des Medianwertknotens festgestellt wird. Damit das Mittel zwischen zwei Positionen nicht berechnet werden muss, wenn eine gerade Anzahl von nominalen Erfassungsknoten vorhanden ist, kann eine beliebige der beiden Positionen, z.B. die linke, genommen werden. Dabei handelt es sich um ein rechnerisch sehr einfaches Verfahren zum. Erhalten von x- oder y-Koordinaten mit einer Auflösung, die viel größer ist als diejenige der Spalten- und Reihenelektroden, wobei im Gegensatz zu einer Schwerpunktberechnung keine komplexe Algebra verwendet werden muss.
-
Es können aber auch andere Verfahren zum Berechnen der Berührungsposition aus einer Berührung, die eine beliebige Anzahl von Knoten mit jeweils einem Signalwert enthält, verwendet werden. Dazu gehören zum Beispiel die in
US 12/255,616 beschriebenen anderen Verfahren oder eine standardmäßige Schwerpunktberechnung.
-
In dieser Ausführungsform werden Formdaten für die Berührung als Vektor weitergegeben, wobei der Vektor durch x- und y-Koordinaten (xs, ys) ausgedrückt wird, um die Formdaten von den Positionsdaten (xp, yp) zu unterscheiden.
-
10 reproduziert den beispielhaften Rahmen von 3 und fügt zusätzlich Anmerkungen hinzu, die für die Berührungsvektor-Berechnung relevant sind. Der Berührungsvektor wird berechnet, indem die Seitenverhältnisse der Form der Berührung in den orthogonalen Richtungen X und Y verglichen werden und anschießend auch für einen Satz von orthogonalen Achsen, die jeweils um 45 Grad gedreht sind und durch XX und YY wiedergegeben werden. Diese zwei Seitenverhältnisse sehen die Formvektor-Koordinaten (xs, ys) vor.
-
11 ist ein schematisches Flussdiagramm, das die Schritte zeigt, die zum Berechnen der Formvektor-Koordinaten ausgeführt werden.
-
Zuerst wird der Berührungsdatensatz eingegeben.
-
Die Parameter in X und Y werden wie folgt berechnet. Für X werden die Signalwerte über dem Schwellwert in jeder Reihe summiert, wobei dann das Maximum dieser Summen weitergegeben wird. Die maximale X-Summe ist in diesem Beispiel gleich 65. Für Y werden die Signalwerte über dem Schwellwert in jeder Spalte summiert, wobei dann das Maximum dieser Summen weitergegeben wird. Die maximale Y-Summe ist in diesem Beispiel gleich 68. Das X-Y-Seitenverhältnis beträgt also 65:68.
-
Die Parameter in den gedrehten Achsen XX und YY werden wie folgt berechnet. Für XX werden die Signalwerte über dem Schwellwert in jeder Nordwest-Südost-Diagonale (NW-SO) summiert, wobei das Maximum dieser Summen weitergeleitet wird. Die maximale XX-Summe ist in diesem Beispiel gleich 42. Für YY werden die Signalwerte über dem Schwellwert in jeder Nordost-Südwest-Diagonale summiert, wobei dann das Maximum dieser Summen weitergeleitet wird. Die maximale YY-Summe ist in diesem Beispiel gleich 57. Das XX-YY-Seitenverhältnis beträgt also 42:57.
-
Die Koordinate xs wird dann berechnet, indem das X-Y-Seitenverhältnis zu einem Wert größer als eins gezwungen wird, wozu das größere der beiden Maxima durch das kleinere Maximum dividiert und eins subtrahiert wird, wobei optional ein negatives Vorzeichen eingesetzt wird, je nachdem, ob die maximale Summe in X größer oder kleiner als die maximale Summe in Y ist.
-
In dem vorliegenden Beispiel ist also xs = -(68/65-1) = -0,05, wobei das Minusvorzeichen eingesetzt wird, weil max. Summe X < max. Summe Y.
-
Die Koordinate y2 wird dann berechnet, indem das XX-YY-Seitenverhältnis zu einem Wert größer als eins gezwungen wird, wozu das größere der beiden Maxima durch das kleinere Maximum dividiert wird und eins subtrahiert wird, wobei optional ein negatives Vorzeichen eingesetzt wird, je nachdem, ob die maximale Summe in XX größer oder kleiner als die maximale Summe in YY ist.
-
In dem vorliegenden Beispiel ist also ys = -(57/42-1) = -0,36, wobei das Minusvorzeichen eingesetzt wird, weil max. Summe XX < max. Summe YY.
-
Die Formvektorkoordinaten (xs, ys) werden dann zusammen mit den Positionskoordinaten (xp, yp) ausgegeben.
-
Insbesondere ist zu beachten, dass die Berechnung der Positionskoordinaten und der Formkoordinaten hier separat beschrieben werden, wobei sie aber in der Praxis meistens gemeinsam berechnet werden, sodass die Flussdiagramme von 7 und 11 zusammengeführt werden können.
-
12A bis 12F zeigen sechs beispielhafte Datensätze, wobei 12D den Datensatz von 10 für einen einfacheren Vergleich der Nomenklatur und des Layouts der Zahlenwerte reproduziert.
-
12A zeigt eine kreissymmetrische Berührung, die entsprechend einen Vektor (0,0) mit einer Nullgröße und einer undefinierten Richtung aufweist.
-
12B zeigt eine symmetrische Ellipse, die in der Nord-Süd-Richtung (N-S) ausgerichtet ist. Es ist deutlich, dass das XX-YY-Seitenverhältnis gleich null ist, weil die maximalen Summen in den zwei diagonalen Richtungen gleich sind, wobei der Vektor erwartungsgemäß nur aus einer X-Y-Komponente in einer NS-Richtung besteht.
-
12C zeigt eine symmetrische Ellipse, die in der West-Ost-Richtung (W-O) ausgerichtet ist. Wiederum ist das XX-YY-Seitenverhältnis gleich null, weil die maximalen Summen in den zwei diagonalen Richtungen gleich sind, wobei der Vektor erwartungsgemäß nur aus einer X-Y-Komponente in einer WO-Richtung besteht.
-
12D zeigt eine asymmetrische Ellipse, die grob in der NO-SW-Richtung ausgerichtet ist, wobei dieses Beispiel identisch mit dem bereits beschriebenen von 11 ist.
-
12E zeigt eine asymmetrische Ellipse, die grob in der NW-SO-Richtung ausgerichtet ist, wobei die Vorzeichen der Vektorkomponenten umgekehrt zu denjenigen des Beispiels von 12 sind, weil die Ausrichtung verändert ist.
-
12F zeigt eine extrem längliche Form, die entsprechend eine große Vektorgröße von 4,16 aufweist, was auf eine hohe Elliptizität bzw. Länge hinweist.
-
Es sollte deutlich sein, dass der Winkel und die Größe für den Vektor herkömmlich berechnet werden können, indem das kartesische Koordinatenpaar (xs, ys) zu polaren Koordinaten (r, θ) gewandelt wird. Dabei ist der deduzierte Winkelwert tatsächlich doppelt so groß wie der wahre Winkel. Dies ist ein Artefakt, weil keine Gerichtetheit in der Hauptachse der „Ellipse“ vorhanden ist, sodass die messbare 180-Grad-Variation für eine einfachere Berechnung auf die 360 Grad abgebildet wird.
-
Die Berührungsdaten-Erfassungseinheit 110 kann in einer einfachen Logik-Einrichtung wie etwa einem Mikrocontroller integriert sein. Auch die Berührungsdaten-Erkennungseinheit 120 kann in einer einfachen Logik-Einrichtung wie etwa einem Mikrocontroller integriert sein, wobei es sich vorzugsweise, aber nicht notwendigerweise, um dieselbe Einrichtung wie für die Berührungsdaten-Erfassungseinheit 110 handelt, sodass also beide Einheiten in einem einzigen Mikrocontroller integriert sind. Der Mikrocontroller kann vorzugsweise einen Push-pull-CMOS-Stiftaufbau aufweisen, wobei ein Eingang als Spannungsvergleicher verwendet wird. Die meisten Mikrocontroller-E/A-Ports können dafür verwendet werden, weil sie eine relativ fixierte Eingangsschwellspannung sowie beinahe ideale MOSFET-Schalter aufweisen. Die erforderlichen Funktionen können durch eine einzelnen programmierbaren Universal-Mikroprozessor, einen Mikrocontroller oder einen anderen integrierten Chip vorgesehen werden, wobei es sich zum Beispiel um ein FPGA oder einen ASIC handeln kann.
-
Der Winkel und die Größe des Formvektors können für verschiedene Zwecke verwendet werden. Im Folgenden werden einige beispielhafte Anwendungen beschrieben.
-
Die Berührungspositionskorrektur ist eine wichtige Anwendung. Eine Berührungspositionskorrektur ist erforderlich, weil dann, wenn ein Benutzer eine Taste mit einem Finger berührt, häufig eine systematische Variation zwischen der durch den Benutzer gewünschten Position und der durch den Berührungssensor unter Verwendung der oben beschriebenen Verfahren (z.B. unter Verwendung des Berührungsschwerpunkts) registrierten Berührung vorhanden ist.
-
13 zeigt einen Finger 10, der durch einen Benutzer positioniert wird, um eine Taste 20 zu- drücken, deren Ecken in der Figur gezeigt sind. Der Benutzer denkt, dass er die Position 24 gedrückt hat, weil er seine Fingerspitze an der betreffenden Position sieht, während der Berührungssensor eine Berührungsposition an der Position 22 berichtet, die sich in der Mitte der in Kontakt mit dem Sensorpaneel gebrachten Fingerkuppe befindet. Die berichtete Position (x,y) ist von der gewünschten Position um (Δx, Δy) versetzt.
-
Der Versatz weist eine definierbare Größe r auf, wobei r
2=Δx
2+Δy
2 ist, was durch die Größe eines menschlichen Fingers bedingt wird. Weiterhin kann die Richtung des Versatzes aus dem Winkel des berichteten Formvektors abgeleitet werden. Die vordefinierte Größe r und der berichtete Winkel definieren also einen Vektor in einer polaren Koordinatenform, der zu einer kartesischen Form gewandelt werden kann, um Werte für Δx und Δy zu erhalten. Diese können dann angewendet werden, um die berichtete Berührungsposition wie folgt zu modifizieren:
-
In komplexeren Implementierungen kann die Größe auch dynamisch bestimmt werden. Zum Beispiel kann sie in Übereinstimmung mit dem Fingertyp (z.B. Daumen, Zeigefinger, Mittelfinger usw.) und/oder der Fingergröße skaliert werden, wenn diese durch den verwendeten Sensor erfasst werden können. Wenn beispielsweise erkannt wird, dass ein Benutzer mit den Fingern tippt, dann können die zum Drücken der Tasten der QWERTY-Tastatur verwendeten Finger angenommen werden.
-
Die Länge der Berührung, d.h. die Größe des berichteten Berührungsvektors, kann also verwendet werden, um die Verarbeitung zu modifizieren. Wenn zum Beispiel der Berührungsvektor klein ist, was auf eine im wesentlichen runde Berührung hinweist, dann kann eine Korrektur unterdrückt werden. Und wenn die Größe des Berührungsvektors über einem Schwellwert für die Berührungspositionskorrektur liegt, dann kann die Größe der Korrektur in Übereinstimmung mit der Größe des Berührungsvektors skaliert werden.
-
14A und 14B zeigen ein Handgerät 20 mit einem berührungsempfindlichen Anzeigepaneel 14, das im wesentlichen die gesamte Fläche der Vorrichtung einnimmt. Das Handgerät ist derart ausgebildet, dass das Gerät wenigstens bei der Ausführungsform von bestimmten Anwendungen in einer Hand des Benutzers gehalten wird, während die andere Hand für das Ausführen von Berührungseingaben verwendet wird.
-
14A und 14B zeigen einen Benutzer, der das Gerät mit jeweils mit seiner rechten bzw. mit seiner linken Hand hält, wobei der Daumen der entsprechenden Hand auf der berührungsempfindlichen Fläche liegt. Anhand des Formvektors kann das Gerät bestimmen, ob das Gerät durch die linke Hand oder die rechte Hand gehalten wird, weil eine Korrelation zwischen der Position des Daumens der haltenden Hand in einem Seitenbereich des Geräts und dem Winkel des Daumens gegeben ist. Eine Berührung am rechten Rand mit allgemein einer NW-SO-Ausrichtung weist drauf hin, dass das Gerät in der rechten Hand gehalten wird, während eine Berührung am linken Rand mit allgemein einer NO-SW-Ausrichtung darauf hinweist, dass das Gerät in der linken Hand gehalten wird. Weiterhin weist der Daumen einen typischen Elliptizitätsfaktor auf, sodass dieser Parameter verwendet werden kann, um zu identifizieren, ob der Benutzer das Gerät wie gezeigt hält. Die Identifikation dieser Haltekonfiguration kann dann durch die Anwendung verwendet werden, um die Anzeige für den Benutzer entsprechend zu konfigurieren. Zum Beispiel werden in der Figur die durch den Benutzer zu wählenden Optionen 16 auf der Seite des Displays angezeigt, die der durch den Benutzer gehaltenen Seite gegenüberliegt.
-
15 zeigt ein Handgerät 20 mit einem berührungsempfindlichen Anzeigepaneel 14, das in einem unteren Teil 15 eine QWERTY-Tastatur emuliert, und in einem oberen Teil ein Anzeigefenster 17 für eine Textverarbeitung vorsieht. In einem Handgerät wie etwa einer tragbaren Kommunikationseinrichtung ist die QWERTY-Tastatur für eine Bedienung mittels der beiden Daumen vorgesehen.
-
Dabei weist der linke Daumen 12 allgemein eine NO-SW-Ausrichtung auf, während der rechte Daumen 13 eine NW-SO-Ausrichtung aufweist. Diese Tatsache kann genutzt werden, um Two-Touch-Eingaben zu interpretieren, wenn der Benutzer die Umschalttaste (SHIFT) oder Optionstaste (ALT) verwendet. In dem gezeigten Beispiel drückt der Benutzer SHIFT+D. Unter Verwendung der Winkelinformationen kann die SHIFT-Betätigung von der D-Betätigung unterschieden werden, wobei die SHIFT-Betätigung auch erkannt werden kann, wenn der linke Daumen etwas zu der Position der virtuellen SHIFT-Taste versetzt ist.
-
16A und 16B zeigen einen einzelnen Finger 10, der auf einem Gerät 20 mit einem Berührungsbildschirm bewegt wird. Der Finger 10 wurde von der vorausgehenden Position 10' bewegt. In 16A wurde der Finger 10 zu der Vertikalen hin bewegt; und in 16B wurde der Finger 10 von der Vertikalen weg bewegt. Anhand der Winkelinformationen in den berichteten Berührungsdaten kann das Drehen des Fingers des Benutzers über die Zeit an sich direkt interpretiert werden, weil eine eins-zu-eins-Abbildung zwischen der Drehung des Fingers des Benutzers und der Drehung der berichteten Vektorrichtung gegeben ist. Eine derartige eins-zu-eins-Abbildung ist in einem herkömmlichen Berührungspaneel, das nur Berührungspositionen berichtet, nicht gegeben. Gesten wie etwa eine einzelne Fingergeste, die eine Drehung veranlassen oder angeben soll, sind deshalb bei den herkömmlichen Geräten nicht möglich, können jedoch unter Verwendung der vorliegenden Erfindung einfach implementiert werden. Gesten, die einen Parameter aufweisen, der direkt auf die Winkelkomponente des berichteten Formvektors abgebildet werden kann, sind etwa eine Drehung und ein Vergrößern/Verkleinern (Zoom). Bei einer Zoom-Geste kann eine Drehung im Uhrzeigersinn eine Vergrößerung proportional zu der Winkelbewegung über die Zeit angeben, während eine Drehung gegen den Uhrzeigersinn eine Verkleinerung proportional zu der Winkelbewegung über die Zeit angeben kann. Es kann jedoch auch eine umgekehrte Konvention verwendet werden.
-
Es kann also eine Geste zum „Ziehen und Drehen“ oder eine Geste zum „Ziehen und Zoomen“ unter Verwendung eines einzelnen Fingers implementiert werden, die ohne die Winkeldaten nur mit einer Two-Touch-Eingabe realisiert werden könnten.
-
17 zeigt einen Zeigefinger 14 und einen Mittelfinger 15 derselben Hand, die lateral über ein Gerät 20 mit einem berührungsempfindlichen Bildschirm bewegt werden. Dank der Ausrichtungsdaten in dem Formvektor können Gesten verwendet werden, bei denen die relative Ausrichtung der Finger und deren Bewegung von Bedeutung sind. In dem gezeigten Beispiel kann also eine Geste auf der Basis einer Betätigung mit zwei Fingern identifiziert werden, wobei aus der Tatsache, dass die zwei Finger parallele Vektoren aufweisen, darauf geschlossen werden kann, dass die zwei Finger zu einer Hand gehören, wobei die Geste erfordern, dass die Finger in einer Richtung quer zu ihrer Ausrichtung bewegt werden. Diese Geste kann zum Beispiel definiert sein, um ein Dokument nach oben oder unten zu blättern, wobei bei einer Betätigung mit der linken Hand ein Aufwärtsblättern durch eine Bewegung nach links angegeben wird, während ein Abwärtsblättern durch eine Bewegung nach rechts angegeben wird. Bei einer Betätigung mit der rechten Hand können die Richtungen umgekehrt definiert sein. Das Erkennen der für eine Geste verwendeten Betätigungshand gestattet, dass der Gestenerkennungs-Algorithmus erkennt, ob gleiche Gesten mit der linken Hand oder mit der rechten Hand eingegeben werden.
-
18A und 18B sind jeweils eine Draufsicht und eine Seitenansicht eines einzelnen Fingers 10, der ein Gerät 20 mit einem berührungsempfindlichen Paneel betätigt. 18A zeigt im wesentlichen dieselben Möglichkeiten, die bereits weiter oben mit Bezug auf 16A und 16B gezeigt wurden. So ist eine eins-zu-eins-Abbildung zwischen der Fingerausrichtung und einem Gestenparameter möglich, sodass ein Finger wie durch die Pfeile von 18A gezeigt durch einen Winkel bewegt werden kann, um einen Winkelparameter einer Software-Anwendung zu steuern. Dabei kann es sich zum Beispiel um das Steuern eines Fahrzeugs in einer Fahrzeugsimulation handeln oder um die Navigation durch eine Karte oder ein anderes zweidimensionales Muster. 18B zeigt weitere Möglichkeiten, die durch den Formvektor ermöglicht werden. So können die Änderungen in dem Winkel des Fingers zu der Ebene des Berührungspaneels wie durch die Pfeile von 18B gezeigt verfolgt werden. Obwohl der Berührungssensor eine derartige Winkelbewegung nicht direkt messen kann, kann er sie aus Änderungen in der Form der-Fingerkuppe auf dem Berührungssensor, die der Winkelbewegung des Fingers folgen, ableiten. Je kleiner nämlich der Winkel zwischen dem Finger und dem Paneel ist, desto exzentrischer wird die Fingerkuppe, was über den Elliptizitätsfaktor, d.h. die Größe des Formvektors, gemessen werden kann. Dank dieser neuen Kombination von Möglichkeiten zum Verfolgen der Winkelbewegung wie durch die Pfeile in 18A angegeben und der Winkelbewegung wie durch die Pfeile in 18B angegeben werden neue Gesten ermöglicht. Kurz gesagt kann eine Joystick-Funktion unter Verwendung nur eines Fingers vorgesehen werden.
-
Die zwei Winkelbewegungen können verwendet werden, um durch einen komplexen dreidimensionalen Raum zu navigieren, der unter Verwendung eines Volumen-Renderings angezeigt wird, um sich durch Bergbaustollen oder Körpergefäße wie etwa Arterien oder einen Darm in einem CT- oder MR-Volumen-Datensatz zu bewegen. Eine weitere Geste kann die Drehung von 18A auf einen Winkelparameter in der Software-Anwendung abbilden, wie zum Beispiel auf die Fahrtrichtung eines Fahrzeugs (d.h. auf das Lenken), während die Drehung von 18B auf eine Beschleunigung (d.h. die Fahrtgeschwindigkeit) abgebildet wird. Es kann also ein einzelner Finger verwendet werden, um zum Beispiel in einer Satellitennavigations-Anwendung oder eine Straßenansichts-Anwendung zu navigieren oder um ein Fahrzeug in einer Fahrzeugsimulation, wie sie etwa für Spiele üblich ist, zu lenken.
-
Es sollte deutlich sein, dass durch das Vorsehen von Vektordaten und insbesondere von Winkeldaten in Verbindung mit den Positionsdaten vielfältige neue Möglichkeiten für neue Gesten geschaffen werden. Durch die Vektordaten wird auch die Interpretation von bekannten Gesten vereinfacht und zuverlässiger gemacht. Dazu gehören etwa die folgenden:
- Tippen: Ein Tippen erfolgt, wenn der Benutzer die Berührungsfläche schnell berührt und wieder loslässt. Es findet keine wesentliche Bewegung statt, während sich der Finger des Benutzers auf der Berührungsfläche befindet. Das Tippen ist also durch eine kurze Berührungsdauer gekennzeichnet und kann zum Beispiel verwendet werden, um einen Hyperlink auf einer angezeigten Webseite zu aktivieren.
-
Doppel-Tippen: Ein Doppel-Tippen erfolgt, wenn der Benutzer die Berührungsfläche zweimal hintereinander schnell berührt und wieder loslässt. Es findet keine wesentliche Bewegung statt, während sich der Finger des Benutzers auf der Berührungsfläche befindet. Auch zwischen den aufeinander folgenden Berührungen findet keine wesentliche Bewegung statt. Das Doppel-Tippen ist also durch kurze Berührungsdauern und einen kurzen Abstand zwischen dem ersten Loslassen und der zweiten Berührung gekennzeichnet und kann zum Beispiel verwendet werden, um ein Wort in einem angezeigten Dokument zu markieren.
-
Drücken: Ein Drücken erfolgt, wenn der Benutzer die Berührungsfläche berührt und hält. Es findet keine wesentliche Bewegung statt, während sich der Finger des Benutzers auf der Berührungsfläche befindet. Das Drücken kann zum Beispiel verwendet werden, um eine Zahl aus einem angezeigten Zahlenfeld zu wählen. Derselbe Mechanismus kann auch verwendet werden, um die gewählte Zahl automatisch zu wiederholen, wenn der Benutzer die angezeigte Zahl gedrückt hält.
-
Streifen: Ein Streifen erfolgt, wenn der Benutzer die Berührungsfläche schnell berührt, eine kurze Bewegung ausführt und die Bewegung wieder loslässt. Das Streifen ist durch eine kurze Berührungsdauer gekennzeichnet und kann zum Beispiel verwendet werden, um das nächste Bild in einer Folge von Bildern anzuzeigen.
-
Ziehen: Ein Ziehen erfolgt, wenn der Benutzer die Berührungsfläche berührt, seinen Finger über die Fläche bewegt und die Berührung wieder loslässt. Das Ziehen ist durch eine große Bewegung über die Berührungsfläche gekennzeichnet. Je nach der Anwendung können mehrere Ziehereignisse erzeugt werden, während der Benutzer seine Finger bewegt. Dies kann zum Beispiel verwendet werden, um einen Satz in einem angezeigten Dokument zu markieren.
-
Stauchen: Ein Stauchen erfolgt, wenn der Benutzer zwei Finger auf der Berührungsfläche platziert und dann zueinander bewegt. Das Stauchen kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu verkleinern.
-
Dehnen: Ein Dehnen erfolgt, wenn der Benutzer zwei Finger auf der Berührungsfläche platziert und dann auseinander bewegt. Das Dehnen kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu vergrößern.
-
Drehen: Ein Drehen erfolgt, wenn der Benutzer zwei Finger auf der Berührungsfläche platziert und diese dann relativ zueinander dreht. Das Drehen kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu drehen.
-
Zusammenfassend lässt sich sagen, dass die Formdaten von Berührungen mehreren Knoten verwendet werden, um den ungefähren Winkel des Berührungsobjekts auf den XY-Achsen und dessen Elliptizität abzuleiten. Diese Daten können als kartesische oder polare Koordinatendaten zusammen mit den herkömmlichen Positionsdaten berichtet werden. Die Berechnung des Formvektors kann einen modifizierten Schwerpunkt-Algorithmus oder ein anderes wohlbekanntes Verfahren zum Berechnen der annähernden Berührungslänge des Berührungsobjekts verwenden. Sobald die Länge bekannt ist, gibt die Hauptachse der Berührung ein Maß zu dem Winkel relativ zu den XY-Achsen. Die Länge der Hauptachse dient auch Angabe zu der nützlichen Länge und kann durch den Host-Prozessor verwendet werden, um zu bewerten, wie zuverlässig der berichtete Winkel ist. Zum Beispiel ergibt eine vertikale Berührung keinen nützlichen Winkel, weil die Berührung beinahe rund ist und in diesem Fall die Hauptachse effektiv eine Nulllänge aufweist. Die Vektorgröße kann also als Aussagewahrscheinlichkeit für den berichteten Winkel verwendet werden.
-
Es sollte deutlich sein, dass der Berührungssensor, der die Basis für die vorstehend beschriebene Ausführungsform bildet, ein Beispiel für einen so genannten aktiven, mit Querelektroden versehenen kapazitiven Sensor ist. Die Erfindung kann aber auch auf so genannte passive, kapazitive Sensor-Arrays mit einfachen Endungen angewendet werden. Passive, kapazitive Sensoreinrichtungen messen die Kapazität einer Erfassungselektrode zu einem System-Bezugspotential (Erde). Die Prinzipien dieser Technik werden zum Beispiel in
US 5 730 165 A und
US 6 466 036 B1 mit Bezug auf diskrete Messungen (mit nur einem Knoten) beschrieben.
-
Die weiter unten gegebene Zusammenfassung schränkt den durch die folgenden Ansprüche definierten Erfindungsumfang nicht ein.