kapazitiver Touch Sensor - Slider - Wheel

OP Persönliche Seite #1788815
Lesenswert?

Dieser Thread bezieht sich auf den 
Beitrag "qtouch - sekt oder selters"

Stichworte: Touch Sensor - Touch Slider - Touch Fader

Funktionsprinzip
------------------------------------------------------------
Die beschriebene Methode ermittelt die Berührung nicht über eine 
Kapazitätsmessung sondern über eine Charge-Transfer-Messung detektiert.

Es gibt 2 Kondensatoren die als Speicher für Ladungen dienen. den 
Kondensator Cs als Speicher und die "Touch" Electrode als Kondensator 
gegen Erde.

Am Anfang werden beide entladen, um die Kondensatoren in einen 
definierten Zustand zu bringen. Das bedeutet, dass PB1 und PC1 als 
Ausgänge und auf LOW geschaltet werden. Etwas warten damit Entladung 
auch vollständig erfolgt. Danach werden in einer Schleife folgende Punkt 
abgearbeitet:

 1. Der Touch Kondensator wird über PB1 aufgeladen (nur wenige pf).
    Dabei ist der Port PC1 ist als Eingang geschaltet damit in den Cs
    kein Stromfließen kann.
 2. Pin PB1 wird als Eingang konfiguriert und PC1 als Ausgang mit 0V.
    Jetzt wandert die Ladung aus dem Touch Kondensatorin Cs (welcher
    viel grösser ist und sich nur gering auflädt)
 3. Wenn die Spannung am Cs ausreicht um vom AVR als 1 gelesenzu werden,
    wird die Schleife beendet und durch geführte Schleifenanzahl
    ausgeben. Der Zählerstand ist ein Maß für die benötigten Ladezyklen.
    Wenn nicht beginnt die Schleife von vorne.

Der Endstand des Zählers verändert sich, wenn mann mit dem Finger den 
Touchsensor berührt.

So zusagen wird durch den kleineren Touch-Kondensator schrittweise der 
große Kondensator Cs aufgeladen. Die Anzahl der benötigten Ladezyklen 
hängt von der "Größe" des Touch Kondensator ab. Und die wiederum von 
dessen Umgebung (Finger).

Stand der Dinge
------------------------------------------------------------
 - Aufbau Widerstand 1kOhm und Kondensator 33nF
 - Messmethode funktioniert bestens
 - Messungen sind zuverlässig
 - autokallibrierung funktioniert

-> testprogramm mit Bargraph siehe Anhang.

Das alles gibt es auch nochmal zusammengefasst hier: 
http://www.jtronics.de/elektronik-avr/kapazitives-touch-pad.html

Ein Demonstrationsvideo gibt es auf Youtube: 
http://www.youtube.com/watch?v=z3nLNGeyadU

noch zu tun
------------------------------------------------------------
 - Auswertung Scrollrad
 - Auswertung Fader / Slider
 - günstiges Touch Layout mit Target oder Eagel erzeugen

Vielleicht wird im Lauf der Zeit eine gute Bibliothek daraus ;-)

Grüße Martin
Angehängte Dateien:
Gast #1790516
Lesenswert?

Martin J. schrieb:
> hat keiner eine Idee wie man solch ein Scrollrad, bestehend aus 9
> Touchfelden auswerten könnte?

Du brauchst zum Scrollen ja nur den äußeren Ring mit 8 Tasten auswerten.

Ich würde folgendes versuchen:

Sobald eine Taste vom Scroll-Ring durch Annäherung aktiviert wird:

 -> Taste merken

Dann eine Scheife:

  repeat
    Wenn rechte Taste von der zuletzt aktiven gedrückt
      -> Scroll-Zähler erhöhen
      -> neue Taste merken
    Wenn linke Taste von der zuletzt aktiven gedrückt
      -> Scroll-Zähler erniedrigen
      -> neue Taste merken
    Wenn andere Taste als die nächste Taste rechts / links
      -> Abbruch der Schleife (Bedienfehler, Fehlerkennung)
  until "alle Ringtasten inaktiv"

Man kann das ganze noch weiter ausbauen bzw- verfeinern, da man durch 
die Zählerstände der einzelnen Tasten sicherlich auch Zwischenpositionen 
des Fingers erkennen kann.

Dass wäre dann eine Erweiterung, nachdem man die erste Version 
hinbekommen hat.

Frage:

Wo hast Du auf dem Touchpad Ground angeschlossen?
#1824025
Lesenswert?

Also bei mir lief es ebenfalls nicht schlecht, aber auch nicht so top. 
Bei einem gewissen Fingerabstand toggelte der Zustand manchmal wie wild 
hin und her. Ich konnte es dann eliminieren, indem ich in der Auswertung 
eine Hysterese einbaute.
War die "Taste" also gedrückt, wird sie erst wieder als losgelassen 
ausgewertet, wenn der Zählerstand den Schwellwert vom gedrückten Zustand 
minus einer Hysterese für das Loslassen unterschritten hat.

