
Gymnastique permet aux vélos d'exercice obsolètes et / ou propriétaires de travailler avec Zwift et d'autres applications de formation. La prise en charge de nouveaux vélos peut être ajoutée facilement. Le diagramme ci-dessous montre un exemple de la façon dont il fonctionne avec le vélo à domicile.

Tout logiciel, ordinateur de vélo ou montre qui prend en charge les capteurs standard Bluetooth LE et ANT + Power Metter et Cadence devrait fonctionner, notamment:
Raspberry Pi Zero W est recommandé pour la meilleure expérience utilisateur. Tout système Linux ou MacOS récent devrait pouvoir exécuter Gymnastion.
Remarque: Si vous utilisez un vélo Bluetooth LE (par exemple, un volant), un adaptateur Bluetooth LE 4.1+ avec une capacité multi-role est requis. Tous les périphériques Raspberry PI répertoriés ci-dessus ont cette capacité, mais tous les adaptateurs BT 4.1+ sont garantis de l'avoir. Alternativement, deux adaptateurs BT 4.0+ peuvent également fonctionner: un pour le client (pour se connecter au vélo) et un pour le serveur (pour recevoir des connexions de Zwift ou d'une autre application).

C'est le moyen le plus simple de se présenter sur un Raspberry Pi.
Prérequis:
dd(1)Mesures:
ddFichier de configuration:
Si vous utilisez un vélo autre que le volant ou le peloton - créez et adaptez un fichier gymnasticon.json dans le dossier principal de la carte SD. Il doit se retrouver dans le même dossier que bootcode.bin , cmdline.txt , config.txt , etc.
L'exemple suivant configure Gymnastique pour rechercher un vélo Schwinn IC4 et réduire ses valeurs de mesure de puissance de 8%:
{
"bike": "ic4",
"power-scale": 0.92
}
L'exemple suivant configure Gymnastique pour rechercher un vélo de la série Keizer M:
{
"bike": "keiser"
}
Voir ci-dessous pour des options de configuration supplémentaires.
Au cours de la première boot, GymnasTICon permet le système de fichiers de superposition du système de fichiers racine ("/") et des monts "/ boot" en lecture seule. Cela réduit le risque de corruption mortelle du système de fichiers en raison des pannes de puissance EG, mais prolonge également la durée de vie de la carte SD en minimisant l'usure.
Une fermeture propre de Gymnasastique n'est donc pas nécessaire. Gardez simplement votre Raspberry Pi branché et en cours d'exécution.
Il est toujours possible de configurer le réseautage et l'accès à distance afin que vous puissiez vérifier les journaux ou participer aux travaux de développement. Mais ce mode n'est ni nécessaire, ni recommandé pour les utilisateurs typiques.
Remarque: Cette image PI OS modifiée se comportera équivalente aux images PI OS en stock en ce qui concerne les fichiers
wpa_supplicant.confetsshuniquement lors du premier démarrage. Cela signifie que les paramètres WiFi et SSH font partie du système de fichiers de sous-couche et persistent sur les redémarrages ultérieurs. Placer un fichierwpa_supplicant.confousshsur la partition de démarrage après le premier démarrage entraînera des paramètres qui ne sont pas persistés à travers les redémarrages. Notez également que dans ce cas, les fichierswpa_supplicant.confetsshsont supprimés et non disponibles lors d'un autre redémarrage.
Vous pouvez modifier le système de fichiers racine entre le mode en lecture seule et en lecture-écriture, mais également afficher le mode actuel à l'aide de la commande overctl .
Vélo de volant
Vélo peloton (avec câblage passif)
Essayez d'abord le démarrage rapide. Sinon, lisez la suite pour installer manuellement Gymnastique et ses dépendances.
Dépendances:
Node.js 12.16.1+
Sur Linux (y compris Raspberry Pi)
sudo apt-get install libudev-dev (requis par node-bluetooth-hci-socket)Remarque: Votre utilisateur doit avoir la permission d'accéder à l'adaptateur Bluetooth et aux services de publicité.
Installer:
npm install -g gymnasticon
gymnasticon
Pour fonctionner en tant qu'utilisateur sans privilégié:
# this gives cap_net_raw+eip to all node programs not just gymnasticon
sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))
Pour exécuter au démarrage, redémarrez à la sortie et pour éviter de donner cap_net_raw+eip au nœud binaire, il est recommandé d'exécuter sous SystemD. Voir le deploy/gymnasticon.service à partir de ce référentiel pour un exemple de fichier unitaire Systemd.
sudo cp gymnasticon.service /etc/systemd/system
sudo systemctl enable gymnasticon
sudo systemctl start gymnasticon
Pour voir la sortie de Gymnastion en cours d'exécution sous Systemd:
journalctl -u gymnasticon -f
Remarque: Les options CLI ci-dessous peuvent également être utilisées dans le fichier de configuration.
--bike ic4sur la ligne de commande est le même que{"bike":"ic4"}dans le fichier de configuration.
$ gymnasticon --help
__o
_ <_
(_)/(_)
Gymnasticon
v1.4.0
usage: gymnasticon [OPTIONS]
Options:
--config <filename> load options from json file [string]
--bike <type>
[string] [choices: "flywheel", "peloton", "ic4", "keiser", "bot",
"autodetect"] [default: "autodetect"]
--bike-connect-timeout <seconds> [number] [default: 0]
--bike-receive-timeout <seconds> [number] [default: 4]
--bike-adapter <name> for bike connection [default: "hci0"]
--flywheel-address <macaddr>
--flywheel-name <name>
--peloton-path <path> usb serial device path
[string] [default: "/dev/ttyUSB0"]
--bot-power <watts> initial bot power [number]
--bot-cadence <rpm> initial bot cadence [number]
--bot-host <host> for power/cadence control over udp [string]
--bot-port <port> for power/cadence control over udp [number]
--server-adapter <name> for app connection [default: "hci0"]
--server-name <name> used for Bluetooth advertisement
[default: "Gymnasticon"]
--server-ping-interval <seconds> ping app when user not pedaling
[number] [default: 1]
--ant-device-id <id> ANT+ device id for bike power broadcast
[number] [default: 11234]
--power-scale <value> scale watts by this multiplier
[number] [default: 1]
--power-offset <value> add this value to watts [number] [default: 0]
--version Show version number [boolean]
-h, --help Show help [boolean]
git clone https://github.com/ptx2/gymnasticon.git
cd gymnasticon
npm run build
npm link
gymnasticon --help
Il devrait être trivial d'ajouter le support pour d'autres vélos propriétaires, tant qu'il y a un moyen d'obtenir des données de cadence / puissance en temps réel.
Mit
Lisez les notes de développement ici.