hello everyone, I'm new and I don't know if this is the right forum, I'm trying to program a mpu6050 sensor and a esp32 to determine the speed at which a load moves (in this case a barbell). I would like if possible that the reading occurs only when the movement is performed and that the data obtained is unique for speed and not for each axis (x,y,z).
thank you, any suggestions are welcome.
The MPU-6050 can measure acceleration along three axes, but not speed.
Take a look at the theory of physics! Acceleration times time gives speed, speed times time gives distance.
No, that gives change in speed.
For short time acceleration, yes. For a continued acceleration like gravity it's correct. Just to give the OP some idea about the basic fysics.
I recommend that you and the OP review an elementary physics textbook, where acceleration is defined as (change in velocity)/(time to change).
Likewise, velocity is defined as (distance traveled)/(time to travel).
Yes, that's true for an object that has a constant acceleration, and that starts at rest.
Only for a a constant speed. Even under constant acceleration, you'd be off by 100% (the distance is ½a×t×t, not a×t×t)
More generally, the acceleration must be integrated over time, or a sum can be used as an approximation:
v(tk) ≈ Σak(tk)·(tk – tk–1)
Unless you're taking a "Physics for Poets" class, the definitions would probably involve derivatives.
In the U.S. and many other countries, "elementary" physics textbooks avoid calculus.
At college level the physics curriculum is often divided into two tracks: (1) pre-calculus for medical students and the like (avoiding differentiation and integration), and (2) calculus based physics, for engineering, physics and chemistry students, with a concurrent requirement of first year calculus in the math department.
Granted: if the OP wants to drop a barbell and know the speed with which it hits the floor, then no MPU-6050 is needed, just the height of the drop h and the acceleration due to gravity g
v = sqrt(2gh)
Have fun!
This is the key point. 6050 will only register a change in velocity (change in speed over time). The 6050 will register a constant velocity over time (zero acceleration) as "zero".
No, and no. Acceleration (m/s/s) over time (s) gives average speed. (m/s/s * s = m/s)
"rate of change" ... in this case "rate of change of velocity" (m/s/s)
No. Starting point can be arbitrary, you just need to include the time/velocity offset.
m/s * s = m = TRUE.
Quote taken out of context.
Acceleration (m/s/s) over time (s) gives average speed. (m/s/s * s = m/s)
No, this is not true (even though you may think so because the units on both sides of your equation are consistent). Average speed is change in distance divided by time elapsed. The product of acceleration and time elapsed gives the change in speed (or the actual speed, if the object started at rest) — if and only if the acceleration is constant. And in that case (constant acceleration), the product of acceleration and time is always equal to double the average speed — so the proposed formula will have an error of 100%, as I already pointed out above.
On the other hand, you could get the change in speed (or the actual speed, if the object started at rest), by taking the product of the time-averaged acceleration and the length of the time-interval over which the averaging was performed.
Back to OP's application, presumably @mattuz_11 is interested in the lifting speed of a barbell that starts at rest. So an accelerometer will work well for this application. Before the start of the lift, the accelerometer will measure g, and during the lift, it will measure an total acceleration a = alift + g. So all that is needed is to correct for g and then perform a numerical integration (like the one shown in my first response).
If there are non-vertical components of acceleration, they can either be ignored (to compute the vertical speed), or be combined to compute the magnitude of the velocity vector.
What i want is to start in a static point that is =g and =0, an example is if I’m doing a squat I will start from the lowest point (=0) and when I stand up I want that the program show me the velocity that I lift up the barbell to the higher point. If mpu6050 is not the best choice what can I use?
Personally, I think that an accelerometer is your best choice for this application, as I've explained above, although I have no idea whether an MPU6050 model in particular is a good or a bad choice.* Otherwise, you would need something like a Doppler radar to measure speed directly, or some kind of laser- or sonar-based displacement sensor.
*Edited to Add: After looking at this review, I see no reason why you shouldn't use the MPU605 for this project.
For each lift (squat, bench press, clean and jerk, etc) the distance between the starting and finishing positions are known. To some acceptable precision. So providing whatever sensor you use is capable of detecting both the start and finish times, the time and the average speed are easily calculated.
I’m sure that acceleration will never be constant during any weight lifting. But an accelerometer is, of course, one method of determining the start and finish times accurately.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.