Welcher lineare Sensor für eine Tastatur? [geschlossen]


8

Ich versuche, eine geschwindigkeitsabhängige Tastatur zum Abspielen von Musik zu erstellen.

Ich muss die Position jeder Taste messen, um zu wissen, wie laut der Ton sein sollte.

Die Lautstärke des Tons ist eine Funktion der Geschwindigkeit der Tasten am Ende des Abstiegs. Ich weiß, dass die Position durch Integration aus der Geschwindigkeit wiederhergestellt werden kann.

Was wäre der billigste und einfachste und dennoch einigermaßen präzise Weg, dies zu tun?

Ich weiß nicht genau, was "einigermaßen präzise" im Kontext bedeuten würde. Ich muss es testen.

Die Länge der maximalen Verschiebung beträgt ca. 2 cm.

BEARBEITEN: Nicht wie einige Antworten vermuten lassen, ist die Lautstärke NICHT eine Funktion der mittleren Geschwindigkeit der Taste.

EDIT2: Die Lautstärke ist eine Funktion der Hammergeschwindigkeit in dem Moment, in dem sie auf die Saite trifft, aber die Taste drückt den Hammer erst am Ende ihres Weges. Es ist wirklich so, als würde man einen Ball gegen eine Wand werfen: Der Ball verlässt die Hand in einem Moment, bevor er gegen die Wand schlägt.


4
Sie können eine IR-Diode und eine Fotodiode nebeneinander unter dem Schlüssel verwenden, wobei die Fotodiode das reflektierte Licht misst. Je niedriger die Position des Schlüssels ist, desto mehr reflektiertes Licht erreicht die Fotodiode. Wandeln Sie dann den Fotostrom mit einem Transimpedanzverstärker in eine Spannung um. Sie müssen herumspielen, um zu sehen, welche Spannung oder Spannungsänderung welcher Lautstärke entspricht.
Jusaca

Haben Sie darüber nachgedacht, auf jeder Taste einen Beschleunigungsmesser anzubringen? Durch die Integration der Beschleunigung erhalten Sie Geschwindigkeit und durch die Integration der Geschwindigkeit erhalten Sie Position. Da Sie mit kurzen Entfernungen und Zeiträumen zu tun haben, können Sie wahrscheinlich die kleinen Versatzfehler der Beschleunigungsmesser ignorieren.
Brhans

1
@cat Ich bin mit Launchpads vertraut und habe immer noch keine Ahnung, wovon Sie sprechen. Können Sie etwas hilfreicher sein?
Elliot Alderson

1
Ja, ich glaube du liegst falsch. Vergleichen Sie einen Beschleunigungsmesser von 1 USD mit einem einzelnen mechanischen Sensor an jeder Taste. Denken Sie an die Zuverlässigkeit von null beweglichen Teilen (vorausgesetzt, Sie führen die Verbindungen ordnungsgemäß durch). Sie benötigen einen einigermaßen leistungsfähigen Mikrocontroller und ein wenig Erfahrung im Schreiben von Firmware, um dies zu erreichen.
Brhans

1
@jusaca sieht so aus, als wäre das bereits ein Produkt auf dem Markt: deskthority.net/wiki/Adomax_Flaretech :)
user60561

Antworten:


2

Wie wäre es mit kapazitiver Abtastung? Kleben Sie etwas Aluminiumfolie auf die Unterseite der Taste, erden Sie die Unterseite der Tastatur und messen Sie die Anstiegszeit über einen 100k-Widerstand.

Diese Methode kann nahezu willkürlich präzisiert werden, solange Ihr Prozessor schnell genug ist, um die Kapazitätsänderung zu unterscheiden.

Ich habe die Schaltung nicht sehr gut erklärt. Sie verbinden einen digitalen Ausgang über einen hochwertigen Widerstand mit dem Schlüssel, stellen ihn auf niedrig, um Streuladungen zu entladen, und stellen ihn dann auf hoch. Sie verbinden auch einen digitalen Eingang direkt mit dem Schlüssel. Die Kapazität wird langsam über den Widerstand aufgeladen, und Sie legen fest, wie lange es dauert, bis der digitale Eingang eingeschaltet wird. Diese Zeit ist gleich der RC-Zeitkonstante der Schaltung.


Also müsste ich AC drin geben, nicht wahr?
Jonas Daverio

1
@ JonasDaverio Ich bin nicht sicher, an was Sie die Schlüssel anschließen, aber ein GPIO pro Schlüssel würde ausreichen.
0xDBFB7

Ich bin mir nicht sicher, wie ich die Kapazität messen soll. Eine Platte ist mit Masse verbunden und die andere ist mit was verbunden? Eine Konstantspannungsquelle?
Jonas Daverio

