Forum: Mikrocontroller und Digitale Elektronik Berührungslose Matrix-Tastatur mit AtMega-Chip?


von Hartmut W. (minihawk)


Lesenswert?

Hi,
ich habe gestern was gefunden, wie man mit einem ARDUINO über die 
analogen Eingänge mehrere berührungslose Tasten erstellen kann.

Ich möchte nun gerne ein Keyboard mit vielen Tasten erbauen, ohne 
irgendwelche Spezialchips.
Ich habe dabei an eine Matrix-Anordung gedacht. Die "kapazitiven Tasten" 
bestehen aus einem isolierten Leiter, der positiv geschaltet wird, so 
bald der aufgelegte Finger an den darüber befindlichen Punkten gemessen 
werden soll. Die "Kathoden" werden über einen 1 oder 10 
Megohm-Widerstand kurzgeschlossen und werden durch den A/D-Wandler 
gemessen.
So könnte man z.B. mit 8 Analog-Eingängen und 8 Anoden 64 Sensor-Tasten 
realisieren. Würde so was funktionieren? Was für eine Scan-Frequenz kann 
bei so etwas genutzt werden?

Wenn es so einfach nicht funktioniert, mit was für Spezial-Chips kann 
man derart viele Sensor-Tasten recht flink abfragen?

dank für Eure Tipps!

von Meinereiner (Gast)


Lesenswert?


von Hartmut W. (minihawk)


Lesenswert?

Nun, das verlinkte ist eine Keyboard-Matrix-Abfrage für mechanische 
Tastaturen. Ich möchte ja versuchen, kapazitive Sensor-Tastaturen 
maxtrixmäßig abzufragen.

von Peter N. (alv)


Lesenswert?

Wie soll denn diese Tastatur genau funktionieren?

Ich kenne kapazitive Tasten nur als Platine mit IC drauf.

von Stefan F. (Gast)


Lesenswert?

Hartmut W. schrieb:
> Ich möchte nun gerne ein Keyboard mit vielen Tasten erbauen

Meinst du damit ein Musikinstrument?

Ich frage, weil man bei Musikinstrumenten (z.B. Klavier) die Finger auf 
den Tasten ruhen lassen kann, ohne dass sie darauf reagieren. Außerdem 
reagieren Touch Sensoren oft schon wenige mm vor der Berührung, 
allerdings nicht immer gleich.

Meiner Meinung nach braucht ein Klavier/Keyboard eine Erkennung der 
Anschlagsdynamik, um vernünftig zu funktionieren. Das wird mit einem 
kapazitiven Touch Sensor jedoch nicht realisierbar sein.

von Achim M. (minifloat)


Lesenswert?

Hartmut W. schrieb:
> Die "kapazitiven Tasten" bestehen aus einem isolierten Leiter, der
> positiv geschaltet wird, so bald der aufgelegte Finger an den darüber
> befindlichen Punkten gemessen werden soll.

Man muss also vorher wissen, wann der Finger kommt. Irgendwie ist deine 
Funktionsbeschreibung nicht vollständig. Wo hast du das Funktionsprinzip 
her?
Das alte Qtouch funktioniert doch anders?

Kapazitive Sensortasten. Entweder alle einzeln oder eine Taste besteht 
in Wirklichkeit aus zwei Sensorflächen.
1
 ___
2
|  //|
3
| // |
4
|//__|

Letzteres lässt sich wie eine Matrix anordnen.

Mit deinen 8 normalen kapazitiven Sensortasten gibt's 4×4 als Matrix.

mfg mf

: Bearbeitet durch User
von Hartmut W. (minihawk)


Lesenswert?

Das Ganze kommt daher:

https://www.instructables.com/Touchless-Keypad-DIY-Capacitive-Proximity-Sensors-/

und daher

https://playground.arduino.cc/Main/CapacitiveSensor/

