DE102009019910B4 - Gesture recognition - Google Patents
Gesture recognition Download PDFInfo
- Publication number
- DE102009019910B4 DE102009019910B4 DE102009019910.1A DE102009019910A DE102009019910B4 DE 102009019910 B4 DE102009019910 B4 DE 102009019910B4 DE 102009019910 A DE102009019910 A DE 102009019910A DE 102009019910 B4 DE102009019910 B4 DE 102009019910B4
- Authority
- DE
- Germany
- Prior art keywords
- touch
- state
- gesture
- module
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04164—Connections between sensors and controllers, e.g. routing lines between electrodes and connection pads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
- G06F3/0443—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using a single layer of sensing electrodes
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
Berührungssensorvorrichtung, die umfasst:einen Sensor der einen empfindlichen Bereich aufweist, der sich in wenigstens einer Dimension erstreckt, und angeordnet ist, um Erfassungssignale in Reaktion auf die Nähe eines Objekts zu dem empfindlichen Bereich auszugeben,eine Positionsverarbeitungseinheit, die betrieben werden kann, um Positionen von Interaktionen mit dem empfindlichen Bereich aus einer Analyse der Erfassungssignale zu berechnen und eine zeitliche Abfolge von Daten auszugeben, die die Interaktionspositionen auf dem Sensor angeben, die jeweiligen Berührungen entsprechen, undeine Gestenverarbeitungseinheit, die betrieben werden kann, um die zeitliche Abfolge von Daten zu analysieren und eine oder mehrere Gesten aus der Abfolge von Daten zu unterscheiden, wobei die Gestenverarbeitungseinheit mit einem Gestenerkennungscode codiert ist, der eine Vielzahl von Zustandsmodulen einer Zustandsmaschine umfasst, wobei die Vielzahl von Zustandsmodulen umfasst:ein erstes Einfachberührungs-Zustandsmodul der Zustandsmaschine, das betrieben werden kann, um wenigstens eine erste Einfachberührungsgeste zu erkennen und eine erste Ausgabe zu generieren, die auf der ersten Einfachberührungsgeste basiert,ein zweites Einfachberührungs-Zustandsmodul der Zustandsmaschine, das betrieben werden kann, um wenigstens eine zweite Einfachberührungsgeste zu erkennen undeine zweite Ausgabe zu generieren, die auf der zweiten Einfachberührungsgeste basiert, undein Mehrfachberührungs-Zustandsmodul der Zustandsmaschine, das betrieben werden kann,um die erste Ausgabe direkt von dem ersten Einfachberührungs-Zustandsmodul zu empfangen,um die zweite Ausgabe direkt von dem zweiten Einfachberührungs-Zustandsmodul zu empfangen, undum wenigstens eine Mehrfachberührungsgeste zu erkennen, die wenigstens auf der ersten und der zweiten Ausgabe basiert, wobei das erste Einfachberührungs-Zustandsmodul, das zweite Einfachberührungs-Zustandsmodul und das Mehrfachberührungs-Zustandsmodul unterscheidbar sind, undum die erkannte Mehrfachberührungsgeste auszugeben.A touch sensor device comprising: a sensor having a sensitive area extending in at least one dimension and arranged to output detection signals in response to the proximity of an object to the sensitive area, a position processing unit operable to determine positions of interactions with the sensitive area from an analysis of the detection signals and to output a time sequence of data indicating the interaction positions on the sensor corresponding to the respective touches, and a gesture processing unit which can be operated to analyze the time sequence of data and distinguish one or more gestures from the sequence of data, wherein the gesture processing unit is encoded with a gesture recognition code comprising a plurality of state modules of a state machine, the plurality of state modules comprising: a first single touch State module of the state machine operable to recognize at least one first single touch gesture and generate a first output based on the first single touch gesture, a second single touch state module of the state machine operable to perform at least one second single touch gesture recognize and generate a second output based on the second single-touch gesture, and a multi-touch state module of the state machine operable to receive the first output directly from the first single-touch state module to output the second output directly from the second single-touch To receive the state module, and to recognize at least one multi-touch gesture based at least on the first and second outputs, the first single-touch status module, the second single-touch status module and the multi-touch status module being distinguishable, u nd to output the recognized multiple touch gesture.
Description
Die vorliegende Erfindung betrifft die Gestenerkennung und insbesondere die Gestenerkennung durch die Verarbeitung einer zeitlichen Abfolge von Positionseingaben, die über einen zweidimensionalen (2D) Berührungssensor wie etwa einen kapazitiven oder resistiven Berührungssensor empfangen werden. Die Erfindung kann auch auf eindimensionale (1D) Berührungssensoren angewendet werden, wobei die Prinzipien auch auf dreidimensionale Sensoren angewendet werden können. Außerdem kann die Erfindung auf Näherungssensoren angewendet werden, bei denen kein physikalischer Kontakt, d. h. keine Berührung mit einer Sensorfläche erfolgt. Die Erfindung kann weiterhin auf Sensorflächen angewendet werden, die durch den Finger eines Bedieners oder durch einen Stift bedient werden können.The present invention relates to gesture recognition and, more particularly, to gesture recognition by processing a time sequence of position inputs received via a two-dimensional (2D) touch sensor such as a capacitive or resistive touch sensor. The invention can also be applied to one-dimensional (1D) touch sensors, and the principles can also be applied to three-dimensional sensors. In addition, the invention can be applied to proximity sensors in which no physical contact, i.e. H. there is no contact with a sensor surface. The invention can also be applied to sensor surfaces that can be operated by the finger of an operator or by a pen.
Kapazitive und resistive 1D- und 2D-Berührungssensoren sind seit vielen Jahren in weiter Verbreitung. Dazu gehören zum Beispiel die Berührungsbildschirme von PDAs, MP3-Playern, Mobiltelefonen oder anderen Multimedia-Geräten. Das anstelle einer Maus vorgesehene Touchpad in Notebook-Computern ist ein weiteres Beispiel für einen kapazitiven 2D-Berührungssensor. 2D-Sensoren sind auch in vielen Haushaltsgeräten wie etwa Öfen und Mixern vorgesehen.Capacitive and resistive 1D and 2D touch sensors have been in widespread use for many years. These include, for example, the touch screens of PDAs, MP3 players, cell phones or other multimedia devices. The touchpad, which is used in place of a mouse in notebook computers, is another example of a 2D capacitive touch sensor. 2D sensors are also found in many household appliances such as ovens and mixers.
Kapazitive 2D-Sensoren wurden häufig ausführlich beschrieben, wie zum Beispiel in den Patenten und Patentanmeldungen
Andere Beispiele für Berührungsbildschirme aus dem Stand der Technik werden im Folgenden aufgeführt:
-
US 3,593,115
-
U.S. 3,593,115
Eine Gestenerkennung wird seit vielen Jahren in derartigen Einrichtungen verwendet. Ein frühes Beispiel hierfür ist die Zeichenerkennung in PDAs wie etwa in den Originalgeräten von Palm Inc. Eine ziehende Fingerbewegung und das einfache und doppelte Tippen auf dem Touchpad eines Notebooks sind andere seit langem genutzte Beispiele. In letzter Zeit wurde die Gestenerkennung in Handheld-Geräte wie etwa das Apple iPhone (eingetragene Marke) integriert. Außerdem gibt es viele Patentveröffentlichungen aus dem Stand der Technik zu Berührungsbildschirmen, die eine Gestenerkennung verwenden, wobei insbesondere Synaptics, Inc. und in letzter Zeit Apple Computer, Inc. viele derartige Veröffentlichungen getätigt haben.Gesture recognition has been used in such devices for many years. An early example of this is character recognition in PDAs such as the original Palm Inc. devices. Dragging your finger and tapping once and twice on a notebook's touchpad are other long-standing examples. Recently, gesture recognition has been incorporated into handheld devices such as the Apple iPhone (registered trademark). In addition, there are many prior art patent publications on touch screens that use gesture recognition, with Synaptics, Inc. in particular and, more recently, Apple Computer, Inc. having many such publications.
Allgemein ist die Rohausgabe aus dem 2D-Berührungssensor eine zeitliche Abfolge von x,y-Koordinaten, die dann durch eine Software oder durch eine mittels einer Software einer höheren Ebene erzeugte Firmware verarbeitet werden, um die Beschaffenheit der eingegebenen Geste zu unterscheiden. Allgemein werden die Rohdaten in benachbarte Berührungssegmente aufgeteilt und dann verarbeitet, um zu bestimmen, welche Gesten deduziert werden können. Die Verarbeitung der Rohdaten zur Identifizierung der Gesten kann in demselben Chip erfolgen, der die Rohdaten erzeugt: Die Rohdaten können aber auch zu einem externen Chip exportiert werden, zum Beispiel mittels einer Übertragung über einen Kommunikationsbus zu der CPU der Einrichtung. Der erste Ansatz wird bevorzugt durch Synaptics verwendet, während der zweite Ansatz zum Beispiel durch in
Die Patentliteratur ist zumeist unspezifisch in Bezug darauf, wie die zeitliche Abfolge der Rohdaten zu Gesten gewandelt wird. Der direkte Ansatz sieht vor, dass ein entsprechender Code der höheren Ebene zum Beispiel in C oder in einer anderen geeigneten Programmiersprache geschrieben wird, wobei die Interpretation der zeitlichen Abfolge der Daten unter Verwendung von bedingten Anweisungen wie etwa „if‟, „then“ und „else“ analysiert wird.The patent literature is mostly unspecific with regard to how the temporal sequence of the raw data is converted into gestures. The direct approach provides that a corresponding higher-level code is written, for example, in C or in another suitable programming language, whereby the interpretation of the temporal sequence of the data is carried out using conditional statements such as "if", "then" and " else "is analyzed.
Es ist jedoch schwierig, einen Code zuverlässig und effizient hinzuzufügen, um eine neue Geste in einem vorhandenen Codeblock zu identifizieren und zwischen einer größeren Anzahl von Gesten wie etwa 3 bis 4 oder etwa 10 bis 20 zu unterscheiden. Das Testen des Codes bereitet besondere Schwierigkeiten. Der Grund hierfür liegt allgemein darin, dass sich die Eingabe an einem beliebigen mittleren Punkt in einer zeitlichen Abfolge von x,y,t-Daten auf eine Vielzahl von möglichen Gesten beziehen kann, sodass die Codierung zum Erkennen einer Geste allgemein abhängig von der Codierung zum Erkennen einer anderen Geste ist oder mit dieser verknüpft ist.However, it is difficult to reliably and efficiently add code to identify a new gesture in an existing block of code and to distinguish between a larger number of gestures such as 3-4 or 10-20. Testing the code presents particular difficulties. The reason for this is generally that the input at any intermediate point in a time sequence of x, y, t data can relate to a large number of possible gestures, so that the coding for recognizing a gesture generally depends on the coding for Recognition of another gesture or is linked to it.
Der vorliegenden Erfindung liegt das Problem zugrunde, eine Berührungssensorvorrichtung zum Erkennen der Gesten und zum Berechnen der Positionen eines Objektes von Interaktionen mit dem empfindlichen Bereich bereitzustellen.The problem underlying the present invention is to provide a touch sensor device for recognizing the gestures and for calculating the positions of an object from interactions with the sensitive area.
Das der Erfindung zugrunde liegende Problem wird durch die Gegenstände der unabhängigen Ansprüche gelöst.The problem on which the invention is based is solved by the subject matter of the independent claims.
Die vorliegende Erfindung löst dieses Problem, indem sie den Ansatz einer Zustandsmaschine für den Entwurf und das Schreiben des Gestenerkennungsalgorithmus verwendet. Insbesondere betrifft die Erfindung eine Berührungssensoreinrichtung, die umfasst: wenigstens einen eindimensionalen Sensor, der angeordnet ist, um ein Erfassungssignal in Reaktion auf die Nähe eines Objekts auszugeben; eine Positionsverarbeitungseinheit zum Berechnen der Position einer Interaktion mit dem empfindlichen Bereich aus einer Analyse der Erfassungssignale und zum Ausgeben einer zeitlichen Abfolge von Daten zu den Interaktionspositionen auf dem Sensor; und eine Gestenverarbeitungseinheit, die betreiben werden kann, um die zeitliche Abfolge der Daten zu analysieren und eine oder mehrere Gesteneingaben zu unterscheiden, wobei die Gestenerverarbeitungseinheit mit einem Gestenerkennungscode codiert ist, der eine Vielzahl von miteinander verknüpften Zustandsmodulen umfasst. Die Erfindung betrifft weiterhin ein entsprechendes Signalverarbeitungsverfahren.The present invention solves this problem by using a state machine approach to design and write the gesture recognition algorithm. More particularly, the invention relates to a touch sensor device comprising: at least one one-dimensional sensor arranged to output a detection signal in response to the proximity of an object; a position processing unit for calculating the position of an interaction with the sensitive area from an analysis of the detection signals and for outputting a time sequence of data on the interaction positions on the sensor; and a gesture processing unit operable to analyze the temporal sequence of the data and to distinguish one or more gesture inputs, the gesture processing unit being encoded with a gesture recognition code comprising a plurality of linked state modules. The invention also relates to a corresponding signal processing method.
Der Gestenerkennungscode kann in einer höheren Programmiersprache wie etwa C geschrieben und dann kompiliert und in einem Mikrocontroller-Chip oder einem CPU-Chip eingebettet werden. Vorzugsweise wird der Gestenerkennungscode in denselben Chip geladen, der auch die Berührungssignale von dem Bildschirm interpretiert und die zeitliche Abfolge von Daten erzeugt, wie etwa in einen Mikrocontroller oder in eine andere programmierbare Logikeinrichtung wie etwa ein FPGA (Field Programmable Gate Array). Dieser Ansatz wurde verwendet, um einen zuverlässigen und testbaren Code für Einfachberührungs-Dateneingabebildschirme und auch für Mehrfachberührungs-Dateneingabebildschirme zu erzeugen. Bei einem Einfachberührungs-Bildschirm wird nur eine gleichzeitige Berührung auf dem Bildschirm unterstützt, wobei zu einem bestimmten Zeitpunkt jeweils nur eine x,y-Koordinate ausgegeben wird. Ein Mehrfachberührungs-Dateneingabebildschirm kann mehrere gleichzeitige Berührungen erfassen, wie etwa zwei oder drei gleichzeitige Berührungen.The gesture recognition code can be written in a high level programming language such as C and then compiled and embedded in a microcontroller chip or a CPU chip. The gesture recognition code is preferably loaded into the same chip that also interprets the touch signals from the screen and generates the time sequence of data, such as in a microcontroller or in another programmable logic device such as an FPGA (Field Programmable Gate Array). This approach has been used to generate reliable and testable code for single-touch data entry screens as well as multi-touch data entry screens. In the case of a single-touch screen, only simultaneous touching on the screen is supported, with only one x, y coordinate being output at a time. A multi-touch data entry screen can capture multiple simultaneous touches, such as two or three simultaneous touches.
Die Zustandsmaschine umfasst ein Ruhezustandsmodul, das dem Startzustand entspricht und auch der Zustand ist, zu dem zurückgekehrt wird, nachdem ein Gesteninterpretations-Zustandsmodul verlassen wurde.The state machine comprises an idle state module, which corresponds to the start state and is also the state to be returned to after a gesture interpretation state module has been exited.
In Reaktion auf eine Berührung gibt der Ruhezustand die Steuerung an einen B erührungszu stand.In response to a touch, the idle state gives control to a touch state.
In einer Mehrfachberührungsumgebung wird die Zustandsmaschine in der weiter unten beschriebenen zweiten Ausführungsform derart implementiert, dass mehrere Berührungszustände vorliegen, nämlich einer für eine einfache Berührung, einer für eine zweifache Berührung, einer für eine dreifache Berührung usw., wobei die Steuerung auf der Basis der Anzahl von gleichzeitigen Berührungen, die durch die zeitliche Abfolge von Daten zu diesem Zeitpunkt definiert werden, an den entsprechenden Berührungszustand gegeben wird.In a multi-touch environment, the state machine in the second embodiment described below is implemented such that there are multiple touch states, namely one for a single touch, one for a double touch, one for a triple touch, etc., with control based on the number of simultaneous touches, which are defined by the time sequence of data at this point in time, is given to the corresponding touch state.
Der oben beschriebene Ansatz für die Handhabung von Mehrfachberührungsgesten durch Zweifachberührungs- und Dreifachberührungszustände, die mit Einfachberührungszuständen verknüpft sind, funktioniert gut, wobei jedoch die Umkonfiguration der Zustandsmaschine für das Hinzufügen einer neuen Mehrfachberührungsgeste angesichts des zunehmend komplexen Netzes von Zuständen und Übergängen schwierig ist. Dieses Problem wird durch eine weiter unten beschriebene vierte Ausführungsform der Erfindung gelöst, in der eine Vielzahl von Zustandsmaschinen vorgesehen sind, die jeweils auf eine Einfachberührungs-Gestenerkennung beschränkt sind. Wenn der Gestenerkennungscode konfiguriert ist, um Gesten mit bis zu drei gleichzeitigen Berührungen zu erkennen, dann werden drei derartige Einfachberührungs-Zustandsmaschinen vorgesehen. Weitere Zustandsmaschinen werden für eine Mehrfachberührungs-Gestenerkennung vorgesehen, die jeweils für eine bestimmte Anzahl von gleichzeitigen Berührungen zuständig sind, sodass eine Zweifachberührungs-Zustandsmaschine und optional eine Dreifachberührungs-Zustandsmaschine und weiterhin optionale zusätzliche Zustandsmaschinen für noch größere Anzahlen von gleichzeitigen Berührungen vorgesehen werden. Ein Hauptvorteil dieses Ansatzes besteht darin, dass dieselbe Codebasis für die Handhabung von Einfachberührungen verwendet wird, wobei Zweifachberührungen, Dreifachberührungen oder größere Anzahlen von gleichzeitigen Berührungen unter Verwendung eines separaten, zusätzlich vorgesehenen Codes verarbeitet werden, der in separaten Zustandsmaschinen eingebettet ist.The approach described above for handling multiple-touch gestures through double-touch and triple-touch states associated with single-touch states works well, but reconfiguring the state machine to add a new multiple-touch gesture is difficult given the increasingly complex web of states and transitions. This problem is solved by a fourth embodiment of the invention, described further below, in which a plurality of state machines are provided, each of which is limited to single-touch gesture recognition. If the gesture recognition code is configured to recognize gestures with up to three simultaneous touches, then three such single touch state machines are provided. Further state machines are provided for multi-touch gesture recognition, each of which is responsible for a certain number of simultaneous touches, so that a double-touch state machine and optionally a triple-touch state machine and further optional additional state machines are provided for even larger numbers of simultaneous touches. A major advantage of this approach is that it uses the same code base for handling single touches, processing double touches, triple touches, or larger numbers of simultaneous touches using separate, dedicated code embedded in separate state machines.
Eine Berührung wird gewöhnlich als eine gültige Berührung ausgegeben, wenn bestimmte Kriterien erfüllt werden, wobei ein gewöhnliches Kriterium darin besteht, dass eine Abfolge von Berührungen an einer stabilen x,y-Position oder in einem x,y-Bereich über mehrere Zeitabtastungsinkremente vorhanden sind. Wenn eine Berührung mit einer Dauer von mehr als einer Schwelldauer in dem Berührungszustand erfasst wird, dann geht der Steuerfluss zu einem Drückzustandsmodul über, wobei der Drückzustand zur Handhabung von längeren Berührungen dient. Der Drückzustand ist vorzugsweise ein Superzustand, der mehrere Subzustände umfasst, um zwischen verschiedenen Dauern des Drückens zu unterscheiden und/oder zu gestatten, dass ein sehr langes Drücken als ein wiederholtes Drücken interpretiert wird, was zum Beispiel nützlich für Anwendungen mit einer Eingabe über alphanumerische Tasten sein kann.A touch is usually output as a valid touch when certain criteria are met, with a common criterion being that there is a sequence of touches at a stable x, y position or in an x, y range over multiple time sample increments. If a touch with a duration of more than a threshold duration is detected in the touch state, then the control flow goes to a push state module, the push state being used to handle longer touches. The push state is preferably a superstate that includes multiple substates to distinguish between different durations of presses and / or allow a very long press to be interpreted as a repeated press, which can be useful, for example, for applications with input via alphanumeric keys.
Die Zustandsmaschine weist vorzugsweise auch eine Vielzahl von Zustandsmodulen für das Interpretieren von Gesten einer höheren Ebene auf, wie etwa einen oder mehrere Zustände für das Interpretieren von doppelt tippenden, kurz ziehenden, ziehenden und anderen Gesten. Die Gesten umfassen gewöhnlich diejenigen, die speziell in diesem Dokument beschrieben werden, sowie andere aus dem Stand der Technik bekannte Gesten wie insbesondere diejenigen, die in den oben zitierten Dokumenten aus dem Stand der Technik angegeben werden.The state machine preferably also has a plurality of state modules for interpreting high-level gestures, such as one or more states for interpreting double-tapping, short-dragging, dragging, and other gestures. The gestures usually include those specifically described in this document as well as other gestures known from the prior art, such as in particular those indicated in the prior art documents cited above.
Die Erfindung gibt in einem Aspekt eine Berührungssensoreinrichtung an, die umfasst: einen Sensor mit einem empfindlichen Bereich, der sich in wenigstens einer Dimension erstreckt und angeordnet ist, um Erfassungssignale in Reaktion auf die Nähe eines Objekts zu einem empfindlichen Bereich auszugeben; eine Positionsverarbeitungseinheit, die betrieben werden kann, um Positionen von Interaktionen mit dem empfindlichen Bereich aus einer Analyse der Erfassungssignale zu berechnen und um eine zeitliche Abfolge von Daten auszugeben, die die Interaktionspositionen des Sensors und damit Berührungen angeben; und eine Gestenverarbeitungseinheit, die betrieben werden kann, um die zeitliche Abfolge von Daten zu analysieren, um eine oder mehrere Gesteneingaben aus denselben zu unterscheiden, wobei die Gestenverarbeitungseinheit mit einem Gestenerkennungscode codiert wird, der eine Vielzahl von verknüpften Zustandsmodulen umfasst.The invention provides, in one aspect, a touch sensor device comprising: a sensor having a sensitive area extending in at least one dimension and arranged to output detection signals in response to the proximity of an object to a sensitive area; a position processing unit which can be operated to calculate positions of interactions with the sensitive area from an analysis of the detection signals and to output a time sequence of data indicating the interaction positions of the sensor and contacts therewith; and a gesture processing unit operable to analyze the temporal sequence of data to distinguish one or more gesture inputs therefrom, the gesture processing unit being encoded with a gesture recognition code comprising a plurality of linked state modules.
Weitere Aspekte der Erfindung betreffen die Gestenverarbeitungseinheit alleine und die Gestenverarbeitungseinheit in Kombination mit der Positionsverarbeitungseinheit, aber ohne den Sensor.Further aspects of the invention relate to the gesture processing unit alone and the gesture processing unit in combination with the position processing unit, but without the sensor.
Die Vielzahl von Zustandsmodulen umfasst vorzugsweise ein Ruhezustandsmodul und eine Vielzahl von Gesteninterpretations-Zustandsmodulen, wobei in das Ruhezustandsmodul zu Beginn des Betriebs eingetreten wird und von wenigstens einigen der Gesteninterpretations-Zustandsmodule zu demselben zurückgekehrt werden kann. Die Vielzahl von Gesteninterpretations-Zustandsmodulen kann ein Berührungs-Zustandsmodul für einfache Berührungen umfassen, wobei der Ruhezustand nach einer Berührung die Steuerung an den Berührungszustand gibt.The plurality of state modules preferably comprises an idle state module and a plurality of gesture interpretation state modules, the idle state module being entered at the start of operation and being able to be returned to by at least some of the gesture interpretation state modules. The plurality of gesture interpretation state modules may include a touch state module for simple touches, wherein the post-touch idle state gives control to the touch state.
In einigen Ausführungsformen umfasst die Vielzahl von Gesteninterpretations-Statusmodulen wenigstens ein Mehrfachberührungs-Zustandsmodul, das betrieben werden kann, um mehrere gleichzeitige Berührungen zu verarbeiten, wobei die Gestenverarbeitungseinheit betrieben werden kann, um die Steuerung auf der Basis der Anzahl von gleichzeitigen Berührungen, die durch die zeitliche Abfolge von Daten zu diesem Zeitpunkt definiert wird, an das entsprechende Berührungs-Zustandsmodul abzugeben. Es kann ein Mehrfachberührungs-Zustandsmodul für jeweils zwei gleichzeitige Berührungen und drei gleichzeitige Berührungen vorgesehen sein, wobei optional auch größere Anzahlen von Berührungen berücksichtigt werden können.In some embodiments, the plurality of gesture interpretation status modules includes at least one multi-touch status module operable to process multiple simultaneous touches, the gesture processing unit operable to provide control based on the number of simultaneous touches made by the temporal sequence of data is defined at this point in time to be delivered to the corresponding touch status module. A multi-touch status module can be provided for two simultaneous touches and three simultaneous touches, with larger numbers of touches optionally also being able to be taken into account.
Die Vielzahl von Gesteninterpretations-Zustandsmodulen kann vorzugsweise ein Drück-Zustandsmodul umfassen, an das die Steuerung von einem Berührungs-Zustandsmodul gegeben werden kann, wenn eine Berührung mit einer Dauer, die länger als eine Schwelldauer ist, in dem Berührungszustandsmodul erfasst wird. Der Drückzustand ist vorzugsweise ein Superzustand, der mehrere Unterzustände umfasst, um zwischen verschiedenen Drückdauern zu unterscheiden.The plurality of gesture interpretation state modules may preferably include a push state module to which control can be given by a touch state module when a touch with a duration longer than a threshold duration is detected in the touch state module. The pressing state is preferably a superstate which comprises several sub-states in order to distinguish between different pressing durations.
In einigen Ausführungsformen umfasst die Vielzahl von Gesteninterpretations-Zustandsmodulen eine Vielzahl von Zustandsmodulen, die betrieben werden können, um auf Bewegungen bezogene Gesten zu erkennen die aus einer oder mehreren bewegten Berührungen abgeleitet werden. In anderen Ausführungsformen werden nur statische Gesten wie etwa ein Drücken, Tippen oder doppeltes Tippen berücksichtigt.In some embodiments, the plurality of gesture interpretation state modules includes a plurality of state modules operable to recognize movement-related gestures derived from one or more moving touches. In other embodiments, only static gestures such as a press, tap or double tap are taken into account.
Eine bevorzugte Implementierung für das Interpretieren von Mehrfachberührungsgesten gemäß der Erfindung sieht einen Gestenerkennungscode vor, der konfiguriert ist, um Gesten mit bis zu N gleichzeitigen Berührungen zu erkennen, wobei N wenigstens gleich 2 ist, und umfasst N Einfachberührungs-Zustandsmaschinen, die betrieben werden können, um nur Einfachberührungsgesten zu erkennen, und N-1 Mehrfachberührungs-Zustandsmaschinen, die jeweils betrieben werden können, um nur n-fache Berührungsgesten zu erkennen, wobei n gleich 2 bis N ist.A preferred implementation for interpreting multiple touch gestures according to the invention provides a gesture recognition code configured to recognize gestures with up to N simultaneous touches, where N is at least equal to 2, and comprises N single-touch state machines that can be operated, to recognize only single touch gestures, and N-1 multi-touch state machines, each of which can be operated to recognize only n-fold touch gestures, where n equals 2 to N.
Die Positionsverarbeitungseinheit und die Gestenverarbeitungseinheit können in einer einzelnen integrierten Schaltung wie zum Beispiel einem Mikrocontroller untergebracht und in derselben ausgeführt werden. Alternativ hierzu kann die Positionsverarbeitungseinheit in einer ersten integrierten Schaltung wie etwa einem Mikrocontroller untergebracht und ausgeführt werden, während die Gestenverarbeitungseinheit in einer oder mehreren separaten integrierten Schaltungen wie etwa einem PC oder einem anderen komplexen System mit einer eigenen Verarbeitungseinheit, einer Grafikverarbeitungseinheit und/oder einem digitalen Signalprozessor mit assoziiertem Speicher und Busverbindungen untergebracht und ausgeführt werden kann.The position processing unit and the gesture processing unit can be accommodated and implemented in a single integrated circuit such as a microcontroller. Alternatively, the position processing unit can be accommodated and executed in a first integrated circuit such as a microcontroller, while the gesture processing unit can be implemented in one or more separate integrated circuits such as a PC or another complex system with its own processing unit, a graphics processing unit and / or a digital one Signal processor with associated memory and bus connections can be accommodated and executed.
Die Erfindung gibt in einem anderen Aspekt ein Verfahren zum Erkennen von Gesten aus einer zeitlichen Abfolge von Berührungsdaten mit Koordinaten von Interaktionspositionen auf einem Berührungssensor an, wobei das Verfahren umfasst: Empfangen von Berührungskoordinaten, die zeitlich etikettiert oder geordnet sind; Analysieren der Berührungskoordinaten in einer Zustandsmaschine, die eine Vielzahl von verknüpften Zustandsmodulen umfasst, um eine aus einer Vielzahl von definierten Gesten aus derselben zu erkennen; und Ausgeben der erkannten Gesten.In another aspect, the invention provides a method for recognizing gestures from a temporal sequence of touch data with coordinates of interaction positions on a touch sensor, the method comprising: receiving touch coordinates that are temporally labeled or ordered; Analyzing the touch coordinates in a state machine comprising a plurality of associated state modules to recognize one of a plurality of defined gestures therefrom; and outputting the recognized gestures.
Die Erfindung gibt in einem weiteren Aspekt eine einzelne integrierte Schaltung an, die einen Speicher aufweist, auf den die oben genannte Gesten-Zustandsmaschine geladen ist, und die betrieben werden kann, um das oben definierte Verfahren für die Gestenerkennung auszuführen.In a further aspect, the invention provides a single integrated circuit which has a memory onto which the above-mentioned gesture state machine is loaded and which can be operated to carry out the above-defined method for gesture recognition.
Die Erfindung gibt in einem weiteren Aspekt einen Computer an, der einen Speicher aufweist, auf den die oben genannte Gesten-Zustandsmaschine geladen ist, und der betrieben werden kann, um das oben definierte Verfahren für die Gestenerkennung auszuführen.In a further aspect, the invention provides a computer which has a memory onto which the above-mentioned gesture state machine is loaded and which can be operated in order to carry out the above-defined method for gesture recognition.
Es ist zu beachten, dass der Ansatz der Gesten-Zustandsmaschine für die Gestenerkennung auf eine beliebige Hardwareplattform angewendet werden kann. Kapazitive Berührungssensoren und insbesondere eindimensionale und zweidimensionale kapazitive Berührungssensoren sind ein wichtiger Sensortyp, der eine Hardware-Plattform für eine Gestenerkennungs-Zustandsmaschine gemäß der Erfindung vorsehen kann. Insbesondere kann die Erfindung auch auf so genannte passive oder aktive kapazitive Erfassungstechniken angewendet werden.It should be noted that the gesture state machine approach to gesture recognition can be applied to any hardware platform. Capacitive touch sensors, and particularly one-dimensional and two-dimensional capacitive touch sensors, are an important type of sensor that can provide a hardware platform for a gesture recognition state machine in accordance with the invention. In particular, the invention can also be applied to what are known as passive or active capacitive detection techniques.
Passive kapazitive Erfassungseinrichtungen messen die Kapazität einer Erfassungselektrode zu einem Systembezugspotential (Erde). Die Prinzipien dieser Technik werden zum Beispiel in
Aktive 2DCT-Sensoren messen die kapazitive Kopplung zwischen zwei Elektroden (und nicht zwischen einer einzelnen Erfassungselektrode und einer Systemerde). Die den aktiven kapazitiven Erfassungstechniken zugrunde liegenden Prinzipien werden in
Es ist zu beachten, dass es auch verschiedene andere Erfassungstechnologien gibt. Dazu gehören Techniken, die auf resistiven Bildschirmen basieren und gewöhnlich mit einem Stift bedient werden, oder für große Bereiche entwickelte Technologien wie etwa solche, die auf Ultraschall oder anderen akustischen Techniken beruhen, oder Techniken, die auf einer totalen internen Reflexion oder auf anderen optischen Wirkungen beruhen. Alle diese Techniken können von der vorliegenden Erfindung profitieren.It should be noted that there are various other acquisition technologies as well. These include techniques based on resistive screens, usually operated with a pen, or technologies developed for large areas such as those based on ultrasound or other acoustic techniques, or techniques based on total internal reflection or others optical effects are based. All of these techniques can benefit from the present invention.
Es ist zu beachten, dass in der vorliegenden Patentanmeldung der Begriff „Zustandsmaschine“ verwendet wird. Eine Zustandsmaschine kann auch durch das Akronym FSM (Finite State Machine) angegeben werden.It should be noted that the term “state machine” is used in the present patent application. A state machine can also be indicated by the acronym FSM (Finite State Machine).
Die Erfindung wird im Folgenden anhand einiger Ausführungsformen mit Bezug auf die beigefügten Zeichnungen verdeutlicht.
-
1 zeigt eine Gestenerkennungs-Zustandsmaschine gemäß einer ersten Ausführungsform. -
2 zeigt eine Gestenerkennungs-Zustandsmaschine gemäß einer zweiten Ausführungsform. -
3 zeigt eine Gestenerkennungs-Zustandsmaschine gemäß einer dritten Ausführungsform. -
4 zeigt eine Gestenerkennungs-Zustandsmaschine gemäß einer vierten Ausführungsform zur Handhabung von N Berührungen. -
5 zeigt die internen Zustände einer Zustandsmaschine für N Berührungen gemäß der vierten Ausführungsform. -
6 ist ein Beispiel für die vierte Ausführungsform und zeigt die Erzeugung von Zweifachberührungs-Ereignissen unter Verwendung von Einfachberührungs-Zustandsmaschinen. -
7 ist ein Beispiel für eine Dreifachberührungs-Gestenhandhabung gemäß der vierten Ausführungsform. -
8 ist eine schematische Draufsicht, die Teile eines Elektrodenmusters für einen zweidimensionalen kapazitiven Berührungsbildschirm (2DCT) zeigt. -
9 ist eine Draufsicht auf einen 2DCT von8 und zeigt das Elektrodenmuster und eine erste Schicht von Verbindungen am Rand des Elektrodenmusterbereichs für die Verbindung mit den y-Elektroden. -
10 ist eine Draufsicht auf die 2DCT von9 und zeigt das Elektrodenmuster und eine zweite Schicht von Verbindungen am Rand des Elektrodenmusterbereichs für die Verbindung mit den x-Elektroden und auch für die Verbindung der externen Zuführleitungen mit den y-Elektrodenverbindungen von9 . -
11 ist eine schematische Ansicht auf der Systemebene, die eine Ansteuerungs- und Datenerfassungsschaltung für den 2DCT von8 -10 zeigt. -
12 zeigt schematisch einen Anzeigemonitor und eine Eingabeeinrichtung gemäß der vorliegenden Erfindung. -
13 zeigt schematisch ein Mobiltelefon gemäß der vorliegenden Erfindung.
-
1 Figure 3 shows a gesture recognition state machine according to a first embodiment. -
2 Figure 3 shows a gesture recognition state machine according to a second embodiment. -
3 Figure 3 shows a gesture recognition state machine according to a third embodiment. -
4th shows a gesture recognition state machine according to a fourth embodiment for handling N touches. -
5 Fig. 13 shows the internal states of an N touch state machine according to the fourth embodiment. -
6th Figure 13 is an example of the fourth embodiment and shows the generation of double-touch events using single-touch state machines. -
7th Fig. 13 is an example of triple-touch gesture handling according to the fourth embodiment. -
8th Fig. 13 is a schematic plan view showing parts of an electrode pattern for a two-dimensional capacitive touch screen (2DCT). -
9 FIG. 13 is a top plan view of a 2DCT of FIG8th and shows the electrode pattern and a first layer of connections at the edge of the electrode pattern area for connection to the y-electrodes. -
10 FIG. 3 is a top plan view of the 2DCT of FIG9 and shows the electrode pattern and a second layer of connections at the edge of the electrode pattern area for connection to the x-electrodes and also for connection of the external feed lines to the y-electrode connections of FIG9 . -
11 FIG. 13 is a system level schematic view illustrating drive and data acquisition circuitry for the 2DCT of FIG8th -10 shows. -
12th Fig. 3 schematically shows a display monitor and an input device according to the present invention. -
13th Figure 3 shows schematically a mobile phone according to the present invention.
Bevor im Folgenden verschiedene Ausführungsformen der Erfindung beschrieben werden, sollen hier zuerst die in der ausführlichen Beschreibung der Ausführungsformen genannten Gesten erläutert werden.Before various embodiments of the invention are described below, the gestures mentioned in the detailed description of the embodiments should first be explained here.
Tippen: Bei einem Tippen berührt und verlässt ein Benutzer die Berührungsfläche schnell wieder. Es tritt keine wesentliche Bewegung auf, während sich der Finger des Benutzers auf der Berührungsfläche befindet. Das Tippen ist durch eine kurze Berührungsdauer gekennzeichnet. Ein Tippen kann zum Beispiel verwendet werden, um einen Hyperlink auf einer angezeigten Internetseite zu aktivieren.Tap: When tapping, a user quickly touches and leaves the touch area. No substantial movement occurs while the user's finger is on the touch surface. Typing is characterized by a short touch time. A tap can be used, for example, to activate a hyperlink on a displayed web page.
Doppeltes Tippen: Bei einem doppelten Tippen berührt und verlässt der Benutzer die Berührungsfläche zweimal schnell hintereinander. Es tritt keine wesentliche Bewegung auf, während sich der Finger des Benutzers auf der Berührungsfläche befindet. Das doppelte Tippen ist durch kurze Berührungsdauern und eine kurze Pause zwischen der ersten und der zweiten Berührung gekennzeichnet. Ein doppeltes Tippen kann zum Beispiel verwendet werden, um ein Wort in einem angezeigten Dokument zu markieren.Double tap: With a double tap, the user touches and leaves the touch area twice in quick succession. No substantial movement occurs while the user's finger is on the touch surface. Double tapping is characterized by short touch times and a short pause between the first and second touch. For example, double-tapping can be used to highlight a word in a displayed document.
Drücken: Bei einem Drücken berührt und hält der Benutzer die Berührungsfläche. Es tritt keine wesentliche Bewegung auf, 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 Tastenfeld zu wählen. Derselbe Mechanismus kann auch verwendet werden, um die gewählte Nummer automatisch zu wiederholen, wenn der Benutzer die angezeigte Nummer gedrückt hält.Press: When pressed, the user touches and holds the touch surface. No substantial movement occurs while the user's finger is on the touch surface. For example, the press can be used to select a number from a displayed keypad. The same mechanism can also be used to automatically repeat the dialed number if the user presses and holds the displayed number.
Kurzes Ziehen (Flick): Bei einem kurzen Ziehen berührt der Benutzer die Berührungsfläche schnell, führt eine kurze Bewegung durch und lässt die Berührung wieder los. Das kurze Ziehen ist durch eine kurze Berührungsdauer gekennzeichnet. Ein kurzes Ziehen kann zum Beispiel verwendet werden, um das nächste in einer Folge von Bildern anzuzeigen.Short pull (flick): With a short pull, the user touches the touch surface quickly, makes a short movement and then lets go of the touch. The short pull is characterized by a short duration of contact. For example, a quick drag can be used to view the next in a sequence of images.
Ziehen: Bei einem Ziehen berührt der Benutzer die Berührungsfläche, bewegt seinen Finger über die Fläche und beendet die Berührung. Das Ziehen ist durch eine große Bewegung über die Berührungsfläche gekennzeichnet. In Abhängigkeit von der Anwendung können mehrere Ziehereignisse erzeugt werden, während der Benutzer seinen Finger bewegt. Dies kann zum Beispiel verwendet werden, um einen Satz in einem angezeigten Dokument zu markieren.Drag: When dragging, the user touches the touch area, moves his finger over the area and ends the touch. Dragging is characterized by a large movement across the touch area. Depending on the application, multiple drag events can be generated while the user is holding his finger emotional. This can be used, for example, to mark a sentence in a displayed document.
Stauchen: Bei einem Stauchen platziert der Benutzer zwei Finger auf der Berührungsfläche und bewegt die Finger dann aufeinander zu. Dies kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu verkleinern.Compression: In the case of compression, the user places two fingers on the touch surface and then moves the fingers towards each other. This can be used, for example, to reduce the size of a displayed image.
Strecken: Bei einem Strecken platziert der Benutzer zwei Finger auf der Berührungsfläche und bewegt die Finger dann auseinander. Dies kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu vergrößern.Stretch: In stretching, the user places two fingers on the touch surface and then moves the fingers apart. This can be used, for example, to enlarge a displayed image.
Drehen: Bei einem Drehen platziert der Benutzer zwei Finger auf der Berührungsfläche und dreht die Finger dann relativ zueinander. Dies kann zum Beispiel verwendet werden, um ein angezeigtes Bild zu drehen.Rotate: When rotating, the user places two fingers on the touch surface and then rotates the fingers relative to each other. This can be used, for example, to rotate a displayed image.
Bevor im Folgenden verschiedene Ausführungsformen der Erfindung beschrieben werden, sollen hier zuerst die in der ausführlichen Beschreibung der Ausführungsformen genannten Ereignisse definiert werden. Diese Ereignisse werden durch die weiter unten beschriebenen Zustandsmaschinen der Erfindung ausgeführt. Es ist zu beachten, dass die Zustandsmaschine in einigen Ausführungsformen gleichzeitig mehrere Ereignisse in Reaktion auf bestimmte Benutzeraktionen erzeugen kann.Before various embodiments of the invention are described below, the events mentioned in the detailed description of the embodiments should first be defined here. These events are carried out by the state machines of the invention described below. It should be noted that, in some embodiments, the state machine can simultaneously generate multiple events in response to certain user actions.
Tippen: Ein Tippereignis wird erzeugt, wenn der Benutzer eine Tippgeste ausführt.Tap: A tap event is generated when the user makes a tap gesture.
Doppeltes Tippen: Ein doppeltes Tippereignis wird erzeugt, wenn der Benutzer eine doppelte Tippgeste ausführt.Double tap: A double tap event is generated when the user makes a double tap gesture.
Drücken: Ein Drückereignis wird erzeugt, wenn der Benutzer die Berührungsfläche berührt und seinen Finger dann stationär hält.Press: A press event is generated when the user touches the touch area and then holds their finger stationary.
Kurzes Drücken: Ein kurzes Drückereignis wird nach einem Drückereignis erzeugt, wenn der Benutzer seinen Finger weiterhin für eine bestimmte Zeitdauer stationär hält.Short press: A short press event is generated after a press event if the user continues to hold their finger stationary for a certain period of time.
Langes Drücken: Ein langes Drückereignis wird nach einem kurzen Drückereignis erzeugt, wenn der Benutzer seinen Finger weiterhin für eine bestimmte Zeitdauer stationär hält.Long press: A long press event is generated after a short press event if the user continues to hold their finger stationary for a certain period of time.
Wiederholtes Drücken: Ein wiederholtes Drückereignis wird nach einem langen Drückereignis erzeugt, wenn der Benutzer seinen Finger für eine bestimmte Zeitdauer stationär gehalten hat. Wenn der Benutzer seinen Finger weiterhin stationär hält, werden wiederholte Drückereignisse mit regelmäßigen Intervallen erzeugt.Repeated Press: A repeated press event is generated after a long press event when the user has held their finger stationary for a certain period of time. If the user continues to hold his finger stationary, repeated press events will be generated at regular intervals.
Lösen: Ein Lösungsereignis wird erzeugt, wenn der Benutzer seine Finger von der Berührungsfläche entfernt.Release: A release event is generated when the user removes their fingers from the touch area.
Kurzes Ziehen (Flick): Ein kurzes Ziehereignis wird erzeugt, wenn der Benutzer eine kurze Ziehgeste ausführt.Short Drag (Flick): A short drag event is generated when the user makes a short drag gesture.
Ziehen: Ein Ziehereignis wird erzeugt, wenn der Benutzer eine Ziehgeste ausführt.Drag: A drag event is generated when the user makes a drag gesture.
Mehrfachberührung (oder Zweifachberührung): Ein Mehrfachberührungsereignis (oder Zweifachberührungsereignis) wird erzeugt, wenn der Benutzer die Berührungsfläche mit zwei Fingern berührt.Multi-touch (or double-touch): A multi-touch (or double-touch) event is generated when the user touches the touch area with two fingers.
Stauchen: Ein Stauchereignis wird erzeugt, wenn der Benutzer eine Stauchgeste ausführt.Compress: A compress event is generated when the user performs a compress gesture.
Strecken: Ein Streckereignis wird erzeugt, wenn der Benutzer eine Streckgeste ausführt.Stretch: A stretch event is generated when the user makes a stretch gesture.
Drehen: Ein Drehereignis wird erzeugt, wenn der Benutzer eine Drehgeste ausführt.Rotate: A rotation event is generated when the user performs a rotation gesture.
Im Folgenden wird der Ruhezustand beschrieben. Der Ruhezustand tritt immer dann auf, wenn die Berührungsfläche nicht von einem Benutzer berührt wird. In diesem Zustand werden keine Aktionen ausgelöst und keine Aktionen ausgeführt. Der Ruhezustand geht in einen Berührungszustand über, wenn der Benutzer die Berührungsfläche mit einem Finger berührt. Der Ruhezustand weist keine Parameter auf, und es sind keine Zeitberechnungen mit dem Ruhezustand assoziiert.The following describes the idle state. The idle state always occurs when the touch surface is not touched by a user. In this state, no actions are triggered and no actions are carried out. The idle state changes to a touch state when the user touches the touch surface with a finger. The idle state has no parameters and no timing calculations are associated with the idle state.
Im Folgenden wird der Berührungszustand beschrieben. Der berührte Zustand tritt auf, wenn ein Benutzer die Berührungsfläche berührt. Wenn in den Berührungszustand eingetreten wird, wird eine Zeitbeschränkung gestartet, d. h. es wird ein Timer gesetzt, der nach einer vorbestimmten Zeitdauer abläuft. Dadurch wird zwischen Gesten kurzer Dauer wie etwa einem kurzen Ziehen (Flick) und einem Tippen und Gesten langer Dauer wie etwa einem Drücken unterschieden. Die Ausgangsposition der Berührung wird gespeichert. Dies dient zur Bestimmung, ob der Benutzer seine Finger bewegt hat. In dem Berührungszustand wird auf einen Ablauf der Zeitbeschränkung geprüft und wird die von der Ausgangsposition der Berührung zurückgelegte Distanz berechnet. Wenn die Zeitbeschränkung abläuft, durchläuft die Zustandsmaschine einen Übergang, indem sie ein Drückereignis erzeugt und dann in den Drückzustand übergeht. Wenn der Benutzer den Finger über eine spezifizierte Distanz hinaus von der Ausgangsposition der Berührung bewegt, tritt die Zustandsmaschine in einen Wartezustand für ein kurzes Ziehen ein. Wenn der Benutzer die Berührung beendet, tritt die Zustandsmaschine in den Wartezustand für das zweite Tippen ein. Folgende Aktionen bestimmen, ob ein Tippen, ein doppeltes Tippen oder eine andere Geste erzeugt wird. Der Zeitbeschränkungsparameter in dem Berührungszustand bestimmt, wie lange der Benutzer seinen Finger entfernen muss, um ein Tippereignis zu erzeugen. Der Bewegungsparameter in diesem Zustand bestimmt, über welche Distanz der Benutzer seinen Finger bewegen muss, um in den Wartezustand für ein kurzes Ziehen einzutreten. Die maximal zulässige Zeitdauer ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand ist die Zeitbeschränkungsperiode.The state of contact is described below. The touched state occurs when a User touches the touch surface. When the touch state is entered, a time restriction is started, ie a timer is set which expires after a predetermined period of time. This distinguishes between short-duration gestures such as a short flick and tapping, and long-duration gestures such as pressing. The starting position of the touch is saved. This is used to determine whether the user has moved their fingers. In the touch state, it is checked whether the time limit has expired and the distance traveled from the initial position of the touch is calculated. When the time limit expires, the state machine transitions by generating a push event and then going into the push state. When the user moves the finger a specified distance from the home position of the touch, the state machine enters a wait state for a short drag. When the user finishes touching, the state machine enters the wait state for the second tap. The following actions determine whether a tap, a double tap or another gesture is generated. The time constraint parameter in the touch state determines how long the user must remove their finger in order to generate a tap event. The movement parameter in this state determines the distance over which the user must move his finger in order to enter the wait state for a short drag. The maximum allowable amount of time from the first touch for an event to be generated in this state is the time limit period.
Im Folgenden wird der Wartezustand für das zweite Tippen beschrieben. Der Wartezustand für das zweite tippen tritt ein, nachdem ein Benutzer auf die Berührungsfläche getippt hat. Beim Eintreten in den Wartezustand wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, ob der Benutzer eine Tippgeste ausgeführt hat. Die Ausgangsposition der Berührung wird gespeichert. Dies dient zur Bestimmung, ob der Benutzer eine doppelte Tippgeste ausführt. Der Ablauf der Zeitbeschränkung wird geprüft. Wenn die Zeitbeschränkung abläuft, wird ein Tippereignis erzeugt und tritt die Zustandsmaschine in den Ruhezustand ein. Dies bedeutet, dass der Benutzer ein Mal, aber nicht zwei Mal während des zulässigen Zeitintervalls auf die Oberfläche getippt hat. Wenn der Benutzer die Berührungsfläche mit einem Finger drückt, wird die Distanz der zweiten Berührung von der ersten Berührung berechnet. Wenn die Distanz unter dem spezifizierten Wert liegt, tritt die Zustandsmaschine in den Wartezustand für ein doppeltes Tippen ein, weil der Benutzer unter Umständen ein doppeltes Tippen ausführt. Wenn die Distanz zwischen der ersten Berührung und der zweiten Berührung größer als der spezifizierte Wert ist, erzeugt die Zustandsmaschine ein Tippereignis (für die vorhergehende Tippgeste) und tritt wie gezeigt erneut in den Berührungszustand ein. Der Zeitbeschränkungsparameter in dem Wartezustand für das zweite Tippen bestimmt, wie lange nach der Beendigung einer Berührung durch den Benutzer ein Tippereignis erzeugt wird. Wenn der Benutzer die Oberfläche erneut berührt, bevor die Zeitbeschränkung abläuft, kann ein doppeltes Tippereignis erzeugt werden. Die maximal zulässige Zeit ab der ersten Berührung bis zum Erzeugen eines Ereignisses in diesem Zustand entspricht der Summe aus den Zeitbeschränkungsperioden des Berührungszustands und des Wartezustands für ein zweites Tippen.The waiting state for the second tap is described below. The waiting state for the second tap occurs after a user taps the touch area. A time limit is started when the wait state is entered. This is used to determine whether the user has made a tap gesture. The starting position of the touch is saved. This is to determine whether the user is making a double tap gesture. The expiry of the time limit is checked. When the time limit expires, a tap event is generated and the state machine enters the idle state. This means that the user tapped the surface once, but not twice, during the allowed time interval. When the user presses the touch area with a finger, the distance of the second touch from the first touch is calculated. If the distance is less than the specified value, the state machine enters the double tap wait state because the user may be double tapping. If the distance between the first touch and the second touch is greater than the specified value, the state machine generates a tap event (for the previous tap gesture) and re-enters the touch state as shown. The time constraint parameter in the wait state for the second tap determines how long after a touch by the user is finished, a tap event is generated. If the user touches the surface again before the time limit expires, a double tap event can be generated. The maximum allowable time from the first touch to the generation of an event in this state corresponds to the sum of the time restriction periods of the touch state and the waiting state for a second tap.
Im Folgenden wird der Wartezustand für ein doppeltes Tippen beschrieben. Der Wartezustand für ein doppeltes Tippen tritt ein, wenn der Benutzer auf die Berührungsfläche getippt hat und diese dann erneut drückt. Beim Eintreten in diesen Zustand wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, ob der Benutzer eine doppelte Tippgeste ausgeführt hat. Die Ausgangsposition der Berührung wird gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird auf ein Ablaufen der Zeitbeschränkung geprüft und wird die von der Ausgangsposition der Berührung zurückgelegte Distanz berechnet. Wenn die Zeitbeschränkung abläuft, werden Tipp- und Drückereignisse erzeugt und tritt die Zustandsmaschine in den Drückzustand ein. Wenn sich der Benutzer über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, erzeugt die Zustandsmaschine ein Tippereignis und tritt in den Wartezustand für ein kurzes Ziehen (Flick) ein. Der Grund hierfür ist, dass der Benutzer einmal getippt hat und ein mögliches zweites Tippen jetzt ein mögliches kurzes Ziehen (Flick) ist. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein doppeltes Tippereignis und tritt in den Ruhezustand ein. Der Grund hierfür ist, dass der Benutzer beide Tippbetätigungen innerhalb der spezifizierten Zeit und den Distanzlimits ausgeführt hat. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Benutzer seinen Finger entfernen muss, um ein doppeltes Tippereignis zu erzeugen. Wenn die Zeitbeschränkung abläuft, wird angenommen, dass der Benutzer getippt und die Oberfläche anschließend gedrückt gehalten hat. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um in den Wartezustand für ein kurzes Ziehen einzutreten. Die maximal zulässige Zeit ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein zweites Tippen und des Wartezustands für ein doppeltes Tippen.The waiting state for a double tap is described below. The double tap wait state occurs when the user has tapped the touch area and then presses it again. When entering this state, a time limit is started. This is to determine if the user made a double tap gesture. The starting position of the touch is saved. This is used to determine whether the user has moved their finger. In this state, it is checked whether the time limit has expired and the distance covered from the starting position of the touch is calculated. When the time limit expires, tap and push events are generated and the state machine enters the push state. If the user moves more than a specified distance from the initial position of the touch, the state machine generates a tap event and enters the wait state for a short flick. The reason for this is that the user has typed once and a possible second tap is now a possible short flick. When the user ends the touch, the state machine generates a double tap event and enters the idle state. This is because the user performed both taps within the specified time and distance limits. The timeout parameter in this state determines how long the user must remove their finger in order to generate a double tap event. When the time limit expires, it is assumed that the user typed and then pressed and held the surface. The movement parameter in this state determines how far the user has to move his finger in order to enter the wait state for a short drag. The maximum allowable time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a second tap and the wait state for a double tap.
Im Folgenden wird der Wartezustand für ein schnelles Ziehen (Flick) beschrieben. Der Wartezustand für ein schnelles Ziehen (Flick) tritt auf, wenn der Benutzer die Berührungsfläche gedrückt hat und seinen Finger über die Oberfläche bewegt hat. Mit dem Eintritt in diesen Zustand wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, ob der Benutzer ein schnelles Ziehgeste (Flick) oder eine Ziehgeste ausführt. Beim Eintritt wird auch die Ausgangsposition der Berührung gespeichert. Diese wird bei Bedarf zu der Verarbeitung des Wartens für ein Ziehen weitergeleitet. In diesem Zustand wird auf ein Ablaufen der Zeitbeschränkung geprüft. Wenn die Zeitbeschränkung abläuft, wird ein Drückereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Der Grund hierfür ist, dass der Benutzer die Berührung nicht innerhalb der zum Unterscheiden zwischen einer schnellen Ziehbetätigung (Flick) und einer Ziehbetätigung verwendeten Zeitdauer beendet hat. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein schnelles Ziehereignis (Flick) und tritt in den Ruhezustand ein. Der Grund hierfür ist, dass der Benutzer die Bewegung innerhalb des spezifizierten Zeitlimits abgeschlossen hat. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Benutzer seinen Finger entfernen muss, um ein schnelles Ziehereignis (Flick) zu erzeugen. Wenn die Zeitbeschränkung abläuft, wird angenommen, dass der Benutzer eine Ziehoperation durchführt. Die maximale Zeitdauer von der ersten Berührung zum Erzeugen eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungsperioden des Berührungszustands und der Wartezustände für ein schnelles Ziehen (Flick).In the following the Waiting state for a quick pull (flick) described. The quick flick wait state occurs when the user has pressed the touch pad and moved their finger across the surface. When this state is entered, a time limit is started. This is used to determine whether the user is making a quick drag gesture (flick) or a drag gesture. When entering, the starting position of the touch is also saved. This is forwarded to the processing of waiting for a pull, if necessary. In this state, a check is made to see if the time limit has expired. When the time limit expires, a push event is generated and the state machine enters the wait state for a pull. This is because the user did not finish touching within the time used to distinguish between a quick flick and a drag. When the user ends the touch, the state machine generates a quick flick event and enters the idle state. This is because the user completed the move within the specified time limit. The time constraint parameter in this state determines how long the user must remove their finger in order to generate a quick flick event. When the time limit expires, it is assumed that the user is performing a drag operation. The maximum length of time from the first touch to generating an event in this state is the sum of the time limit periods of the touch state and the wait states for a quick flick.
Im Folgenden wird der Wartezustand für ein Ziehen beschrieben. Der Wartezustand für ein Ziehen tritt auf, wenn der Benutzer die Berührungsfläche gedrückt und seinen Finger über die Oberfläche bewegt hat, wobei die Bewegung länger als die Dauer für ein schnelles Ziehen (Flick) gedauert hat. Mit dem Eintritt in diesen Zustand wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, ob der Benutzer seinen Finger stationär gehalten hat. Auch die Ausgangsposition der Berührung wird beim Eintritt gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird auf ein Ablaufen der Zeitbeschränkung geprüft und wird die Distanz von der Ausgangsposition der Berührung berechnet. Wenn die Zeitbeschränkung abläuft, tritt die Zustandsmaschine in den Drückzustand ein. Der Grund hierfür ist, dass der Benutzer seinen Finger zu lange stationär gehalten hat. Wenn der Benutzer seinen Finger um mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, erzeugt die Zustandsmaschine ein Ziehereignis. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Beendigungsereignis und tritt in den Ruhezustand ein. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Finger des Benutzers stationär bleiben muss, bevor zu dem Drückzustand übergegangen wird. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen. Die maximal zulässige Zeit ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein schnelles Ziehen (Flick) und des Wartezustands für ein Ziehen.The following describes the waiting state for dragging. The drag wait state occurs when the user has pressed the touch pad and moved their finger across the surface, the motion taking longer than the time for a quick flick. When this state is entered, a time limit is started. This is used to determine whether the user has held their finger stationary. The starting position of the touch is also saved upon entry. This is used to determine whether the user has moved their finger. In this state, it is checked whether the time limit has expired and the distance from the starting position of the contact is calculated. When the time limit expires, the state machine enters the push state. This is because the user kept his finger stationary for too long. If the user moves their finger more than a specified distance from the home position of the touch, the state machine generates a drag event. When the user ends the touch, the state machine generates a termination event and enters the idle state. The time constraint parameter in this state determines how long the user's finger must remain stationary before entering the push state. The movement parameter in this state determines how far the user has to move his finger in order to generate a drag event. The maximum allowable time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a quick flick and the wait state for a drag.
Im Folgenden wird der Drückzustand beschrieben. Der Drückzustand tritt auf, wenn ein Benutzer die Berührungsfläche gedrückt hat und seinen Finger für eine bestimmte Zeit stationär gehalten hat. Mit dem Eintritt in diesen Zustand wird die Ausgangsposition der Berührung gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird die Distanz ab der Ausgangsposition der Berührung berechnet. Wenn der Benutzer sich über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt hat, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung löst, erzeugt die Zustandsmaschine ein Lösungsereignis und tritt in den Ruhezustand ein. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Es ist kein Limit dafür vorgegeben, wie lange es dauern kann, bevor in diesem Zustand ein Ereignis erzeugt wird.The push status is described below. The press condition occurs when a user has pressed the touch pad and held their finger stationary for a certain amount of time. When entering this state, the initial position of the contact is saved. This is used to determine whether the user has moved their finger. In this state, the distance from the starting position of the contact is calculated. If the user has moved more than a specified distance from the home position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user releases the touch, the state machine generates a release event and enters the idle state. The movement parameter in this state determines how far the user must move his finger in order to generate a drag event and enter the wait state for a drag. There is no limit to how long it can take before an event is generated in this state.
Es ist zu beachten, dass eine vereinfachte Version der ersten Ausführungsform vorgesehen werden kann, in der bewegte Gesten wie das schnelle Ziehen (Flick) und das Ziehen nicht unterstützt werden.It should be noted that a simplified version of the first embodiment can be provided in which moving gestures such as flick and drag are not supported.
Zuerst wird der zusätzliche Zustand der Mehrfachberührung (Zweifachberührung) beschrieben. Der Mehrfachberührungszustand tritt auf, wenn der Benutzer zwei Finger auf der Berührungsfläche platziert hat. Mit dem Eintritt werden die Ausgangspositionen der Berührungen und der Winkel zwischen den Ausgangspositionen der Berührungen gespeichert. In diesem Zustand werden der Abstand zwischen den zwei gleichzeitigen Berührungen und der Winkel zwischen den Berührungspositionen berechnet. Wenn der Benutzer beide Finger löst, durchläuft die Zustandsmaschine einen Übergang, indem sie ein Lösungsereignis erzeugt und in den Ruhezustand eintritt. Wenn der Benutzer einen oder allgemein alle bis auf einen Finger löst, tritt die Zustandsmaschine in den Drückzustand ein. Wenn der Berührungsabstand um mehr als eine spezifizierte Distanz von dem ersten Berührungsabstand zunimmt, wird ein Streckereignis erzeugt. Wenn der Berührungsabstand um mehr als eine spezifizierte Distanz von dem ersten Berührungszustand vermindert wird, wird ein Stauchereignis erzeugt. Wenn sich der Winkel zwischen den Berührungspositionen um mehr als eine spezifizierte Größe gegenüber dem ursprünglichen Winkel ändert, wird ein Drehereignis erzeugt. Es ist zu beachten, dass die Zustandsmaschine in diesem Zustand auch mehrere Ereignisse erzeugen kann, zum Beispiel ein Strecken und ein Drehen oder ein Stauchen und ein Drehen. Der Winkelparameter in diesem Zustand bestimmt, wie stark sich der Winkel zwischen den Berührungspositionen ändern muss, um ein Drehereignis zu erzeugen. Der Streckschwellenparameter in diesem Zustand bestimmt, wie stark der Abstand zwischen den zwei Berührungspositionen zunehmen muss, um ein Streckereignis zu erzeugen. Der Stauchschwellenparameter in diesem Zustand bestimmt, wie stark sich der Abstand zwischen den zwei Berührungspositionen vermindern muss, um ein Stauchereignis zu erzeugen. Es ist kein Limit dafür vorgegeben, wie lange es dauern kann, bevor in diesem Zustand ein Ereignis erzeugt wird.First, the additional state of multiple touch (double touch) will be described. The multi-touch condition occurs when the user has placed two fingers on the touch surface. Upon entry, the initial positions of the touches and the angle between the initial positions of the touches are saved. In this state, the distance between the two simultaneous touches and the angle between the touch positions are calculated. When the user releases both fingers, the state machine transitions by generating a resolution event and entering the idle state. When the user releases one or generally all but one finger, the state machine enters the press state. If the touch distance increases by more than a specified distance from the first touch distance, a stretch event is generated. If the contact distance is decreased by more than a specified distance from the first contact state, a forge event is generated. If the angle between the touch positions changes by more than a specified amount from the original angle, a rotation event is generated. It should be noted that in this state the state machine can also generate several events, for example stretching and rotating or compressing and rotating. The angle parameter in this state determines how much the angle must change between the touch positions in order to create a rotation event. The stretching threshold parameter in this state determines how much the distance between the two touch positions must increase in order to generate a stretching event. The compression threshold parameter in this state determines how much the distance between the two contact positions must decrease in order to generate a compression event. There is no limit to how long it can take before an event is generated in this state.
Aus dem Ruhezustand ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, wobei in diesem Fall die Zustandsmaschine ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt.An additional transition to the multiple touch state is provided from the idle state. This occurs when the user presses the touch surface with two fingers, in which case the state machine generates a multi-touch event and enters the multi-touch state.
Aus dem Berührungszustand ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer einen zweiten Finger auf der Berührungsfläche platziert, wobei in diesem Fall die Zustandsmaschine ein Drückereignis und ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt.An additional transition from the touch state to the multiple touch state is provided. This occurs when the user places a second finger on the touch area, in which case the state machine generates a press event and a multiple touch event and enters the multiple touch state.
Aus dem Wartezustand für ein zweites Tippen ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei Fingern berührt, wobei in diesem Fall die Zustandsmaschine ein Tippereignis und ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt. Dies gibt an, dass auf ein einfaches Tippen eine Mehrfachberührung folgte.An additional transition to the multiple touch state is provided from the waiting state for a second tap. This occurs when the user touches the touch surface with two fingers, in which case the state machine generates a tap event and a multiple touch event and enters the multiple touch state. This indicates that a single tap was followed by a multiple touch.
Aus dem Wartezustand für ein doppeltes Tippen ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei Fingern berührt, wobei in diesem Fall die Zustandsmaschine ein Tippereignis, ein Drückereignis und ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt. Dies gibt an, dass ein einfaches Tippen, ein Drücken und dann eine Mehrfachberührung aufeinander folgten.An additional transition to the multiple touch state is provided from the waiting state for a double tap. This occurs when the user touches the touch surface with two fingers, in which case the state machine generates a tap event, a press event and a multiple touch event and enters the multiple touch state. This indicates that a single tap, a press, and then a multiple touch followed each other.
Aus dem Wartezustand für ein schnelles Ziehen (Flick) ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, wobei in diesem Fall die Zustandsmaschine ein schnelles Ziehereignis und ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt. Es wird davon ausgegangen, dass die Mehrfachberührung die schnelle Ziehgeste beendet hat.From the waiting state for a quick flick, an additional transition to the multiple touch state is provided. This occurs when the user presses the touchpad with two fingers, in which case the state machine generates a quick drag event and a multi-touch event and enters the multi-touch state. It is assumed that the multiple touch has ended the quick drag gesture.
Aus dem Wartezustand für ein Ziehen ist ein zusätzlicher Übergang zu dem Mehrfachberührungszustand vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, wobei die Zustandsmaschine ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt.An additional transition to the multiple touch state is provided from the waiting state for a pull. This occurs when the user presses the touch surface with two fingers, with the state machine generating a multi-touch event and entering the multi-touch state.
Aus dem Drückzustand ist ein zusätzlicher Übergang vorgesehen. Dieser tritt auf, wenn der Benutzer die Berührungsfläche mit zwei oder mehr Fingern drückt, wobei die Zustandsmaschine ein Mehrfachberührungsereignis erzeugt und in den Mehrfachberührungszustand eintritt. Wenn der Benutzer weiterhin in dem Mehrfachberührungszustand wie weiter oben genannt alles bis auf einen Finger löst, tritt die Zustandsmaschine in den Drückzustand ein.An additional transition is provided from the pressed state. This occurs when the user presses the touch surface with two or more fingers, with the state machine generating a multi-touch event and entering the multi-touch state. If the user continues to release everything but one finger in the multi-touch state as mentioned above, the state machine enters the press state.
Der kurze Wartezustand ist ein Ausgangszustand des Superzustands, in den von den anderen Zuständen der Zustandsmaschine eingetreten wird, wenn ein Benutzer die Berührungsfläche gedrückt hat und seinen Finger für eine bestimmte Zeitdauer stationär gehalten hat. Mit dem Eintritt in den kurzen Wartezustand wird eine Zeitbeschränkung gestartet, die verwendet wird, um zu bestimmen, wann ein kurzes Drückereignis erzeugt werden soll. Die Ausgangsposition der Berührung wird gespeichert und verwendet, um zu bestimmen, ob der Benutzer seinen Finger bewegt hat. In dem kurzen Wartezustand wird auf einen Ablauf der Zeitbeschränkung geprüft und wird die Bewegungsdistanz von der Ausgangsposition der Berührung berechnet. Wenn die Zeitbeschränkung abläuft, wird ein kurzes Drückereignis erzeugt und tritt die Zustandsmaschine in den langen Wartezustand, in den Wartezustand für eine Wiederholung, in den Wiederholungszustand oder in den abgeschlossenen Drückzustand ein. Wenn der Benutzer den Finger über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Beendigungsereignis und tritt in den Ruhezustand ein. Wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, erzeugt die Zustandsmaschine ein Mehrfachberührungsereignis und tritt in den Mehrfachberührungszustand ein. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Finger des Benutzers stationär bleiben muss, bevor zu dem langen Wartezustand, dem Wartezustand für eine Wiederholung oder dem abgeschlossenen Drückzustand übergegangen wird. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Die maximal zulässige Zeit ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe aus den Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein schnelles Ziehen (Flick), des Wartezustands für ein Ziehen und des kurzen Wartezustands.The short wait state is an initial state of the super state which is entered by the other states of the state machine when a user has pressed the touch area and held his finger stationary for a certain period of time. Upon entering the short wait state, a time limit is started that is used to determine when a short press event should be generated. The initial position of the touch is saved and used to determine if the user moved their finger. In the short wait state, it is checked whether the time limit has expired and the moving distance from the starting position of the touch is calculated. When the time limit expires, a short press event is generated and the state machine enters the long wait, wait for a retry, retry, or complete press. If the user moves the finger more than a specified distance from the initial position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user ends the touch, the state machine generates a termination event and enters the idle state. When the user presses the touchpad with two fingers, the state machine generates a multi-touch event and enters the multi-touch state. The time constraint parameter in this state determines how long the user's finger must remain stationary before moving to the long wait state, the wait for a retry state, or the completed press state. The movement parameter in this state determines how far the user must move his finger in order to generate a drag event and enter the wait state for a drag. The maximum allowable time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a quick pull (flick), the wait state for a pull and the short wait state.
Der lange Wartezustand ist dafür vorgesehen, dass ein Benutzer die Berührungsfläche gedrückt hat und seinen Finger für eine bestimmte Zeit stationär gehalten hat. Mit dem Eintritt wird eine Zeitbeschränkung gestartet. Diese dient zur Bestimmung, wann ein langes Drückereignis erzeugt werden soll. Mit dem Eintritt wird auch die Ausgangsposition der Berührung gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird auf ein Ablaufen der Zeitbeschränkung geprüft, wobei die Distanz von der Ausgangsposition der Berührung berechnet wird. Wenn die Zeitbeschränkung abläuft, wird ein langes Drückereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für eine Wiederholung oder in den abgeschlossenen Drückzustand ein. Wenn der Benutzer seinen Finger über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Beendigungsereignis und tritt in den Ruhezustand ein. Wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, erzeugt die Zustandsmaschine ein Mehrfachberührungsereignis und tritt in den Mehrfachberührungszustand ein. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Finger des Benutzers stationär bleiben muss, bevor zu dem Wartezustand für eine Wiederholung oder zu dem abgeschlossenen Wartezustand übergegangen wird. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Die maximale Zeitdauer ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein schnelles Ziehen (Flick), des Wartezustands für ein Ziehen, des kurzen Wartezustands und des langen Wartezustands.The long wait state is provided for when a user has pressed the touch surface and kept his finger stationary for a certain time. A time limit is started upon entry. This is used to determine when a long press event should be generated. With the entry, the starting position of the contact is also saved. This is used to determine whether the user has moved their finger. In this state, it is checked whether the time limit has expired, the distance from the starting position of the contact being calculated. When the time limit expires, a long press event is generated and the state machine enters the wait state for a retry or the complete press state. If the user moves their finger more than a specified distance from the initial position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user ends the touch, the state machine generates a termination event and enters the idle state. When the user presses the touchpad with two fingers, the state machine generates a multi-touch event and enters the multi-touch state. The time constraint parameter in this state determines how long the user's finger must remain stationary before entering the wait state for a retry or the complete wait state. The movement parameter in this state determines how far the User must move his finger to generate a drag event and enter the wait state for drag. The maximum time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a quick flick, the wait state for a drag, the short wait state and the long wait state.
Der Wartezustand für eine Wiederholung ist dafür vorgesehen, dass ein Benutzer die Berührungsfläche gedrückt hat und seinen Finger für eine bestimmte Zeitdauer stationär gehalten hat. Mit dem Eintritt in den Zustand wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, wann ein wiederholtes Drückereignis erzeugt werden soll. Mit dem Eintritt wird auch die Ausgangsposition der Berührung gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird auf ein Ablaufen der Zeitbeschränkung geprüft und wird die Distanz von der Ausgangsposition der Berührung berechnet. Wenn die Zeitbeschränkung abläuft, wird ein wiederholtes Drückereignis erzeugt und tritt die Zustandsmaschine in den Wiederholungszustand ein. Wenn der Benutzer seinen Finger über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Beendigungsereignis und tritt in den Ruhezustand ein. Wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, erzeugt die Zustandsmaschine ein Mehrfachberührungsereignis und tritt in den Mehrfachberührungszustand ein. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Finger des Benutzers stationär bleiben muss, bevor zu dem Wiederholungszustand übergegangen wird. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Die maximale Zeitdauer ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein kurzes Ziehen (Flick), des Wartezustands für ein Ziehen, des kurzen Wartezustands, des langen Wartezustands und des Wartezustands für eine Wiederholung.The waiting state for a repetition is provided that a user has pressed the touch surface and kept his finger stationary for a certain period of time. A time limit is started when the state is entered. This is used to determine when to generate a repeated push event. With the entry, the starting position of the contact is also saved. This is used to determine whether the user has moved their finger. In this state, it is checked whether the time limit has expired and the distance from the starting position of the contact is calculated. When the time limit expires, a repeat press event is generated and the state machine enters the repeat state. If the user moves their finger more than a specified distance from the initial position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user ends the touch, the state machine generates a termination event and enters the idle state. When the user presses the touchpad with two fingers, the state machine generates a multi-touch event and enters the multi-touch state. The time constraint parameter in this state determines how long the user's finger must remain stationary before entering the repeat state. The movement parameter in this state determines how far the user must move his finger in order to generate a drag event and enter the wait state for a drag. The maximum time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a short pull (flick), the wait state for a pull, the short wait state, the long wait state and the wait state for a repetition.
Der Wiederholungszustand ist dafür vorgesehen, dass der Benutzer die Berührungsfläche gedrückt hat und seinen Finger für eine bestimmte Zeitdauer stationär gehalten hat. Mit dem Eintritt wird eine Zeitbeschränkung gestartet. Dies dient zur Bestimmung, wann ein wiederholtes Drückereignis erzeugt werden soll. Mit dem Eintritt wird auch die Ausgangsposition der Berührung gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird der Ablauf der Zeitbeschränkung geprüft und wird die Bewegungsdistanz von der Ausgangsposition der Berührung berechnet. Wenn die Zeitbeschränkung abläuft, wird ein wiederholtes Drückereignis erzeugt. Wenn der Benutzer seinen Finger über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Lösungsereignis und tritt in den Ruhezustand ein. Wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, erzeugt die Zustandsmaschine ein Mehrfachberührungsereignis und tritt in den Mehrfachberührungszustand ein. Der Zeitbeschränkungsparameter in diesem Zustand bestimmt, wie lange der Finger des Benutzers stationär bleiben muss, bevor ein wiederholtes Drückereignis erzeugt wird. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Die maximale Zeitdauer ab der ersten Berührung für die Erzeugung eines Ereignisses in diesem Zustand entspricht der Summe der Zeitbeschränkungen des Berührungszustands, des Wartezustands für ein schnelles Ziehen (Flick), des Wartezustands für ein Ziehen, des kurzen Wartezustands, des langen Wartezustands und des Wi ederholungszustands.The repetition state is provided that the user has pressed the touch surface and kept his finger stationary for a certain period of time. A time limit is started upon entry. This is used to determine when to generate a repeated push event. With the entry, the starting position of the contact is also saved. This is used to determine whether the user has moved their finger. In this state, the expiration of the time limit is checked and the moving distance from the starting position of the touch is calculated. When the time limit expires, a repeated push event is generated. If the user moves their finger more than a specified distance from the initial position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user ends the touch, the state machine generates a resolution event and enters the idle state. When the user presses the touchpad with two fingers, the state machine generates a multi-touch event and enters the multi-touch state. The time constraint parameter in this state determines how long the user's finger must remain stationary before a repeated press event is generated. The movement parameter in this state determines how far the user must move his finger in order to generate a drag event and enter the wait state for a drag. The maximum time from the first touch for the generation of an event in this state corresponds to the sum of the time restrictions of the touch state, the wait state for a quick pull (flick), the wait state for a pull, the short wait state, the long wait state and the recovery state .
Der abgeschlossene Drückzustand ist dem Drückzustand der ersten und der zweiten Ausführungsform ähnlich. Mit dem Eintritt wird die Ausgangsposition der Berührung gespeichert. Dies dient zur Bestimmung, ob der Benutzer seinen Finger bewegt hat. In diesem Zustand wird die Bewegungsdistanz von der Ausgangsposition der Berührung berechnet. Wenn der Benutzer seinen Finger über mehr als eine spezifizierte Distanz von der Ausgangsposition der Berührung bewegt hat, wird ein Ziehereignis erzeugt und tritt die Zustandsmaschine in den Wartezustand für ein Ziehen ein. Wenn der Benutzer die Berührung beendet, erzeugt die Zustandsmaschine ein Lösungsereignis und tritt in den Ruhezustand ein. Wenn der Benutzer die Berührungsfläche mit zwei Fingern drückt, erzeugt die Zustandsmaschine ein Mehrfachberührungsereignis und tritt in den Mehrfachberührungszustand ein. Der Bewegungsparameter in diesem Zustand bestimmt, wie weit der Benutzer seinen Finger bewegen muss, um ein Ziehereignis zu erzeugen und in den Wartezustand für ein Ziehen einzutreten. Es ist kein Limit dafür vorgegeben, wie lange es dauern kann, bevor in diesem Zustand ein Ereignis erzeugt wird.The completed pressing state is similar to the pressing state of the first and second embodiments. With the entry, the starting position of the contact is saved. This is used to determine whether the user has moved their finger. In this state, the moving distance from the initial position of touch is calculated. If the user has moved their finger more than a specified distance from the initial position of the touch, a drag event is generated and the state machine enters the wait state for a drag. When the user ends the touch, the state machine generates a resolution event and enters the idle state. When the user presses the touchpad with two fingers, the state machine generates a multi-touch event and enters the multi-touch state. The movement parameter in this state determines how far the user must move his finger in order to generate a drag event and enter the wait state for a drag. There is no limit to how long it can take before an event is generated in this state.
Es ist zu beachten, dass nicht alle in
Es ist zu beachten, dass die erste Ausführungsform auch derart modifiziert werden kann, dass ein Drücksuperzustand wie oben mit Bezug auf
Die Zustandsmaschinen der ersten, zweiten und dritten Ausführungsform sind einfach und effektiv, lassen sich aber nicht gut für komplexere Gestenkombinationen skalieren, insbesondere wenn es sich um Mehrfachberührungen handelt. Es soll hier zum Beispiel eine Geste betrachtet werden, in der ein Benutzer einen Finger auf die Berührungsfläche hält und mit einem zweiten Finger auf die Fläche tippt (eine „Drück-‟ und Tippgeste). Dazu benötigt der Mehrfachberührungszustand in der Zustandsmaschine der zweiten Ausführungsform mehrere Subzustände, um die Position, die Dauer und die Bewegung der zwei Berührungen zu verfolgen.The state machines of the first, second and third embodiments are simple and effective, but do not scale well for more complex combinations of gestures, especially when it comes to multiple touches. For example, consider a gesture in which a user holds one finger on the touch surface and taps the surface with a second finger (a “press” and “tap” gesture). For this purpose, the multiple touch state in the state machine of the second embodiment requires multiple sub-states in order to track the position, the duration and the movement of the two touches.
Es wäre deshalb auch schwierig, die Zustandsmaschine der zweiten Ausführungsform für die Handhabung von Gesten mit mehr als zwei Berührungen zu erweitern. Die Komplexität der Zustandsmaschine würde mit jeder zusätzlichen Berührung stark zunehmen.It would therefore also be difficult to extend the state machine of the second embodiment for the handling of gestures with more than two touches. The complexity of the state machine would greatly increase with each additional touch.
Diese Beschränkungen werden durch eine vierte Ausführungsform der Erfindung beseitigt, in welcher der Mehrfachberührungszustand aus der Zustandsmaschine der zweiten Ausführungsform entfernt ist, um eine einfache Einfachberührungs-Zustandsmaschine gemäß der ersten Ausführungsform wie in Fia.1gezeigt vorzusehen. Eine Einfachberührungs-Zustandsmaschine dieser Art kann alle erforderlichen Informationen aus einer einfachen Berührung verfolgen. Mehrere Einfachberührungs-Zustandsmaschinen werden dann miteinander kombiniert, um Mehrfachberührungsgesten zu handhaben, sodass also keine komplexeren Mehrfachberührungs-Zustandsmaschinen erzeugt werden müssen, die dem Ansatz der zweiten Ausführungsform folgen.These limitations are eliminated by a fourth embodiment of the invention, in which the multi-touch state from the State machine of the second embodiment is removed to provide a simple single touch state machine according to the first embodiment as shown in FIG. A single touch state machine of this type can keep track of all required information from a single touch. A plurality of single-touch state machines are then combined with one another in order to handle multiple-touch gestures, so that there is no need to generate more complex, multiple-touch state machines that follow the approach of the second embodiment.
In diesem Beispiel werden die Berührung 1 und die Berührung 2 durch die Zweifachberührungs-Zustandsmaschine verarbeitet, die den Abstand und den Winkel zwischen den Berührungen verfolgt und Streck-, Stauch- und Drehereignisse erzeugt, wenn sich der Abstand und/oder der Winkel zwischen den Berührungen ändert.In this example, touch 1 and
Diese Zustandsmaschine kann auch komplexere Gesten wie etwa die zuvor beschrieenen Drück- und Tippgesten erzeugen. Dies kann unter Verwendung einer Kombination aus den Zuständen und erzeugten Ereignissen der zwei Eingangszustandsmaschinen bewerkstelligt werden. Wenn eine Zustandsmaschine den Zustand „Drücken“ aufweist, und die andere das Ereignis „Tippen“ erzeugt hat, dann kann die Zweifachberührungs-Zustandsmaschine ein „Drück- und Tippereignis“ erzeugen.This state machine can also generate more complex gestures such as the previously described press and tap gestures. This can be done using a combination of the states and generated events of the two input state machines. If one state machine is in the "press" state and the other has generated the event "tap", then the two-touch state machine can generate a "press and tap event".
Ähnliche Kombinationen können verwendet werden, um Ereignisse wie etwa die folgenden zu erzeugen:
- •Drücken und doppeltes Tippen
- •Ziehen und Tippen
- •Drücken und schnelles Ziehen (Flick)
- •Ziehen mit zwei Fingern
- • andere Kombinationen von Zuständen und Ereignissen.
- • Press and double tap
- • Drag and tap
- • Push and pull quickly (flick)
- • Dragging with two fingers
- • other combinations of states and events.
Die Figur zeigt auch, wie die Zustandsmaschine eine Situation erfassen kann, in welcher der Benutzer zwei Berührungen auf der Berührungsfläche aufweist, wobei er dann mit einem dritten Finger tippt. Dies kann zum Beispiel in einer Anwendung verwendet werden, in der zwei Finger zum Drehen eines angezeigten Bildes verwendet werden und das angezeigte Bild durch ein Tippen mit einem dritten Finger vergrößert wird. Dieselbe Zustandsmaschine kann auch verwendet werden, um einfach ein doppeltes Tippen für ein Verkleinern des angezeigten Bildes zu erfassen.The figure also shows how the state machine can detect a situation in which the user has two touches on the touch surface, in which case he then taps with a third finger. This can be used, for example, in an application where two fingers are used to rotate a displayed image and the displayed image is enlarged by tapping a third finger. The same state machine can also be used to simply capture a double tap to zoom out on the displayed image.
Ein Hauptvorteil des Ansatzes der vierten Ausführungsform besteht darin, dass dieselbe Codebasis für die Handhabung von Einfachberührungen verwendet wird, wobei Zweifachberührungen, Dreifachberührungen oder auch noch größere Mehrfachberührungen unter Verwendung eines separaten und zusätzlichen Codes verarbeitet werden. Der Ansatz ist also skalierbar und modular und bringt damit die üblichen Vorteile hinsichtlich eines reduzierten Programmieraufwands und einer höheren Zuverlässigkeit mit sich.A main advantage of the approach of the fourth embodiment is that the same code base is used for the handling of single touches, with double touches, triple touches or even larger multiple touches being processed using a separate and additional code. The approach is therefore scalable and modular and thus brings the usual advantages in terms of reduced programming effort and greater reliability.
Im Folgenden wird eine geeignete Hardware-Plattform für die Einbindung der Gestenerkennungs-Zustandsmaschine gemäß der Erfindung beschrieben. Die Hardware-Plattform ist aus der weiter obengenannten
Allgemein kann das Elektrodenmuster her gestellt werden, indem ein geeignetes leitendes Material aufgetragen oder entfernt wird. Das Aufträgen kann zum Beispiel durch eine Gasphasenabscheidung oder ein Siebdrucken erfolgen. Die Entfernung kann zum Beispiel durch einen Laser oder durch ein chemisches Ätzen erfolgen.In general, the electrode pattern can be made by applying or removing a suitable conductive material. The application can take place, for example, by means of gas phase deposition or screen printing. The removal can be carried out, for example, by a laser or by chemical etching.
Das Elektrodenmuster definiert y-Elektroden 10, 12 zum Bestimmen der y-Position und der x-Elektroden 14, 16, 18, 20, 22, 24 zum Bestimmen der x-Position. Wie gezeigt, erstrecken sich die x-Elektroden und die y-Elektroden allgemein in der x-Richtung und sind in der y-Richtung miteinander verschränkt. Die y-Elektroden 10, 12 sind als einfache Balken, d. h. als längliche Rechtecke, geformt, während die x-Elektroden 14-24 jeweils sich verjüngende Dreiecksformen aufweisen.The electrode pattern defines y-
Im Folgenden werden zuerst die x-Elektroden ausführlich beschrieben. Darauf folgt eine Beschreibung der y-Elektroden.In the following, the x-electrodes are first described in detail. This is followed by a description of the y-electrodes.
Die x-Elektroden lassen sich in drei Gruppen klassifizieren. Eine erste Gruppe von dreieckigen, sich verjüngenden Elektroden
Eine dritte Gruppe von x-Elektroden 18, 20 erstreckt sich jeweils von einer Mittellinie
Auf diese Weise bildet jedes benachbarte Paar von sich gemeinsam erstreckenden x-Elektroden der ersten und der zweiten Gruppe oder der zweiten und der dritten Gruppe einen so genannten Schieber. Es ist zu beachten, dass die Elektrodenelemente in geeigneter Weise in Entsprechung zu der Betätigungseinrichtung wie etwa einen Finger geformt und dimensioniert sind, um ein ratiometrisches, kapazitives Signal über die Länge der wechselseitigen Erstreckung in der x-Richtung vorzusehen, sodass sie also einander in der x-Richtung überlappen.In this way, each adjacent pair of mutually extending x-electrodes of the first and the second group or the second and the third group forms a so-called slide. It should be noted that the electrode elements are appropriately shaped and dimensioned to correspond to the actuating device such as a finger in order to provide a ratiometric, capacitive signal over the length of the mutual extension in the x-direction so that they are mutually in the Overlap x-direction.
Die linken sich doppelt verjüngenden x-Elektroden 16 sind alle über eine elektrische Leitung
Die linken sich verjüngenden x-Elektroden 14 sind alle über eine elektrische Leitung
Die sich verjüngenden x-Elektroden 18 und 20, die von der Mittellinie
Die rechten sich verjüngenden x-Elektroden 24 sind alle über eine elektrische Leitung
Die rechten sich doppelt verjüngenden x-Elektroden 22 sind alle über eine elektrische Leitung
Auf diese Weise sind die x-Elektroden 14-24 nach außen hin mit fünf externen Leitungen
Die y-Elektroden sind in zwei Sätze
Zusammenfassend lässt sich also sagen, dass der 2DCT eine quasi kontinuierliche x-Auflösung über Schieber in vier überlappenden Bereichen I-IV in der x-Richtung über die Breite des empfindlichen Bereichs in Kombination mit einer schrittweisen y-Auflösung über sich horizontal erstreckende Elektrodenstangen vorsieht, die in vertikal benachbarten Sätzen von 3 und 4 gemeinsam verbunden sind. Insgesamt werden zwölf externe Leitungen verwendet, fünf für X und sieben für Y.In summary, it can be said that the 2DCT provides a quasi-continuous x-resolution via sliders in four overlapping areas I-IV in the x-direction over the width of the sensitive area in combination with a stepwise y-resolution via horizontally extending electrode rods, which are connected together in vertically adjacent sets of 3 and 4. A total of twelve external lines are used, five for X and seven for Y.
Die Kombination aus der Mittellinie und den sich doppelt verjüngenden Elektroden gestattet, dass eine große Fläche des empfindlichen Bereichs in der x-Richtung eine große empfindliche Fläche vorsieht, die transparent und ohne externe Verbindungen außer am Rand vorgesehen werden kann. Weiterhin sind bei diesem Elektrodenaufbau die Handschatteneffekte nicht auffällig, weil eine Verschiebung des Zentrums des kapazitiven Signals von der physikalischen Position des Fingers durch die laterale Erstreckung der Elektroden begrenzt ist. Zum Beispiel kann eine Einrichtung mit einem empfindlichen Bereich mit einer Diagonalen von 6 Zoll (150 mm) auf der Grundlage dieses Aufbaus hergestellt werden.The combination of the center line and the double-tapered electrodes allows a large area of the sensitive area in the x-direction to provide a large sensitive area that can be provided transparently and without external connections other than the edge. Furthermore, with this electrode structure, the hand shadow effects are not noticeable because a shift of the center of the capacitive signal from the physical position of the finger is limited by the lateral extension of the electrodes. For example, a 6 inch (150 mm) diagonal sensitive area device can be made based on this structure.
Das allgemeine ITO-Elektrodenmuster bedeckt den Hauptteil des Substrats
Im Folgenden werden zuerst die y-Elektroden beschrieben. Sieben leitende Schienen
Im Folgenden werden die x-Elektrodenverbindungen beschrieben. Die fünf elektrischen Leitungen
Die Kanäle
Außerdem wird ein Array von Rücksetzschaltern
Eine Datenverarbeitung findet dann auf den digitalisierten Ladungsdetektor-Kondensatorausgaben statt. Diese Ausgaben werden in eine Verarbeitungseinheit
In einer ersten Verarbeitungsstufe/-einheit 190, die als Berührungskoordinaten-Bestimmungsstufe-/einheit bezeichnet wird, werden die digitalisierte Ladungsdetektor-Kondensatorausgaben gesammelt und als keine, eine oder mehrere gleichzeitige Berührungen an definierten x,y-Positionen auf dem 2DCT für jede wiederholte Erfassung, jeden Rahmen oder jedes Abtastungsintervall interpretiert. Die Berührungskoordinaten-Bestimmungsstufe/- einheit 190 weist einen Ausgang auf, der betrieben werden kann, um den analogen Multiplexer
In einer zweiten Verarbeitungsstufe/-einheit 192, die als Berührungsverfolgungsstufe/- einheit bezeichnet wird, werden die Berührungsdatensätze für aufeinanderfolgende Proben analysiert, sodass Eingaben, die aus einer einzelnen sich von Probe zu Probe bewegenden Berührung resultieren, als solche identifiziert und von neuen Berührungen und vergangenen Berührungen unterschieden werden. Die aus der Berührungsverfolgungsstufe/-einheit ausgegebenen Daten sind in der Zeit gesammelte Ströme von x,y-Koordinaten und bestimmte über die Zeit verfolgte Berührungen. Diese können in einer Tabellenform gespeichert und/oder wiedergegeben werden.In a second processing stage /
Wenn diese Daten in eine dritte Verarbeitungsstufe/-einheit 194, die als Gestenerkennungsstufe/-einheit bezeichnet wird, eingegeben werden, wird eine Gestenerkennungsverarbeitung unter Verwendung des Zustandsmaschinencodes der Erfindung ausgeführt. Die aus der Gestenerkennungsstufe/-einheit ausgegebenen Daten sind erkannte Gesten (einschließlich von einfachen Berührungen) und die Zeiten ihres Auftritts.When this data is input to a third processing stage /
In einer vierten Verarbeitungsstufe/-einheit 196 werden die Daten zu den erkannten Gesten aus der dritten Stufe in einem Code einer höheren Ebene, gewöhnlich auf der Anwendungsebene, unter Umständen aber auch auf unteren Ebenen der Codierungshierarchie verwendet. Diese Gesten werden verwendet, um eine Funktion einer höheren Ebene auszulösen, wie etwa für die grafische Benutzerschnittstelle der Einrichtung und für das Springen zwischen Codeblöcken einer Anwendung.In a fourth processing stage /
Weitere geeignete kapazitive Hardware-Plattformen für die Erfassung von Berührungen werden zum Beispiel in
Das Touchpad
Eine weitere Funktion, die mit der vorliegenden Erfindung implementiert werden kann, ist die Fähigkeit, auf einem PC zu malen, wobei ein erster Finger als Pinsel verwendet wird und ein zweiter Finger verwendet wird, um die gewünschte Farbe aus einer auf dem Bildschirm angezeigten Farbpalette zu wählen. Der erste Finger wird auf der Oberfläche des Touchpads
Alternativ hierzu kann die Fläche des Touchpads
Eine weitere Funktion, die mit der vorliegenden Erfindung implementiert werden kann, ist die Steuerung eines Spiels auf dem Mobiltelefon
Es ist zu beachten, dass der beschriebene PC und das beschriebene Mobiltelefon lediglich beispielhafte Anwendungen sind, wobei die Erfindung auf viele verschiedene Geräte wie etwa Unterhaltungsgeräte, Telekommunikationsgeräte, Haushaltsgeräte und Kfz-Zubehörgeräte angewendet werden kann.It should be noted that the PC and mobile phone described are merely exemplary applications and the invention can be applied to a wide variety of devices such as entertainment devices, telecommunications devices, household devices and car accessories.
Aus den vorstehenden Erläuterungen sollte deutlich geworden sein, dass ein kapazitives Berührungspaneel angegeben wird, das mehrere gleichzeitige Berührungen erfassen kann, die in eine Gesten-Zustandsmaschine gemäß der vorliegenden Erfindung eingegeben werden können.From the foregoing, it should be clear that a capacitive touch panel is provided that can detect multiple simultaneous touches that can be input into a gesture state machine in accordance with the present invention.
Claims (14)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4945308P | 2008-05-01 | 2008-05-01 | |
US61/049,453 | 2008-05-01 | ||
US12/254,043 US8526767B2 (en) | 2008-05-01 | 2008-10-20 | Gesture recognition |
US12/254,043 | 2008-10-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102009019910A1 DE102009019910A1 (en) | 2009-12-03 |
DE102009019910B4 true DE102009019910B4 (en) | 2021-09-16 |
Family
ID=41254167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009019910.1A Active DE102009019910B4 (en) | 2008-05-01 | 2009-05-04 | Gesture recognition |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102009019910B4 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013012394A1 (en) | 2013-07-26 | 2015-01-29 | Daimler Ag | Method and device for remote control of a function of a vehicle |
DE202014010352U1 (en) | 2013-09-12 | 2015-06-17 | Mechaless Systems Gmbh | Gesture recognition device |
DE102016212723A1 (en) | 2016-07-13 | 2018-01-18 | Volkswagen Aktiengesellschaft | A method of providing a deadman button function by means of a touch screen of an operating device, operating device and system |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593115A (en) | 1969-06-30 | 1971-07-13 | Ibm | Capacitive voltage divider |
US5466036A (en) | 1994-05-09 | 1995-11-14 | Chrylser Corporation | Vehicle wire routing apparatus |
US5650597A (en) | 1995-01-20 | 1997-07-22 | Dynapro Systems, Inc. | Capacitive touch sensor |
US5730165A (en) | 1995-12-26 | 1998-03-24 | Philipp; Harald | Time domain capacitive field detector |
US5852352A (en) | 1995-06-07 | 1998-12-22 | Itt Automotive Electrical Systems, Inc. | Reduced speed growth in windshield wiper motor |
US6028271A (en) | 1992-06-08 | 2000-02-22 | Synaptics, Inc. | Object position detector with edge motion feature and gesture recognition |
US6297811B1 (en) | 1999-06-02 | 2001-10-02 | Elo Touchsystems, Inc. | Projective capacitive touchscreen |
US20020015024A1 (en) | 1998-01-26 | 2002-02-07 | University Of Delaware | Method and apparatus for integrating manual input |
US6414671B1 (en) | 1992-06-08 | 2002-07-02 | Synaptics Incorporated | Object position detector with edge motion feature and gesture recognition |
US6452514B1 (en) | 1999-01-26 | 2002-09-17 | Harald Philipp | Capacitive sensor and array |
US6466036B1 (en) | 1998-11-25 | 2002-10-15 | Harald Philipp | Charge transfer capacitance measurement circuit |
US20050041018A1 (en) | 2003-08-21 | 2005-02-24 | Harald Philipp | Anisotropic touch screen element |
US20060066582A1 (en) | 2004-09-24 | 2006-03-30 | Apple Computer, Inc. | Raw data track pad device and system |
US20070017906A1 (en) | 2005-06-30 | 2007-01-25 | General Electric Company | Shimmed laser beam welding process for joining superalloys for gas turbine applications |
US20070046643A1 (en) | 2004-08-06 | 2007-03-01 | Hillis W Daniel | State-Based Approach to Gesture Identification |
US20070152984A1 (en) | 2005-12-30 | 2007-07-05 | Bas Ording | Portable electronic device with multi-touch input |
US20070176906A1 (en) | 2006-02-01 | 2007-08-02 | Synaptics Incorporated | Proximity sensor and method for indicating extended interface results |
US20070247443A1 (en) | 2006-04-25 | 2007-10-25 | Harald Philipp | Hybrid Capacitive Touch Screen Element |
US20070257894A1 (en) | 2006-05-05 | 2007-11-08 | Harald Philipp | Touch Screen Element |
US20070279395A1 (en) | 2006-05-31 | 2007-12-06 | Harald Philipp | Two Dimensional Position Sensor |
US20070291009A1 (en) | 2006-06-19 | 2007-12-20 | Cypress Semiconductor Corporation | Apparatus and method for detecting a touch-sensor pad gesture |
US20080165141A1 (en) | 2007-01-05 | 2008-07-10 | Apple Inc. | Gestures for controlling, manipulating, and editing of media files using touch sensitive devices |
-
2009
- 2009-05-04 DE DE102009019910.1A patent/DE102009019910B4/en active Active
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593115A (en) | 1969-06-30 | 1971-07-13 | Ibm | Capacitive voltage divider |
US6028271A (en) | 1992-06-08 | 2000-02-22 | Synaptics, Inc. | Object position detector with edge motion feature and gesture recognition |
US6750852B2 (en) | 1992-06-08 | 2004-06-15 | Synaptics, Inc. | Object position detector with edge motion feature and gesture recognition |
US6414671B1 (en) | 1992-06-08 | 2002-07-02 | Synaptics Incorporated | Object position detector with edge motion feature and gesture recognition |
US5466036A (en) | 1994-05-09 | 1995-11-14 | Chrylser Corporation | Vehicle wire routing apparatus |
US5650597A (en) | 1995-01-20 | 1997-07-22 | Dynapro Systems, Inc. | Capacitive touch sensor |
US5852352A (en) | 1995-06-07 | 1998-12-22 | Itt Automotive Electrical Systems, Inc. | Reduced speed growth in windshield wiper motor |
US5730165A (en) | 1995-12-26 | 1998-03-24 | Philipp; Harald | Time domain capacitive field detector |
US20020015024A1 (en) | 1998-01-26 | 2002-02-07 | University Of Delaware | Method and apparatus for integrating manual input |
US6466036B1 (en) | 1998-11-25 | 2002-10-15 | Harald Philipp | Charge transfer capacitance measurement circuit |
US6452514B1 (en) | 1999-01-26 | 2002-09-17 | Harald Philipp | Capacitive sensor and array |
US6297811B1 (en) | 1999-06-02 | 2001-10-02 | Elo Touchsystems, Inc. | Projective capacitive touchscreen |
US20050041018A1 (en) | 2003-08-21 | 2005-02-24 | Harald Philipp | Anisotropic touch screen element |
US20070046643A1 (en) | 2004-08-06 | 2007-03-01 | Hillis W Daniel | State-Based Approach to Gesture Identification |
US20060066582A1 (en) | 2004-09-24 | 2006-03-30 | Apple Computer, Inc. | Raw data track pad device and system |
US20070017906A1 (en) | 2005-06-30 | 2007-01-25 | General Electric Company | Shimmed laser beam welding process for joining superalloys for gas turbine applications |
US20070152984A1 (en) | 2005-12-30 | 2007-07-05 | Bas Ording | Portable electronic device with multi-touch input |
US20070176906A1 (en) | 2006-02-01 | 2007-08-02 | Synaptics Incorporated | Proximity sensor and method for indicating extended interface results |
US20070247443A1 (en) | 2006-04-25 | 2007-10-25 | Harald Philipp | Hybrid Capacitive Touch Screen Element |
US20070257894A1 (en) | 2006-05-05 | 2007-11-08 | Harald Philipp | Touch Screen Element |
US20070279395A1 (en) | 2006-05-31 | 2007-12-06 | Harald Philipp | Two Dimensional Position Sensor |
US20070291009A1 (en) | 2006-06-19 | 2007-12-20 | Cypress Semiconductor Corporation | Apparatus and method for detecting a touch-sensor pad gesture |
US20080165141A1 (en) | 2007-01-05 | 2008-07-10 | Apple Inc. | Gestures for controlling, manipulating, and editing of media files using touch sensitive devices |
Also Published As
Publication number | Publication date |
---|---|
DE102009019910A1 (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112019000251B4 (en) | TWO-ELECTRODE TOUCH BUTTON WITH A MULTI-PHASE CAPACITY MEASUREMENT PROCESS | |
US9122947B2 (en) | Gesture recognition | |
DE202005021427U1 (en) | Electronic device with touch-sensitive input device | |
DE112010002760B4 (en) | User interface | |
DE69521617T2 (en) | POSITION DETECTOR OF AN OBJECT WITH EDGE MOVEMENT FEATURE | |
DE69534404T2 (en) | Method for compensating for unintentional movements in a touchpad on a touch sensor surface | |
DE112014004615T5 (en) | Detecting and differentiating touches of conductive objects of different sizes on a capacitive button | |
DE102010027732A1 (en) | Two-dimensional position sensor | |
DE112007000278T5 (en) | Gesturing with a multipoint scanning device | |
DE112008001800T5 (en) | Two-dimensional touchpanel | |
DE102011117012A1 (en) | DETECTING SLIDING MOVEMENTS OF SEVERAL FINGERS USING FINGERPRINTS FOR GENERATING VARIOUS EVENTS | |
DE102011078985A1 (en) | Touch detection on three-dimensional objects | |
DE202012101741U1 (en) | Multi-surface touch sensor device and detection of user activity | |
DE202007014957U1 (en) | Multimedia touch screen communication device responsive to gestures for controlling, manipulating and editing media files | |
DE112005001422T5 (en) | Bar-based data entry device, system and method | |
DE202008001338U1 (en) | Gesturing with a multipoint scanning device | |
DE202012102976U1 (en) | Touch sensor with active stylus | |
DE202007018368U1 (en) | Multimedia touch screen communication device that responds to gestures to control, manipulate and edit media files | |
DE102011103228A1 (en) | Capacitive touchscreen system with multiplexers | |
DE102010003575A1 (en) | Capacitive touch screen or touchpad for fingers and movable stylus | |
DE102012223250A1 (en) | Touch sensor with multiple surfaces and mode selection | |
DE202007018940U1 (en) | Motion detection for a digitizer | |
DE202007013923U1 (en) | Multiple event input system | |
DE102014210267A1 (en) | Capacitive multi-state button | |
EP2795451B1 (en) | Method for operating a multi-touch-capable display and device having a multi-touch-capable display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R081 | Change of applicant/patentee |
Owner name: SOLAS OLED LTD., IE Free format text: FORMER OWNER: ATMEL CORPORATION, SAN JOSE, CALIF., US |
|
R082 | Change of representative |
Representative=s name: PETERREINS SCHLEY PATENT- UND RECHTSANWAELTE, DE Representative=s name: PETERREINS SCHLEY PATENT- UND RECHTSANWAELTE P, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0003041000 Ipc: G06F0003048800 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R130 | Divisional application to |
Ref document number: 102009061865 Country of ref document: DE |
|
R026 | Opposition filed against patent |