
Gymnasticonは、Zwiftやその他のトレーニングアプリと協力するために、時代遅れおよび/または独自のエクササイズバイクを可能にします。新しいバイクのサポートは簡単に追加できます。以下の図は、フライホームバイクでどのように機能するかの例を示しています。

標準のBluetooth LEおよびANT+ POWERメーターとケイデンスセンサーをサポートするソフトウェア、自転車コンピューター、または時計は、次のように機能するはずです。
Raspberry Pi Zero Wは、最高のユーザーエクスペリエンスに推奨されます。最近のLinuxまたはMacOSシステムは、Gymnasticonを実行できるはずです。
注:Bluetooth LEバイク(フライホイールなど)を使用する場合は、マルチロール機能を備えたBluetooth LE 4.1+アダプターが必要です。上記のすべてのRaspberry PIデバイスにはこの機能がありますが、すべてのBT 4.1+アダプターがそれを持っていることが保証されているわけではありません。または、2つのBT 4.0+アダプターも機能します。1つはクライアント用(自転車に接続するため)と1つはサーバー用(Zwiftまたは別のアプリから接続を受信します)。

これは、Raspberry Piで立ち上がって実行する最も簡単な方法です。
前提条件:
dd(1)などのSDカード画像を書くプログラムステップ:
ddを使用してSDカードに画像を書き込む構成ファイル:
フライホイールまたはペロトン以外の自転車を使用する場合 - SDカードのメインフォルダー内にgymnasticon.jsonファイルを作成して適応させます。 bootcode.bin 、 cmdline.txt 、 config.txtなどと同じフォルダーになります。
次の例では、Gymnasticonを構成して、Schwinn IC4バイクを探し、電力測定値を8%削減します。
{
"bike": "ic4",
"power-scale": 0.92
}
次の例では、Gymnasticonを構成してKeizer Mシリーズの自転車を探すように構成します。
{
"bike": "keiser"
}
追加の構成オプションについては、以下を参照してください。
最初のブートでは、Gymnasticonを有効にして、ルートファイルシステム( "/")のオーバーレイファイルシステムを有効にし、「/boot」を読み取り専用としてマウントします。これにより、電力障害の結果として致命的なファイルシステムの破損のリスクが減少しますが、摩耗を最小限に抑えることでSDカードの寿命も延長されます。
したがって、体育館のきれいなシャットダウンは必要ありません。 Raspberry Piをプラグインして実行してください。
ネットワークとリモートアクセスをセットアップして、ログを確認したり、開発作業に参加できるようにすることができます。ただし、このモードは必要ではなく、一般的なユーザーには推奨されません。
注:この変更されたPi OS画像は、最初のブート中にのみ
wpa_supplicant.confおよびsshファイルに関して、ストックPI OS画像と同等の動作をします。これは、WiFiおよびSSHの設定がアンダーレイファイルシステムの一部になり、その後の再起動全体にわたって持続することを意味します。最初のブーツの後にwpa_supplicant.confまたはsshファイルをブートパーティションに配置すると、再起動全体で設定が持続しません。また、この場合、wpa_supplicant.confおよびsshファイルが削除され、別の再起動中に使用できないことに注意してください。
読み取り専用モードとRead-Writeモードの間でルートファイルシステムを変更することもできますが、コマンドoverctlを使用して現在のモードを表示することもできます。
フライホイールバイク
ペロトンバイク(パッシブ配線付き)
最初にクイックスタートを試してください。それ以外の場合は、Gymnasticonとその依存関係を手動でインストールする方法について読んでください。
依存関係:
node.js 12.16.1+
Linux(RaspberryPiを含む)
sudo apt-get install libudev-dev (node-bluetooth-hci-socketが要求)注:ユーザーは、Bluetoothアダプターにアクセスしてサービスを広告する許可を得る必要があります。
インストール:
npm install -g gymnasticon
gymnasticon
非実力的なユーザーとして実行するには:
# this gives cap_net_raw+eip to all node programs not just gymnasticon
sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))
ブートタイムで実行するには、exitで再起動し、 cap_net_raw+eipノードバイナリに提供することを避けるために、SystemDで実行することをお勧めします。 SystemDユニットファイルの例については、このリポジトリのdeploy/gymnasticon.service参照してください。
sudo cp gymnasticon.service /etc/systemd/system
sudo systemctl enable gymnasticon
sudo systemctl start gymnasticon
SystemDの下で実行されているGymnasticonの出力を表示するには:
journalctl -u gymnasticon -f
注:以下のCLIオプションは、構成ファイルでも使用できます。 - コマンドライン上の
--bike ic4は、構成ファイルの{"bike":"ic4"}と同じです。
$ 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
他の独自の自転車のサポートを追加することは、それらからリアルタイムのケイデンス/パワーデータを取得する手段がある限り、些細なことです。
mit
ここで開発メモを読んでください。