Ja, ich möchte ein Musik-Keyboard erzeugen. Es gibt mittlerweile einige 
günstige Synths, die mit Touch-Keyboards arbeiten. Für viele Anwendungen 
kann auf die Anschlagsdynamik verzichtet werden.

Ich hatte da grad schon die Idee, wie man so etwas als Matrix 
implementieren könnte. Es wird ja die Touch-Fläche mit einem hochohmigen 
Widerstand gegen Masse kurzgeschlossen. Mit einer Diode könnte man die 
Felder niedrigohmig kurzschließen, die gerade nicht abgefragt werden 
sollen.

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Hartmut W. schrieb:
> Es gibt mittlerweile einige günstige Synths, die mit Touch-Keyboards
> arbeiten.

Ich denke, dass die ASICs verwenden, die direkt in der Lage sind, den 
Kram einzulesen. Aaber vielleicht gibt es da Patente, von denen man 
abkupfern kann.

Hartmut W. schrieb:
> Mit einer Diode könnte man die Felder niedrigohmig kurzschließen, die
> gerade nicht abgefragt werden sollen.

Die Diode hat, wenn sie sperrt, auch eine kleine Kapazität. Das würde 
sich aber nur auf die gerade eingelesene Taste auswirken.
Blöderweise muss die gerade eingelesene Tastenkapazität auch wieder 
entladen werden, das wird tricky.

Vielleicht lässt sich das mit Analogschaltern 4066 usw. lösen. Aber auch 
hier hat jeder Pin eines ICs ein paar pF Kapazität. Wegen Multiplex 
hängen immer mehrere an einem Touch-Eingang, auch wenn die Schalter 
nicht geschlossen sind.

Dann wäre da noch die Frage nach Reaktionszeit. Die ganze Matrix muss 
innerhalb 10msec...20msec einmal gelesen werden. Dazu kommt noch die 
Latenzzeit der Klangerzeugung, 10msec...20msec ist realistisch. Damit 
bist du schon im Bereich des Musikalisch gerade noch so erträglichen. 
Über den Daumen sind 20msec noch ok, ab 50 grob unbrauchbar.

Beispiel, 120bpm Viertelnote - "2 beats per second" - sind die 
Sechzehntelnoten bereits nur 125msec lang...

mfg mf

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Achim M. schrieb:
> Dann wäre da noch die Frage nach Reaktionszeit. Die ganze Matrix muss
> innerhalb 10msec...20msec einmal gelesen werden.
Zitat aus der Zeitschrift FOCUS 20/1999:

"Bis zu 16 Stunden pro Tag trainiert mancher Musik-Maniac seine 39 
Muskeln der Hand, die 27 Freiheitsgrade und somit mehrere Billionen 
Stellungen erlauben. Altenmüller hat gemessen, dass Musiker ihre Hände 
um das Zehnfache schneller und genauer einsetzen als gleichaltrige 
Normalbürger. Der Pianist Vladimir Horowitz drückte beim Trillern die 
Tasten bis zu dreizehnmal pro Sekunde abwechselnd mit Zeige- und 
Mittelfinger nieder. Maximale Ungenauigkeit im Rhythmus: drei 
Millisekunden."

von Hartmut W. (minihawk)


Lesenswert?

Nun, mir geht es natürlich nicht um ein Keyboard für das Spielen von 
Werken von Bach oder Beethoven (auch wenn ich die durchaus mit 
Synthesizern erst kürzlich wiedrgegeben habe), sondern um ein Keyboard 
für die Unterstützung während des Sound-Designs... :)

Was die Scanmöglichkeit angeht, so hatte ich an Metall-folien für die 
Tasten gedacht, die Matrixmäßig beschickt und gelsesen werden, und 
großflächige Metall-Folien darunter, die die inaktiven Tasten 
"ausblenden".

Ob das geht, eine Ahnung, ich werde mal einen kleinen Test wagen, mit 
vier mal 4 Tasten oder so.

von Andre (Gast)


Lesenswert?

