Concept 2 model C with optical flywheel angular speed detection. #182
Replies: 1 comment 7 replies
-
A very cool approach, especially as it is less dependent on magnets, which might disturb the balance and inertia of the flywheel.
In the early days of ORM, we actually experimented with a similar setup: an ESP for highly accurate signal detection, and the RPi for the further processing. Instead of your analog signal, we used a HTTP-socket over WiFi (I must add I am still convinced a serial port would have been more reliable): the ESP injected the raw measurements directly into the engine. Currently, this is still possible by replacing the gpio-polling thread and replacing it by a recieving socket. When looking at 12 pulses per rotation, the flankLength should ideally be 24, which creates a significant CPU load. So it might overload the RPi3. 12 pulses should be quite doable if the structural signal error is tiny, as the standard RowErg uses that FlankLength, and the pattern might be extremely precise. The upcoming version 0.9.7 might help here as well as it has a new filter that removes structural signal errors.
Overall, I agree. Practical thing is that reed switches are simple to implement, despite being noisy. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Introduction
Just for inspiration to others, I report here my experience with ORM connected to my old Concept2 model C fitted with a PM2 performance monitor.
Optical detection
Instead of using the 3 induction voltage spikes per revolution of the flywheel, I used an optical encoderdisk and an infrared sensor (see pictures below, also proposed here: #61). The encoder lines were printed on a sheet of paper with a laserprinter. The paper was cut out and glued onto the flywheel surface. For the placement of the sensor I drilled a few small holes in the housing of the flywheel, allowing the phototransistor to detect the reflected IR-light from the encoder disk inside the housing.
Signal routing
The sensor module outputs a digital signal, which is connected to an ESP32 microcontroller, running an interrupt routine (see figure). The ESP32 only sends the timestamp values via bluetooth to a laptop running my own Python "PM2-replacement"" program "rwnp" (comparable in functionality with "ORM"). The interrupt routine also outputs a pulse on another pin after "dividing" the incoming pulses by 1, 2, 3, 4, 6, or 12, resulting in 12, 6, 4, 3, 2 or 1 pulses per flywheel revolution, respectively. This pulse train is used as input into the Raspberry Pi 3 Model B+, running ORM. Since I could not get ORM to work with 12 pulses per rev, I chose 6 pulses per rev. This produced values close to PM2 and rwnp readings using the following rower profile:
Conclusion
Generating high quality/ low noise digital pulses is imperative for the proper functioning of the detection software (PM2, ORM, rwnp). Making use of optical techniques is an interesting, cheap and reliable route to accomplish this and may be preferable over magnetic techniques.
Beta Was this translation helpful? Give feedback.
All reactions