Hast Du auch diesen Effekt oder was ist bei Dir das Problem?
Gast #1922263
Lesenswert?

Kapier ich nicht, warum Ihr das Rad 2x erfinden müsst: Die TouchLib von 
Atmel funktioniert doch wunderbar und da sind Slider, Wheels usw schon 
mitdrin. Warum also mit Filtern und Hysteresen rumwursteln, wenn alles 
schon fertig implementiert ist???
Gast #2082775
Lesenswert?

Hallo zusammen,

tut mir Leid, dass ich den alten Thread nochmal aufwärme,
aber ich hab die Sache elektrisch noch nicht richtig verstanden.

Wie das mit der Software- Abfrage funktioniert hab ich kapiert, nur das 
mit der Ladungsverschiebung zwischen den zwei C's nicht. Wie fließen da 
die Ströme? Wie kommt die Ladung des Touch- Kondensators in den Cs?

Ich kapier es nicht.

Danke im Voraus.
#2100701
Lesenswert?

Wenn du einen Slider oder ein Wheel auswerten möchtest, gibt es 
prinzipiell zwei Möglichkeiten:
1. Interpolation (rechen-aufwändiger)
2. Wie oben beschrieben, auswerten welches Feld als nächstes relativ zum 
letzten berührt wurde.

Bei der interpolation solltest du dann noch eine schwerpunktberechnung 
machen (lineare interpolation) oder über die sich ergebende gleichung 
differenzieren (polynominterpolation).

Zur linearen Interpolation gibt's diese Formel:
x0,x1,y0,y1 sind zwei bekannte Messwerte und deren Position. x ist ein 
Wert zwischen x0 und x1.

Beispiel:

[6][10][4]

du hast 3 Sensorflächen und möchtest 3 Werte zwischen den Feldern 
interpolieren. Du setzt dann in die Formel ein:

Setzt du das fort kommt das raus:

[6][7][9][10][8][6][4]

Darüber lässt du dann die Schwerpunktberechnung laufen:

i ist die Position im Array+1.

x = (6+7*2+9*3+10*4+8*5+6*6+4*7)/(6+7+9+10+8+6+4) = 3,82

Also liegt deine Berührung zwischen 3 und 4 mit mehr Tendenz zu 4.
Ist dir das nicht genau genug (du solltest es erstmal ausprobieren), 
nutzt du die Polynominterpolation. Dabei wird aber ein Haufen 
Rechen-arbeit abfallen.

Sieh dir am besten den Wikipedia-Artikel an der ist recht gut.

http://de.wikipedia.org/wiki/Polynominterpolation
#2157569
Lesenswert?

Hallo Zusammen,

ich bin über diesen interessanten Beitrag gestolpert. Ich benutzte das 
IC AT42QT2160 von Atmel. Mit diesem möchte ich ein "endlos" Wheel 
realisieren. Das Wheel ist auf der Platine geätzt und besteht aus 24 
Sensoren. Das Wheel wird mit 8 X-Leitungen und 1 Y-Leitung 
angeschlossen. Betrieben wird das Wheel als QMatrix, d.h. ein Sensor 
besteht aus zwei Elektroden. Bei 24 Sensoren und 8 X-Kanälen soll 
zwischen den einzelnen Kanälen resitiv interpoliert werden.
So halb funktioniert das Wheel auch. Halb deswegen, weil der Übergang 
von 360° auf 0° nicht korrekt funktioniert, d.h. eine neue Drehung wird 
nicht erkannt. Beim Übergang (besser Überlauf) springt die Wheel 
ERkennung wild hin und her. Kann das QT2160 überhaupt interpolieren? In 
dem Datenblatt habe dazu nichts gefunden.
Hat schon jemand ein (endlos) Wheel mit dem AT42QT2160 realisiert?

Da das mit dem Wheel nicht so klappt, ist wohl die alternative sich 
einen Matrix Touch-Controller selber zu bauen. Das sollte mit einem 
Atmel-Controller (z.B. ATmega 88P  o.ä. ) und der QTouch-Library zu 
realisieren sein. Die Dokumentation zur Library habe natürlich 
durchgelesen. Doch leider findet sich kein Hinweis darauf, ob und wie 
resistiv interpolierte Wheels unterstützt werden. Auch ist die Frage, ob 
ein Überlauf von 359° auf 0° richtig erkannt wird.
Hat jemand damit Erfahrung?

Für einen Tipp wäre ich echt dankbar.

Gruß

Karsten
Gast #2159332
Lesenswert?