Ich habe nur Erfahrung mit QTouch, eine eigene Implementierung habe ich 
noch nicht probiert.
QTouch in den neueren ATtinys ist super, das schaltet auch wirklich 
definiert erst bei Berührung, nicht irgendwo in der Luft. Es gibt dazu 
auch eine grafische Auswertung zum kalibrieren.

Deswegen wäre wahrscheinlich mein Ansatz: ATtiny mit möglichst vielen 
QTouch Kanälen raus suchen und über I2C zusammen schalten. Soweit ich 
weiß gab es welche mit bis zu acht Kanälen. Schwierig wird es vielleicht 
wenn die Tasten nah beieinander liegen, dann müssen die Gruppen evtl. 
andere Frequenzen bekommen.

von H. Eggert (Gast)


Lesenswert?

Es ginge vielleicht auch optisch. Ich hatte vor ein paar Jahren mal eine 
Industrie Anwendung in einem explosionsgeschützten Gehäuse mit einer 
11mm dicken Glasplatte vor der Tastatur. Die "Tastatur" bestand aus zwei 
nebeneinanderliegende IR Emitter und einer Photodiode in der Mitte die 
vorne durch eine IR Filterplatte als "Taste" versteckt waren. Wenn man 
nun den Finger auf das "Tastenfeld" legt, wird die reflektierte IR 
Strahlung von der PD erfasst. Die IR wurde synchron getaktet 
ausgewertet. Die ganze Anordnung funktioniert sehr zuverlässig, wenn 
auch etwas aufwendig und teuer im Verhältnis. Versuche mit kapazitiven 
Methoden verliefen leider vollkommen erfolglos.

von Sebastian (Gast)


Lesenswert?

Ich benutze hier den CAP1203 durch einen transparenten Gehäusedeckel 
hindurch. Das funktioniert recht zuverlässig. Minimale Latenz ist bei 
mir allerdings auch nicht wichtig ...

LG, Sebastian

von Hartmut W. (minihawk)


Lesenswert?

H. Eggert schrieb:
> Es ginge vielleicht auch optisch. Ich hatte vor ein paar Jahren
> mal eine
> Industrie Anwendung in einem explosionsgeschützten Gehäuse mit einer
> 11mm dicken Glasplatte vor der Tastatur. Die "Tastatur" bestand aus zwei
> nebeneinanderliegende IR Emitter und einer Photodiode in der Mitte die
> vorne durch eine IR Filterplatte als "Taste" versteckt waren. Wenn man
> nun den Finger auf das "Tastenfeld" legt, wird die reflektierte IR
> Strahlung von der PD erfasst. Die IR wurde synchron getaktet
> ausgewertet. Die ganze Anordnung funktioniert sehr zuverlässig, wenn
> auch etwas aufwendig und teuer im Verhältnis. Versuche mit kapazitiven
> Methoden verliefen leider vollkommen erfolglos.

Ich habe mal Mitte der 80er-Jahre einen "PC" bei einem bekannten 
gesehen, er hatte einen HP-Buisiness-Rechner geschenkt gekriegt, der war 
in die Jahre gekommen. Das Teil hatte einen "Touch-Bildschirm", ehrlich. 
Und das mit einem DOS-Monochrom-Bildschirm.
An den Rändern des Bildschirms waren LEDS (oder Laser) angebracht, mit 
entsprechenden Empfängern auf der Gegenseite, für X- und Y. Man konnte 
nun mit dem Finger auf ein Zeichen zeigen und so etwas bestätigen.
Ich habe auch schon an was optisches gedacht bei der Tastatur, aber noch 
keine Idee, wie man was umsetzen könnte.

Bzgl Qtouch, das muss ich mal recherchieren. Klingt interessant.

von Peter N. (alv)


Lesenswert?

Hartmut W. schrieb:
> Ich habe auch schon an was optisches gedacht bei der Tastatur, aber noch
> keine Idee, wie man was umsetzen könnte.

Vielleicht Reflexlichtschranken für jedes Testenfeld?

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
Noch kein Account? Hier anmelden.