Welche Sensoren sind zu verwenden, um das ausgewählte Gewicht des Fitnessgeräts abzulesen [duplizieren]

Ich versuche, eine Reihe von Sensoren zu finden (um eine Lösung zu bauen), um festzustellen, wie viele Gewichtsblöcke ein Athlet auf der Kraftmaschine wie folgt hebt:

Geben Sie hier die Bildbeschreibung ein

Diese Lösungen habe ich bereits ausprobiert:

  1. Bringen Sie einen RFID-Tag an jedem Gewichtsblock an und platzieren Sie ein RFID-Lesegerät etwas oberhalb des oberen Blocks. Die Idee war, dass das RFID-Lesegerät weiß, welche Blöcke angehoben wurden, wenn sich Blöcke nach oben bewegen, indem es einfach vergleicht, wie viele eindeutige RFIDs in einer Sequenz erkannt wurden. Das Problem bei einem solchen Ansatz war, dass das RFID-Lesegerät einige der RFID-Tags übersprang (wahrscheinlich, weil Gewichtsblöcke zu schnell angehoben wurden, so dass das RFID-Lesegerät nicht mithalten konnte).

  2. Befestigen Sie den Ultraschallsensor (Sensor_1) ( https://www.sparkfun.com/products/13959 ) oben auf dem Ständer für Blockgewichte und den anderen Ultraschallsensor (Sensor_2) an der Seite, wie in der Abbildung gezeigt:Geben Sie hier die Bildbeschreibung ein

Sensor_1 zeigt nach unten. Sensor_2 ist an einem Hilfsständer befestigt, der horizontal zur Seite des Blockgewichtständers zeigt. Die Idee war, dass, wenn der Benutzer beginnt, die Gewichte zu heben, Sensor_2 irgendwann einen Gewichtsblock erkennt (der sich horizontal auf derselben Höhe befindet), Sensor_1 sich den Abstand (Abstand_1) zum Gewicht des obersten Blocks merkt. Wenn Sensor_2 anzeigt, dass kein Block mehr auf gleicher Höhe ist, überprüft Sensor_1 erneut den aktuellen Abstand (Distance_2) zum obersten Block und berechnet dann die Anzahl der Blöcke nach folgender Formel (Formel_1):

number_of_blocks = (Distance_1 - Distance_2) / height_of_1_block_weight , wobei height_of_1_block_weight = 4 cm, Distance_1 ~= 115 cm, Distance_2 < 115 cm

Das Problem bei einem solchen Ansatz war, dass Ultraschall nicht die Entfernung zum Punkt misst (wie ein Strahl), sondern stattdessen eine Welle mit einem Winkel von 15 Grad vorhanden ist und wir daher Probleme mit der Wellenreflexion von anderen Objekten haben (Ständer für Blockgewichte oder andere Sachen)

  1. Wir haben den gleichen Ansatz wie #2 versucht, aber mit IR-Sensoren ( https://www.pololu.com/product/1137 ). Es gibt keine genaue Entfernung an, da der Messfehler des Sensors manchmal mehr als 5 cm beträgt, sodass die Formel_1 nicht die erwartete Ausgabe liefert. Außerdem hat der Sensor eine 25-Hz-Begrenzung. Wenn Sie also die Gewichte schnell anheben, überspringt er Distanzen > 3,2 cm (80 cm / 25 Messungen pro Sekunde).

Der einzige Weg, den ich sehe, besteht darin, eine Kamera anzuschließen und das Ausgabebild auf der Softwareebene zu analysieren ...

Bitte lassen Sie mich wissen, wenn Sie weitere Ideen haben oder wenn Sie eine Lücke in den von mir angegebenen Lösungen sehen. Danke schön!

Ist es in Ordnung, wenn die Messung nur im angehobenen Zustand funktioniert?
Verwenden Sie anstelle des RFID-Lesegeräts QR-Codes. Oder graue Code-Aufkleber und ein paar Fotodetektoren.
Bringen Sie einen Dehnungsmessstreifen an der Unterseite des Stapels an, wenn die Gewichte angehoben werden, subtrahieren Sie das angehobene Gewicht vom Gesamtgewicht. Kinderleicht
@DonQuiKong Danke der Nachfrage. Ja, es darf nur im angehobenen Zustand gemessen werden!
Was hat für Sie funktioniert? informieren Sie uns bitte
Ich habe keine zuverlässige Lösung gefunden und bin zu einem anderen Projekt gewechselt, sorry.

Antworten (6)

3 fallen mir ein.

Ein IR-Encoder wie von RoyC erwähnt. Malen Sie die Rückseite oder die Seiten der Gewichte abwechselnd weiß und schwarz.

Eine Kamera, wie Sie bereits erwähnt haben. OpenCV würde dies schnell erledigen. Und Sie können dies aus der Ferne tun, ohne etwas an der Maschine zu berühren.

Und die letzte Option ist ein tatsächlicher Gewichtssensor. Eine unter den Gewichten platzierte Wägezelle. Wenn die ausgewählten Gewichte angehoben werden, zeigt die Wägezelle eine negative Änderung an, die dem Gewicht entspricht, das nach oben entfernt wurde.

Eine wie beschrieben konfigurierte Wägezelle ist eine großartige Idee. Sind diese robust genug, um sehr hohe transiente Lasten zu tolerieren?
Sicher sind. Wenn Sie dafür bezahlen. Eine Ebay-Webcam im Dollar-Shop und ein billiger Plug-in-Computer (Raspberry Pi) sind jedoch viel billiger. Und sicherer. Die beste Vorgehensweise ist, nichts an der Maschine zu ändern oder einzuführen.
@RoyC: Sie können Wägezellen in Tonnen erhalten. Denken Sie darüber nach, was verwendet wird, um das Gewicht von Lastwagen zu messen. Beispiel: omega.com/pptst/LCCD.html
Eine Wägezelle auf der mit "Sensor 1" bezeichneten Riemenscheibe würde im Vergleich zu unter dem gesamten Stapel viel kleinere Transienten erfahren. Wägezellen sind für Leute, die nicht viel Erfahrung damit haben, ein bisschen fremd, aber sie sind kinderleicht und die geringere Zeitinvestition wert.
@RoyC, ich habe mit einer Wägezelle gearbeitet, die vorübergehende Lasten von über 30 Tonnen bewältigen kann (denken Sie: Anhängerkupplung versagt unter Last). Außerhalb der 30-Tonnen-Einstufung mussten wir die Kalibrierung auf jeden Fall überprüfen lassen, aber es gab nie Probleme.

Ich würde es aus einem anderen Blickwinkel betrachten und versuchen zu erkennen, in welchem ​​​​Schlitz sich der Metallstift befindet.

Dies ist eine einfachere Aufgabe und könnte auf verschiedene Weise erfolgen, z. B. durch Verwendung von Näherungssensoren oder Mikroschaltern. Diese könnten mit einem Mikrocontroller verdrahtet werden und so könnten Sie die Menge der angehobenen Gewichtsblöcke erkennen.

Dies ist nur eine Idee für einen möglichen Weg nach vorn. Das Entwerfen von Schaltungen wäre eine andere Frage.

Diese Stifte haben normalerweise einen großen, oft bunten Griff, der von einer Kamera aufgenommen werden kann
Die meisten Pins, die in Fitnessstudios verwendet werden, sind schwarz, soweit ich mich erinnere ...
meine sind gelbe Knöpfe mit Chromstiften

Setzen Sie auf jeden Block einen kleinen Infrarotreflektor und ordnen Sie diese in einer vertikalen Linie an. Ihr Sensoraufbau besteht aus einem IR-Illuminator und einem gerichteten IR-Sensor (Fotodiode oder Transistor in einer Röhre), die so montiert sind, dass sie mit den Reflektoren direkt über dem oberen Block im Ruhezustand ausgerichtet sind. Sie müssen die Ausgabe des Fotodetektors verstärken und die Erkennungsschwelle so einstellen, dass sie nur eine Ausgabe für die Reflektoren liefert. Dies ergibt eine Kette von Impulsen, die Sie zählen können, um die Anzahl der vorbeifahrenden Blöcke zu ermitteln.

Dies kann so eingestellt werden, dass es bei sehr hohen Frequenzen arbeitet, also kein Problem mit der Geschwindigkeit.

Kleine billige Magnete am Gewichtsblock und zwei Hallsensoren gegenüber den Magneten. Der erste Sensor muss etwas über (der Lücke zwischen den Blöcken) der Höhe des oberen Magneten liegen und der zweite genau gegenüber dem oberen Magneten. Zählen Sie den Auslöser im ersten, um zu überprüfen, wie viele Gewichte angehoben wurden. Und wenn der 2. Sensor ausgelöst wird und der erste nicht, sind die Gewichte in Ruhe.

Wenn ich auf den oberen Arm schaue, würde ich einen Dehnungsmessstreifen vorschlagen . Es ist eine sehr einfache Komponente, die Sie direkt darauf kleben können.

Gegebenenfalls müssen Sie die Messwerte etwas glätten, da die Dehnung von der Kraft abhängt, die den oberen Balken verbiegt. Und während dies im stationären Zustand genau die Gravitationskraft ist, beschleunigen die Gewichte beim Training auf und ab, sodass Sie die durchschnittliche Kraft verwenden müssen.

Ich bin mir nicht sicher, welche Art von Zeit/Mühe Sie bereit sind, dafür zu investieren, oder wie elegant das Ergebnis ist, nach dem Sie suchen, aber hier ist ein billiger/einfacher einfacher Ansatz, der darauf hinausläuft, einen Wechsel zwischen jedem Paar zu erstellen von Platten.:

  • Kleben Sie Aluminiumfolienkontakte auf die Ober- und Unterseite jeder Platte an einer einheitlichen Stelle, so dass jeder Kontakt den der Platte daneben berührt.
  • Verbinden Sie den unteren Draht jeder Platte mit einem gemeinsamen Draht.
  • Verbinden Sie den unteren Draht jeder Platte mit einem separaten digitalen IO-Pin.
  • Zählen Sie, wie viele Platten es gibt, wie viele Drähte mit dem gemeinsamen verbunden sind.
  • Um IO-Pins zu sparen, könnten Sie sogar einen Prioritäts-Encoder verwenden, um ceil(log_2(number_of_plates))Pins zu verwenden.

Auf der anderen Seite sieht dies ruckelig aus, kann das Gewicht nur während der Bewegung erkennen und kann bei Gebrauch brechen. Aber auf der positiven Seite ist es billig, einfach und Sie haben wahrscheinlich sogar schon alle Teile, die Sie brauchen, um einen funktionierenden Prototyp zu bekommen