Verwandte : Hochauflösender ADC für verrauschte Sensoren unter variablen Bedingungen
Ich baue eine Schnittstelle mit resistiven Sensoren auf Textilbasis, die je nach Umgebungsbedingungen unterschiedliche Widerstandsbereiche haben können. Um meine A / D-Wandler optimal nutzen zu können, möchte ich die Verwendung eines adaptiven Verstärkers untersuchen, der dazu beiträgt, die unzuverlässige Leistung der Sensoren zu kompensieren.
Welche Möglichkeiten habe ich hier? Oder können Sie mich auf einige Referenzen zum Thema verweisen?
Ich kann mir zwei allgemeine Schemata vorstellen, die nützlich wären:
- Automatische Kalibrierung durch Auffinden von Min- und Max-Werten in einem bestimmten Analysefenster (~ 30s-2min)
- Explizite Kalibrierung über eine Toggle-to-Train-Schnittstelle
- ... Gibt es alternative Systeme, an die ich nicht denke?
Einige Einschränkungen
- Wenn möglich, sollte es sich um eine Ein-Chip-Lösung (klein) handeln (wie kapazitive Sensorchips).
- Es sollte einfach zu konfigurieren und zu verwenden sein (ich bin kein Ingenieur und werde nicht bezahlt)
- Es wird wahrscheinlich einen Mikrocontroller in der Nähe geben
Noch besser wäre ein Alleskönner-Chip mit Wheatstone-Brücke / Spannungsteiler, Tiefpassfilter und Verstärker.
Weitere Informationen zu meinem speziellen Setup
- A / D-Wandler sind entweder die in einen Atmel-Chip eingebauten Wandler (könnte ATtiny85 oder ATmega32u4 sein) oder die in ein XBee Series 2-Radio eingebauten Wandler. Ich habe noch nie dedizierte A / D-Chips verwendet - ich bin mir nicht sicher, ob dies von Vorteil wäre.
- Der Sensor wird ein Stück polymerdotiertes leitfähiges Lycra von Eeonyx sein. Der Widerstand ändert sich bei 30% Dehnung um etwa 1 Größenordnung.
- Das Ganze wird an der Hand eines Darstellers montiert, daher muss es klein und physisch robust sein. Es besteht eine gute Chance, dass es drahtlos sein wird.
- Präzision ist wichtig. Die Schnittstelle wird verwendet, um Echtzeit-Audioeffekte kontinuierlich zu variieren, dh es handelt sich nicht um einen Schalter.
Antworten:
Hier ist die Grundidee:
V1 ist der gefilterte PWM-Ausgang und R2 ist Ihr Sensor. U1 ist ein Spannungs-Strom-Wandler, wobei der Strom durch die Last R1 I = V1 / R2 ist. Dies bedeutet, dass die Spannung an R1 von beiden Eingängen abhängt. U2 und U3 ist ein Instrumentenverstärker mit Verstärkung 10, der die Spannung an R1 verstärkt.
Mit R1 = 100 Ohm und V1 = 0,5 V arbeitet die Schaltung für R2 = 50,5000, z. B. über zwei Größenordnungen, was nach Ihren Angaben ausreichen sollte.
Sie nehmen es heraus und vergleichen es mit der Referenzspannung (4 V wären hier für den maximalen Dynamikbereich geeignet) und verwenden die sukzessive Approximation an V1, um so nahe wie möglich an der Referenzspannung herauszukommen. Aus V1 und dem bekannten Spannungsabfall an R1 (z. B. Referenzspannung) können Sie jetzt den Wert von R2, Ihrem Sensor, berechnen. Dies führt natürlich nur zu einem Ergebnis innerhalb der Auflösung von PWM. Sie können jedoch einen zweiten Instrumentenverstärker verwenden, um den Fehler (Differenz zwischen Ausgangs- und Referenzspannung) zu verstärken und ihn in den Bereich des ADC Ihres Mikrocontrollers zu bringen. Dadurch erhalten Sie zusätzliche Bits der Auflösung.
Sie benötigen zwei Operationsverstärker (U1 und Komparator) und zwei Instrumentenverstärker. Verwenden Sie echte, anstatt sie aus Operationsverstärkern herzustellen, da die Ungenauigkeiten von Widerständen und Operationsverstärkern zu Fehlern führen.
Wenn zwei Größenordnungen nicht ausreichen, können Sie R1 durch ein digitales Potentiometer ersetzen, um einen weiteren Freiheitsgrad zu erhalten. Ich habe noch nie mit einem gearbeitet, daher weiß ich nicht, wie genau sie sind und ob eine solche Lösung eine Kalibrierung erfordern würde oder nicht.
Ich sollte auch erwähnen, dass es jpc war, der mit der Idee kam.
AKTUALISIEREN:
Ok, ich muss OP zustimmen, dass dies nicht wirklich die Antwort auf seine Frage ist (obwohl es das Problem technisch löst). Ich ließ mich von einem "adaptiven Verstärker" im Titel als Ausrede für ein analoges Design mitreißen. Vergessen Sie alles, was oben geschrieben wurde, es sei denn, Sie möchten etwas (wenig) über Opamps lernen. Ich hoffe, hier ist eine bessere Antwort und eine viel einfachere Lösung:
Verwenden Sie einen Widerstandsteiler, der von einem Spannungsregler gespeist wird (um ihn vom Rauschen anderer Schaltkreise zu trennen), wobei der obere Widerstand auf ungefähr den maximalen Widerstand eingestellt ist, den Ihre Sensoren haben können (Rmax), und der untere Widerstand der Sensor ist.
Stellen Sie die Referenzspannung für Ihren ADC auf die Hälfte des Ausgangs des Spannungsreglers ein.
Anschließend messen Sie die Spannung am Sensor mit Ihrem ADC. Auf diese Weise benötigen Sie nur einen Single-Ended-Kanal pro Sensor. Ich habe im anderen Beitrag eine ADC-Empfehlung abgegeben.
Wenn Sie einen 10-Bit-ADC verwenden, der in die von Ihnen erwähnten Mikrocontroller integriert ist, erhalten Sie jedoch keinen großen Dynamikbereich. Wenn Sie den Bereich mithilfe einer analogen Schaltung erweitern, wie ich sie ursprünglich veröffentlicht habe, werden zu viele zusätzliche Teile hinzugefügt. Aus diesem Grund würde ich empfehlen, einfach einen 24-Bit-ADC zu verwenden, wie den ADS1256, den ich im anderen Beitrag empfohlen habe, da dies Ihnen helfen wird Geringes Rauschen und hoher Dynamikbereich in einem einzigen Chip (plus der winzigen Referenz und dem Spannungsregler, der ebenfalls winzig sein kann - Sie können auch versuchen, den Regler wegzulassen und den Widerstandsteiler direkt von der Referenz aus mit Strom zu versorgen). Dies wird Ihnen 1 Bit Auflösung rauben, aber es gibt trotzdem viele davon. Sie müssen einige Zahlen eingeben ("Automatische Kalibrierung durch Auffinden von Min- und Max-Werten in einem bestimmten Analysefenster" - ist eine gute Idee),
Ich hoffe das ist etwas nützlicher.
UPDATE 2:
Dies ist der letzte: Ich habe MSP430-Mikrocontroller von TI durchlaufen und festgestellt, dass einige von ihnen über einen 16-Bit-Sigma-Delta-ADC mit interner Referenz verfügen. Nämlich MSP430F2003 und MSP430F20013 . Das wäre Ihre Ein-Chip-Lösung, wenn Sie bereit wären, Atmels aufzugeben. Sehr geringe Leistung auch. Und sie haben Mikrocontroller mit 24 ADCs in der Warteschlange, aber diese sind noch nicht in Produktion. Dann gibt es auch PSoC-Mikrocontroller von Cypress, die 20-Bit-Sigma-Delta-ADCs ( PSoC 3- und PSoC 5- Serie) haben, ebenfalls mit Bezug. Diese wären noch besser.
quelle
Wenn die Änderungen des Sensorwiderstands groß sind (> 50%), können Sie anstelle der (komplizierteren) Wheatstone-Brücke eine Spannungsteilerschaltung verwenden. Sie können dann den Dynamikbereich leicht verbessern, indem Sie die Versorgungsspannung variieren.
Die einstellbare Versorgungsspannung kann einfach über die PWM in Ihrem Mikrocontroller zusammen mit einem RC-Filter und einer spannungsgesteuerten Stromquelle hergestellt werden.
Hier ist ein grobes Schema meiner Idee:
(aus Socratic Electronics von Tony R. Kuphaldt )
Anschließend verbinden Sie die gefilterte PWM-Spannung mit dem nicht invertierenden (+) Eingang des Operationsverstärkers.
Für schnelles Multiplexen können Sie zwei solche Stromquellen herstellen. Wenn Sie alle geraden Sensoren an einen und alle ungeraden Sensoren an den anderen anschließen, können Sie die Spannung am nächsten Sensor ändern, während Ihr ADC noch abtastet.
Sie sollten eine Präzisionsspannungsreferenz für den ADC verwenden. Sie können auch 1 oder 2 Bit gewinnen, indem Sie einen Filter für den gleitenden Durchschnitt in Ihrer Software verwenden.
PS. Ich möchte Jaroslav Cmunt für seine enormen Verbesserungen dieser Antwort danken.
quelle
Hast du diese Seite gelesen?
Es gibt viele Beispiele für tragbare Elektronik, darunter einige mit Eeonyx-Stoffen. Die Site enthält Beispiele für Erfassungsschaltungen (ardunio und xbee).
Sie benötigen nicht viele Komponenten, um eine Wheatstone-Brücke zu bauen. Wenn Sie mit 1 Sensorschaltung, die mit den 8 Sensoren gemultiplext ist, am besten abschneiden, können Sie immer noch problemlos 100 Samples pro Sekunde oder mehr an jedem Eingang erhalten. Verwenden Sie eine Fabric-Platine (überprüfen Sie erneut die obige Stelle), um die Brücke zu erstellen. Oder verlegen Sie einfach die Sensorkabel zum Handschuh und legen Sie die gesamte Sensorelektronik in eine am Gürtel montierte Packung. Die meisten Stoffsensoren, die ich gesehen habe, haben einen relativ hohen Widerstand. Die 0,1 Ohm, die Sie vom Draht zwischen der Riemeneinheit und den Handschuhen erhalten können, spielen keine Rolle.
Setzen Sie einen Temperatursensor in jeden Handschuh ein und verwenden Sie das Ergebnis, um bei Bedarf eine Korrektur in der Software vorzunehmen, um sich an Umgebungsänderungen anzupassen. Kalibrieren Sie die Handschuhe möglicherweise vor jedem Gebrauch, was je nach Intelligenz des Dolmetschers möglicherweise nicht erforderlich ist.
Ich gehe davon aus, dass das Xbee-Modul an einen Computer überträgt, die Kalibrierungsfunktion in den Computer einbaut und tatsächlich so viel wie möglich verarbeitet, z. B. eine Temperaturkorrektur, auf dem Computer.
Bonuspunkte, wenn Sie nur ein neuronales Netzwerk verwenden, um den Sensoreingang in eine Aktion umzuwandeln. Dies erleichtert das Training und passt sich den Handbewegungen verschiedener Personen an.
quelle