I went and updated PyRow to support Python3 and work with PM5 modules, should any of you #Concept2 #RowErg enthusiasts out there be interested in a bit of programmatic rowing :3
The PyRow repository on gittub looks neglected, so idk what to expect. Here's my pull request if any of ya'll are interested in this sort of thing: https://github.com/wemakewaves/PyRow/pull/8
I wrote some dogshit python today to help guide my daily physical therapy rowing workouts by interfacing w/ my rowing machine :D
First picture is the heart rate monitor screen for calibrating the reference resting heart rate for the day.
Second screen is the post workout heart rate graph. There's some steps not pictured that I don't feel like explaining right now.
Here's the code if anyone is interested https://github.com/Aeva/autonomia/blob/excelsior/autonomia.py
@aeva I regret to inform you that your heart rate seems to be severely quantized
What's the quantum and the frequency of measurements you get?
(Re random things you can do with this if the sampling frequency is high enough: track breathing, at least for low enough breathing rates. See e.g. https://my.clevelandclinic.org/health/diseases/21666-sinus-arrhythmia)
@robryk @rygorous I believe I can get better data from the heart monitor directly. I opted to do it this way first since it was easier. I'm considering eventually changing this to just use the machine's wattage and distance readings, and putting a motion sensor or two on the machine to track the candence and other stats more precisely.
@TomF @robryk @rygorous the purpose of the exercises I'm doing right now is to retrain my autonomic response to mild sustained exertion. As I understand it, the heart rate itself isn't actually important so much as the variability. So, if the heart rate is more or less consistent through the workout, that's good! It sometimes is. If it's erratic, or trends upward far enough, that indicates the behavior this is meant to train out is still present.
@robryk @rygorous well, the library I'm using enforces as 50 ms sampling frequency, that I think is a limitation of the rowing machine's implementation of CSAFE over USB, but I think it allows for sending multiple commands in that window. However, it's giving me the same data that's visible on the machine's display, which looks to update roughly every second to 1.5 seconds.