Ob du interpolation hast oder nicht lässt sich schnell prüfen:  360/8 = 
45. Solltest du Werte in 8er-Schritten bekommen oder eben immer 45° 
Schritte bekommst wird nicht interpoliert, andernfalls schon.

Warum willst du mit eine QTouch-Controller ein resistives Wheel 
auswerten?

Wenn du mit QTouch oder QMatrix arbeitest, hast du nichts mit 
interpolation am Hut. Wenn überhaupt macht das Atmels Bibliothek oder 
der Touch-Controller selbst.
#2164636
Lesenswert?

>Warum willst du mit eine QTouch-Controller ein resistives Wheel
>auswerten?

Weil mir bisher die Möglichkeit der Realisierung mit einem AVR nicht 
bekannt war und in ATMEL's Produktporfolio der AT42QT2160 unter 
Slider/Wheel steht. Mittlerweile bin ich auch schlauer, nachdem ich dem 
Atmel-Support ne Mail geschrieben habe. Der hat zugegeben, dass der 
Controller QT2160 kein resistives unterstützt und es auch keinen 
Baustein gibt, der das kann. Empfehlung von Support: die QT-Touch 
Library verwenden.

>Wenn du mit QTouch oder QMatrix arbeitest, hast du nichts mit
>interpolation am Hut. Wenn überhaupt macht das Atmels Bibliothek oder
>der Touch-Controller selbst.

Wie und ob die QTouch-Library eine Interpolation macht ist von Support 
nicht zu erfahren. Lediglich der Überlauf von 360 auf 0 wird von der 
Bibliothek erkannt.
ATMEL bietet in der Application-Note AVR254 genau das an, was ich 
benötige. Leider gibt es Softwaretechnisch nur ein .hex-File zum 
Proggen. Mein Wheel hat 8 Kanäle (8 x-Leitungen). Ich müsste die 
Software also entsprechend anpassen. Leider rückt ATMEL den c-Code nicht 
raus. Ein Beispielprojekt mit code wäre nicht schlecht. Leider scheint 
es im ganzen WEB kein Beispiel für ein Qmatrix-Wheel zu geben.
Das Manual der QTouch-Library habe ich gelesen. Bin schon etwas 
schlauer. Aber ein funktionierendes Beispiel macht doch vieles leichter.
Gast #2310552
Lesenswert?

Hallo,

Q-Matrix:
Bei Q-Matrix wird das Feld zwischen zwei Elektroden aufgebaut, die sich 
in der Regel auf einer Platine befinden. Der Finger stört das Feld. 
Diese Störung wird detektiert.Daher wird das mit dem Spiegel wird 
wahrscheinlich nicht funktionieren, da Metall die Feldlinien leitet, 
bzw. einen Abschirmeffekt bewirkt.
Q-Touch:
Bei Q-Touch befindet sich nur eine Elektrode auf der Platine. Die 
Gegenelektrode der Kapazität bildet der FInger. Hier könnte der Spiegel 
als Elektrode dienen. Bei Berührung sollte eine Potentialverschiebung 
stattfinden, die gemessen wird. Problematisch wird das allerdings, wenn 
die verspiegelte Fläche über mehrere Elektroden auf der Platine reicht.

Karsten
Gast #2364120
Lesenswert?

Hallo,
ich bin Glaser und habe eigentlich von Elektronik keine Ahnung.
Ich möchte auf der Rückseite einer Glasscheibe einen "kap. Sensor" 
aufdrucken.
Es gibt dafür keramische Farben, die eingebrannt werden und Strom 
leiten.
Kann  mir jemand helfen, wie das aussehen muss?
Gast #2364144
Lesenswert?

Die Scheibestärke kann variieren.
ich hatte mir das so vorgestellt, dass man den Sensor aufdruckt und die 
Elektronik dann entsprechend durch einen Stecker verbindet.
Weiß nicht, ob das möglich ist.
Gast #2364197
Lesenswert?

Wir drucken bei uns sogenannte "Alarmschleifen" auf Glas.
An diesen werden Kabel angelötet.
Hast du eine Idee wie das Druckbild aussehen muss.
Ich habe gehört, dass Platinen gedruckt werden(Siebdruck)
#2364282
Lesenswert?

ob Platinen professionell auch gedruckt werden, weiß ich nicht. Ich 
kenne nur ätzen.

Du meinst das Druckbild auf der Glasscheibe? Wenn die Glasscheibe <= 5mm 
ist reicht für Buttons ein Kreis mit ~13mm Durchmesser. Die Kabel der 
einzelnen Buttons sollten halt dann nicht gebündelt oder längere Zeit 
parallel verlaufen. Also möglichst kurze Kabel und Platine so nah wie 
möglich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren