PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kraft sensitiver Widerstand (FSR) und Füllstandserfassung



Chris Kielhorn
27.04.2011, 13:26
Moin Moin liebe Community!

ich benötige für eine Hausarbeit eure Hilfe. Und zwar möchte mein Dozent gerne wissen wieviel Milch noch in seiner Milchtüte drin ist. Die Information möchte er gerne über das Internet abrufen, um nicht immer umsonst zur Kaffeemaschine zu laufen :)

Ob das sinn macht oder nicht ist eine andere Frage, jedenfalls habe ich mir überlegt den Füllstand über das Gewicht der Milchtüte zu ermitteln. Und zwar stelle ich mir vor 2 Plexiglasplatten zu nehmen (etwa so groß wie eine Milchtüte) und dazwischen einen "Kraft sensitiven Widerstand" (engl: FSR, force sensitive resistor) zu packen. Das Gewicht der Milchtüte drückt auf die oberste Platte und bewirkt somit eine Widerstandsänderung am Widerstand. Die dadurch auftretenden Spannungsunterschiede messe ich mit einem Arduino, welcher dann über WLAN die Messergebnisse nach Pachube sendet.

Soweit die Theorie. Ich habe einen 4,3x4,3cm großen FSR gekauft welcher laut Datenblatt Massen zwischen 10g und 10kg detektieren kann. Anschließend eine kleine Schaltung mit einem 10k OHM Widerstand für GND dazwischen geschaltet. Die Schaltung sieht so aus wie im Anhang hinterlegt.

Die ersten Messergebnisse sind auch gut, übe ich Kraft auf die Fläche aus, kann ich die Spannungsunterschiedene detektieren. Problematisch ist wenn einen Gegenstand länger auf dem Sensor lasse. Dann "kriecht" der Messwert langsam höher. Und hier ist mein Problem, wie erhalte ich einen stabilen Messwert?

Vielen Dank für eure Hilfe, gern poste ich auch die weiteren Schritte dieses Unterfangens wenn es interessiert!

Gruß,
Chris

KingSauce
27.04.2011, 14:37
Was heißt denn "kriecht langsam höher"? Liegt der Wert nach ein paar Minuten kriechen so hoch, dass das Ergebnis keinen Sinn mehr macht, oder nähert er sich nur irgendeinem Wert an?
Eine Näherungsbewegung, die immer langsamer wird ist völlig normal.
Wenn du direkt nach dem drauflegen einen vernünftigen Wert misst und dich das weitere steigen stört, könntest du softwaretechnisch einfach nach ein paar Sekunden aufhören zu messen.

gruss michael

ps: darf ich fragen was in was du studierst? Finde ich ganz lustig das Projekt :)

Chris Kielhorn
27.04.2011, 14:47
Also ich hab um 14:40 mal mein Messgerät auf die Sensorfläche gelegt und jetzt eine Stunde drauf gelassen. Der Startwert um 14:40 war 604 (einfach mal die Zahl so hinnehmen). Jetzt um 15:40 ist der Wert bei 670 und pendelt unregelmäßig hin und her. In Pachube sieht das so aus wie im Anhang. Die Kurve steigt stetig ganz leicht.

Prinzipiell ist das ja kein Problem wenn sich der Wert irgendwann annähert, man erhält ja aus der Zahl 600 bereits eine Information (beispielsweise das bei 1 Liter milch ungefähr 600 herauskommt). Nur hab ich das Gefühl das der Wert weiter steigt und wenn der irgendwann bei 700 liegt dann ist die Information nicht mehr zu gebrauchen. Ich meine damit, wenn die Milchtüte fast leer ist und der Sensor die Zahl 230 rausspuckt und dann immer weiter größer wird, z.b. auf 400 ansteigt. Dann rennt mein Dozent zur Kaffeemaschine obwohl nichts drin ist, und das muss ich verhindern :)

Softwaretechnisch begrenze ich das ganze in dem ich die Messwerte nur alle 15 sekunden auslese.

Habt ihr damit den schonmal erfahrungen gemacht bei einer solchen "Dauerbelastung"? Gibt es Interpolations möglichkeiten um den Wert zu glätten?

Ich studiere Master Wirtschaftsingenieurwesen an der Universität Bremen :)

p.s. hier der pachube livestream meiner versuche: http://www.pachube.com/feeds/24117/datastreams/0/history.png?r=1 (Dort sieht es jetzt jedoch nicht so wild aus, am anfang war der anstieg größer.)

