Hi everyone,
I am Thomas and I am a student of the Hong Kong University of Science and Technology
Currently I need to use the arduino to finish my final year project
I need to get velocity data from the sensor (GY-80) to calculate the calorie burnt
But as a mechanical engineering student, I am a beginner of arduino and even programming
So I would like to ask help from all of you
P.S. my professor said I should study the usage of filter, can anyone help me?
It is very difficult, and perhaps impossible, to measure a person's velocity directly using the GY-80. For an explanation, see this: http://www.chrobotics.com/library/accel-position-velocity
However, it is possible to use an accelerometer to determine the gait (for example, time between footsteps) and using other information, to estimate a walking or running speed.
is it fine if you just measure the distance and possibly speed of the person using a gps shield???also try a modified pedometer system which could multiply the number of steps a person took with average calories burnt per step. there are various systems you could use but only if you are willing to change your basic design.
jremington:
It is very difficult, and perhaps impossible, to measure a person's velocity directly using the GY-80. For an explanation, see this: http://www.chrobotics.com/library/accel-position-velocity
However, it is possible to use an accelerometer to determine the gait (for example, time between footsteps) and using other information, to estimate a walking or running speed.
um...some one told me that to use to v=u+at to estimate the velocity, so is it applicable?
Also can you provide me so reference code of filter...I found some code but my adruino said that cannot be used.
bitch_please:
is it fine if you just measure the distance and possibly speed of the person using a gps shield???also try a modified pedometer system which could multiply the number of steps a person took with average calories burnt per step. there are various systems you could use but only if you are willing to change your basic design.
I cannot use the gps because my topic is to use the mems sensor to help the fat people calculate the calorie.
But my professor said I could consider to use the digital compass. Are the have similar function?
There is only one way that's not disasterously bad.
Use 6-DoF to maintain an estimate of the orientation via DCM or quaternion
Subtract estimate of the gravity vector from the accelerometer output
integrate remaining acceleration to give velocity vector estimate
integrate velocity estimate to get position vector.
All of this must be done in 3D, any 2D approximation can be laughably wrong
when significant 3D rotation is present. 3D rotation is not commutative for
instance, and 2D cannot even understand that.
Unfortunately the last two steps have drift - once you integrate you will turn
small offsets into longterm drift which will rapidly degrade the information
when two integration steps are used.
You can high-pass filter to remove the worst of the drift, but that then will cancel
any uniform velocity component completely. However you may be able to get
fairly accurate short-term movement tracks, individual steps for instance, and
then use that to calibrate the model (if you can determine when the foot is
on the ground, that gives you a zero-velocity reference to reset the model and cancel
offsets and drift).
This is all theoretical, it may be harder than I suggest (!)
Since you probably won't read it, I'll summarize the main issue. In order to subtract the acceleration due to gravity from the measured acceleration (to get the remainder that generates your walking/running speed) you have to know the absolute orientation of the sensor to much better than 1 degree accuracy. That is not currently possible with hobby-grade accelerometers, magnetometers and rate gyros.
If you're only want to get velocity, then use some physical marked points, that a sensor would detect, measure the time between the points and you the velocity. all other is way overshoot.
something like this:
sensor detects the point. ---> starts a timer .
sensor detects the next point, -----> read timer value and reset the timer.
calculate the time into seconds ( u got the distance between points) calculate ( speed(m/s) = distance(meter) /time(seconds) )
repeat step 2 and 3. as much as u like. you dont need any fancy shit, just use the built in timer and 2 microswitches.
That is not currently possible with hobby-grade accelerometers, magnetometers and rate gyros.
I am curious, what you think are "hobby grade" devices. These devices are all designed, and marketed towards, makers of phones, cars ( for active suspension and stability control ), and applications like turning off hard disk drives between sliding off the desk and hitting the floor. Who is designing and marketing devices towards "hobbyists" ?