1
Der Teensy LC-Mikrocontroller [1] verfügt über 11 kapazitive Sensoreingänge und eine C ++ - Bibliothek, die das Aufrufen analogReadvon Arduino so einfach macht . [1]: pjrc.com/teensy/teensyLC.html
hoosierEE

1
@ JonasDaverio sorry, ich habe die Schaltung nicht sehr gut erklärt. Sie verbinden einen digitalen Ausgang über einen hochwertigen Widerstand mit dem Schlüssel, stellen ihn auf niedrig, um Streuladungen zu entladen, und stellen ihn dann auf hoch. Sie verbinden auch einen digitalen Eingang direkt mit dem Schlüssel. Die Kapazität wird langsam über den Widerstand aufgeladen, und Sie legen fest, wie lange es dauert, bis der digitale Eingang eingeschaltet wird. Diese Zeit ist gleich der RC-Zeitkonstante der Schaltung.
0xDBFB7

16

Die meisten Tastaturen verwenden einfach zwei Kontakte pro Taste, die so konfiguriert sind, dass sie an verschiedenen Positionen im Tastenhub geschlossen (oder geöffnet) werden. Sie schätzen die Geschwindigkeit aus der Zeit, die zwischen den beiden Ereignissen vergeht. Sogar die ausgefallenen gewichteten "Piano Action" -Tastaturen verwenden diese grundlegende Erfassungsmethode.

Der Versuch, Position und / oder Geschwindigkeit direkt zu messen, klingt nach massivem Overkill.


3
Ich denke, diese Methode ist unzureichend. Hier ist der Grund: Wenn ich die Taste langsam die Hälfte des Pfades nach unten und dann schnell bis zum Ende nach unten drücke, ist der Klang auf einem echten Klavier laut, und diese Methode würde denken, dass die Taste sehr langsam gedrückt wurde, und daher a ausgeben wirklich leiser Klang. Wenn ich eine Note wiederholen möchte, müsste ich außerdem die Tonart vollständig in ihre ursprüngliche Position zurückkehren lassen, was bei einem echten Klavier überhaupt nicht der Fall ist.
Jonas Daverio

9
Wenn sich ein Kontakt unten und der andere Kontakt ganz unten befindet, haben Sie dieses Problem nicht.
George White

1
Jedes echte Instrument hat seine Nuancen und Grenzen. Musiker entwickeln Techniken, um diese für musikalische Effekte zu nutzen. Der Spieler wird bald lernen, bis zum Ende des Strichs durchzuhalten, um den gewünschten Effekt zu erzielen.
Transistor

1
@Transistor Ja, aber mein Ziel hier ist es, ein echtes Klavier so nah wie möglich zu simulieren. Es gibt bereits viele Tastaturen, aber ich habe nie eine gefunden, die das getan hat. Es gibt jedoch wahrscheinlich einige wirklich teure.
Jonas Daverio

1
Der Punkt wäre, einen MIDI-Ausgang und die Möglichkeit zu haben, mehr Tasten (für die Mikrotonalität) zu haben, während die Empfindung eines echten Klaviers erhalten bleibt. Ich weiß, dass dies sowieso nie erreicht wird. Und ich möchte es auch relativ billig halten, aber wenn ich nicht kann, bleibe ich bei der regulären Lösung.
Jonas Daverio

9

Ich muss die Position jeder Taste messen, um zu wissen, wie laut der Ton sein sollte.

Normalerweise wird die Schlüsselgeschwindigkeit berechnet, indem die Zeit zwischen dem normalerweise geschlossenen Aufwärtsschalter und dem normalerweise offenen Abwärtsschalter gemessen wird.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Abbildung 1. Ein Tastaturkontakt vor dem Herstellen wird normalerweise zur Geschwindigkeitsmessung verwendet.

Die Lautstärke des Tons hängt nicht nur von der Geschwindigkeit der Tasten am Ende des Abstiegs ab. ... Die Länge der maximalen Verschiebung beträgt ca. 2 cm.

In diesem Fall müssen Sie den normalerweise geschlossenen Kontakt mechanisch so anordnen, dass er in den letzten mm des Hubs bricht.

schematisch

simulieren Sie diese Schaltung

Abbildung 2. Die mechanische Schaltanordnung.

Es scheint mir, dass Ihre beste Wahl darin besteht, ein vorhandenes MIDI-Basspedal an Ihre Zwecke anzupassen.


Kommentar von OP zu Dave Tweed:

Ich denke, diese Methode ist unzureichend. Hier ist der Grund: Wenn ich die Taste langsam die Hälfte des Pfades nach unten und dann schnell bis zum Ende nach unten drücke, ist der Klang auf einem echten Klavier laut, und diese Methode würde denken, dass die Taste sehr langsam gedrückt wurde, und daher a ausgeben wirklich leiser Klang. Wenn ich eine Note wiederholen möchte, müsste ich außerdem die Tonart vollständig in ihre ursprüngliche Position zurückkehren lassen, was bei einem echten Klavier überhaupt nicht der Fall ist.

Deshalb habe ich vorgeschlagen, den Umschalter in den letzten paar mm Weg zu aktivieren.


Ich antwortete zurück, warum ich denke, dass dies immer noch unzureichend ist.
Jonas Daverio

Ich denke, Sie haben falsch verstanden, was ich geschrieben habe. Ich meinte "Die Lautstärke des Klangs hängt NICHT nur von der Geschwindigkeit der Tasten am Ende des Abstiegs ab."
Jonas Daverio

In der Tat hängt die Energie von der Geschwindigkeit über die Zeitdauer des Aufpralls ab, die eine Funktion der Beschleunigung ist (und des Ruckes, wenn Sie keine konstante Beschleunigung annehmen). Sind Sie sich jedoch sicher, dass dies einen großen Unterschied macht? Können Sie die Besonderheiten charakterisieren, die Sie haben oder suchen? Ich weiß nicht, was das sein würde. Dies kann von der Auswirkung abhängen, die es auf den Algorithmus haben soll.
Vektorium

@ JonasDaverio Beziehen Sie sich auf Hemmung? Digitale Klaviere erreichen dies mit einem dritten Sensor, der leicht über der Stelle abfeuert, an der die Taste unten ist (und über dem Sensor, der die Note ertönt). Wenn die Taste nicht hoch genug ist, um diesen dritten Sensor freizugeben, ertönt beim Drücken der Taste keine zweite Note, genau wie bei einem echten Klavier der Hammer nicht losgelassen wird, es sei denn, die Taste ist hoch genug angehoben.
DKNguyen

8

Sie sollten sich analoge Tastaturen ansehen. Schauen Sie sich dieses Video an . Dies ist nur ein Beispiel für ein Konzept.

Bearbeiten: Wenn optische Schalter bei Ihnen nicht funktionieren, sehen Sie sich Folgendes an:

Geben Sie hier die Bildbeschreibung ein

Unter jeder Tastenkappe befindet sich eine Leiterplatte mit Leiterplatte. Wenn Sie die Knopfspule drücken, wird die Induktivitätsänderung gemessen, die durch das Zusammendrücken und Dekomprimieren der Schlüsselfeder verursacht wird. Daher können Sie die Schalterstellung ziemlich genau ablesen.

Quelle:
Reddit
Imgur


Anscheinend verwenden sie ein Paar IR-LED und einen Photosensor: blog.wooting.nl/flaretech-the-optical-keyboard-switch Ich bin mir jedoch nicht sicher, ob sie die Verzögerung zwischen der Emission und der Erkennung messen oder ob sie messen die Intensität des Lichts, das durch den Tunnel fallen könnte.
Jonas Daverio

Ich habe das nur für das Beispiel einer analogen Tastatur verlinkt. Sie können einen Blick auf reddit.com/r/MechanicalKeyboards/comments/9ii6gw/… und imgur.com/gallery/ImrH7nO werfen . Ich bin mit dem Thema nicht allzu vertraut und versuche nur zu helfen, dich in die richtige Richtung zu bringen :)
Matt

1
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - Von der Überprüfung
Blair Fonville

1
@BlairFonville Fair genug. Lassen Sie es mich zusammenfassen. Unter jeder Tastenkappe befindet sich eine Leiterplatte mit Leiterplatte. Wenn Sie die Knopfspule drücken, wird die Induktivitätsänderung gemessen, die durch das Zusammendrücken und Dekomprimieren der Schlüsselfeder verursacht wird. Daher können Sie die Schalterposition ziemlich genau ablesen.
Matt

7

Wenn die wichtige Variable der Aufprall eines "Hammers" ist, den Sie emulieren möchten, ziehen Sie Piezosensoren in Betracht, mit denen Sie dies direkt messen können. Sie erzeugen einen Impuls, dessen Amplitude vom Aufprallimpuls abhängt.


3

Eine Option könnten Hallsensoren sein, die die Stärke eines Magnetfelds erfassen. Es gibt verschiedene Arten von Hallsensoren für die digitale und analoge Erfassung. Sie benötigen einen mit analogen Sensoren. Zum Beispiel kostet SI7211 ungefähr 0,80 USD.

Sie benötigen auch einen kleinen Magneten unter jedem Schlüssel. Wenn sich der Magnet dem Sensor nähert, steigt das Magnetfeld an, wodurch sich die Ausgangsspannung des Sensors erhöht.


