How to count the bicycle wheel revolutions by accelerometer

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
9 replies · 3K views
vk8051
Hi,
I am setting the accelerometer (BMA250E) on the bicycle wheel hub.
I want to count the wheel revolutions(each sine wave) but the Speed over 20km the x-axis(a) data will increase.
My question is: How to count the sine wave when x-axis sine wave position move to high or low.

Thanks.
 
Physics news on Phys.org
vk8051 said:
I am setting the accelerometer (BMA250E) on the bicycle wheel hub.
I want to count the wheel revolutions(each sine wave) but the Speed over 20km the x-axis(a) data will increase. .
Because the accelerometer is rotating (which it can't detect), the accelerometer will feel a constant acceleration towards the center of the wheel of (ω^2)r and a rotating acceleration due to the of gravity of magnitude g.
For an 28 inch bicycle wheel at 20 km/hr ω = 7.8 rad/sec.
The acceleration due to the wheel will be bigger than g if (ω^2)r > g so r > 0.16 m.
If you mount the accelerometer further than 16 cm from the center of the wheel the constant acceleration will be bigger than the acceleration measured due to gravity.
If you put one axis of the BMA250E in the direction of the center of the wheel the acceleration measured in this direction will always have the same sign. One of the other axis should be perpendicular and in the plane of the wheel and that should measure only the acceleration of gravity, and this should produce the sine wave you want. You could also try to mount the device closer to the center of the wheel.

My question is: How to count the sine wave when x-axis sine wave position move to high or low.
I don't understand this.
 
Hi willem2,
Thank you for reply.
I am apologetic for my English, because I am Taiwanese and I don't speak English very often.

I put the accelerometer like This website Garmin Speed sensor below:
http://triedonline.com/garmin-magnetless-speed-sensor-review/

When the wheel revolution forward or backward. I can read the x-axis will be a sine wave 30~0~ -30.
and I use the 0 be my base line to count the sine wave. one sine wave is one wheel revolution.
But those result is correct when wheel speed under 20km.
I need count the wheel revolutions per second then I can calculate the bicycle current speed in Km/h.

My Question is:
When the Speed over 20KM, the sine wave base will no keep in 0.
It will move to up or down. It depends on wheel forward or backward.

Thanks.
 
vk8051 said:
I can read the x-axis
What is x? Radial? Tangential? As already said, using the tangential axis should reduce the variation of the base line.

vk8051 said:
When the Speed over 20KM, the sine wave base will no keep in 0.
You need to filter that out. Use Fourier Transform to find the frequency you are interested in.

vk8051 said:
It depends on wheel forward or backward.
What does this mean?
 
Hi,
The X just I read the BMA250E X axis Reg data.
and the setting is 16G
the x raw data also
if( x > 512){
x -= 512;
}
then I got the X-axis data range is 30~0~ -30.

and wheel rotates different direction then base line will different
for example :
when wheel rotates forward then x-axis will 40~0~ -20 and follow the speed change base line.

and I Google what is Fourier Transform. I need each sine wave.
I just don't know when the base line is different how to count a sine wave.Thanks.
 
vk8051 said:
My Question is:
When the Speed over 20KM, the sine wave base will no keep in 0.
It will move to up or down. It depends on wheel forward or backward.

Calculate the average value to get the new base.
 
Hi,
I don't know how Calculate the average value to get the new base.
So I ask question here.

Thanks
 
Add up the samples in one cycle. Divide by the number of samples.

That will give you the average for that cycle. You may need to average over more than one cycle. You will need to experiment.

Google "running average"
Google translator says that is 跑步平均
 
  • Like
Likes   Reactions: vk8051
vk8051 said:
The X just I read the BMA250E X axis Reg data.
You need to now which physical axis is X.
 
CWatters said:
Add up the samples in one cycle. Divide by the number of samples.

That will give you the average for that cycle. You may need to average over more than one cycle. You will need to experiment.

Google "running average"
Google translator says that is 跑步平均

Hi,
I will Google "moving average" and try this way to get new base line.
Thank