Ich benötige einen Sensor, den ich nur auf einem Objekt platzieren kann, um zu zählen, wie oft sich das Objekt auf und ab bewegt.
Würde dies durch Platzieren eines Beschleunigungsmessers auf dem Objekt erreicht oder kann er den Übergang zwischen Auf- und Abbewegen verfolgen?
Wenn nicht, welche Art von Sensor würde dies erreichen?
---------------- EDIT: -------------------------
Idealerweise möchte ich einen Sensor, den ich oben auf die unten beschriebene Box setzen und die Zeiten zählen kann, in denen er auf und ab geht. Es hat mehrere Führungsschienen, die ein Verdrehen verhindern. Ich habe vor, ein Arduino als Mikrocontroller zu verwenden, der die Mathematik erledigt. Ich brauche nur einen Sensor, der die Auf- / Abbewegung erfassen kann. Alle Vorschläge sind willkommen. Vielen Dank.
+ +
+ +
+ +
------------
| box |
| moves up |
| and down |
------------
+ +
+ +
quelle
Antworten:
Ich denke, ein Beschleunigungsmesser und Arduino sind eine großartige Möglichkeit, um zu zählen, wie oft sich die Box auf und ab bewegt. Es ist eine kompakte, zuverlässige und berührungslose Methode zur Erkennung von Bewegungen.
Es könnte für Bewegungen arbeiten, die so sanft sind wie das Heben und Senken Ihrer Brust, beim Atmen, Liegen und mit Sicherheit alles, was schneller ist.
Sie könnten mit einem einfachen Schwellendetektor mit einer gewissen Hysterese davonkommen - zählen Sie eins, wenn die Beschleunigung + x überschreitet, und setzen Sie den Schwellenwert auf -x, bis er -x überschreitet, und setzen Sie dann den Schwellenwert auf + x.
Wenn die Beschleunigung sanfter ist oder Hintergrundvibrationen auftreten, die Sie nicht zählen möchten (obwohl es sich tatsächlich um Auf- und Abbewegungen handelt), geht das Signal möglicherweise im Rauschen verloren.
Dann müssen Sie einen einfachen digitalen Filter auf dem Arduino implementieren, der tatsächlich nach Bewegung mit einer bestimmten Geschwindigkeit "sucht". Dies kann einfach sein, indem Sie einfach die letzten 100 Beschleunigungsabtastwerte (bei 100 Hz) addieren und den Durchschnitt durch den Schwellendetektor setzen, oder Sie können einen aufwendigeren Filter entwerfen.
Wenn Sie vorhaben, einen Beschleunigungsmesser für irgendetwas zu verwenden, probieren Sie ihn zuerst mit Ihrem Smartphone aus.
Suchen Sie in Ihrem App Store nach einer Beschleunigungsmesser-Monitor-App, die den Sensor in einer Datei aufzeichnet, und führen Sie einige Experimente durch. Wenn eine CSV-Datei erstellt wird, können Sie diese in Excel- und Plotdiagrammen usw. öffnen.
Der Beschleunigungsmesser in Ihrem Telefon ist recht einfach und laut, aber er ist ein guter Ersatz für jeden anderen Beschleunigungsmesser unter 100 US-Dollar und gibt Ihnen möglicherweise eine ungefähre Vorstellung davon, was ein 1000-Dollar-Beschleunigungsmesser tun könnte.
Hier ist ein Beispiel dafür, was ich mit dem Sensor des Telefons gemacht habe.
Viel Glück! Veröffentlichen Sie Ihre Ergebnisse hier (beantworten Sie Ihre eigene Frage), wenn es für Sie funktioniert.
quelle
Im Allgemeinen nein. Stellen Sie sich vor, Sie werfen einen Ball gerade nach oben (und ignorieren den Windwiderstand): Sobald er sich bewegt, ist die einzige Kraft auf ihn die Schwerkraft, die eine konstante Beschleunigung erzeugt. Es gibt keine Möglichkeit, allein anhand der Beschleunigung zu erkennen, wann der Ball seine höchste Höhe erreicht und wieder nach unten gestartet hat - die Beschleunigung ist auf seinem gesamten Weg gleich, bis er auf den Boden trifft.
Wenn Sie wissen, dass das Objekt in Ruhe beginnt und seine Beschleunigung messen, können Sie seine Geschwindigkeit ermitteln, indem Sie die Beschleunigung über die Zeit integrieren. Wenn es langsamer wird, sehen Sie eine negative Beschleunigung und das Integral geht auf Null, wenn es stoppt. Wenn es sich dann wieder bewegt, ändert sich die Beschleunigung und Sie können wieder mit der Integration beginnen. Dies hängt jedoch stark von der Genauigkeit der Messungen und Berechnungen ab. Wenn einer von beiden ein wenig ausgeschaltet ist, steigt der Fehler allmählich an, bis Sie nicht mehr wissen, was wirklich passiert.
quelle
Zunächst ist es wichtig zu verstehen, wie sich ein Beschleunigungsmesser in einem Gravitationsfeld verhält, wie wir es hier auf der Erde erleben. Ein Beschleunigungsmesser misst keine Beschleunigung in dem Sinne, dass er nicht nur die Änderung der Geschwindigkeit misst. Es misst die Änderung der Geschwindigkeit plus der Schwerkraft - was bedeutet, dass Sie die Schwerkraftmessung durchführen müssen, wenn Sie versuchen möchten, was Sie skizzieren.
Außerdem wird die Schwerkraft als Aufwärtsbeschleunigung gemessen - was etwas kontraintuitiv ist, aber Sinn macht, wenn Sie sich einen Beschleunigungsmesser wie folgt vorstellen:
simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab
Ich habe den Schaltplaneditor missbraucht, um ein Kugellager zu zeigen, das an zwei perfekt gedämpften Federn in einem Rohr aufgehängt ist. Stellen Sie sich vor, der Beschleunigungsmesser misst, indem er Ihnen mitteilt, wie weit sich das Kugellager derzeit in der Ruheposition befindet. Stellen Sie sich nun vor, Sie drehen dieses Gerät an seinem Ende und Sie können sehen, wie das Kugellager unter der Schwerkraft durchhängt und wie dies nicht von der Beschleunigung zu unterscheiden ist. Ich denke, die Relativitätstheorie hat zu diesem Thema etwas zu sagen, aber trotzdem.
Wenn Sie also einen vertikalen Beschleunigungsmesser haben und den Effekt der Schwerkraft entfernen und die Bewegungen Ihres Geräts ausreichend größer als das Grundrauschen Ihres Beschleunigungsmessers sind und außerdem die Bewegungen ausreichend gleichmäßig sind, um Ihren Algorithmus nicht zu verwirren, kann dies der Fall sein möglich sein. Es gibt oben eine Antwort, die den freien Fall erwähnt, was ein Problem wäre, aber ich gehe von Ihrer Beschreibung aus, dass Ihr Gerät für längere Zeit nicht im freien Fall sein wird. Dies ist jedoch eine Vermutung.
Wenn Sie wirklich einen Beschleunigungsmesser verwenden möchten, besteht Ihr bester Ansatz für ein Problem wie dieses darin, die Ausgabe des Beschleunigungsmessers irgendwie aufzuzeichnen (ich ziehe es vor, sie über SPI auszugeben und sie mit einem USB-Logikanalysator aufzuzeichnen) und genau aufzuschreiben, was Sie tun (oder sogar Video, wenn Sie wirklich scharf sind). Dann können Sie offline mit Algorithmen herumspielen, ohne sich ständig fragen zu müssen, ob Ihr Arduino wirklich das tut, was Sie denken.
Wie bereits erwähnt, sind möglicherweise andere Sensortypen besser geeignet. Wir brauchen mehr Details darüber, warum Sie genau versuchen, was Sie zu kommentieren versuchen, denke ich.
quelle
Wenn sich das Objekt auf festen Führungen auf und ab bewegt, besteht die einfachste Möglichkeit, seine Bewegungen zu zählen, darin, einen Endschalter zu verwenden, der geschlossen wird, wenn sich das Objekt in Ruhe befindet, und geöffnet wird, wenn er sich nicht in seiner Ruheposition befindet.
quelle
Vorsicht, eine Umkehrung der Beschleunigung bedeutet nicht, dass sich die Box umgedreht hat. Die Box startet - Sie sehen eine Beschleunigung nach oben. Es steigt jetzt stetig an - Sie sehen keine Beschleunigung. Es verlangsamt sich auf die halbe Geschwindigkeit - Sie sehen eine Beschleunigung nach unten. Es geht mit halber Geschwindigkeit weiter - Sie sehen keine Beschleunigung. Es beschleunigt wieder - Sie sehen eine Beschleunigung nach oben. Es stoppt, Sie sehen eine Beschleunigung nach unten.
Du hast oben, unten, oben, unten gesehen, aber die Kiste hat sich wirklich nur nach oben bewegt. Sie müssen sich im Laufe der Zeit integrieren und genügend Genauigkeit in Ihren Beschleunigungsmesser haben, um herauszufinden, wie Sie wirklich vorgehen - achten Sie auf kumulative Fehler, dies könnte dieses Problem sehr schwer machen!
Haben Sie mit einem Laser-Entfernungsmesser untersucht, wo sich die Box befindet?
quelle
Beschleunigungsmesser messen Beschleunigungen. Wenn die Bewegung mit Beschleunigung ausgeführt wird, wird sie erkannt, vorausgesetzt, der Beschleunigungsmesser ist auf dieser Achse empfindlich genug. Die Richtung der Beschleunigung wird durch das Vorzeichen der gelesenen Werte angezeigt. Bitte beachten Sie, dass bei der Messung von Beschleunigungen auf der vertikalen Achse die Messung durch die Gravitationsbeschleunigungskonstante vorgespannt wird
g
.quelle
Wenn Sie keinen physischen Kontakt wünschen (z. B. durch einen typischen Endschalter oder Mikroschalter), können Sie einen Magneten montieren und einen Reed-Schalter oder einen Hall-Effekt-Schalter verwenden. Oder montieren Sie etwas, das leicht hervorsteht und undurchsichtig ist und durch einen optischen Detektor läuft (die Sorte mit einem kleinen Schlitz darin).
Ein Beschleunigungsmesser ist kompliziert, teurer als jeder der oben genannten und aus dem von Pete Becker (und jetzt auch von Dave Branton) beredten Grund unwahrscheinlich, dass er funktioniert.
quelle
Viele tolle Infos hier, aber ich habe noch niemanden gesehen, der ein lineares Potentiometer vorschlägt ...
Einfach, Spannung anlegen und zählen, wie oft der GPIO ein HI liest. Günstigster linearer Topf? Lautstärkeregler eines alten Radios, Trimmeinstellung von R / C-Spielzeugsteuerungen usw.
quelle
Wenn die folgenden Schienen vorhanden sind, wie wäre es dann mit einem Ultraschall-Entfernungsmesser? Der Arduino kann rechnen, um die Beschleunigung zu bestimmen, und die Implementierung ist viel einfacher als das Anbringen von Drähten an etwas, das sich bewegt. Dies funktioniert sicherlich am besten, wenn die Strecke gerade ist. Hier ist eine. https://www.sparkfun.com/products/639
quelle
Ich würde empfehlen, zwei dünne Metallplatten zu verwenden, um einen Kondensator zu bilden. Eine Platte würde auf die Schachtel gelegt und die andere in einiger Höhe von der Schachtel befestigt. Wenn sich die Box auf und ab bewegt, ändert sich die Kapazität (C) aufgrund der Änderung des Abstands (d) der Platten (C = kA / d). Diese Änderung kann durch geeignete Mittel in eine Änderung der Spannung, Frequenz usw. und dann in eine für die Arduino-Schnittstelle geeignete Form "umgewandelt" werden (eine Verstärkung kann erforderlich sein).
quelle