Druck- / Kraftsensor

7

Einer meiner Schüler plant, ein einfaches musikalisches Keyboard mit PIC-Mikrocontrollern mit MIDI-Ausgang zu erstellen.

Das Hauptproblem betrifft jetzt den Druck- / Kraftsensor. Ich habe in dieser Frage zu Flexiforce eine gute Alternative gefunden .

Ich frage mich, ob es eine einfachere Sensoralternative ohne Ampops gibt, die für den AD-Eingang verwendet werden kann.

Vielen Dank.

RMAAlmeida
quelle

Antworten:

2

Eine einfache Tastatur hätte wahrscheinlich nicht einmal einen Kraftsensor. Die meisten Pro-Tastaturen verfügen nur über eine Geschwindigkeitserkennung, dh sie erkennen zwei separate Positionen (losgelassen und gedrückt) und bestimmen die Geschwindigkeit aus der Zeit dazwischen. Von denen, die über eine Druckmessung verfügen, ist diese häufig nicht individuell pro Taste. Siehe Kanaldruck . Ich würde wirklich gerne Ihre Ergebnisse sehen!

Yann Vernier
quelle
Gute Einblicke! Der Ein / Aus-Zustand für die Geschwindigkeitserfassung kann ausreichen! Ich werde mit meinen Schülern testen und die Ergebnisse hier veröffentlichen.
RMAAlmeida
Ich dachte, Aftertouch sei der Hauptdruck. Es gibt auch (teurere) Tastaturen mit polyphonem Aftertouch.
Scott Seidman
Alles hängt davon ab, wie Sie "einfach" definieren. Eine einfache Tastatur kann beispielsweise keine beweglichen Teile haben - buchstäblich nicht einmal einen beweglichen Kolben in einem Schalter. Das LinnStrument wäre ein Beispiel für ein solches Design. Die Tastaturen mit totalem Druck tun dies, weil ihre Designer nicht wussten, wie sie den Druck pro Taste billig erfassen können. Es ist nicht einfacher, Druck unter allen Tasten gleichzeitig zu erfassen. Die mechanische Seite gibt sicherlich Anlass zur Sorge.
Stellen Sie Monica
2

Diese Frage scheint mit einer verwandt zu sein, die ich vor einiger Zeit gestellt habe . Wenn Genauigkeit nicht Ihr Hauptanliegen ist, können einfache Spannungsteiler ausreichen. In dieser Anleitung erfahren Sie, wie Sie aus antistatischem, leitfähigem Schaum einen sehr billigen Drucksensor herstellen.

bpijls
quelle
Dies ist als billiger Kraftsensor sehr schön, scheint aber etwas kompliziert zu sein, um die "Piano" -Tasten damit herzustellen.
RMAAlmeida
2

Es gibt mehrere Möglichkeiten, dies zu tun. Ich werde ein Design erklären, das sehr kostengünstig und ziemlich genial ist. Es ist das Design von LinnStrument . Sie können einen Blick auf die Sensorplatine werfen . Da ich weder das Sensordesign noch ein LinnStrument besessen habe, ist das Folgende alles ein Ergebnis des Reverse Engineering und entspricht möglicherweise nicht dem ursprünglichen Design. Sicherlich nicht die mechanische und Materialauswahl.

TL; DR: Es ist möglich, eine LinnStrument-Sensorebene nur mit MCU-Pins und einem Widerstand pro Spalte abzutasten. Es werden keine externen Operationsverstärker oder Multiplexer benötigt.

Mechanisch

Die Sensorplatine verwendet ein piezoresistives Material wie Velostat . Ein solches Material verringert seinen Volumenwiderstand mit zunehmendem Druck. Die Streifen des Materials werden in ein Gitter gelegt und gescannt, um den Druck und die Position innerhalb jeder Zelle zu messen. Darauf werde ich weiter unten näher eingehen.

Ein Prototypentwurf könnte von oben nach unten wie folgt aussehen:

  1. selbstklebende Kunststofffolienabdeckung (große Klebefolie),
  2. Säulenstreifen,
  3. doppelseitige Klebefolie mit großen Löchern, die an jedem Zeilen-Spalten-Schnittpunkt ausgeschnitten sind, um einen Luftspalt zwischen Zeilen und Spalten zu schaffen.
  4. Reihenstreifen,
  5. eine nicht leitende Grundplatte (z. B. eine Acrylplatte), die mit doppelseitigem Klebstoff bedeckt ist. Die Grundplatte sollte einen Rand von 1 / 2-3 / 4 Zoll um das Gitter bieten, damit die Anschlüsse ordnungsgemäß beibehalten werden können, ohne die Zeilen und Spalten zu belasten.

