
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
只要有一種從中獲取實時的節奏/功率數據的方法,就可以增加對其他專有自行車的支持。
麻省理工學院
在此處閱讀開發說明。