
O Gymnasticon permite que as bicicletas de exercícios obsoletas e/ou proprietárias trabalhem com o Zwift e outros aplicativos de treinamento. O suporte a novas bicicletas pode ser adicionado facilmente. O diagrama abaixo mostra um exemplo de como funciona com a bicicleta em casa do volante.

Qualquer software, computador de bicicleta ou relógio que suporta os sensores padrão do Bluetooth LE e ANT+ Power Meter and Cadnce Deve funcionar, incluindo:
Raspberry Pi Zero W é recomendado para a melhor experiência do usuário. Qualquer sistema recente Linux ou MacOS deve ser capaz de executar o Gymnasticon.
NOTA: Se estiver usando uma bicicleta Bluetooth le (por exemplo, volante), é necessário um adaptador Bluetooth LE 4.1+ com capacidade de vários volumes. Todos os dispositivos Raspberry Pi listados acima têm esse recurso, mas nem todo adaptador BT 4.1+ é garantido. Como alternativa, dois adaptadores BT 4.0+ também podem funcionar: um para o cliente (para conectar -se à bicicleta) e outro para o servidor (para receber conexões do Zwift ou outro aplicativo).

Esta é a maneira mais fácil de subir e correr em um Raspberry Pi.
Pré -requisitos:
dd(1)Passos:
ddArquivo de configuração:
Se estiver usando uma bicicleta que não seja o volante ou o pelotão - crie e adapte um arquivo gymnasticon.json na pasta principal do cartão SD. Ele deve acabar na mesma pasta que bootcode.bin , cmdline.txt , config.txt , etc.
O exemplo a seguir configura o Gymnasticon para procurar uma bicicleta Schwinn IC4 e reduzir seus valores de medição de energia em 8%:
{
"bike": "ic4",
"power-scale": 0.92
}
O exemplo a seguir configura o Gymnasticon para procurar uma bicicleta da série Keiser M:
{
"bike": "keiser"
}
Veja abaixo as opções de configuração adicionais.
Durante a primeira bota, o Gymnasticon permite o sistema de arquivos de sobreposição para o sistema de arquivos root ("/") e monta "/bota" como somente leitura. Isso reduz o risco de corrupção fatal do sistema de arquivos como resultado de falhas de energia, mas também estende a vida útil do cartão SD, minimizando o desgaste.
Portanto, um desligamento limpo do Gymnasticon não é necessário. Apenas mantenha o seu Pi de Raspberry conectado e funcionando.
Ainda é possível configurar redes e acesso remoto para que você possa verificar os logs ou participar do trabalho de desenvolvimento. Mas esse modo não é necessário nem recomendado para usuários típicos.
NOTA: Esta imagem do PI OS modificada se comportará equivalente a imagens de estoque PI OS com relação aos arquivos
wpa_supplicant.confesshapenas durante a primeira inicialização. Isso significa que as configurações Wi -Fi e SSH se tornam parte do sistema de arquivos subjacentes e persistem nas reinicializações subsequentes. A colocação de um arquivowpa_supplicant.confousshna partição de inicialização após a primeira inicialização resultará em configurações não serem persistidas nas reinicializações. Observe também que, neste caso, os arquivoswpa_supplicant.confesshsão removidos e não estão disponíveis durante outra reinicialização.
Você pode alterar o sistema de arquivos raiz entre o modo somente leitura e leitura-gravação, mas também mostrar o modo atual usando o comando overctl .
Bicicleta do volante
Bike Peloton (com fiação passiva)
Experimente o início rápido primeiro. Caso contrário, continue lendo como instalar o Gymnasticon e suas dependências manualmente.
Dependências:
Node.js 12.16.1+
No Linux (incluindo Raspberry Pi)
sudo apt-get install libudev-dev (exigido pelo soquete node-bluetooth-hci)Nota: Seu usuário deve ter permissão para acessar o adaptador Bluetooth e anunciar serviços.
Instalar:
npm install -g gymnasticon
gymnasticon
Para executar como um usuário sem privilégios:
# this gives cap_net_raw+eip to all node programs not just gymnasticon
sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))
Para executar na hora da inicialização, reinicie a saída e para evitar dar cap_net_raw+eip para o nó binário, é recomendável ser executado no Systemd. Consulte o deploy/gymnasticon.service deste repositório para um exemplo de arquivo de unidade Systemd.
sudo cp gymnasticon.service /etc/systemd/system
sudo systemctl enable gymnasticon
sudo systemctl start gymnasticon
Para visualizar a saída do Gymnasticon em execução no Systemd:
journalctl -u gymnasticon -f
Nota: As opções da CLI abaixo também podem ser usadas no arquivo de configuração.
--bike ic4na linha de comando é o mesmo que{"bike":"ic4"}no arquivo de configuração.
$ 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
Deve ser trivial adicionar suporte a outras bicicletas proprietárias, desde que exista um meio de obter dados de cadência/energia em tempo real.
Mit
Leia as notas de desenvolvimento aqui.