Auf dieser Sensoranordnung kann eine dünne Silikonfolie angebracht werden, um ein weicheres Gefühl zu erzielen.

Der Schnittpunkt jeder Zeile und Spalte wird als Zelle bezeichnet.

Beim Zusammenbau ist es ziemlich wichtig, dass die Säulen gut an der oberen Folienabdeckung haften und die Reihen gut an der Grundplatte haften. Dies stellt sicher, dass der Luftspalt nicht vorzeitig überbrückt wird. Daher sollten Sie (1) + (2) und (4) + (5) separat zusammenbauen, dann (3) auf einem der beiden installieren und dann einklemmen.

Wenn Sie möchten, dass sich die Zellen federnd und etwas "seltsam" anfühlen, können Sie den Luftspalt geschlossen lassen und Luft darin einschließen. Alternativ können Sie ein kleines zentrales Loch durch jede Zelle in der (4) + (5) -Baugruppe schneiden, bevor Sie sie mit dem Rest des Sensors verbinden. Dies entlüftet den Luftspalt und bietet ein anderes Gefühl.

Ein halber Zoll an jedem Ende jeder Reihe und jedes Spaltenstreifens sollte aus diesem Sandwich herausragen. Kupferband mit leitfähigem Klebstoff wird verwendet, um Verbindungen zu den Enden jeder Reihe und jedes Säulenstreifens herzustellen. Stellen Sie sicher, dass Sie die Verbindungsdrähte an das Kupferband anlöten, bevor Sie sie an Velostat anschließen. Velostat hat einen sehr niedrigen Schmelzpunkt . Sie werden Ihre sorgfältig zusammengebaute Sensorbaugruppe ruinieren, wenn Sie das vergessen (ja, ich weiß aus eigener Erfahrung).

Bei der Montage der Reihen- und Säulenstreifen ist es wichtig, diese leicht vorzuspannen, damit sie beim Auftragen auf die Klebstoffe vollkommen flach sind.

Soweit ich das beurteilen kann, ist dies mehr oder weniger das Design von Roger Linn, da das Bild der Sensorplatine und die Firmware als Referenz verwendet werden können.

Mit ausgiebigen Experimenten sollten Sie in der Lage sein, die Velostat-Streifen mit Cricut zu schneiden , während Sie bereits auf die Abdeckung oder die Grundplatte laminiert sind. Nach dem Schneiden können Sie die dünnen Isolationsstreifen zwischen den Zeilen / Spalten abziehen. Dies wäre nützlich, wenn Sie einen genaueren Sensor haben möchten, ohne jedes Mal zu schwören, wenn eine Spalte oder Zeile auf den Klebstoff geklebt wird, bevor Sie ihn richtig positioniert haben :)

Einschränkungen

Wenn Sie vier Ecken eines Rechtecks ​​in der Sensorebene betätigen, verkürzen Sie zwei Zeilen und zwei Spalten und schalten sie so effektiv offline und für andere Messungen unbrauchbar.

Um diese Einschränkung zu überwinden, müssten Abhebungen (Verbindungspunkte) zwischen den Zeilen in jeder Spalte und nicht nur an den Enden jeder Spalte erfolgen. Für eine 4-Zeilen-Matrix benötigen Sie 5 Verbindungen in jeder Spalte - an jedem Ende und zwischen jeder Zeile. Dies würde das Design erschweren.

Verweise

Ein grundlegendes, Single-Cell - Design für Z-Achsen - Mess zu sehen ist hier . Da es ein einzelnes Velostat-Quadrat ohne separate Zeilen- / Spaltenabnehmer hat, kann es die Druckposition nicht erfassen. Eine einfache Modifikation dieses FSR wäre das Anbringen schmaler Säulenabnehmer entlang der oberen / unteren Kanten an der Vorderseite und entlang der linken / rechten Kanten an der Rückseite. Es würde das Auslesen von X-, Y- und Z-Werten ermöglichen.

Scannen

Z (Druck) Erkennung

  1. Beide Enden einer Reihe sind geerdet.
  2. Beide Enden einer Säule sind an denselben A / D-Kanaleingang und einen Pull-up-Widerstand (Teilerwiderstand) angeschlossen. Der Widerstand bildet die obere Hälfte eines Spannungsteilers, die untere Hälfte ist der druckempfindliche Widerstand zwischen der Reihe und der Säule. Die Empfindlichkeit jeder Gitterposition ist unterschiedlich, daher muss ein Multiplikator pro Position angewendet werden, um den Messwert zu normalisieren.

