
Gymnasticon启用过时和/或专有锻炼自行车与Zwift和其他培训应用程序一起工作。可以轻松添加对新自行车的支持。下图显示了它如何与飞轮家庭自行车一起使用的示例。

任何支持标准蓝牙LE和ANT+功率计和Cadence传感器的软件,自行车计算机或手表都应有效,包括:
建议使用Raspberry Pi Zero W,以获得最佳用户体验。任何最近的Linux或MacOS系统都应该能够运行体操酮。
注意:如果使用蓝牙LE自行车(例如飞轮),则需要具有多角色功能的蓝牙LE 4.1+适配器。上面列出的所有Raspberry Pi设备都具有此功能,但并非所有BT 4.1+适配器都可以保证具有它。另外,两个BT 4.0+适配器也可以工作:一个用于客户端(连接到自行车),一个用于服务器(从Zwift或其他应用接收连接)。

这是在Raspberry Pi上起床和运行的最简单方法。
先决条件:
dd(1)步骤:
dd将图像写入SD卡配置文件:
如果使用飞轮或Peloton以外的自行车 - 在SD卡的主文件夹中创建并调整了gymnasticon.json文件。它应该与bootcode.bin , cmdline.txt , config.txt ,等。
以下示例配置了体操运子以寻找Schwinn IC4自行车,并将其功率测量值降低8%:
{
"bike": "ic4",
"power-scale": 0.92
}
以下示例配置了体操运子以寻找Keizer M系列自行车:
{
"bike": "keiser"
}
有关其他配置选项,请参见下文。
在第一个启动体操运动员期间,启用root Filesystem(“/”)和安装“/boot”的覆盖文件系统作为仅阅读。这降低了由于EG功率故障而导致致命文件系统损坏的风险,但也通过最大程度地减少磨损来延长SD卡的寿命。
因此,没有必要清洁体操枪。只需保持覆盆子Pi插入并运行即可。
仍然可以设置网络和远程访问,以便您可以检查日志或参与开发工作。但是这种模式既不是必要的,也不适用于典型用户。
注意:此修改后的PI OS映像的行为将等效于仅在第一个引导期间仅在
wpa_supplicant.conf和sshFILES方面库存PI OS图像。这意味着WiFi和SSH设置成为底层文件系统的一部分,并在随后的重新启动过程中持续存在。在第一个引导后将wpa_supplicant.conf或ssh文件放在引导分区上,将导致设置不会在重新启动过程中持续存在。另请注意,在这种情况下,wpa_supplicant.conf和ssh文件将删除,在另一个重新启动期间不可用。
您可以在读取和读写模式之间更改根文件系统,但也可以使用命令overctl显示当前模式。
飞轮自行车
Peloton自行车(带被动布线)
先尝试快速启动。否则,请继续阅读如何手动安装体操子及其依赖项。
依赖性:
Node.js 12.16.1+
在Linux上(包括覆盆子Pi)
sudo apt-get install libudev-dev (由节点蓝牙-HCI插座要求)注意:您的用户必须有权访问蓝牙适配器和广告服务。
安装:
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))
要在启动时运行,请重新启动出口并避免将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下运行的体操运动的输出:
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
只要有一种从中获取实时的节奏/功率数据的方法,就可以增加对其他专有自行车的支持。
麻省理工学院
在此处阅读开发说明。