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:
- selbstklebende Kunststofffolienabdeckung (große Klebefolie),
- Säulenstreifen,
- doppelseitige Klebefolie mit großen Löchern, die an jedem Zeilen-Spalten-Schnittpunkt ausgeschnitten sind, um einen Luftspalt zwischen Zeilen und Spalten zu schaffen.
- Reihenstreifen,
- 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
- Beide Enden einer Reihe sind geerdet.
- 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
- Die Enden einer Reihe sind mit 0 V und VCC verbunden und bilden einen Positions-Spannungs-Wandler.
- Beide Enden einer Spalte sind mit demselben A / D-Kanal verbunden.
Y-Position mit der Zelle
- Die Enden einer Säule sind mit 0 V und VCC verbunden und bilden einen Positions-Spannungs-Wandler.
- 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:
- Z: beide Enden der Reihe auf 0 V; ein Ende der Säule nach A / D und hochziehen.
- X: ein Ende der Reihe auf 0 V, ein anderes Ende auf VCC; ein Ende der Spalte zu A / D.
- 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.
- Die r L und c Enden T gehen zu GPIO-Pins, die als A / D-Eingänge dienen können.
- Die r R und c Enden B gehen zu regulären GPIO-Pins.
- 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 .
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.
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.
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.
simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab
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.