Sobald Sie eine Berührung in einer Zelle erkannt haben, können Sie mehr tun: Sie können die Position erkennen der Presse in der Zelle erkennen. So können Sie Pitch Bending und Texture Modulation durchführen.

X-Position innerhalb der Zelle

  1. Die Enden einer Reihe sind mit 0 V und VCC verbunden und bilden einen Positions-Spannungs-Wandler.
  2. Beide Enden einer Spalte sind mit demselben A / D-Kanal verbunden.

Y-Position mit der Zelle

  1. Die Enden einer Säule sind mit 0 V und VCC verbunden und bilden einen Positions-Spannungs-Wandler.
  2. Beide Enden einer Reihe sind mit demselben A / D-Kanal verbunden.

Wie geht das billig?

Die Sensoroberfläche selbst kann für Materialien unter 100 US-Dollar zusammengebaut werden, viel weniger, wenn Sie eine kleine Oberfläche anstreben. Die wichtigsten Werkzeuge, die Sie benötigen, sind ein X-Acto-Messer mit scharfen Klingen und ein Stahllineal zum Schneiden der Materialien. Einige Experimente an einer einzelnen Zelle sind erforderlich, um die bestimmten verwendeten Materialien zu bewerten.

Eine geniale Methode zum Scannen eines solchen Gitters ohne Signalaufbereitung ist unten angegeben. Dies ist eine Vereinfachung gegenüber dem ursprünglichen Design, das analoge Schalter und einige Signalkonditionierungen verwendet. Es arbeitet immer noch angemessen und hat den Vorteil, dass bis auf wenige Widerstände keine Komponenten außerhalb der MCU erforderlich sind. Die Annahme ist, dass Zeilen physikalisch nicht kürzer als Spalten sind - dies hilft bei der Genauigkeit der Z-Erfassung. Sie können es natürlich in jeder gewünschten Ausrichtung spielen.

Alles, was wir für die Schnittstelle zur Sensoroberfläche benötigen, sind die GPIO-Pins: Es werden keine externen Schalter benötigt!

Der Sensor arbeitet auch dann angemessen, wenn Sie den A / D-Kanal nur an ein Ende einer Zeile oder Spalte anschließen und das andere Ende schweben lassen. Dies ermöglicht es uns, die Pin-Multiplexer-Funktionalität zu verwenden, die in den meisten MCUs mit analogen Eingängen vorhanden ist.

Die Erfassung einer Zelle funktioniert wie folgt, wobei alle anderen Pins als Eingänge festgelegt sind:

  1. Z: beide Enden der Reihe auf 0 V; ein Ende der Säule nach A / D und hochziehen.
  2. X: ein Ende der Reihe auf 0 V, ein anderes Ende auf VCC; ein Ende der Spalte zu A / D.
  3. Y: ein Ende der Säule auf 0 V, ein anderes Ende auf VCC; ein Ende der Reihe zu A / D.

Angenommen, wir haben ein 4x4-Raster und 8 + 8 + 4 GPIO-Pins, von denen 8 eine A / D-Wandlung durchführen können. Das Sensorgitter verfügt über 16 direkte Verbindungen zum GPIO: zwei Enden von jeweils 4 Zeilen und Spalten. Beschriften wir die Zeilenenden als 0L, 0R bis 3L, 3R für das linke und rechte Ende der Zeilen 0 bis 3. Beschriften wir die Spaltenenden als 0T, 0B bis 3T, 3B für das obere und untere Ende der Spalten 0 bis 3.

  1. Die r L und c Enden T gehen zu GPIO-Pins, die als A / D-Eingänge dienen können.
  2. Die r R und c Enden B gehen zu regulären GPIO-Pins.
  3. Jedes c T ist über einen Pull-up-Widerstand mit einem anderen GPIO-Pin verbunden. Wir können diese Pins c D nennen.

