Thank for the reply. I’ve been a bit distracted since my initial post.
I stopped past and had a look at the bike (before Melbourne went into lockdown) and this seems like the simplest approach. We tried another magnet that was lying around the workshop and it increased the range to a couple of centimetres.
A single magnet worked fine last time. In fact, the biggest problem was that it worked too well. Whenever we were testing it, we were just going at a ‘normal’ speed. Once we loaded the real music, and started hitting higher speeds, we found that the speed suddenly halved. It took me an embarrassingly long time to realise that I had left in a debounce value on the code that monitored the GPIO. Once I removed that, it worked perfectly.
The elliptical cross trainer caused an irregular rhythm, which won’t be an issue with the circular wheel on the bike.
This is the cross trainer in action:
I am actually thinking about using the Pi to control an RGB LED strip, linking the colour of the LEDs to the speed of the wheel. Any advice on which components would be needed to control 2-3M of 5050 RGB LEDs from the Pi? It is my understanding that a MOSFET transistor for each of the colours is what I need. But the making sense of the specs/maths to work out which part(s) will be able to handle it is I bit beyond me.