Which sensor would you recommend to measure bicycle speed very accurately?
A usual sensor is a reed relay, which gives a pulse, when a magnet passes. The magnet is attached in one spoke (of e.g. 32 spokes total).
But now I am interested in knowing the speed about 32 times during each revolution in order to find out small variations in acceleration e.g.due to pedalling. For my own bicycle only, no commercial product. Speed range 0 - 20 m/s, wheel diameter about 24 ". Rainy or snowy days need not be considered, asphalt roads only. Reasonably easy to build and install at home. Programming can be complicated though.
One could put 32 magnets to the wheel, one for each spoke. But that would be clumsy, magnets are different in sensitivity and they have contact bouncing.
optimistx:
Which sensor would you recommend to measure bicycle speed very accurately?
A usual sensor is a reed relay, which gives a pulse, when a magnet passes. The magnet is attached in one spoke (of e.g. 32 spokes total).
But now I am interested in knowing the speed about 32 times during each revolution in order to find out small variations in acceleration e.g.due to pedalling. For my own bicycle only, no commercial product. Speed range 0 - 20 m/s, wheel diameter about 24 ". Rainy or snowy days need not be considered, asphalt roads only. Reasonably easy to build and install at home. Programming can be complicated though.
One could put 32 magnets to the wheel, one for each spoke. But that would be clumsy, magnets are different in sensitivity and they have contact bouncing.
Which kind of sensor would you consider?
Off the top of my head, as I was /just/ thinking about this for my bike computer I'm designing.
You could make an optical rotary encoder that passes continually through a LED/phototransistor pair that tells you where on the wheel you are.
This is done a lot in industrial control, usually to measure angles and linear movement. I'm not sure if it would be able to keep up with the rates of speed we are talking about here (though you could just add another sensor if it was critical), but I see no technical reason why not. I'd have to actually try it.
For sure you would want to mount the sensor and formatted disk closer to the hub.
I'm not sure how much granularity you want, or can get, or need.
[Later]
If one planned for this when making disc brakes, they could get discs machined with the encoding they needed, and build this directly into the brake system.
optimistx:
Which sensor would you recommend to measure bicycle speed very accurately?
A usual sensor is a reed relay, which gives a pulse, when a magnet passes. The magnet is attached in one spoke (of e.g. 32 spokes total).
But now I am interested in knowing the speed about 32 times during each revolution in order to find out small variations in acceleration e.g.due to pedalling. For my own bicycle only, no commercial product. Speed range 0 - 20 m/s, wheel diameter about 24 ". Rainy or snowy days need not be considered, asphalt roads only. Reasonably easy to build and install at home. Programming can be complicated though.
One could put 32 magnets to the wheel, one for each spoke. But that would be clumsy, magnets are different in sensitivity and they have contact bouncing.
Which kind of sensor would you consider?
I vote for the hall effect sensor with a magnet on each spoke. Some things to consider when handling that number of inputs. 32 magnets on a 24" wheel moving at 20 meters per second will need to have each sensor signal received and processed in less than 3 ms. The arduino/avr can do this, but you will not have much headroom for complicated processing depending upon how efficient your coding ends up.
How about something optic? On one fork, have a light shining, on the other a light receiver, on the spokes a set of holes that let light thru.
Light received can be digitally processed like pulses, or can be filtered like a PWM signal to make a smoother analog level. The higher the level, the faster the pulses are being created. Can then just monitor the voltage level for changes vs having to process all the digital pulses.
CrossRoads:
How about something optic? On one fork, have a light shining, on the other a light receiver, on the spokes a set of holes that let light thru.
Light received can be digitally processed like pulses, or can be filtered like a PWM signal to make a smoother analog level. The higher the level, the faster the pulses are being created. Can then just monitor the voltage level for changes vs having to process all the digital pulses.
Optical sensors on a bike are going to present a signal conditioning problem. The sensor has to be more complicated then a simple break beam sensor since the varying light levels will affect the behavior of the sensor. If you want to go with optical, I can probably dredge up a circuit I used for a projectile sensor to deal with the same issue of varying ambient light. All of the sensors on my bikes (commercial) make use of magnets and hall effect sensors.
CrossRoads:
How about something optic? On one fork, have a light shining, on the other a light receiver, on the spokes a set of holes that let light thru.
Light received can be digitally processed like pulses, or can be filtered like a PWM signal to make a smoother analog level. The higher the level, the faster the pulses are being created. Can then just monitor the voltage level for changes vs having to process all the digital pulses.
Optical sensors on a bike are going to present a signal conditioning problem. The sensor has to be more complicated then a simple break beam sensor since the varying light levels will affect the behavior of the sensor. If you want to go with optical, I can probably dredge up a circuit I used for a projectile sensor to deal with the same issue of varying ambient light. All of the sensors on my bikes (commercial) make use of magnets and hall effect sensors.
Rotary encoded spindles can be reasonably isolated from ambient light -- this stuff is used in all sorts of real-life situations for industrial control. And, at its simplest form it is generating a single square wave (i.e., no real Gray code involved) so not much room for error. Even so, a Gray code, if used, gives you a fair amount of dependable error correction.
Yes, maybe, but since most rims are chrome (or other reflective material) and bikes are out in ambient daylight I don't think optical sensors are going to prove useful in that environment-solar glare at the right angle will easily diminish the difference between a black area and a white area to be beyond the sensitivity of the sensor designed to detect during lower ambient levels.. All of the optical sensors I have experience with have fairly controlled environments, for instance light shielding, extremely close proximate to the moving object, etc... I just don't see that working without a lot of effort on a typical bicycle.
Use a little laser diode and a photodetector/photodiode/phototransistor tuned in the to same frequency.
Mounted on the fork down by the hub and away from the rim, with the shield with holes close in front of the detector.
[quote author=The Clever Monkey link=topic=110575.msg831186#msg831186 date=1340067538]
Rotary encoded spindles can be reasonably isolated from ambient light -- this stuff is used in all sorts of real-life situations for industrial control. And, at its simplest form it is generating a single square wave (i.e., no real Gray code involved) so not much room for error. Even so, a Gray code, if used, gives you a fair amount of dependable error correction.
Yes, maybe, but since most rims are chrome (or other reflective material) and bikes are out in ambient daylight I don't think optical sensors are going to prove useful in that environment-solar glare at the right angle will easily diminish the difference between a black area and a white area to be beyond the sensitivity of the sensor designed to detect during lower ambient levels.. All of the optical sensors I have experience with have fairly controlled environments, for instance light shielding, extremely close proximate to the moving object, etc... I just don't see that working without a lot of effort on a typical bicycle.
[/quote]
Don't measure by taking dirty readings off the rim! Measure an encoded disk attached to the spindle. The simplest arrangement is a single-bit on/off count, which works because, in this specific case, we really don't need to know when the "start" bit is, or what direction we are going in. Capture this with a common IR LED/IR phototransistor pair device (these are common in older optical mice) and you basically have a square wave you can extract useful information from. A lot of the specialty robotics places will have the parts to do this. Some motors have encoding built in so you can get feedback from them on direction, speed, etc.
Some are based on make/break with a disc that has regular holes in it. Others work by having encoded white/black patches that can be read by bouncing LED light off of them and reading that.
If you need to know more about the rotation, like direction, or you want to do error correction, use more than a single bit and extract a Gray code from a more complex encoded disc.
Do a web search for "Gray code" and "rotary encoding" to see what I mean. Very common and very well understood way of measuring rotation under all kinds of environments.
I would love to see an example, looking near the axles on my bikes I don't see a lot of options for mounting an encoder disk, of course I may just be obtuse!
Don't measure by taking dirty readings off the rim! Measure an encoded disk attached to the spindle. The simplest arrangement is a single-bit on/off count, which works because, in this specific case, we really don't need to know when the "start" bit is, or what direction we are going in. Capture this with a common IR LED/IR phototransistor pair device (these are common in older optical mice) and you basically have a square wave you can extract useful information from. A lot of the specialty robotics places will have the parts to do this. Some motors have encoding built in so you can get feedback from them on direction, speed, etc.
Some are based on make/break with a disc that has regular holes in it. Others work by having encoded white/black patches that can be read by bouncing LED light off of them and reading that.
If you need to know more about the rotation, like direction, or you want to do error correction, use more than a single bit and extract a Gray code from a more complex encoded disc.
Do a web search for "Gray code" and "rotary encoding" to see what I mean. Very common and very well understood way of measuring rotation under all kinds of environments.
I would love to see an example, looking near the axles on my bikes I don't see a lot of options for mounting an encoder disk, of course I may just be obtuse!
[/quote]
Well, looking at my bike I think I could attach a stiff disc near the hub, directly to the spokes. Nylon ties would do in a pinch for prototyping. Then mount a reflective type LED/phototransistor pair to the lower fork aimed at the pattern. I'd want to do a little research to choose the appropriate light frequency they would operate on to minimize noise (if necessary). For a first pass I might paint/print a CD or DVD with the right pattern and try to fit that somehow.
But way back in my first reply I mentioned something I think would be really elegant: for those bikes with disc brakes, encode the pattern in the discs themselves, and build the reader into the calipers.
Thanks everyone for the ideas. It is useful to see those ideas, but it might be useful to see, that there are no other substantially different alternatives proposed ;).
To measure slight variations in speed due to pedaling might be more difficult than I first thought, especially with tires of low air pressure. The radius of the wheel changes with the uneven asfalt, making it difficult to separate the change of linear acceleretion from the change of angular speed due to wheel radius change.
Maybe an accelerometer on the handle bars? Overlaid on top of your reed measurments so that you get the right time/speed/acceleration ratio???
Just throwing it out there