Die Erfassung einer Zelle mit gegebenen r ow und c PALTE wird dann durch einfache Rekonfiguration GPIOs erreicht. Der Trick besteht darin, zu erkennen, dass jedes als Eingang konfigurierte GPIO effektiv getrennt wird .

  1. Z.

    • r L und r R als Ausgang gesetzt, auf 0 getrieben.
    • c B als Eingang eingestellt.
    • c T als A / D-Eingang eingestellt.
    • c D als Ausgang eingestellt und auf 1 angesteuert. Dadurch wird die obere Hälfte des Spannungsteilers mit der Zelle verbunden.
    • Alle anderen werden als Eingänge festgelegt.
    • Der A / D-Wert ist proportional zur Z-Kraft mit unterschiedlichen Maßstäben für jede Zelle.
    • Sobald eine bestimmte Zelle als "berührt" klassifiziert ist, können Sie auch ihren X- und Y-Wert erhalten.
  2. X.

    • r L als Ausgang gesetzt, auf 0 getrieben.
    • r R als Ausgang gesetzt, auf 1 getrieben.
    • c B als Eingang eingestellt.
    • c T als A / D-Eingang eingestellt.
    • Alle anderen werden als Eingänge festgelegt.
    • Der A / D-Wert ist proportional zur X-Position.
  3. Y.

    • c B als Ausgang gesetzt, auf 0 getrieben.
    • c T als Ausgang gesetzt, auf 1 getrieben.
    • r L als Eingang eingestellt.
    • r R als A / D-Eingang eingestellt.
    • Alle anderen werden als Eingänge festgelegt.
    • Der A / D-Wert ist proportional zur Y-Position.

Die Verfolgung einer Berührung zwischen Zellen ist logisch, kann jedoch ignoriert werden, wenn der Sensor mit großen Zellen ausgestattet ist - beispielsweise 1 x 1 Zoll.

Alle GPIO-Pins sollten für den Hochstrom-Antriebsmodus konfiguriert sein, um ihre Impedanz zu senken und die Empfindlichkeit zu verbessern.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

schematisch

simulieren Sie diese Schaltung

Abschließend

Wie Sie sehen, habe ich beschlossen, eine für weniger als 1,5.000 US-Dollar für Aufkleber für mich selbst herzustellen und dabei ein bisschen Spaß zu haben :)

Wenn Ihr Schüler die Open-Source-Firmware von LinnStrument mit minimalen Änderungen nutzen möchte, könnte das Design auf Arduino Due mit einigen externen Analogschaltern und einem externen 12-Bit-A / D-Wandler basieren . Das ursprüngliche Design verwendet ADS7883 , aber es ist eine einfache Änderung an nur einer Funktion, um einen anderen Konverter zu verwenden. Der Quellcode sollte auf die meisten Plattformen mit einem C ++ - Compiler portierbar sein, sofern er schnell genug ist.

Setzen Sie Monica wieder ein
quelle
0

Kraftmesser sind grundsätzlich variable Widerstände. Sie ändern ihren Widerstand relativ zu einer ausgeübten Kraft oder einem ausgeübten Druck.

Das Problem bei der Erkennung liegt in der Variation des Widerstands relativ zur ausgeübten Kraft. Dies ist nicht großartig, daher sind häufig eine gute Nachweismethode und Verstärkung erforderlich.

Eine Wheatstone-Brücke ist eine wirklich gute Schaltung, mit der kleine Widerstandsänderungen in Spannungsänderungen umgewandelt werden können.

Eine einfache, aber grobe Methode besteht darin, den Ausgang der Wheatstone-Brücke mit Ihrem A / D-Eingang zu verbinden, der das Delta V messen kann. Alternativ können Sie die beiden Ausgänge möglicherweise sogar puffern und mit einigen in einen Komparator einspeisen Hysterese und dies kann Ihnen eine binäre Ausgabe geben. Sehr grob, ermöglicht jedoch die Erkennung von Kraft / keine ausgeübte Kraft.

Wenn Sie andererseits wissen möchten, wie viel Kraft ausgeübt wird, müssen Sie eine Analyse durchführen, um die Spannungsänderung in Bezug auf die Druckänderung zu ermitteln. Die Ableitung der Wheatstone-Brückengleichungen ist etwas schwierig, aber es gibt viele Zusammenfassungen in den Interwebs. Sie benötigen eine gute Anregungsquelle.

Wenn Sie die Kraft / den Druck kennen, die Sie erfassen möchten, können Sie die Änderung des Widerstands und dann die Änderung der Spannung berechnen und diese mit der Auflösung des A / D vergleichen. Wenn Sie nach groben Änderungen suchen, kann dies ausreichend sein.

Wenn Sie einen genaueren Wert suchen, benötigen Sie einen Instrumentenverstärker, um die Differenzverstärkung durchzuführen, und Sie können diesen in Ihren A / D einspeisen. Texas Instruments macht einige der besten IAs in Bezug auf CMRR und PSRR gegen Frequenz. Diese wurden ursprünglich von Burr Brown hergestellt, bevor TI sie kaufte.

Für die Präzisionsmessung muss Ihre Brücke die Widerstände so nah wie möglich an Ihrem Dehnungsmessstreifen abschließen, um sicherzustellen, dass Sie Temperaturschwankungen ausgleichen können. Außerdem ist eine gute präzise Erregerspannung erforderlich.

smashtastic
quelle