1
Anscheinend verwenden sie es auf einigen Musiktastaturen. Ich denke, das ist eine wirklich einfache und gute Lösung. Ich werde die Kosten mit der Lösung von 0xDBFB7 vergleichen.
Jonas Daverio

2

Sie können dies als hybrides digitales / analoges Instrument behandeln, indem Sie Mikrofone [1] in der Tastatur platzieren, die auf den Klang der Tasten abgestimmt sind. Die Signale von den Mikrofonen ergänzen den herkömmlichen schalterbasierten Eingang. Der Schalter zeigt an, welche Taste gedrückt wurde, und die Mikrofone zeigen an, wie laut der letzte Tastendruck war.

2 oder mehr Mikrofone entlang der Tastaturlänge würden das Dekodieren eines Akkords mit lauten / tiefen Noten und leisen / hohen Noten und umgekehrt ermöglichen.

[1]: Ich sage immer "Mikrofon", aber ich meine "generisches Vibrationserfassungsgerät".


So funktioniert eine E-Gitarre, denke ich. Die Frage erwähnte jedoch keine akustischen Teile, nur Tasten.
Vektorium

0

Möglicherweise möchten Sie variable Federrückstellwiderstände, Federrückstellpotentiometer oder lineare Positionssensoren untersuchen. Hier ist ein Beispiel: http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0

Eine andere Möglichkeit kann darin bestehen, einen kleinen Drehgeber zu verwenden (und die lineare Tastendruckbewegung mechanisch in eine Drehbewegung umzuwandeln). Der Encoder würde einen oder mehrere Sätze von Impulsen ausgeben, wenn sich die Welle dreht. Eine höhere Pulsfrequenz würde ein Drücken mit höherer Geschwindigkeit anzeigen. Die Geberposition könnte direkt verfolgt werden, wenn die Impulsgruppen an zusätzliche digitale Logik gesendet werden. Hier ist ein Beispielteil: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbJJJKJJJJJJJJJJJJJJJJKJJJKJJJKJJJKJJJKJJJJKJJKJJKJJJJKJJKJJKJJKJJK


0

Wenn Sie eine hohe Genauigkeit zu einem vernünftigen Preis wünschen, können Sie einen Linearcodierer verwenden , einen grau codierten Streifen anbringen (den Sie selbst mit einem Laserdrucker auf ein transparentes Blatt drucken, dann zerschneiden und an jedem Schlüssel einen anbringen) - mehr Einzelheiten darüber , wie sie unter Drehgeber arbeiten hier . Auf diese Weise benötigen Sie zwei (möglicherweise drei, damit Sie eine genaue Anzeige der Endposition erhalten) digitale Leitungen pro Taste. Auf diese Weise können Sie die Geschwindigkeit mit sehr guter Genauigkeit und gleichmäßiger Position messen, wenn dies relevant ist. Dies hat den Vorteil, dass Sie eine alte Tastatur (sogar eine akustische Tastatur) nachrüsten können.

Achtung: Als ich ein Teenager war (vor langer Zeit), habe ich mich lange gefragt, ob ich eine realistische Tastatur billiger machen kann als sie zu kaufen. Damals schien es unwahrscheinlich und heute noch weniger wahrscheinlich. Die kostengünstige Methode ist daher wahrscheinlich "eine geschwindigkeitsabhängige Tastatur kaufen und auseinander nehmen", was keinen Spaß macht.


1
Ja, ich tue nicht so, als wäre dies billiger als ein kommerzielles, aber ich versuche, eine spezielle Anordnung von Schlüsseln zu konstruieren, die es auf dem Markt nicht gibt. Für Ihre Antwort bin ich mir nicht sicher, was Sie meinen. Meinen Sie damit, einen linearen Encoder von Grund auf neu zu erstellen? Ich verstehe nicht, wozu der transparente Streifen gut ist. Und 3 Bits scheinen etwas niedrig zu sein, um die Position genau zu codieren und die Geschwindigkeit daraus abzuleiten.
Jonas Daverio

Ein linearer Encoder liefert Ihnen eine Geschwindigkeit von nur 2 Bit (siehe Links) mit einer hohen Auflösung (Sie könnten sehr leicht eine Position auf 256stel der Verfahrstrecke erreichen). Wenn Sie die Zeitspanne zwischen den Graucode-Bitübergängen zeitlich festlegen, erhalten Sie ein sehr genaues Bild der Geschwindigkeit in verschiedenen Phasen der Bewegung des Schlüssels. Das 3. Bit gibt Ihnen ein genaues Signal für Hammerschläge. Ich schlug vor, dass Sie einen optischen Lesegerät für Linearcodierer mit Ihrem eigenen transparenten Streifen verwenden.
Abligh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.