oberallgeier
27.04.2011, 15:59
... um 14:40 ... 604 ... um 15:40 ... 670 und pendelt unregelmäßig hin und her ...Warum schreibst Du nicht auch die Spannungsversorgung Deines Kraftmesssensors mit? Ist die uninteressant? Oder kann eine (schleichende) Spannungsänderung keinen Einfluss auf den Ausgabewert haben?


... Wert bei 670 und pendelt unregelmäßig hin und her ...Dieses Hin- und Herpendeln kann an Rundungsproblemen liegen. WENN die Ausgabewerte verhältnismässig klein sind im Vergleich zur minimalen Auflösung, dann können Sensoren oder Auswertungsdaten springen, siehe diese Grafik (aus diesem Thread): (https://www.roboternetz.de/community/showthread.php?30344-Algorithmen-zur-Bahnplanung&p=302289&viewfull=1#post302289)

Klick hier für die Grafik (is a bissl gross). (https://www.roboternetz.de/community/attachment.php?attachmentid=10520&d=1195661533)

Richard
27.04.2011, 16:25
Warum schreibst Du nicht auch die Spannungsversorgung Deines Kraftmesssensors mit? Ist die uninteressant? Oder kann eine (schleichende) Spannungsänderung keinen Einfluss auf den Ausgabewert haben?

Dieses Hin- und Herpendeln kann an Rundungsproblemen liegen. WENN die Ausgabewerte verhältnismässig klein sind im Vergleich zur minimalen Auflösung, dann können Sensoren oder Auswertungsdaten springen, siehe diese Grafik (aus diesem Thread): (https://www.roboternetz.de/community/showthread.php?30344-Algorithmen-zur-Bahnplanung&p=302289&viewfull=1#post302289)

Klick hier für die Grafik (is a bissl gross). (https://www.roboternetz.de/community/attachment.php?attachmentid=10520&d=1195661533)


Eigentlich sollte der Messwert stabil sein/bleiben, auf dem Bild kann man nicht genau sehen wie gemessen wird und die Spannung b.z.w. der Strom spielt eine Große Rolle. Der Strom sollte eher sehr klein sein ansonsten kann der Widerstand mit der Erwärmung steigen/sinken je nach Temperatur Koeffizienten. gemessen werden sollte wie in der Zeichnung.

V+ -----Sensor----------10k0-----GND
.......................|.......................... .
.....................Messgerät..............

Gruß Richard

Chris Kielhorn
27.04.2011, 16:28
Okay hast du recht oberallgeier, das hätte ich noch dazu schreiben müssen :)

Also ich versorge den FSR mit 5V Spannung vom Arduino und lese einfach den analogen Pin aus. Die 5V sind schon recht konstant, habe jetzt mal 2 Minuten lang probehalber alle 10 sekunden gemessen, das passt.
Bzgl. des Ausgabewerts geht dieser Analog ja von 0 bis 1024 (wenn ich mich nicht irre). Der Sensor detektiert von 10g bis 10kg (laut datenblatt), ich nehme also einfach mal an das bei 10kg der Wert nahe bei 1000 liegt. Das konnte ich auch recht einfach überprüfen, hab einfachmal kräft mit dem Daumen draufgedrückt. Die Punktlast die dann auf die Fläche wirkt kann schon auf 10kg kommen.

Das Ding ist ja eigentlich nur, dass wenn ich nennenswert den Sensor belaste, erhalte ich einen bestimmten Wert der jedesmal weiter ansteigt. Anscheinend steigt der Wert auch nach einer bestimmten Zeit nicht mehr so stark wie bei Messbeginn. Das bedeutet ja, wie ihr bereits vermutet habt, das der Sensor "sich ein pendelt".

Ich probiere jetzt verschiedene Gewichte aus, schaue mir an in wie weit das Ergebniss vom ursprünglich, zum Zeitpunkt x gemessenen, Wert abweicht nach Zeit Y. Wenn ich da regelmäßigkeiten entdecke kann man das doch irgendwie rausrechnen.
Ist den ein FSR hier gar nicht bekannt? (Wobei mir jetzt selber auch grad nicht einfällt wofür man den für Roboter nutzen könnte).

@Richard: Exakt das ist meine Schaltung!
http://www.ladyada.net/images/sensors/fsrpulldowndia.png

KingSauce
27.04.2011, 17:05
Wenn du schon ein Datenblatt von dem Teil hast, kannst du doch auch nachlesen welcher Widerstand welchem Gewicht entsprechen soll. Damit weißt du welchen Anteil am Spannungsteiler dein Sensor bei einem bestimmten Gewicht hat und damit kannst du wiederum den ADC Wert berechnen.

Später würde ich die Schaltung nochmal mit ein paar ausgemessenen Gewichten, oder zB Wasserflaschen kalibrieren.

Richard
27.04.2011, 17:23
Die Schaltung sollte so OK sein, mit einen Föhn (nicht ZU heiß) kannst Du testen ob und wie der Sensor auf Temperatur reagiert und gegebenenfalls einen R mit gegen sinnigen Temperaturverhalten dem Sensor parallel schalten. Möglich das eine Konstand Strom Quelle http://www.mikrocontroller.net/articles/Datei:Konstantstrom.gif stabilisieren hilft. Bekannt sind die Teile schon, werden aber wie auch Dehnmesstreifen wegen des relativ hohen Preises wenig eingesetzt. In einem anderem Thread bei dem 6? davon gebraucht würden habe ich diese Teile als Füllstands Messung vorgeschlagen, aber....€€€€. :-(

Gruß Richard

Manf
27.04.2011, 19:08
Ist den ein FSR hier gar nicht bekannt?

Doch, das ist so ziemlich das abenteuerlichste was es an Sensoren gibt: Kriechen von Gummi.
Da ist im Ergebnis alles an Einflussgrößen drin was man erträumt, die Vergangenheit, Kurzzeit Langzeit, die Temperatur ... alles nichtlinear und verknüpft.
DMS in den Sensoren billiger Waagen die am besten pro Wiegevorgang einen Reset erhalten sind um Längen besser.
Dann kommen Kapazitive Sensoren bei denen man bei hoher Auflösung auf das weit geringere Kriechen von Metall-Federn aufpassen muss.
Glasfedern oder können dann besser sein aber das lohnt sich für die Milchtüte nicht mehr.

Da es auch gefragt wurde:
Einen solchen Sensor kann man beispielsweise einsetzten um die Kraft zu messen mit der man ein Stück Holz greift. Man kann den Kontakt erspüren und muss nicht zudrücken bis der Greifer an der Grenze ist. Es ist eher so etwas wie eine allgemeine Kraftbegrenzung, nicht so sehr eine reproduzierbare Messung.

Noch ein Nachtrag weil ich mit meiner Stellungnahme etwas spät in der Diskussion war:
Wenn man selbst einmal ausprobieren will was mit so einem Sensor geht, warum nicht, wenn es heißt Hausarbeit und Dozent dann kann ich mir vorstellen, wäre ein anderes Messprinzip besser.

021aet04
30.04.2011, 12:43
Bei Messgeräten sollte man immer eine Aufwärmphase einplanen. Ich kenne das aus der Firma. Bei einigen Messgeräte steht in der Anleitung (ich kenne das aus einem Durchmessermessgerät, das mit einem Laser funktioniert), dass man vor dem Kalibrieren ds Messgerät ca. 20 Minuten aufwärmen lassen sollte, damit das Ergebnis genau wird.
Du könntest versuchen die Spannung etwas zu verringern. Vielleicht ist das Problem eine zu hohe Spannung (Widerstandänderung durch Temparaturerhöhung).

MfG Hannes

Godsplan
15.05.2011, 20:06
Hallo! Danke für die vielen Antworten bis her.

Um das Thema nochmal aufzuwärmen ist mir aufgefallen das der Eingang wohl doch Spannungsunterschiede hat. Ich habe den Analogen Eingang einfach mal ohne irgendwelche Schaltungen gemessen mit dem Arduino. Herausgekommen ist das Bild im Anhang über eine Stunde. Ich müsste doch demnach die Eingangsspannung glätten, z.b. über einen Kondensator? Falls ja, wie dimensioniere ich soetwas?

Ansonsten möchte ich noch kurz von meinem Projekt berichten. Ich habe mittlerweile von Sparkfun ein WIFLY WIFI Shield mit dem Arduino in Betrieb genommen. Der Arduino ließt einen Analogen Eingang aus, verarbeitet ihn und sendet ihn über das WIFLY in mein WLAN Netzwerk über den Router ins Internet nach Pachube.com. Derzeit mache ich langzeit Tests ob das WIFI Modul auch 24h am Stück funken kann.

Die Problematik mit dem Sensor besteht leider nach wie vor.

Gruß,
Chris

ranke
15.05.2011, 21:03
Wenn der Analogeingang wirklich frei war, dann ist die Spannung dort eher undefiniert, kann sich also auch zufällig ändern. Wenn Du die 5V anlegst, dann sollte aber ein stabiler Messwert herauskommen. Ansonsten neige ich auch eher zu dem, was Manf bereits gesagt hat: Der gewählte Sensor ist eher für qualitative als für quantitative Aussagen brauchbar. Gut möglich, oder fast wahrscheinlich, dass er für die gewünschte Anwendung so nicht geeignet ist. Wenn Du noch eine Feder unter die Tüte baust, bekommst Du ein schwingungsfähiges Feder-Milchtüte-System. Je nach Füllmenge der Milchtüte ergibt sich dann eine unterschiedliche Schwingfrequenz. Diese wäre mit dem schon vorhandenen Sensor leichter auszuwerten, weil man für die Frequenzmessung keine Langzeitstabilität des Sensors braucht. Zur Messung muss man die Milchtüte dann immer anstupfen, das kann mal leicht machen, wenn man sich einen Kaffee holt (hoffentlich macht die Überlagerung der Schwappfrequenz im Inneren der Tüte nicht die ganze Messung wieder zunichte).

Richard
16.05.2011, 08:41
Ein offener Eingang ist wie eine Antenne und reagiert auf alles an Elektomüll was so "herumschwirrt".Ein Tiefpass am Eingang sollte das minimieren. Da der Kraftsensor ja eine Gleichspannung ausgiebt kann auch ein Kondensator vom Eingang nach GND Hochfrequente Signale "kappen".

Gruß Richard

Manf
16.05.2011, 08:53
Wenn Du den Sensor wirklich weiter testen willst, unmöglich ist nichts, dann gib noch die Dauer der Aufnahme oben an.
Es sollten dann noch Aufnahmen mit verschiedenen Lasten gemacht werden.
Mit voller Tüte mit halb voller und mit leerer Tüte.
Interessant wäre dabei, die Last innerhalb der Aufnahme einmal in jeder Richtung zu ändern, um das Kriechverhalten zu erkennen.
Vielleicht sollte man die Last über einen Hebel aufbringen um den Messbereich bis 10kg besser auszuschöpfen.

Richard
16.05.2011, 09:23
Möglicherweise ist eine Brückenschaltung die von einer genauen externen Quelle Ue versorgt wird eine Lösung. GND und ADC kommen dann an Ua. In der Grafik fehlen die Zeit und Werte.

http://www.dms-technik.de/dms/dms/theorie1.htm

Gruß Richard

PICture
16.05.2011, 09:47
Hallo!

@ Godsplan

Für mich wäre die Versorgungsspannung des Sensors notwendig, weil die Spannungsschwankungen könnten auch daher kommen. ;)

Richard
16.05.2011, 13:21
Hallo!

@ Godsplan

Für mich wäre die Versorgungsspannung des Sensors notwendig, weil die Spannungsschwankungen könnten auch daher kommen. ;)

Das sollte natürlich sicher gestellt sein, daher auch mein Vorschlag mit der Brückenschaltung und die
Ue der Brücke aus einer Referenz Spannungs oder Strom Quelle nehmen. Wobei aber durch/bei eine
Brückenschaltung Spannungsschwankungen kaum eine Rolle spielen sollte. Die Brücke wirkt ja ähnlich
wie ein "Differenz Verstärker" und dem ist die Absolute Spannung auch "egal". :-) Deshalb wurde die
Brücke schließlich "Erfunden".

Alte noch "zu Fuß" aufgebaute Alarmanlagen haben beinahe immer die Schleifen über eine Brücken Schaltung ausgewertet um Fehlalarme durch Spannungs Schwankungen zu umgehen.

Gruß Richard

021aet04
16.05.2011, 16:19
Du könntest es wirklich versuchen in einer Brückenschaltung zu schalten.
Vielleicht interresiert dich dieses IC http://focus.ti.com/docs/prod/folders/print/tpic83000-q1.html
Das ist ein Signal Conditioner für Drucksensoren. Der hat eine ein EEPROM für die Kalibrierungseinstellungen, Fehlerüberwachung des Sensors und weitere Features integriert.
Leider gibt es den nur im TSSOP Gehäuse. Den bekommst du auch als Sample.

MfG Hannes