I'm trying to find a set of sensors (to build a solution) to determine how many weight blocks an athlete is lifting on the weight machine like this:
I already tried this solutions:
Put RFID tag on each weight block and set a RFID reader a little bit above the top block. The idea was that when blocks are moving up, the RFID reader would know what blocks were lifted just by comparing how many unique RFIDs were detected in a sequence. The problem with such approach was that RFID reader was skipping some of the RFID tags (probably because weight blocks were lifted too fast so that RFID reader couldn't keep up).
Attach ultra sonic sensor (Sensor_1) (https://www.sparkfun.com/products/13959) on top of the block weights stand and other ultra sonic sensor (Sensor_2) on the side as shown in the picture:
Sensor_1 is facing down. Sensor_2 is attached to a helper stand as is facing horizontally to the side of the block weights stand. The idea was that when user starts lifting the weights, at some point Sensor_2 detects a weight block (that is horizontally at the same height), Sensor_1 remembers the distance (Distance_1) to the top block weight. When Sensor_2 shows there is no block at the same height anymore, Sensor_1 checks the current distance (Distance_2) to the top block again and then it calculate the number of blocks by the following formula (Formula_1):
number_of_blocks = (Distance_1 - Distance_2) / height_of_1_block_weight , where height_of_1_block_weight = 4 cm, Distance_1 ~= 115 cm, Distance_2 < 115 cm
The problem with such approach was that ultrasonic doesn't measure distance to the point (like a ray), but there is a wave with a 15 degree angle instead and therefore we have issues with wave reflection from other objects (block weights stand or other stuff)
- We tried the same approach as #2, but with IR sensors (https://www.pololu.com/product/1137). It doesn't give accurate distance because the sensor measurement error sometimes is more than 5 cm so the Formula_1 doesn't give expected output. Also, the sensor has 25 Hz limitation so if you lift the weights quick, it will skip distances > 3.2 cm (80 cm / 25 measurements a second).
The only way left that I see is to attach a camera and analyze the output image on the software layer...
Please, let me know if you have any other ideas or if you see a gap in the solutions that I specified. Thank you!