The SW must do:
6. LED must blink (flash) proportionally to the spinning ratio:
- slow spin -> LED is blinking slow
- high spin -> LED is blinking very fast
The Angular speed is:
while the Tangential speed is:
where r (weel radius) can be derived from the weel circonference lenght:
r = 2 x PI x r
Therefore we have:
what I mean in the picture is that at low speed the front and rear weels can not slip, therefore at low speed it can be calculated the
WeelRatio = RPM_REAR / RPM_FRONT.
The SW must be updated then to calculate such ratio every time the bike is running slow, for example every time the bike speed is between 10 Kh/h and 20 Km/h and save it to a dedicated static variable, as for example:
float fWeelRatio;
During fast accellerating phase, the instant weels ratio can be compared with the stored fWeelRatio variable and the LED can be driven proportionally as described in the following draw:
The thresholds (i.e. 120%, 130%, etc..) can be used defined in a configuration flash area without the need to recompile the project each time.
The software will be updated soon...
1 comment:
I forgot to mention explicitely that the idea to calculate runtime the WeelsRatio is due to the acknoledge that the weels circonferences varies day by day: in fact depends from temperature, inflating pressure and driver weight. So, it is a good idea to recalculate each time just before a ride...
Post a Comment