
Gymnasticon позволяет устареть и/или проприетарные упражнения для работы с Zwift и другими учебными приложениями. Поддержка новых велосипедов может быть добавлена легко. На приведенной ниже диаграмме показан пример того, как она работает с домашним велосипедом маховика.

Любое программное обеспечение, велосипедный компьютер или часы, которые поддерживают стандартные Bluetooth LE и Ant+ Power Meter и датчики CADENCE, в том числе:
Raspberry Pi Zero W рекомендуется для лучшего пользовательского опыта. Любая недавняя система Linux или MacOS должна иметь возможность запускать Gymnasticon.
ПРИМЕЧАНИЕ. При использовании Bluetooth Le Bike (например, маховик) Adapter Bluetooth LE 4.1+ с множественной способностью. Все устройства Raspberry Pi, перечисленные выше, имеют эту возможность, но не каждый адаптер BT 4.1+ гарантированно. В качестве альтернативы, две адаптеры BT 4.0+ также могут работать: один для клиента (для подключения к велосипеде) и одна для сервера (для получения подключений от Zwift или другого приложения).

Это самый простой способ встать и работать на малиновом пи.
Предварительные условия:
dd(1)Шаги:
ddФайл конфигурации:
При использовании велосипеда, отличного от маховика или пелотона - создайте и адаптируйте файл gymnasticon.json в основной папке SD -карты. Он должен оказаться в той же папке, что и bootcode.bin , cmdline.txt , config.txt и т. Д.
Следующий пример настраивает Gymnasticon для поиска велосипеда Schwinn IC4 и снижения его значений измерения мощности на 8%:
{
"bike": "ic4",
"power-scale": 0.92
}
Следующий пример настраивает Gymnasticon для поиска велосипеда серии Keizer M:
{
"bike": "keiser"
}
См. Ниже дополнительные параметры конфигурации.
Во время первого загрузочного Gymnasticon позволяет файловая система наложения для корневой файловой системы ("/") и Mounts "/Boot" в качестве только для чтения. Это снижает риск коррупции фатальной файловой системы в результате, например, сбоев питания, но также расширяет срок службы SD -карты за счет минимизации износа.
Поэтому чистое отключение Gymnasticon не требуется. Просто держите свой Raspberry Pi подключен и работаю.
По -прежнему возможно настройку сети и удаленного доступа, чтобы вы могли проверять журналы или участвовать в разработке. Но этот режим не необходим и не рекомендуется для типичных пользователей.
ПРИМЕЧАНИЕ. Это модифицированное изображение PI OS будет вести себя эквивалентно запасам изображений PI OS в отношении файлов
wpa_supplicant.confиsshтолько во время первой загрузки. Это означает, что настройки Wi -Fi и SSH становятся частью файловой системы подложки и сохраняются через последующие перезагрузки. Размещение файлаwpa_supplicant.confилиsshв загрузочный раздел после первой загрузки приведет к тому, что настройки не будут сохраняться в результате перезагрузки. Также обратите внимание, что в этом случае файлыwpa_supplicant.confиsshудаляются и недоступны во время другой перезагрузки.
Вы можете изменить корневую файловую систему между режимом только для чтения и чтения-записи, но также показывать текущий режим, используя команду overctl .
Маховик велосипед
Пелотонский велосипед (с пассивной проводкой)
Попробуйте сначала быстрый старт. В противном случае читайте дальше, как установить Gymnasticon и его зависимости вручную.
Зависимости:
Node.js 12.16.1+
На Linux (включая Raspberry Pi)
sudo apt-get install libudev-dev (требуется Node-Bluetooth-HCI-сокета)Примечание. Ваш пользователь должен иметь разрешение на доступ к адаптеру 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))
Чтобы запустить во время загрузки, перезапустите на выходе и не давая cap_net_raw+eip двоичному узлу, это рекомендуется запустить под SystemD. См. deploy/gymnasticon.service из этого репозитория для примера файла подразделения Systemd.
sudo cp gymnasticon.service /etc/systemd/system
sudo systemctl enable gymnasticon
sudo systemctl start gymnasticon
Чтобы просмотреть выход 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
Должно быть тривиально добавлять поддержку другим проприетарным велосипедам, при условии, что есть средства для получения данных о каденции/мощности в реальном времени.
Грань
Прочитайте заметки о разработке здесь.