Hallo Ich sitze Zur Zeit über meinem TouchScreen (Resistiv, 2.4"). Ich Sample die Koordinaten mit ~140Hz. Wie man das so kennt, sind die Touch-Koordinaten krass verrauscht und teilweise völlig unfug. Das Problem habe ich zufriedenstellend gelößt. Nun muss ich mich um die Gestiken kümmern. Nichts kompliziertes, sondern nur die Intension des Benutzers herausfinden. Dabei sollen lediglich 2 Fälle unterschieden werden: a) Nur auflegen des Fingers oder Stifts, um zu sehen, wie die GUI reagiert b) Drücken des Touchscreens im Sinne von "TuWas" (Mausklick sozusagen) Die Messwerte des Drucks stehen zur Verfügung. Wenn wirklich Interesse am Stoff besteht, dann bitte ich jetzt den Anhang anzusehen, ohne die Bilder wirds sinnlos weiterzulesen. Mein bisheriger Ansatz: (Blaue Linie) Ein Bandpassfilter: Er filtert den "GleichDruck" heraus und gibt mir sozusamgen die erste Ableitung aus, dabei werden hohe Frequenzen gedämpft. Das wird damit nichts. Im Anhang sieht man 6 Bilder, die jeweils verschiedene Eingaben repräsentieren. Es folgt eine kleine Auswertung: (Die Rote Linie um unteren Dieagram ist interessant, das blaue ist mein Bandpass-Versuch) >Bild 1: Ich habe nur meinen Daumen aufgelegt. Der Daumen ist eine recht große Fläche.Große Flächen verursachen bei Resistiven TouchScreens automatisch große Drücke. Deswegen ist der Druck-Grundlevel relativ hoch und das Rauschen durch geringe Druckvatiationen recht groß. Dieser Fall darf KEIN Klick auslößen. >Bild 2: Fingernagel oder Stift haben nur geringer Kontaktfläche. Das Ergebnis der Messungen Unterliegt weniger Rauschen. Jedoch ist der GleichDruck-Anteil geringer als beim Daumen. Das auszuwerten wäre nicht Schwer. >Bild 3: Hier habe ich meinen Dicken Daumen bemüht einfach draufzuhauen. Das muss als Mausklick interpretiert werden können. >Bild 4: Hier habe ich einen Stift genommen und "draufzuklicken" Man sieht: Im Vergleich ist der MaximalDruck kleiner. >Bild 5: Hier habe ich mal den Daumen aufgelegt und dann den Druck verandert, als hätte ich per auflegen mein GUI-Steuerelement Markiert und dann ausgelößt. Man sieht: Mit dem Auge sind die Druckpunkte recht gut zu erkennen, aber vom Filterstandpunkt aus gesehen, sind sie schwer vom Rauschen zu unterschieden. >Bild 6: Das ist sozusagen nochmal Bild 5 nur mit einem Stift. Man sieht eindeutig, dass die Druckunterschiede recht gering sind. Das rauschen aber auch. --------------------------- Der Filter muss also folgenes Können: Einfach Formuliert: Bild 1 == Bild 2 nur auflegen darf erkannt werden Bild 3 == Bild 4 nur Klicks dürfen erkannt werden Bild 5 == Bild 6 anfangs das Auflegen, dann die Klicks erkennen >Folgende Ideen geistern in meinem Kopf: Hochpass (mit geringer 3dB-GrenzFrequenz) um den Gleichanteil herauszufiltern, damit wird erstmal alles normiert. Der GleichDruck wird weggeschnitten, nur noch der Wechseldruck ist interessant. Mit dem Verbleibenden Signal: a) noch ein Hochpass (mit hoher Grenzfrequenz) und Effektivwertbildung -> Müsste dann das Rauschen repräsentieren -> Je höher, desto Wurstiger der Finger ;-) b) ein Tiefpass zur Klickerkennung, wenn dann ein Maximum und Minumum in einem Bestimmten Zeitrahmen aufkommt, wird ein KlickEvent ausgelößt. Warum ich hier Schreibe: Ich brauche Hilfe beim Filterdesign.. ich habe davon kaum Ahnung. Welche FilterAlgos sind anzuwenden? IIR FIR? Gibt es dafür sinnvollere Lösungen? Wie macht man eine Digitale Effektivwertbildung?? Hat jemand andere Ideen, wie man soetwas umsetzen kann? Die messwerte sehen qualitativ genauso aus. Ich denke im allgemeinen Einsatz sind sie eher noch schlechter. Hilfe ;-) PS: SystemInfo: Mikrocontroller, externer Ram, Ordentlich Leistung, aber ungern würde ich viel Spendieren, SmapleRate == 140Hz, 9 Bit genauigkeit, Das Auswerteprogramm arbeitet auf dem OC mit Rohdaten.
Hallo, ich habe ein ähnliches Problem mit überlagerten rauschen. Kommt vermutlich vom TFT selbst (Crystalfontz 3.5"). Überlagerungsfrequenz ist ziemlich genau 8kHz. Ist zwar schon eine Weile her, aber wie hast Du das damals gelöst? Ich überlege ein Filter in Software einzusetzen (uC ist ein STM32). Meine Schaltung ist vorerst sehr einfach, nur 4 Portpins in Verwendung. Gruß
Wenn du nicht an die Methode mit wenig Druck = markieren, viel Druck = Klick gebunden bist, meinte ich, dass die Methode wie bei Touchpads zuverlaseeiger waere: Druck = Cursor oder Markierung bewegen Druck weg und innerhalb eines bestimmten Radius + Zeit = Klick Kurzes Antippen auf ein markiertes Objekt = Aktion ausfuehren Dies sollte besser kompatibel sein als zu verschiedenen Fingern (= Benutzern). Einige druecken gerne fest, andere streicheln einen Touch sehr liebevoll... Auch die aktiven Touch-Loesungen mit Druckstaerke-Auswertung, welche ich kenne, verwenden dieses System. Selbstverstaendlich lerne ich aber auch gerne etwas neues :-) Gruss Fenki
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.