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.
Antworten:
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.
quelle
analogRead
von Arduino so einfach macht . [1]: pjrc.com/teensy/teensyLC.htmlDie 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.
quelle
Normalerweise wird die Schlüsselgeschwindigkeit berechnet, indem die Zeit zwischen dem normalerweise geschlossenen Aufwärtsschalter und dem normalerweise offenen Abwärtsschalter gemessen wird.
simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab
Abbildung 1. Ein Tastaturkontakt vor dem Herstellen wird normalerweise zur Geschwindigkeitsmessung verwendet.
In diesem Fall müssen Sie den normalerweise geschlossenen Kontakt mechanisch so anordnen, dass er in den letzten mm des Hubs bricht.
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:
Deshalb habe ich vorgeschlagen, den Umschalter in den letzten paar mm Weg zu aktivieren.
quelle
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:
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
quelle
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.
quelle
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.
quelle
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".
quelle
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
quelle
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.
quelle